Posted
Filed under Linux
■■ find : 원하는 특정 파일을 디렉토리를 탐색하여 찾는다. find는 매우 강력한 도구로 특정 디렉토리들을 순회하면서 지정된 조건에 만족하는 파일을 찾는다. 파일의 조건은 이름이나 크기, 날짜 등 다양하게 지정할 수 있다.

문법

■ find [ 디렉토리 ] 탐색 조건

탐색 조건

-name 파일명 : 찾고자 하는 파일의 이름을 정한다. 와일드 카드도 가능하다.
-perm 모드 : 파일 권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼 수 있는 형태와 같이 지정한다.
-type ? : 형태가 같은 파일을 찾는다. 물음표(?) 부분에 디렉토리는 d, 파이프는 p, 심볼릭 링크는 l, 소켓은 s, 블록 파일은 b, 일반 파일은 f 등의 기호를 사용한다.
-links ? : 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다.
-size ? : 파일의 크기가 일치하는 것을 탐색한다. 파일 크기는 블록단위로 물음표 부분에 지정한다.
한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1키로바이트 크기의 블록 숫자로 간주된다
-user 사용자 : 파일 사용자의 ID에 따라서 검색한다. 로그인 이름이나 번호 모두가 가능하다.
-atime ? : 최근 며칠내에 엑세스한 파일을 검색한다. 날짜수는 ?에 명시한다.
-exec 명령 : 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다.
find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다.
-newer 파일 : 어떤 파일보다 최근에 갱신된 모든 파일을 검색한다.

사용예

■ $ find /bin -name ro*
■ $ find -user qwfwq -exec cat {} list\;


■■■ finger : 시스템 상의 사용자들에 대한 정보를 보여준다.

문법

■ finger [ -slpm ][ 사용자 ]

옵션

-s : 사용자의 로그온 이름, 실제이름, 터미널 이름, 로그온 시간 등등을 보인다.
-I : -s 옵션 정보에 몇 가지를 추가하여, 여러 줄에 걸쳐서 보여준다.
-p : -l 옵션 정보에서 .plan과 .project 파일을 보이지 않는다.

설명

인수로 아무 것도 주어지지 않으면, finger는 현재 시스템에 로그인되어 있는 사용자들을 보여준다. 옵션이 주어지지 않으면, 기본적으로 -l 옵션을 사용한 것으로 간주된다.

사용예

■ $ finger
■ Login Name Tty Idle Login Time Office Office Phone
■ blade kimtaihan 2 1 Oct 20 11:31
■ root root 1 Oct 20 11:28


■■ fsck : 파일 시스템이 완전한 상태를 유지하고 있는가를 검사하고, 잘못된 것은 바로 잡는다.

문법

■ fsck [ -arsVN ][ 파일시스템 ]

옵션

-a : 검사도중 발견된 에러를 자동적으로 복구한다.
-r : 검사도중 에러가 발견되면 복구할 것인가를 물어온다. 이것은 하위 호환성을 위한 것으로서 사실상은 사용되지 않는다.
-s : 병렬적인 방법이 아니라 순차적인 방법으로 검색한다.
-V : 검색중 각종 정보를 자세하게 보여준다.
-N : 실제로 검사 작업을 하지는 않도록 한다.

설명

이것은 시스템이 처음 가동될 때 자동으로 호출된다. 이름은 file system check를 줄인 것으로, 파일 시스템을 스캔(scan)하여 일관성을 유지하고 있는가를 검사한다.

디스크의 블록이 bitmap에는 사용되지 않은 상태로 표시되었음에도 불구하고 inode로부터 참조된다든지 반대로 사용된 블록으로 표시되었는데도 inode로부터 참조되지 않는 일이 있는가를 검색한다. 그 외에도 inode 링크계수가 올바른지 두 개 이상의 inode가 같은 블록을 참조하는지 혹은 블록번호가 유효한 것인가 등의 여러 가지를 검사한다.

-a 옵션을 사용하였다면 검사도중 발견된 오류는 자동으로 복구된다. -r 옵션을 사용한다면 반드시 -s 옵션을 함께 사용해야 한다. fsck는 기본적으로 한꺼번에 몇 개의 검사를 병행하는 병렬 작업을 하기 때문에 하나의 에러를 발견하더라도 다른 검사는 계속 수행되고 있다. 검사 시간을 최대한 절약하기 위해서 병렬 작업을 하기 때문에 사용자의 수정과 다른 검사 작업의 호홉이 맞지 않을 수 있다. 그러므로 -s 옵션을 주어서 오직 하나의 검사 작업만 진행되도록 해야 한다. 그러나 -r 옵션은 하위 버전과의 호환성을 위한 것으로서 사용자는 -a 옵션만을 사용하는 것으로서 충분하다. 파일 시스템을 지정해 주지 않으면 /etc/fstab 파일에 나열된 파일 시스템을 검색한다.

■■■■■ grep/fgrep : 파일내에서 특정 패턴을 검색한다. 이름은 Global Regular Express Printer 의 머리글자이다.

