1. at : 프로그램을 지금이 아닌 나중에 실행하도록 예약한다.

문법

at -q [-m][-f 파일명] 큐(queue) 시간

at -r 작업번호

at -l

옵션

-q 큐 : 대소문자 알파벳으로 큐를 지정한다. 순서적으로 빠른 알파벳이 지정된 큐 일수록 CPU 시간 점유 우선권이 낮다.

-r 작업번호 : 큐에서 작업 번호가 지시하는 작업을 지운다. 슈퍼유저가 아니라면 자신의 작업만을 지울 수 있다.

-l : 현재 계획된 작업들의 목록을 보여준다. 슈퍼 유저라면 모든 작업들의 계획목록을 보여준다.

-m : 작업이 완결되면 사용자에게 메일을 보낸다.

-f 파일명 : 표준 입력이 아닌 지시된 파일에서 작업을 읽어온다.

설명

명령은 기본적으로 표준 입력 장치를 통해서 받으며, ^D로 입력을 종료한다. redirection을 사용하여 다른 파일의 내용을 사용할 수 있다.

/etc/at.allow 파일이 있다면 이 파일에 명단이 있는 사용자만이 at 명령을 사용할 수 있다. /etc/at.allow 파일이 없다면 /etc/at.deny 파일을 찾는다. 이 파일에 목록이 있는 사용자는 at 명령을 사용할 수 없다. 두 파일 모두 찾지 못한다면 오로지 슈퍼 유저만이 at 명령을 사용할 수 있다. 그리고 /etc/at.deny 파일이 비어 있다면 모든 사용자가 at 명령을 사용할 수 있다.

시간을 지정할 때 상당히 다양한 방법을 사용할 수 있다. hhmm 혹은 hh:mm 형태도 가능하며, noon, midnight이나 오후 4시를 의미하는 teatime이라고도 할 수 있다. 오전 오후를 쉽게 구분하려면 am pm 문자를 추가해도 된다. 이미 지나간 시간이라면 다음 날 그 시간에 수행될 것이다. 정확한 날짜를 지정하려면 mmddyy 혹은 mm/dd/yy 아니면 dd.mm.yy 형태 중 선택하라.

현재부터 얼마의 시간이 경과한 후에 수행할지를 지정하려면 + 기호를 사용하라. 이 + 기호 뒤에 숫자를 명시하고, 다시 뒤에 그 숫자의 단위가 무엇인지 지정하면 된다.

사용 예

at 8am work : work에 수록된 작업 사항들을 오전 8시에 수행하도록 한다.

at noon work : 정오에 work에 수록된 작업을 수행한다.

at -f work 14:40 tomorrow : 내일 오후2시 40분에 work 파일에 수록된 작업을 수행한다.


2. banner : 인수로 주어진 문자열을 큰 글씨로 만들어서 출력한다.

문법

banner [ -w [숫자] ] 문자열 

옵션

-w : 옵션 지정만 하면 80 칼럼으로 폭을 바꾼다. 지정하지 않으면 132 칼럼으로 내정되어 있다. -w 옵션 뒤에 숫자를 지정하면 원하는 폭으로 조정할 수 있다.

설명

출력은 표준 출력으로 내정되어 있다. 글자는 열 배 정도 확대된다. 글자는 * (asterisk)를 조합하여 만든다.

사용 예

banner "hello world"

banner linux | lqr : default 프린터에 확대한 글자를 출력한다.


3. bash : 리눅스의 Bourne shell이다. sh를 사용하면 sh가 bash를 호출하여 실행한다. bash를 직접 사용하지 말고 sh를 사용한다.

문법

sh [ 옵션 ][ 파일 ]

설명

sh의 설명을 참조


4. biff : 전자우편의 수신을 즉시 알려주는 동작을 가능하게 할 것인지 그렇지 않은 지의 여부를 보여주거나 결정한다.

문법

biff [ y 혹은 n]

설명

