Posted
Filed under Linux

■ adduser : 사용자를 새로 등록한다.

설명

이것은 슈퍼 유저만이 사용할 수 있다. 명령을 입력하면 로그온 이름 등을 차례로 물어오며, 그에 따라서 알맞게 입력해 나가면 된다.

■ Enter login name for new account (^C to quit): blade
■ Editing information for new user [blade]
■ Full name: Park Chan Wook ,,사용자 전체 이름을 입력
■ GD [100]: ,,정해주는 값을 그냥 사용한다.

그외에도 홈 디렉토리에 사용하는 셸 등을 계속 물어오는데, 대괄호 속에 내정된 것을 그냥 사용하고자 한다면 엔터키만 누르면 된다. 패스워드 등을 입력하고 나면 지금까지 입력된 정보를 보여주고, 몇 가지 생성 작업을 화면으로 보여준 후 작업을 종료한다.

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

문법

■ at -q [-m][-f 파일명] 큐(queue) 시간
■ at -r 작업번호
■ at -l

옵션

-q 큐 : 대소문자 알파벳으로 큐를 지정한다. 순서적으로 빠른 알파벳이 지정된 큐 일수록 CPU 시간 점유 우선권이 낮다.
-r 작업번호 : 큐에서 작업 번호가 지시하는 작업을 지운다. 슈퍼유저가 아니라면 자신의 작업만을 지울 수 있다.
-l : 현재 계획된 작업들의 목록을 보여준다. 슈퍼 유저라면 모든 작업들의 계획목록을 보여준다.
-m : 작업이 완결되면 사용자에게 메일을 보낸다.
-f 파일명 : 표준 입력이 아닌 지시된 파일에서 작업을 읽어온다.

설명

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

/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 파일에 수록된 작업을 수행한다.

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

문법

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

옵션

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

설명

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

사용예

■ banner "hello world"
■ banner linux | lqr ,,디폴트 프린터에 확대한 글자를 출력한다.

■■■ bash : 이것은 리눅스의 Boume 셸이다. sh를 사용하면 sh가 bash를 호출하여 실행한다. bash를 직접 사용하지 말고 sh를 사용하도록 하라.

문법

■ sh [ 옵션 ][ 파일 ]

설명

sh의 설명을 참조하라.

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

문법

■ biff [ y 혹은 n]

설명

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

사용예

■ $ biff
■ is n ,,전자우편 수신 즉시 통고 기능은 설정되어 있지 않음
■ $ biff y ,,기능설정
■ $ biff
■ is y

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

문법

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

옵션

-j : 1월 1일부터 날짜수를 계산하는 julian 날짜를 표시한다.
-y : 올해의 달력을 표시한다.

설명

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

사용예

■ $ cal 1997
■ $ cal 4 1997

■■ 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라는 파일을 생성하게 된다.

■ cd : 현재 작업하는 디렉토리를 변경한다.

문법

■ cd [ 디렉토리 ]

설명

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

사용예

■ $ cd /home
■ $ pwd
■ /home

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

문법

■ chgrp [ -cfvR ] 그룹 파일들

옵션

-c : 실제로 소유자가 바뀐 파일에 대해서 자세히 기술한다.
-f : 파일의 그룹 소유권을 바꿀 수 없더라도 에러 메시지를 출력하지 않는다.
-v : 소유권의 바뀜에 대해서 자세히 기술한다.
-R : 디렉토리와 그 내용 파일들의 소유권을 재귀적으로 모두 바꾼다.

설명

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

사용예

■ $ chgrp DoublePlus /usr/project/*

이것은 /usr/project의 모든 파일들의 소유권을 DoublePlus 그룹으로 바꾼다.

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

문법

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

옵션

-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다.
-f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.
-v : 변경된 권한에 대해서 자세히 기술한다.
-R : 디렉토리와 파일들의 권한을 재귀적으로 모두 바꾼다.

설명

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

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

사용예

■ $ chmod 666 broadboard ,,파일을 모두가 읽고 쓸 수 있도록 한다.
■ $ chmod 746 broad ,,파일 권한을 -rwxr--rw-로 변경한다.
■ $ chmod o+x,g-w broadboard

파일 소유자는 실행권한을 추가하고, 그룹은 쓰기 권한을 금지한다.

■ $ chmod u=r broad ,, 다른 사용자의 권한을 읽기로 제한한다.

사용자의 다른 권한은 사라져 버린다.

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

문법

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

옵션

-c : 실제로 파일의 소유권이 바뀐 파일만 자세히 기술한다.
-f : 파일의 소유권이 바뀔 수 없어도 에러 메시지를 출력하지 않는다.
-v : 변경된 소유권에 대해서 자세히 기술한다.
-R : 디렉토리와 파일들의 소유권을 재귀적으로 모두 바꾼다.

설명

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

사용예

■ $ chown blade /user/sisap/*

/usr/sisap 디렉토리의 모든 파일을 blade의 것으로 바꾼다.

■■■ clear : clear 명령은 도스의 cls와 마찬가지로 화면을 지우는 동작을 한다.

문법

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

옵션

-l : 일치하지 않는 모든 바이트 값과 그 오프셋을 알 수 있다.
-s : 비교만을 수행할 뿐 아무런 메시지도 출력하지 않는다.

설명

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

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

■ $ cmp document1 document2
■ document1 document2 differ: char 128, line 13 ,,차이 발견

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

사용예

■ $ cmp mail.1 mail.2 13 14

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

문법

■ compress [ -cCdfv ] 파일명

옵션

-c : 옵션을 사용하면 압축 결과가 표준 출력으로 나가며 파일은 변함없다.
-C : 파일을 블록으로 분화하는 것을 금지한다. 이것은 compress의 구식 버전이 파일을 읽을 수 있도록 하기 위함이다.
-f : 수행 결과 파일과 같은 이름의 파일이 있다면 물어보지 않고 덮어쓴다. 또한 파일의 크기가 줄어들지 않더라도 파일 이름에 .Z를 추가한다.
-v : 파일이 압축되면 압축 효율을 퍼센트로 보여준다.

설명

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

사용예

■ $ compress -v roman
■ $ compress -d noman.Z 혹은 $ compress -d roman

2009/07/17 20:30 2009/07/17 20:30