문법

■ grep [ -vclhnief ] 표현 파일명(들)
■ fgrep [ -vclhnief ] 문자열 파일명(들)

옵션

-V : 일치되는 내용이 없는 라인을 표시한다.
-C : 일치되는 내용이 있는 행의 개수를 센다.
-I : 일치되는 내용이 있는 파일의 이름만을 표시한다.
-h : 일치되는 내용을 찾은 파일의 이름을 표시하지 않는다.
-n : 일치 내용이 있는 행은 행번호와 함께 표시된다.
-i : 대소문자 구분을 하지 않는다.
-e 표현 : 표현이 하이픈 문자로 시작될 때 사용한다.
-f 파일 : 찾으려는 문장이나 표현이 있는 파일을 지시한다.

설명

원하는 탐색 단어 혹은 문장을 검색한다. 표현은 일반 표현식을 사용한다. fgrep은 문자열을 검색할 때 빠르게 사용할 수 있다.

사용예

■ $ grep catch myletter

myletter에 catch라는 단어가 있는지 검사한다.

■ $ grep "[Cc]atch" myletter

앞 글자가 대소문자인지 상관하지 않고 catch라는 단어를 찾는다. 이것은 다음의 fgrep 명령과 같은 동작을 한다.

■ $ fgrep catch myletter

■■ halt : halt는 아무런 경고없이 시스템을 즉시 종료시킨다.

문법

■ halt

설명

시스템이 halt되면 'System halted' 메시지가 나오고, 시스템은 정지한다. halt는 옵션을 가지지 않는다.명령이 내려지면 일련의 마무리 작업을 수행한 후에 정지한다. 시스템 종료 기록도 /var/adm/wtmp 로그 파일에 추가된다.

■■ head : 파일의 처음 부분을 출력한다.

문법

■ head [ -행수 ] [ 파일이름(들) ]

옵션

-행수: 출력될 행수를 지정한다.

설명

옵션으로 주는 행 숫자는 화면에 표시될 행의 개수를 의미한다. 만일 그것이 주어지지 않는다면 기본적으로 10개의 행을 출력한다.

사용예

■ $ cat letter
■ 원일이에게.
■ 안뇽? 
■ 자네가 돈을 빌려간지도 1년이 넘었네.
■ 난 포기 안하지.
■ 하루속히 갚기를 바라네.
■ 독촉해서 미안하군
■ 건강하길...
■ 1997년 모월 모일 친구가.

문서의 앞 머리 세 줄만 확인하기 위해서 다음과 같이 할 수 있다.

■ $ head -3 letter
■ 원일이에게.
■ 안뇽? 
■ 자네가 돈을 빌려간지도 1년이 넘었네.

■■■■■ hostname : 현재 설정되어 있는 호스트의 이름을 표시하거나 변경한다.

문법

■ hostname [ 호스트이름 ]

설명

이것은 인수없이 사용된다면 현재 설정되어 있는 호스트 이름을 보여준다. 리눅스는 기본적으로 프롬프트에서 호스트의 이름을 보여줄 것이다. 혹은 사용자가 프롬프트에 호스트 이름이 나타나도록 할 수도 있다. 인수로서 새로운 호스트 이름을 지정한다면 새로 지정된 이름으로 호스트 이름을 바꾼다. 하지만 이런 작업은 수퍼 유저만이 할 수 있다.

사용예

■ $ hostname
■ Blade

■ id : 시스템에 등록된 ID를 확인한다.

문법

■ id [ -gGnru ]

옵션

-g: 그룹 ID만을 출력한다.
-G: 추가 그룹들만을 출력한다.
-n: ID 번호대신 이름으로 출력한다.
-r: 실제 사용자나 그룹 ID를 출력한다. 다른 옵션과 함께 사용한다.
-u: 사용자의 ID만을 출력한다.

사용예

■ $ id -un

■■ jobs : 현 터미널에서 수행된 작업들을 간략하게 나열해준다.

문법

■ jobs [ -I ]

옵션

-I: 프로세서 번호를 추가해서 보여준다.

설명

jobs 명령에 대한 것은 fg와 bg명령에 대한 설명과 함께 3장을 참고하라.여기서는 프로세서 번호와 jobs 볼 수 있는 작업 번호에 대해 생각해 보자.

작업번호는 한 사용자의 작업에 대한 것으로, 1번부터 순서대로 부여되지만 다른 터미널의 다른 사용자도 같은 번호의 job을 가지는 것이다. 또한 이 작업 번호는 중지되었거나 백그라운드에 있는 것들만이 작업 번호가 주어진다는 점이다. 프로세서 번호는 시스템 중심적이고, 작업 번호는 사용자 중심적인 번호인 것이다.

■■ join : 두 개의 정렬된 파일을 하나로 수평 병합한다.

문법

■ join [ -aejotv ] [파일명]1 [파일명]2

옵션