UNIX shell은 사용 중이라도 주기적으로 전자우편의 수신 여부를 점검한다. 만일 사용자가 전자우편이 도착하는 즉시 알고자 한다면 biff를 사용하여 그것을 지시할 수 있다. 또는 언제라도 그 기능을 해제할 수도 있다. biff는 인수 없이 사용되면 현재 어떤 상태로 되어 있는지 보여준다. 기능 설정과 해제 여부는 y 혹은 n 인수를 주어서 결정한다.

사용 예

$ biff

is n : 전자우편 수신 즉시 통고 기능은 설정되어 있지 않음

$ biff y : 기능설정

$ biff

is y


5. cal : 서기 원년부터 9999년까지의 달력을 볼 수 있다.

문법

cal [-jy] [ [ 달 ] 연도 ]

옵션

-j : 1월 1일부터 날짜수를 계산하는 julian 날짜를 표시한다.

-y : 올해의 달력을 표시한다.

설명

인수를 하나만 준다면 그 숫자는 연도를 의미하는 것으로 간주된다. 두 개의 숫자를 준다면 앞의 것은 월, 그 다음은 연도를 의미하는 것이 된다. 우리의 습관과는 다른 방법을 사용한다. 아무 인수도 주어지지 않으면 이번 달의 달력을 표시한다. 연도를 표기할 때는 서기를 완전히 표기해야 한다. 예를 들어 97은 1997년이 아니라 서기 97년의 달력을 출력할 것이다.

사용 예

$ cal 1997

$ cal 4 1997


6. cat : cat은 catenate(사슬로 잇다. 연결하다)에서 이름이 유래한다. 이것은 파일의 내용을 화면에 출력하는 데 사용되기도 하며 파일을 다른 곳에 순차적인 스트림으로 보내기 위해 사용된다.

문법

cat [ -benstuvETA ] [ 파일명(들) ]

옵션

-b : 공백 외의 글자가 있는 모든 행의 개수를 센다.

-e : 제어 문자를 ^ 형태로 출력하면서, 각 행의 끝에 $를 추가한다. -vE와 같다.

-n : 각 행을 출력하면서 행 번호를 함께 첨부한다.

-s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리한다.

-r : 행 바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다. -vT와 같다.

-u : 유닉스 호환성을 위해 추가된 옵션으로서 무시된다.

-v : tab과 행 바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다.

-E : 각 행마다 끝에 $ 문자를 출력한다.

-T : 시로서 탭(tab) 문자를 출력한다.

-A : -vET 옵션을 사용한 것과 같은 효과를 가진다.

설명

유닉스 시스템은 기본적으로 텍스트 자료들을 처리하는 것을 매우 중요시 여겼다. 많은 초기 설정 작업들이 텍스트 문서로 이루어지고, 텍스트 문서를 처리하는 수많은 명령들이 있다. cat 명령은 그러한 것들 중 기본적인 것이다. cat 명령은 읽어 들이는 파일 이름을 지정하지 않으면, 기본 내정 값으로 표준 입력 장치를 선정한다.

$ cat

이렇게 하면 키보드로부터 입력을 받고, ^d로 입력이 끝나면 다시 표준 출력 장치인 화면으로 출력한다.

사용 예

$ cat document.1 : document.1 파일을 화면으로 출력한다.

$ cat content report.first myreport : content와 report.first 두 개의 문서가 연결된 myreport라는 파일을 생성하게 된다.


7. cd : 현재 작업하는 directory를 변경한다.

문법

cd [ directory ]

설명

directory 이름과 cd 명령 사이에 반드시 공백이 있어야 한다. directory 이름을 주지 않고 수행하면 사용자의 홈 directory로 이동한다. 자신이 이동하고자 하는 directory는 자신에게 실행 권한(execution permission)이 있어야 한다.

사용 예

$ cd /home

$ pwd

/home


8. chgrp : 파일의 그룹 소유권을 바꾼다.

문법

chgrp [ -cfvR ] 그룹 파일들

옵션

-c : 실제로 소유자가 바뀐 파일에 대해서 자세히 기술한다.

-f : 파일의 그룹 소유권을 바꿀 수 없더라도 에러 메시지를 출력하지 않는다.

-v : 소유권의 바뀜에 대해서 자세히 기술한다.

