Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom Bar]

[Photo of the Author]
Manuel Muriel Cordero
글쓴이 소개:
Manuel Muriel님은 현재 Universidad de Sevilla의 컴퓨터공학과 학생입니다. 글쓴이는 취미와 공부하는 분야가 컴퓨터과학입니다. 리눅스는 글쓴이 자신에게 놀라운 발견이었죠. 이런 취미말고도 글읽기 특히 소설읽기를 좋아합니다(Tolkien은 제 우상이죠 :) 친구들과 야구를 하기도 하고 영화를 보기도 합니다. 공상과학영화면 더욱 좋겠죠.(저는 블레이드러너, 20001, 금지된 행성등을 좋아합니다.)
murie@arturo.lsi.us.es

차례:
들어가는 글
리눅스로 할 수 있는 일
기본적인 시스템 관리
몇가지 명령어
정보를 찾을 수 있는 곳
기본적인 파일 다루는 명령
파일에 사용되는 와일드문자
리다이렉팅
텍스트 편집기

UNIX기본 명령어

[Ilustration]

요약: 오랫동안 리눅스 사용자들은 리눅스가 매우 간단하면서 강력한 운영체제임을 알고 있을 것이다. 그러나 유닉스 환경과 친근하지 않는 처음 사용자들에게는 리눅스는 배우기 어렵고 비밀에 둘러싸인 운영체제로 느껴지는 것이 사실이다. 글쓴이는 초보사용자들이 쉽게 익숙해지기를 바라는 몇가지 기본 유닉스명령어에 대해 간결한 초보입문서로 이 글을 썼다.


Introduction

이 글은 새롭게 리눅스(유닉스도 포함)를 시작하는 사용자들을 위해 특별히 쓰여졌다. 초보사용자가 아닌 사람들에게는 유용한 리뷰기사가 될 수 있을 것이다.

아마도 우리 독자들중 일부는 집에 있는 자신의 컴퓨터를 문서편집기나 비디오게임 또는 아마도 금전출납부프로그램을 이용하기 위하여 사용할 것이다. 이러한 개인 사용자들에게 "운영체제"라는 관점은 명확한 의미가 아니다. 왜냐하면 그들의 시스템은 (이른바) "공짜" 윈도우즈95와 대부분 친구나 친구의 친구로 부터 "빌려온" 프로그램들일 것이다. 많은 문제 없이 컴퓨터가 사용자의 일을 해주기를 바랄 것이다. 그러나 "메모리 보호 오류가 0FAG:BD07번지에서 발생하였습니다"같은 시스템에 치명적인 메시지를 내뱉을때는 대부분 짜증이 날 것이다. 이러한 오류메시지는 사실상 일반사용자들에게는 무의미하다.

하루는 여러분이 "리눅스"라 불리우는, 고장나지 않는 자유로운 운영체제에 대해 들었을 것이고 이 시스템을 CD부록으로 주는 특정 컴퓨터 잡지를 사기로 결심했을 것이다.

하드디스크에 파티션을 나누는 등 복잡한 인스톨이 끝나면 여러분은 보통 윈도우즈를 위한 큰 파티션과 리눅스를 써보기 위한 조그마한 파티션을 가지고 있을 것이다. 새로운 운영체제를 만나기 위해 재부팅을 시키면 여러분은 다음과 같은 메시지를 만날 것이다.:

LILO: _

이 메세지는 리눅스를 설치할 때 리눅스 부트 파티션에 정해 놓은 운영체제의 이름을 입력하라는 뜻이다. 운영체제를 선택을 하면 알 수 없는 수많은 메시지가 화면을 가득 채우게 되고 마침내 로그인 프롬프트를 만날 수 있다.:

Red Hat linux 2.0.32
darkstar login: _

이제 설치할 때 미리 입력한 암호를 가지고 "root"로 로그인한다.

그러면 여러분은 다음을 볼 수 있을 것이다.:

root@darkstar:~# _

이제 무엇을 하지?


리눅스로 할 수 있는 몇가지

이 화면까지 본다면 여러분은 스스로에게 이렇게 노력한 댓가가 무엇인지 물을 것이다. 맨 처음에는 리눅스는 산뜻한 윈도우즈 환경은 물론 어떠한 그래픽사용자 인터페이스(GUI)를 제공하지 않는다. 리눅스에 "원래 들어 있는 윈도우 환경"으로 가는 가장 빠른 길은 이렇게 명령을 내리면 된다. : startx

나는 여러분이 설치하는 동안 비디오카드를 제대로 설정했다고 가정을 했다. 만약 설정이 잘못되었다면 startx명령은 실행되다가 오류를 발생할 것이다.