-an : 첫 번째나 두 번째 파일로부터 일치하지 않는것도 처리, n은 1이나 2이다.
-e 문자열 : 비어 있는 필드는 문자열로 대체한다.
-j n m : 파일n의 m번째 필드를 두 파일에 병합한다.
-o 파일 : 명시된 파일의 형태에 따라서 출력을 만든다.
-t 문자 : 필드 구분 문자를 정한다. 기본적으로 공백, 탭, 기행 문자다.
-v 파일 : 파일1이나 파일2의 짝이 연결되지 않는 행을 지정된 파일로 출력한다.

설명

두 파일의 내용을 하나의 파일로 병합하는데, cat을 사용하는 것처럼 한 파일의 뒤에 다른 하나를 추가하는 것이 아니라 각 행끼리 붙이기를 한다. 이 명령을 사용하면 두 개의 다른 데이터를 가진 목록을 합칠 수 있다.

■■ kill : 현재 수행중인 프로세서에게 시그널을 보낸다. 보통 kill 명령은 프로세서를 죽이는 데에 사용된다. 그래서 이 유틸리티의 이름도 kill이 되었다.

문법

■kill [-signalID] PID
■ kill -l

옵션

-signalID : 프로세서에게 보낼 시그널을 지정한다. 시그널은 번호로 지정될 수도 있고 시그널 이름으로 지정될 수도 있다.
-l : 시그널 종류를 나열한다. 시그널의 종류는 시그널 번호 순서대로 이름으로 나열한다.

설명

시그널의 종류를 지정하지 않으면 프로세서를 종료시키는 의미로 디폴트 시그널 ID 15번을 보내게 된다. 예를 들면 당신이 시스템을 사용을 마치고 로그아웃할 때는 시그널 ID 1번의 HUP(hang up) 시그널이 시스템으로 전달되며, 이 시그널은 당신의 셸 상태에서 실행중인 모든 프로세서를 종료시키고(앞에서 언급한 nohup에 의한 프로세서는 제외) 로그아웃하게 한다.

사용예

■ $ kill -l <return>
■1) SIGHUP 2) SIGNT 3) SIGQUIT 4) SIGILL
■5) SIGTRAP 6) SIGIOT 7) SIGBUS  SIGPPE
■9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
■13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
■1 SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
■22) SIGTTOL 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
■26) SIGVTALRM 27) SIGPROF 2 SIGWINCH 29) SIGIO
■30) SIGPWR
■$ kill -9 16034
■$ kill -kill 16034 ,,두 명령은 같은 의미이다.
■$ kill -9 0

이것은 모든 프로세서를 종료시킨다.

■■ less : more와 유사하게 페이지 단위로 문서를 보여준다. 이것은 문서의 앞으로도 이동하는 것이 가능하다.

문법

■ less [ -?acCeEinqQsx ] 파일명(들)

옵션

-? : less에서 사용할 수 있는 명령들에 대한 도움말을 제공한다. 이 옵션이 사용되면 다른 인수는 무시되고, 도움말 화면을 보여준다.
-a : 마지막 라인이 화면에 출력되고 나서 탐색을 시작한다.
-c : 필요할 때 전체 화면은 다시 갱신한다.
-C : -c 옵션과 같지만 갱신할 때 화면 전체를 지우고 시작한다.
-e : 두 번째로 파일의 끝에 도달하면 자동적으로 종료한다.
-E : 파일의 끝에 도달하기만 하면 자동적으로 종료한다.
-i : 대소문자를 구분하여 탐색한다.
-n : 행번호를 추가한다.
-q : 특정 에러가 발생하지 않으면 아무 소리도 내지 않고 조용히 동작한다.
-Q : 결코 아무 소리도 내지 않는다.
-s : 연속되는 공백 라인은 하나의 행으로 처리한다.
-x 숫자 : 수치를 지정해서 탭 간격을 조정한다. 기본값은 8이다.

설명

less는 많은 옵션과 키 사용법이 있다. 온라인 레퍼런스를 참조하기 바란다.

사용예

■ $ less lovemessage

■ ln : 두 개의 파일 사이에 링크를 만들어, 하나의 파일을 두 개 이상의 이름으로 접근이 가능하도록 한다.

문법

■ ln [ -s ] 파일명1 파일명2
■ ln 파일명들 디렉토리

옵션

■ -s : 하드 링크 대신 심볼릭 링크를 만든다.

설명

유닉스 파일 시스템의 링크 개념의 자세한 내용에 대해서는 다른 자료를 참고하라. 파일을 복사하는 대신 링크를 사용하면 디스크 공간을 매우 절약할 수 있다. 위에서 보면 첫 번째 형식에서 파일명2는 원하는 링크 파일의 경로와 이름이 된다. 이것은 일종의 alias(별명)라고 생각할 수 있다. 두 번째 형식에서 파일명들은 링크되기 원하는 파일들의 이름이고, 디렉토리는 링크된 파일이 지정되기 원하는 위치이다. 링크에 익숙해지면 ln명령은 cp 명령을 사용하는 것처럼 간단하게 사용할 수 있을 것이다.

사용예

■ $ ln project theplan ,,두 개의 이름은 같은 문서를 의미한다.

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