-R : directory와 그 내용 파일들의 소유권을 재귀적으로 모두 바꾼다.

설명

파일의 소유자나 슈퍼 유저만이 파일의 그룹 소유권을 바꿀 수 있다. chgrp 명령 뒤에 원하는 옵션을 사용한 후 목적하는 그룹의 이름을 명시하고 대상 파일의 이름을 명시한다.

사용 예

$ chgrp DoublePlus /usr/project/* : /usr/project의 모든 파일들의 소유권을 DoublePlus 그룹으로 바꾼다.


9. chmod : 파일의 모드를 바꾼다. 파일의 모드는 권한(permission) 을 제어한다.

문법

chmod [ -cfvR ] 모드 파일명(들)

chmod [ -cfvR ] 레벨 동작 권한 파일이름(들)

옵션

-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다.

-f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 권한에 대해서 자세히 기술한다.

-R : directory와 파일들의 권한을 재귀적으로 모두 바꾼다.

설명

위에서 보인 문법에서 첫 번째 보인 형식에 사용되는 모드는 파일의 권한을 8진수로 표현한 값이 된다. 파일의 권한은 세 가지가 있기 때문에 각 특성을 하나의 비트로 표현하면 0부터 7까지의 수로 표현할 수 있다. 이것은 8진법 표현이 매우 적당하다.

두 번째 형식은 어떤 사용자 레벨을 바꿀 것인가 어떻게 바꿀 것인가를 개별적으로 정하는 방법이다. 숫자를 사용하지 않고 ls 등을 사용할 때 실제로 볼 수 있는 기호 문자를 사용한다는 것과 특정 권한을 줄 것인가 뺄 것인가 지정할 수 있다는 장점이 있다. 특정한 경우 두 번째 형식이 편리하겠지만 고유한 값의 권한을 지정하는 데에는 첫 번째 형식이 훨씬 편리할 것이다. 8진법을 다루는 것은 조금만 알면 너무나 쉽기 때문이다.

사용 예

$ chmod 666 broadboard : 파일을 모두가 읽고 쓸 수 있도록 한다.

$ chmod 746 broad : 파일 권한을 -rwxr--rw-로 변경한다.

$ chmod o+x,g-w broadboard : 파일 소유자는 실행권한을 추가하고, 그룹은 쓰기 권한을 금지한다.

$ chmod u=r broad : 다른 사용자의 권한을 읽기로 제한한다. 사용자의 다른 권한은 사라져 버린다.


10. chown : 파일의 소유권을 다른 사람에게로 변경시킨다.

문법

chown [ -cfvR ] 사용자 파일명(들)

옵션

-c : 실제로 파일의 소유권이 바뀐 파일만 자세히 기술한다.

-f : 파일의 소유권이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.

-v : 변경된 소유권에 대해서 자세히 기술한다.

-R : directory와 파일들의 소유권을 재귀적으로 모두 바꾼다.

설명

파일의 소유권을 다른 사람에게로 바꾸는 것은 슈퍼 유저만이 할 수 있다.

사용 예

$ chown blade /user/sisap/* : /usr/sisap directory의 모든 파일을 blade의 것으로 바꾼다.


11. cmp : file들의 내용을 비교한다.

문법

cmp [-ls][파일명][파일명2][오프셋1][오프셋2]

옵션

-l : 일치하지 않는 모든 바이트 값과 그 오프셋을 알 수 있다.

-s : 비교만을 수행할 뿐 아무런 메시지도 출력하지 않는다.

설명

option없이 두 파일 이름만을 지정하면 cmp는 두 개의 파일 처음부터 순서대로 비교를 시작한다. 만일 끝까지 차이점을 발견하지 못하면 cmp는 조용히 끝난다.

만일 중간에 다른 점을 발견한다면 더 이상의 작업은 중단하고 차이를 발견한 지점을 알려주고는 종료한다. 또한 계속해서 일치해 나가다가 두 파일 중 어느 하나가 끝나는 경우가 있을 수 있다. 다시 말해, 한 파일이 다른 파일의 앞부분에 해당하는 경우이다. 이때는 어느 쪽 파일의 end of file 표시를 만나게 되었는지를 알려주고 종료한다.

$ cmp document1 document2

document1 document2 differ: char 128, line 13

오프셋을 지정하면 파일의 어느 부분부터 비교할 것인지를 정할 수 있다. -s 옵션이 왜 필요한 지를 이해하지 못할 테지만, cmp 명령이 보이지 않게 리턴 값을 들려준다는 점을 알면 이해할 수 있을 것이다. cmp는 비교 후 두 파일이 일치한다고 판단하면 0을 리턴하며, 그렇지 않으면 1을 return한다. shell 스크립트 상에서 비교 결과만을 원하고 화면에 메시지가 출력되는 것을 원치 않을 때에는 이러한 옵션을 사용할 수 있을 것이다. C 언어를 아는 사람이라면 금방 이해할 수 있었으리라 생각된다.

사용 예

$ cmp mail.1 mail.2 13 14


12. compress : 파일을 압축하거나 압축을 푼다.

문법

compress [ -cCdfv ] 파일명

옵션

-c : 옵션을 사용하면 압축 결과가 표준 출력으로 나가며 파일은 변함없다.

-C : 파일을 블록으로 분화하는 것을 금지한다. 이것은 compress의 구식 버전이 파일을 읽을 수 있도록 하기 위함이다.

-f : 수행 결과 파일과 같은 이름의 파일이 있다면 물어보지 않고 덮어쓴다. 또한 파일의 크기가 줄어들지 않더라도 파일 이름에 .Z를 추가한다.

-v : 파일이 압축되면 압축 효율을 퍼센트로 보여준다.

설명

압축된 파일은 이름에 접미사 .Z가 추가된다. 압축 알고리즘에 의해 크기가 줄어드는 경우만 압축을 수행한다. -d 옵션은 역으로 압축을 풀지만 uncompress를 사용하면 옵션을 주지 않고 압축을 풀 수 있다. 압축을 푸는 경우 파일 이름 뒤에 접미사 .Z를 생략할 수도 있다.

사용 예

$ compress -v roman

$ compress -d noman.Z

$ compress -d roman


13. cp : 파일을 현재의 위치나 다른 directory로 복사(copy)한다.

문법

cp [ -abdfilPprsuvxR ] 파일명1 파일명2

cp [ -abdfilPprsuvxR ] 파일명(들) 디렉토리

옵션

-a : 가능한 한 원 파일의 구조와 속성을 그대로 복사한다.

-b : 복사할 때 덮어쓰게 되는 파일은 백업을 만든다.

-d : symbolic 링크는 symbolic 링크로 복사한다. 그리고 원본 파일과의 하드 링크 관계를 유지한다.

-f : 복사 위치에 존재하는 파일을 제거하고 복사한다.

-i : 복사 시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다.

-I : 하드 링크를 만든다.

-P : 원본 파일의 소유자, 그룹, 권한, 시간 기록을 그대로 복사한다.

-r : 파일과 하위 directory에 포함된 파일 모두를 재귀적으로 복사한다.

-s : directory가 아닌 파일의 symbolic 링크를 만든다. 소스 파일의 이름은 전체 경로 이름으로 한다. 목적지 파일 이름은 전체 경로를 주지 않아도 현재 directory로 간주되므로 상관없다.

-u : 파일의 정보를 갱신한다.

-x : 다른 파일 시스템인 하위 directory는 무시한다.

-R : directory를 재귀적(recursive)으로 복사한다.

설명

만일 파일명2가 이미 존재하는 파일의 이름이라면 기존에 있던 파일은 사라지고 새로운 복사본 파일로 바뀐다. 이것이 원하지 않는 결과라면 -i 옵션을 주어서 확인 작업을 거칠 수 있다. -i 옵션은 파일명2가 이미 존재하는 이름이라면 그대로 복사할 것인지 아닌지를 선택할 수 있게 물어온다.

사용 예

$ cp -i blade.Z temp.Z

$ cp -r * /somewhere : 당연히 -r 옵션은 파일명2가 directory 이름일 때만 사용이 가능하다.

+ Recent posts