다음 단계는 생산적인 일을 해보자. 독자들은 스타오피스(StarOffice)에 포함된 유틸리티들을 사용해 보고 싶을 것이다. 이것은 많은 유틸리티로 된 마이크로소프트사의 오피스팩과 비슷하다. 스타오피스에 대한 설치방법이나 사용방법에 대한 몇몇 기사들이 이미 리눅스포커스에 소개되어 있다. (텍스트 프로세서, 프리젠테이션 만들기) 스타오피스를 자유롭게 시험사용해볼 수 있는 데모버전을 http://www.stardivision.com/에서 구할 수 있다. 스타오피스에 들어있는 도구들은 일반적인 사용자들에게 필요한 대부분의 일들을 처리해 줄 것이다.

리눅스 운영체제의 최근 배포판들은 매우 재미있고 강력한 소프트웨어들을 많이 포함하고 있다. 배포판에 주로 들어 있는 소프트웨어는 다음과 같다.:

이러한 일반적인 도구들 이외에 프로그램 개발이나 컴퓨터 이용설계(CAD), 수학분석을 위한 툴, 과학기술응용프로그램 등 특수한 목적의 도구들도 많이 있다.

이러한 프로그램들중 대부분은 앞에서 실행했던 X윈도우시스템에서 동작한다. 그러나 다른 것들은 시스템을 켰을때 만나게 되는 명령어번역기(쉘;shell)에서 돌아간다. 유닉스와 마찬가지로 리눅스도 명령어들을 가지고 있다. 이러한 명령어들은 윈도우즈를 처리하기 위하여 필요한 부담없이 많은 일들을 효율적으로 수행할 수 있다.더군다나 몇몇 일들은 쉘이 더욱더 효과적인 작업환경이기도 하다.


시스템 관리의 기본

모든 컴퓨터 사용자들은 늘 자신의 시스템의 하드디스크에 들어 있는 것들과 친하게 지내야 한다. 또한 설치된 패키지들을 관리하는 일도 해야 한다. 시스템 프롬프트는 보통 윈도우 환경보다 더 유용하고 유연하다.

지금부터 우리는 사용자가 MSDOS의 기본적인 지식을 가지고 있거나 다른 운영체제에서 약간의 쉘 사용경험을 가지고 있다고 가정한다.

리눅스운영체제의 시스템 디스크는 파일들로 구성되어 있다. 파일들은 많은 형식이 있다.:

보통 파일:
우리들이 보통매일하는 일들을 저장하기 위한 데이터를 담고 있다.
디렉토리:
다른 파일들을 분류하여 담고 있는 폴더의 역할을 하는 파일이다. 디렉토리로 인하여 계층적 구조를 가지게 된다.
링크:
다른 이름이 붙여졌거나 다른 디렉토리로 가기 위한 파일이다. 링크는 다른 파일에 대한 참조표이거나 "지름길"이다.
디바이스(장치):
이것들은 (CD,플로피, 하드디스크,CD플레이어등과 같은) 컴퓨터장치에 접근하기 위한 파일들이다. 만약 프로그램이 컴퓨터 장치를 이용하려면 이 파일들을 작동하면 된다.
파이프와 스택:
통신을 위하여 프로그램에서 사용되는 특수한 파일이다.

만약 여러분이 pwd명령을 내린다면 다음과 같은 화면을 볼 수 있을 것이다.:

/root

이것은 현재 디렉토리인 슈퍼유저의 홈디렉토리를 보여준다. 궁금한 점이 있겠지만 다음 명령을 입력해서 루트디렉토리-모든 디렉토리나 파일들의 아버지이기때문에 이렇게 부른다-로 가보자. : cd /

여기에 무엇이 있는지 알고 싶다면 디렉토리의 내용을 보여달라는 명령을 내리면 된다.: ls


# ls

dev          home        lost+found      root
var          bin         dosc            mnt
sbin         boot        etc             tmp
lib          proc        usr

이 디렉토리들은 유닉스 파일시스템에서 고유의 목적을 가지고 있다.:

디렉토리 기능
dev 모든 디바이스 파일이 들어있다.
home 이 디렉토리는 모든 사용자의 계정이 생성되는 곳이다.리눅스는 동시에 같은 컴퓨터를 여러사람이 서로에게 영향을 주지 않고 이용할 수 있는 기능을 제공한다. (리눅스는 진정한 다중사용자운영체제이다.) 새로운 사용자는 다음 명령으로 만들 수 있다. : adduser [사용자 이름] (사용자 이름에는 bob과 같은 이름도 가능하다. 컴퓨터를 관리하는 작업을 맡고 있는 root이외에 일상적으로 이용할 사용자를 만드는 것이 좋다. 관리자(root)는 하드디스크에 있는 모든 파일들을 지울수도 있지만 일반사용자("bob"과 같은)는 그러한 일이 불가능하다.
lost+found 여러분은 불완전한 클러스터때문에 발생한 파일문제를 복구하기 위하여 노턴유틸리티등을 사용한 적이 있을 것이다. 그러나 더이상은 걱정하지 않아도 된다. 만약 하드디스크가 문제가 있으면 시스템은 자동으로 복구작업을 진행하게 된다. 그리고 복구작업이 오류를 발생시킨 블럭의 원래 위치가 어디였는지를 발견하지 못하면 이 디렉토리 밑으로 옮겨지게 된다. 이것이 리눅스가 어떠한 마이크로소프트사의 운영체제보다 좋은 또하나의 이유이다.
root 이것은 관리자가 작업하는 디렉토리이다. 보통사용자의 /home 디렉토리와 같다.
var 시스템 메시지나 사용자의 편지, 프린트작업등 수많은 임시파일들이 보관된다.
bin 여기에는 매우 중요한 시스템 명령어들이 들어있다.
dosc 여러분의 컴퓨터에서는 이름이 이와 다를수도 있다. 이곳은 당신의 컴퓨터에 윈도우즈나 도스파티션을 가지고 있다면 그 파티션으로 접근할 수 있도록 해준다.
mnt 만약 여러분이 CD를 사용하고 싶을때 "마운팅"이라 불리우는 작업을 해야 하는데 그때 사용되는 디렉토리이다. /mnt 디렉토리를 통하여 CD를 사용하려면 mount -t iso9660 /dev/cdrom /mnt명령을 내려야 한다. 이 명령은 여러분의 시스템 설정에 따라 약간 다를수도 있다.
sbin 여기에는 발전된 시스템 관리 명령어들이 들어있다. 보안상의 이유로 이 디렉토리는 관리자(root)이외에 다른 일반 사용자는 접근하거나 실행할 수 없다.
boot 이 디렉토리는 시스템 커널에 예약되어 있는 영역이다. 몇몇 배포판에는 / 디렉토리에 커널을 설치하도록 선택할 수도 있다.
etc 여기에는 많은 설정파일들이 들어있다. 이 파일들은 시스템이 부팅될 때나 윈도우시스템 설정을 담당한다.(마치 CONFIG.SYS나 AUTOEXEC.BAT파일과 그 역할이 비슷하다.)
tmp 프로그램들은 임시로 만들거나 필요없는 파일들을 여기에 둔다. 보통 시스템은 부팅될 때 이곳에 있는 파일들을 자동으로 지운다.
lib 시스템의 기본 라이브러리 디렉토리이다. 리눅스는 많은 프로그램에서 공유하는 코드들을 하나의 파일로 둠으로써 메모리를 절약하는 시스템이다. 이러한 파일들을 라이브러리라 부른다. 만약 사용되어지는 라이브러리는 그 복사본 하나를 이 디렉토리에 둔다.
proc 이 디렉토리는 메모리상의 프로그램들을 그대로 옮겨가진다(미러링을 한다.) ps, top 또는 kill과 같은 명령어들을 이용하면 여러분의 컴퓨터에 실행되고 있는 프로그램들을 살펴볼 수도 있으며 (멈춰진것이라 생각되는) 프로그램들은 그 실행을 중단시킬수도 있는데 그 때 사용된다. 프로그램 창에서 벌어지는 일이 시스템을 다시 시작해야만 되는 상황을 피하고 다른 프로그램에 의해 만들어 진 것이 손실되지 않게 한다.
usr 여기엔 여러분의 응용프로그램이나 문서, 라이브러리들이 들어있다.

일반적으로 몇몇 파일은 root 디렉토리에서만 가능하거나 몇몇 사용자들만 특별히 사용할 수 있는경우가 있다.


기본적인 명령어들

리눅스는 X윈도우 시스템과 같은 윈도우 환경이 존재함에도 불구하고 (우리는 앞에서 startx명령을 이용하여 X윈도우환경을 보았다.) 기본적으로 사용자와 명령어라인에 붙이는 추가명령어(command line)를 더 좋아하는 운영체제이다. 만약 사용자가 시스템에 접속하면 다음과 같은 프롬프트를 만나게 될 것이다.:

root@darkstar: ~# _

전형적인 명령프롬프트이다.-프롬프트의 형식이나 구조는 사용자가 원하는대로 설정해 줄 수 있다. 이 글에서 보인 프롬프트는 "@"앞에 현재 사용자(root) 를 보여주고 있으며 darkstar는 시스템의 호스트이름을 나타낸다. 마지막의 ~표시는 사용자의 홈디렉토리를 의미한다. 만약 관리자가 접속했다면 /root 디렉토리임을 나타낸다.커서가 깜빡거리면 사용자는 어떤 명령이라도 입력할 수 있다. 예를 들어 보자:


root@darkstar:~# ls -l bobby_

이 예에서 우리는 명령어(ls), 명령어 옵션 (-l) 그리고 파라메터(bobby)를 어떻게 사용하는지 알 수 있다. 만약 사용자가 엔터키를 누르면, 리눅스는 bobby파일을 보여줄 것이다.(예를 들어 파일의 크기나 만든 날짜 그리고 뒤에 자세히 살펴볼 몇가지 정보들과 같은 특징들을 보여줄 것이다.) 물론 그러한 이름을 가진 파일이 존재해야 한다.

쉘 구문의 일반적인 사용법은 명령어뒤에 공백을 두고 옵션들이 따라온다.

ls -l -a bobby

옵션들은 다음과 같이 한꺼번에 쓸 수도 있다.:

ls -la bobby

마지막으로, 대상으로 하는 파일명이 하나이상 주어질 경우, 공백으로 구분을 해주어 입력할 수도 있다.

ls bobby joe maria

이 명령어는 bobby, joe, maria파일을 자세한 정보없이 목록을 보여줄 것이다. 만약 파일에 대한 좀더 자세한 정보를 얻고싶다면 파일명 앞에 -l 옵션을 사용하면 된다.

ls -l bobby joe maria


어디에서 정보를 찾지?

리눅스는 어떻게 시스템을 사용하는지에 대한 방대한 양의 온라인정보를 가지고 있다. 만약 명령어는 아는데 그 사용법을 알지 못한다면 다음과 같이 해보자.:

man [명령어]

이 명령어는 명령어에 대한 설명서(manual)를 만든다. 대부분의 시스템명령어에 대한 온라인 설명서가 존재한다. 만약 man명령의 고급선택사항들에 대하여 알고싶다면 단지 man man라 하면 된다. 온라인 사용설명서는 여러분의 기억을 상기시켜주는 빠르고 편리한 방법이므로 특정 유닉스명령에 대한 선택사항들을 기억할 필요가 없다.

man명령에 대한 설명서를 보여줘: man man

반대로 여러분이 알고싶어하는 주제나 키워드만을 안다고 하자. 이때는 다음과 같이 해보자.:

apropos [주제어]

이 명령은 주제어에 관련된 모든 명령어들의 목록을 보여줄 것이다.

몇몇 명령어는 실행시 --help 파라메터를 함께 사용하므로써 용법과 이용가능한 옵션에 대하여 짧지만 정확한 설명을 제공해준다. ls명령을 예로 살펴보자

ls --help

출력화면이 한화면을 넘어가버린다고해도 걱정할 필요가 없다. 출력화면을 살펴보기 위해 여러분의 키보드에 있는 PageUp과 PageDown키를 사용하면 된다.

대부분의 리눅스배포판은 배포판에 있는 다양한 프로그램과 유틸리티에 대한 방대한 양의 문서자료를 포함하고 있다. 이 문서들은 /usr/doc디렉토리 에서 볼 수 있다. 예를 들어tetex에 대한 정보를 알고 싶다면 그 디렉토리로 가서 단지 more tetex라고 입력하면 된다. /usr/doc 디렉토리에 있는 대부분의 파일은 아스키파일이다.

그리고 아직 많은 정보가 더 있다. info페이지에는 명령어에 대한 설명과 이용방법에 대한 정보를 담고 있다. emacs편집기에서 [Control+h][Control+i]를 누르면 info페이지안에 있는 정보를 쉽게 이용할 수 있다.

더욱 많은 정보를 웹에서도 찾을 수 있다.:

http://slug.ctv.es
http://www.linux.org
http://www.cs.us.es
http://www.redhat.com
http://www.debian.org

리눅스에 관한 방대한 토론이 이루어지는, nntp프로토콜을 이용하는 뉴스그룹도 이용할 수 있다.:

news:es.comp.os.linux: 스페인 사용자 모임
news:comp.os.linux.software: 소프트웨어에 관한 질문
news:comp.os.linux.hardware: 특정 하드웨어 설정에 관한 질문
news:comp.os.linux.development: 리눅스환경에서 프로그래밍에 관한 질문
news:han.comp.os.linux: 한국어 그룹

그리고 마지막으로 많은 인터넷 릴레이챗팅(#linux채널)을 이용할 수도 있다.


파일을 다루는 몇가지 명령어들

여러분이 DOS를 알고 있다면 dir, cd, rd, md 등과 같은 명령어들을 기억 할 것이다. 여기에 생성된 파일을 다루기 위한 동일한 기능을 수행하는 명령어들을 살펴보자. 언제든지 각 명령어에 대한 자세한 정보는 man [명령어]를 이용하여 확인할 수 있다.

ls: 디렉토리 내용의 목록(list)을 보여줘

우리는 이미 이 명령어를 사용했었다.이 명령어에 대해 조금 더 자세히 알아보자 :

다음과 같이 입력해 보자.:


$ ls -l

drwxr-xr-x   3 fenix  fenix     1024 Jun 15  1997 Calendar
drwx------   5 fenix  fenix     1024 Nov  6 19:35 Desktop
drwx------   2 fenix  fenix     1024 May 16  1997 Mail
drwxrwxr-x   2 fenix  fenix     1024 Mar 10 00:28 X11
lrwxrwxrwx   1 root   root        11 Mar 13 20:53 ada -> private/ada
drwxrwxr-x   2 fenix  fenix     1024 Mar 10 00:28 bin
lrwxrwxrwx   1 root   root         9 Mar 13 20:53 c -> private/c
-rw-------   1 fenix  fenix   868352 Apr  7 21:19 core
lrwxrwxrwx   1 root   root        12 Mar 13 20:53 lisp -> private/lisp
drwx------   2 fenix  fenix     1024 Jun 13  1997 mail
-rw-rw-r--   1 fenix  fenix      302 Apr  7 20:30 mine.bmp
drwxrwxr-x   2 fenix  fenix     1024 Mar 10 00:28 mydocuments
drwxr-xr-x   2 fenix  fenix     1024 Nov  6 18:59 nhs
drwx------   2 fenix  fenix     1024 Mar 12 18:05 nsmail
drwxrwxr-x   2 fenix  fenix     1024 Feb 17 21:27 odd
drwxrwxr-x   8 fenix  fenix     1024 Mar 12 23:04 private
lrwxrwxrwx   1 root   root        14 Mar 13 20:53 prolog -> private/prolog
-rw-r--r--   1 fenix  fenix    23051 Jan 27 21:14 system.fvwm2rc
drwxrwxr-x   4 fenix  fenix     1024 Mar 22 15:36 tmp
lrwxrwxrwx   1 root   root        11 Mar 13 20:53 www -> private/www
-rwxr-xr-x   1 fenix  fenix     1239 Nov  6 19:46 xinitrc.bak

이것은 디렉토리에 대한 중요한 정보들을 제공하는 긴형태의 목록이라 부른다. 이것은 6개의 필드로 구분된다.:

첫부분은 파일의 허가권허가권에 대한 정보를 알 수 있다.첫번째 글자와 3자씩 묶인 3개의 모음으로 전체 10글자로 정보를 나타낸다.

첫 글자가 의미하는 바는 다음과 같다.:

- 일반 파일
d 디렉토리
l 링크(연결)
c 특별한 파일, 특성장치: 같은 데이터를 읽을 가능성없이 바이트단위로 정보를 주고 받을 수 있다
b 특별한 파일, 블럭 장치: 이 장치는 임의 위치지정을 허용한다.
p 파이프
f 스택

나머지 글자들은 누가 어떻게 파일을 다룰수 있는지를 나타내고 있다. 이 글자는 3문자로 구성된 3개의 그룹으로 나눌 수 있다. 첫번째 3글자는 파일의 소유주가 어떻게 파일을 사용할 수 있는가를 나타내며, 두번째그룹을 이루고 있는 세 글자는 그룹(그룹은 작업부서에 사용자가 속하는 사람들끼리 그룹소유의 파일을 공유함으로써 업무를 공유하는 방식을 말한다.) 세번째 그룹을 이루고 있는 세글자는 시스템에서 (또는 전세계의) 이전 두 그룹의 사용자에 속하지 않는 모든 사람들이 어떻게 다룰 수 있는지를 나타낸다.

각 그룹의 3문자는 다음과 같은 의미를 가지고 있다.:

그룹을 이루고 있는 첫번째 글자는 아래와 같다.:
- 파일을 읽을 있는 권한이 없다. 만약 디렉토리라면 디렉토리에 들어있는 파일의 목록을 볼 수 없다.
r 읽을 수 있는 권한을 가지고 있다.
두번째 글자의 의미:
- 파일에 덮어 쓰거나 정보를 추가할 수 없다. 만약 디렉토리라면 파일을 그 디렉토리에 새로 만들거나 지울 수 없다.
w 쓸 수 있는 권한을 가지고 있다.(디렉토리라면 파일을 생성하거나 지울 수 있다.)
세번째 글자의 의미:
- 파일을 실행할 권한이 없다. 만약 디렉토리라면 사용자가 command cd명령을 이용하더라도 접근할 수 없다.
x 실행할 수 있는 권한을 가지고 있다.
s 이 속성은 실행할 수 있는 파일에만 있다. 이 프로그램을 누가 실행하던지 상관없이 파일을 실행한 사용자의 권한대신에 파일 소유자의 권한으로 파일을 실행할 수 있다. "S"속성의 사용법에 대하여 잘 몰라도 걱정할 필요없다. 이 속성은 최고급사용자들에게만 필요한 것이다. 이 때 사용하는 이름이 "SetUID"이다.

이런한 권한은 나중에 살펴보겠지만 chmod 명령을 이용하여 바꿀수 있다..

권한항목뒤에 있는 항목은 이 파일을 가리키고 있는 연결점의 수를 의미한다.

다음 항목은 파일의 소유자를 나타낸다.

네번째 항목은 각 파일이 속해 있는 그룹을 의미한다. 해당 그룹에 속해있는 사용자는 그룹의 허가권(허가항목의 두번째 그룹을 이루고 있었죠.) 이 주어진대로 따라서 파일을 다룰 수 있다.

다섯번쨰 항목은 파일의 크기를 바이트단위로 보여준다.

여섯번째 항목은 각 파일이 마지막으로 수정된 날짜와 시간을 의미한다.

마지막항목은 파일의 이름이다. 만약 참조된 파일로 연결이 되어 있으면 끝부분에 -> [원본파일명]이라는 표시가 함께 붙는다.

리눅스에도 숨겨진 파일이 있다. 이러한 파일들은 파일이름이 점(.)으로 시작된다.

숨겨진 파일을 보려면 -a옵션을 이용하면 볼 수 있다.


$ ls -a

.profile    .bash_profile     .bashrc    .xinitrc
mime.bmp    misdocumentos

cp: 파일 복사(copy)하기

이 명령어는 다른 이름을 가지게 하거나 다른 디렉토리로 복사할 때 사용한다.

cp [파일명] [목적지]

만약 목적지가 존재하지 않는 디렉토리라면 시스템은 사용자가 다른 이름으로 파일을 복사하려고 하는구나라고 생각할 것이다.

mv: 파일 옮기기(move)

mv는 "옮김(MoVe)"이라는 의미이다. 이 명령어는 파일 이름을 바꾸거나 다른 디렉토리로 옮기고자할 때 사용된다.

mv [파일명] [목적지]

만약 목적지가 존재하지 않는 디렉토리라면 시스템은 사용자가 파일 이름을 바꾸려고 하는 것으로 인식한다.

cd: 디렉토리를 바꾼다.(change directory)

이 명령은 MSDOS와 거의 비슷하다. 몇가지 다른 점은:

만약 어떤 디렉토리를 정하지 않고 cd를 사용하면 초기디렉토리(홈 디렉토리)로 이동된다. 만약 여러분이 슈퍼유저라면 /root/디렉토리로 갈 것이다.; 만약 여러분이 bob이라면 밥의 홈 디렉토리인 /home/bob로 디렉토리가 바뀔 것이다..

여러분도 보시다 시피, 디렉토리는 오른쪽으로 기울어진 막대를 사용한다. (MSDOS에는 왼쪽으로 기울어져 있다.)

마지막으로 /home디렉토리는 ~문자로 나타낼 수 있다. 즉 cd ~pepe명령은 현재 디렉토리를 /home/pepe디렉토리로 바꿔준다.

mkdir: 디렉토리 만들기

매우 간단한 사용법이다. 그저 mkdir [디렉토리 이름]하면 그 이름을 가지는 디렉토리가 만들어진다.

rmdir: 비어있는 디렉토리 지우기

만약 파일이 하나도 들어있지 않은 디렉토리를 지우려면 여러분은 rmdir [디렉토리 이름]이라 하면된다. 만약 파일이 들어있는 디렉토리이거나 또는 다른 디렉토리가 있으면 rm명령을 읽어보라.

rm: 파일 지우기

rm [파일 이름]하면 파일을 지울 수 있다..

중요한 몇가지 옵션을 가지고 있다.:
-i 지우기 전에 사용자에게 지울 파일인지를 확인을 받아라.
-r 디렉토리와 그 디렉토리가 가지고 있는 내용물들을 지워라.
-rf 사용자에게 확인 받지 말고 디렉토리와 들어있는 파일들을 지워라.

ln: 다른 파일을 가리키는 연결만들기

리눅스는 파일이 다른 이름을 가지거나 다른 디렉토리에서 이용할 수 있는 기능을 제공한다. 이것은 연결링크로 만든다. 링크에는 두가지 형식이 있다.:

하드링크는 다음 명령으로 만들어진다.: ln

심볼릭링크를 만드려면 다음과 같이 한다.: ln -s [원본 파일] [목적 파일]

cat: 파일 내용을 보여줘!

이 명령은 파일의 실제 내용을 화면으로 보여준다.

cat [파일명]

more: 파일의 내용을 페이지를 가지는 형태로 보여준다.

만약 우리가 보려고 하는 파일의 길이가 길다면(우리가 보려고 하는 파일의 내용이 한 화면의 길이를 훨씬 넘는다면) 아마 우리는 첫번째 줄의 내용을 볼 수 없을 것이다. 이에 대한 해결책은 화면버퍼를 이용하는 것이다. 이렇게 하면 우리는 Mays+Repag를 이용하여 볼 수 있게 된다. 그러나 이 버퍼는 크기가 한정되어 있기 때문에 많은 경우 이를 이용할 수 없을 때가 있다. more명령은 우리에게 파일을 페이지별로 볼 수 있게 해 준다. 사용방법은 다음과 같다.:

more [파일이름]

이 명령은 사용자와 바로바로 소통하는 방식이다. "키" (즉각적인 명령)이 많이 있는데 재미있을 것이다.:

키보드 기능
공백(스페이스키)
한페이지 다음내용을 본다.
b 바로 앞 페이지의 내용을 본다.
엔터 한줄 다음으로 이동한다.
/[문장] 파일에서 현재위치 다음에 문장이 나타나는 곳으로 이동한다.
?[문장] 파일에서 문장중에서 제일 마지막에 나오는 위치로 이동한다.
q 끝마친다.

이것과 동일하지만 좀더 발전된 프로그램이 less명령이다.

chmod: 파일 허가권을 바꾼다.

이 명령은 파일에 어떻게 접근할 수 있는가에 대한 정보를 변경한다. 일반사용자는 단지 그 자신이 소유한 파일에 대해서만 허가권을 변경할 수 있다. (root는 어떤 파일이든 바꿀 수 있다.) 이 명령어는 공백으로 구분되는 2개의 파라메터값을 가지고 있다.

chmod [who][+/-] [새로운 권한] [파일명]

who위치에는 다음과 같은 것을 사용할 수 있다.:

Who 설명
u 파일을 소유한 사용자
g 파일에 대한 소유권을 가진 그룹
o 나머지 사용자
a 모든 사용자(소유자,그룹,다른사람)

+를 사용하여 권한을 더해줄 수 있고 -를 이용하여 권한을 삭제할 수 있다.

새로운 권한에는 우리가 어떤 권한을 더하거나 뺄 지를 나타낸다. ls의 긴 목록에 있는 첫 글자를 이용하여 나타낸다( r:읽기, w:쓰기, x:실행 또는 방문, s:SetUID)

명확한 이해를 하기 위하여 예를 들어보자.:

chmod u+rw my

이 명령어를 이용하여 파일의 소유자(실제로는 여러분이겠지만)에게 my라는 파일을 읽고 쓸 수 있는 권한을 부여한 것이다.

chmod a-x 디렉토리

이 명령은 모든 사용자(물론 소유자나 여러분 자신)들에게 이 디렉토리를 방문할 수 있는 권한을 제거한 것이다.

chmod는 다른 많은 발전된 선택사항들을 가지고 있는데 여기에서는 살펴보지 않겠다. 그러나 명령에 대하여 설명페이지(man)를 사용해서 자세히 알 수 있다.:

man chmod


파일을 나타내는 와일드카드문자:

리눅스는 하나하나씩 보는 것 이외에도 파일집합으로 동작하도록 할 수 있다. 파일집합은 파일의 이름에 몇몇 공통문자를 가지게 하여 나타낼 수 있다. 이 기능은 실행라인 변수에 와일드카드 문자를 사용하여 이루어 진다. 몇몇은 MS-DOS를 사용하는 사람들에게도 잘 알려진 것이다.:

* : 이것은 모든 문자열을 다 의미한다.(문자열의 길이가 0 즉 문자열이 아니거나 길어도 된다.)

만약 이렇게 하면 어떻게 될까:

rm *

모든 파일을 지우게 된다.

rm a*

a로 시작하는 이름을 가진 모든 파일을 지운다.

rm bet*as

bet로 시작하고 as로 끝나는 이름을 가진 모든 파일을 지운다.

? : 어떤 문자 (단지 한글자)

이렇게 해보자:

cat c?t

c로 시작하고 어떤 한글자와 t자로 끝나는 이름을 가진 파일의 내용을 보여준다.

[그룹]: 괄호사이의 어떤 문자 집합

이러한 것을 이용하여 다음과 같이 살펴볼 수 있다.:

more [tp]erez

만약 존재한다면 terezperez파일을 페이지로 된 형식으로 보여달라.

cp c[AEIOU]endo directory

c로 시작하고 대문자 y가 나오고 endo로 끝나는 모든 파일을 directory로 복사하라.

일정 범위를 나타내고자 할 때는 "-"를 사용한다.:

mv *[a-z] trash

이 명령은 소문자로 끝나는 모든 파일을 trash디렉토리로 옮기라는 것이다.

물론 범위에 들지 않는 것만 설정할 수 도 있다.:

ls [!a-zA-Z]*

이 명령은 대문자나 소문자로 시작하지 않는 파일의 목록을 보여달라는 것이다.


리다이렉팅

리눅스는 많은 이유에서 강력한 운영체제이다. 그러나 가장 강력한 명령어방식의 유틸리티는 리다이렉팅이다.

리다이렉트는 명령어나 프로그램의 결과를 스크린에 보여주는 것처럼 파일로 방향전환을 하는 기능을 말한다. 역시 드물게 이용되긴 하지만 파일의 내용을 다른 명령어의 입력으로 보내거나 명령의 결과를 파일에 더하거나 명령의 결과를 다른 명령의 입력으로 보낼 수 있다.

프로그램의 결과를 파일로 보낼때는 다음의 기호를 사용한다. 예를 들어:

cal > february

이 명령은 cal 명령의 결과 - 이 명령어는 명령을 내린 달의 달력을 보여준다 - february라는 파일로 보내준다..

< (..보다 작은); 왼쪽 리다이렉팅

이 부호를 이용하면 파일의 내용을 명령의 입력으로 다시 보낼 수 있다.

mail mark < letter

이 명령을 통하여 우리는 mark라는 이름의 사용자에게 letter라는 파일을 전자우편으로 보낼 수 있다.

이러한 것을 이용하여 우리는 파일의 끝에 기존의 내용을 망가뜨리지 않고 명령의 결과를 첨가할 수 있다. ..보다 크다를 의미하는 오른쪽부등호를 이용하면 파일의 원래 내용을 명령어의 결과로 바꿀 수 있다. 즉 원래의 내용을 잃게 되는 것이다.

이를 이용하면 file1, file2,file3파일을 전체파일(total-file)의 끝에 더할(합칠 수 있다.

| (바): 명령어간의 파이프

이 표시는 어떤 명령어의 결과가 다른 명령어의 입력이 되도록 해준다. 이러한 방향전환(리다이렉팅;redirecting)을 특별한 파이프 파일로 혼동하지 마라. 그 둘은 실제 서로 다른 것이다. 예를 살펴보자.:

who | grep "mark"

who명령어는 시스템에 접속한 사용자가 누구인지, 어떤 터미널이 사용되고 있으며 언제 로그인했는지를 살펴보는 명령이다 grepmark를 가진 줄만 보여주는 방식의 결과를 걸러주는 필터이다. mark는 우리가 이야기하고싶어하는 사용자의 이름이며 우리의 시스템에서 mark라 불리우는 사람이 있는지 없는지를 살펴보고 amkr가 언제 접속했었는지를 알 수 있다.

차근차근 살펴보자. 먼저 여러분의 리눅스박스에서 who명령을 내려보고, grep와 접속한 사용자이름(아마 root일 것이다.)을 이용한 파이프를 사용하여 who명령을 실행해 보라. 많은 콘솔로 접속해 있는 서로 다른 사용자들의 이름을 보여줄 것이다. 리눅스는 전체적으로 접속할 수 있는 7개의 콘솔을 가지고 있다. 리눅스는 다른 컴퓨터에서 일반적인 네트웍 장비, 예를 들면 토큰 링, 이서넷, 모뎀 등등으로 접속할 수 있을 뿐만 아니라 Alt+F1(처음 콘솔),Ctrl+Alt+F2 (두번째), Ctrl+Alt+F3, Ctrl+Alt+F4, Ctrl+Alt+F5, Ctrl+Alt+F6, Ctrl+Alt+F7, Ctrl+Alt+F8을 이용한 콘솔과 startx에 의해 활성화되어지는 그래픽환경의 터미널을 여러개 가지고 있다. 그래픽모드와 텍스트 콘솔의 변환 역시 가능하다.


텍스트 편집기

마지막으로 텍스트편집기를 살펴보자. 텍스트편집기는 파일의 형태로 된 아스키포맷의 텍스트를 볼 수 있게 해주는 프로그램이다. 편집기 사용에 대해 주목할만한 점은 대부분 자신이 사용하고 있는 편집기에 대해 열광적인 신념을 가지고 있다는 것이다. :-) 필자는 여러분이 여러분에게 가장 편리한 편집기를 사용하라고 권한다. 많은 편집기가 있지만 간단히 살펴보도록 하자.

이로써 우리는 기본적인 시스템 관리를 위한 첫 연재를 마쳤다. 다음에는 GNU의 파일 유틸리티들을 자세히 살펴보고 그 다음 리눅스의 공통된 편집기 (vijoe)에 대해 살펴보기로 하자.


저작권에 관한 공지: 이 기사의 부분이나 전체내용은 항상 이 공지사항과 저자에 관한 데이터를 가지고 있는 행을 포함하고 있는 상태로만 (아무런 수정없이) 이용될 수 있습니다.

Manuel Muriel Cordero 님은 Facultad de inform의 학생입니다.

이 기사에 사용된 모든 상표는 회사의 자산입니다.


번역 : 이주호


This website is mantained by Miguel Angel Sep
© Manuel Muriel Cordero 1998
LinuxFocus 1998