1. cat(concatenate) (1) 설명 : 표준입력으로 받는 값을 표준 출력으로 보낸다. 기본적으로 파일의 내용을 출력을 한다. 여러개의 파일이름을 적어주면 차례로 출력시키므로 파이프나 리다이렉션을 통해 파일을 하나로 합치는 기능도 수행한다. 도스의 'type'명령과 유사하다. (2) 사용법 cat [option] filename(s) (3) option -b : 줄번호를 붙여 준다.(공백만 있는 줄은 제외) -n : 줄번호를 붙여 준다. (공백만 있는 줄도 포함) -E : 각 라인의 맨 끝에 $표시를 붙여 출력한다. -T : 탭문자를 ^I로 표시하여 출력한다. -v : 인쇄가 불가능한 문자를 식별할 수 있도록 출력한다. -A : 모든 문자를 출력해준다. 일반적으로 출력되지 않는 특수문자도 출력해준다. -s : 인접한 여러 공백줄을 하나의 공백줄로 출력한다. (4) 사용예 1) cat => 표준입력(키보드로부터의 입력)을 표준출력(모니터)로 출력한다. 2) cat > a.txt => 키보드로부터 입력받은 내용을 a.txt라는 파일에 저장한다. 입력한 후에 [CTRL]+[d]를 입력하면 입력한 내용이 a.txt로 저장된다. 3) cat < a.txt => a.txt 파일의 내용을 화면에 출력해준다. '<'를 생략하고 cat a.txt 한 것과 같다. 4) cat < a.txt > b.txt => a.txt의 내용을 b.txt라는 파일에 출력한다. 이 경우에는 cp a.txt b.txt한 것과 같다. 5) cat a.txt b.txt => a.txt내용과 b.txt내용을 화면에 출력한다. 6) cat a.txt b.txt > c.txt => 'a.txt', 'b.txt' 두 파일 내용을 합해서 c.txt라는 파일로 저장한다. 7) [posein@www posein]$ cat -b a.txt 1 I love linux 2 I love windows 3 I love unix => 공백에는 줄번호를 붙이지 않는다. 8) [posein@www posein]$ cat -n a.txt 1 I love linux 2 I love windows 3 4 I love unix => 공백만 있는 줄에도 줄번호를 붙여서 보여준다. (5) 참고: redirection 1) 설명: 입출력의 방향을 바꾸는 역할을 한다. 2) 기호 > : 출력의 방향을 파일로 바꾼다. >> : 특수출력(기존의 파일에 내용 추가) < : 입력의 방향을 파일로 바꾼다. << : 특수입력 3) 사용예 ㄱ. cat > a.txt => 표준입력(키보드)로 입력받아서 표준출력(화면)으로 출력하지 않고 a.txt라는 파일에 출력(저장)한다. ㄴ. cat >> a.txt => 기존의 a.txt라는 파일이 존재하면 그 파일에 표준입력(키보드)으로 부터 받은 내용을 추가한다. 만약 기존에 a.txt라는 파일이 존재하지 않으면 '>'의 역할과 같다. ㄷ. cat < a.txt => a.txt라는 파일로부터 입력받아 표준출력(화면)에 보여준다. ㄹ. [posein@www posein]$ cat << end > I love linux > I love windows > end I love linux I love windows => 이 경우에는 << 뒤에 오는 end라는 문자열을 입력을 사용하는데 그 문자열이 입력될 때까지 기다렸다가 해당문자열이 입력되면 한번에 표준출력으로 보여준다. 2. head (1) 설명 : 파일의 첫 부분을 보여주는 명령. 텍스트 파일의 앞에서부터 주어진 수만큼의 행을 보여준다. 기본값은 10줄이다. (2) 사용법 head [-count] [option] filename(s) => 파일의 처음 줄부터 count로 주어진 만큼의 줄을 보여준다. count가 지정되지 않으면, 디폴트로 10을 사용한다. 여러 파일을 나열하여 첫부분만 볼 수 있다. (3) option -n 행수 : 파일의 앞에서부터 지정된 수만큼 출력한다. n을 생략하고 그냥 입력해도 된다. '--lines 행수' 옵션과 같다. -c n : n바이트까지 출력한다. n뒤에 k나 m을 쓸 경우 KB나 MB를 나타낸다. -q : 여러 개의 파일이 처리될 때 파일 이름 헤더를 출력하지 않는다. (4) 사용예 1) head -3 *.c => 현재 디렉토리안의 '.c'로 끝나는 모든 파일의 처음 3줄씩을 보여준다. 2) head -q *.txt => 현재 디렉토리안의 *.txt로 끝나는 모든 파일의 처음 10줄씩 보여주는데 파일의 이름은 출력하지 않는다. 3. tail (1) 설명 : head와 반대로 파일의 끝부분을 보여준다. 파일의 가장 끝줄부터 지정된 갯수 만큼의 줄을 보여준다. (2) 사용법 tail [-count] [option] filename(s) => 파일의 끝줄부터 count만큼의 줄을 보여준다. count가 지정되지 않으면 디폴트값인 10을 사용한다. (3) option -n m : 마지막에서 m행만 출력한다. '--line 행수'와 같다. -c : 마지막 n바이트만 출력한다. n 뒤에 k나 m을 쓰면 KB나 MB를 의미한다. -f : 특정파일의 끝부분에 새로운 행이 추가될 경우 실시간으로 출력한다. 로그파일을 볼 때 유용 하게 쓰인다. (--follow) +n : 파일의 처음 n라인부터 끝까지 출력한다. -q : 여러개의 파일이 처리될 때 파일 이름 헤더를 출력하지 않는다. (4) 사용예 1) tail aaa.txt => aaa.txt라는 파일의 마지막 10행을 보여준다. 2) tail -f /var/log/messages => 동적으로 파일의 변경된 값을 보여준다. (5) 응용예 : head와 조합하여 파일의 중간을 자를 수 있다. head -30 aaa.txt | tail > /tmp/ddd.txt => aaa.txt 라는 파일의 21번째 줄에서 30번째 줄까지의 내용을 /tmp/ddd.txt라는 파일로 저장한다. 4. more (1) 설명 : 출력을 페이지 단위로 나누어서 보여준다. 도스의 'more'명령과 유사하다. (2) 사용법 more [-line] filename(s) => lines는 한 화면에 표시할 줄의 수이다. (3) more실행상태에서 사용하는 명령 h : more에 관한 도움말의 볼 수 있다 SPACE : 다음 페이지를 보여준다. RETURN : 한 줄씩 보여준다. d, (CTRL+D) : 반 페이지씩 보여준다. q,Q : 종료한다. b, ^B : 이전 페이지를 보여준다. f : 다음 페이지를 보여준다. / (검색어) : 검색어에 해당하는 단어를 검색한다. = : 현재 line number를 보여준다. ^L : 화면을 다시 리프레쉬 시킴 :f : 현재 파일의 이름과 현재 line number를 보여준다. ! : 중간에 다른 명령을 입력할 수 있는 상태가 된다. (4) 사용예 : 보통 다른 명령어와 '|'를 이용 조합하여 많이 사용된다. 1) more /etc/inittab => /etc/inittab 파일의 내용을 페이지단위로 나누어서 보여준다. 2) more -20 /etc/inittab => /etc/inittab파일의 내용을 20줄을 한 페이지로 하여 나누어서 보여준다 3) cat readme |more => readme파일을 한 화면단위로 출력하라. 4) ls /etc |more => /etc디렉토리의 파일의 내용을 한 화면단위로 출력하라. 5. less (1) 설명: more의 기능과 유사하고 리눅스에서만 사용가능하다. more보다 더 나은 기능들이 많다. 대표적인 기능으로 문서의 앞으로도 이동이 가능하다. man 페이지에서 호출하는 명령이 less명령이다. (2) 사용법 less [option] 파일명 (3) option -? : less실행시 사용하는 명령들에 대한 도움말을 화면에 출력한다. -c : 화면에 출력하기 전에 화면을 정리하여 맨 처음에 위치되도록 해준다. -s : 인접한 여러 공백줄을 하나의 공백줄로 처리하여 화면에 보여준다. (4) less실행상태에서 사용하는 명령 [space] : 다음 페이지로 이동한다. f 와 같다. f : 다음 페이지로 이동한다. [space]와 같다. b : 이전 페이지로 이동한다. [enter] : 다음라인으로 이동한다. e 와 같다. e : 다음라인으로 이동한다. [enter]와 같다. y : 이전라인으로 이동한다. /text : 아래방향으로 'text'라는 문자열을 찾아 맨 첫라인에 위치시킨다. ?text : 위방향으로 'text'라는 문자열을 찾아 맨 첫라인에 위치시킨다. n : 다음 'text'라는 문자열을 찾아 맨 첫라인에 위치시킨다. N : 윗방향으로 'text'라는 문자열을 찾아 맨 첫라인에 위치시킨다. q : less 명령을 끝낸다. 6. grep(Global Regular Expression Print) (1) 설명 : 파일안에서 특정 패턴을 갖는 줄을 찾아서 출력해주는 명령이다. (2) 사용법 grep [option] pattern file(s) => pattern에 찾고자 하는 문자열을 입력하면 지정해준 파일에서 그 문자열을 찾는다. (3) option -c : 파일안에 pattern과 일치하는 줄이 몇 개인지만을 출력한다. -C : 패턴이 일치하는 문장의 아래 위 두 라인까지 포함하여 출력한다. -h : 여러 개의 파일을 검색시 출력하는 파일의 이름이 붙는 것을 방지한다. -i : 탐색할 때 대,소문자를 구분하지 않는다. -y : -i와 똑같다. -n : 일치하는 줄이 파일의 몇번째 줄인지 내용과 같이 출력한다. -v : pattern과 일치하지 않는 줄만을 출력한다. -w : 패턴과 한 단어로 일치해야 출력한다. -x : 패턴과 전체 라인이 일치해야 출력한다. -l : 주어진 패턴과 일치하는 패턴이 있는 파일의 이름만 출력한다. -r : 하위디렉토리까지 주어진 패턴을 찾는다. (4) 사용예 1) grep linux * => 현재 디렉토리의 모든 파일중에서 'linux'라는 문자열이 들어가 있는 줄을 찾는다. 2) grep -c linux * => 현재 디렉토리의 모든 파일들이 'linux'라는 문자열이 들어있는 줄을 몇개씩 가지고 있는지를 보여준다. 3) grep -h linux * => 현재 디렉토리에 있는 모든 파일중에서 'linux'라는 문자열이 들어있는 줄을 출력하는데 파일명은 출력하지 않는다. 4) grep "[0-9]" readme => readme파일에서 숫자로 시작하는 모든 라인을 보여준다. (5) 참고: grep 명령과 정규표현식(Regular Expression) 1) 정규표현식: 정규표현식이란 좀 더 쉽고 다양하고 정교하게 찾을 수 있도록 지원해주는 특정한 패턴을 말한다. 2) 지원되는 문자 . : 매칭되는 한 문자로 무조건 존재해야 한다. .* : 한문자에 추가로 0(zero)이거나 그 이상의 문자 a* : 아무것도 없거나 a라는 문자열이 하나이거나 반복되어진 문자열을 뜻한다. 즉, a, aa, aaa 등 a? : a 한문자이거나 a이외의 문자가 전혀 없는 경우. a+ : a 한문자이거나 a가 반복되는 경우 a\{n\} : a가 반복되는 경우 [문자list]: 문자 list중의 한문자 [abc]: a , b 또는 c [0-9]: 0, 1, 2, 3, 4, 5, 6, 7, 8, 또는 9 [^1-3]: 1, 2, 3을 제외한 모든 문자 '^pattern': pattern이 줄의 처음에 있을 때에만 일치 'pattern$': pattern이 줄의 끝에 있을 때에만 일치 '\<pattern': 단어가 pattern으로 시작할 때에만 일치 'pattern\>': 단어가 pattern으로 끝날 때에만 일치 3). 사용예 ㄱ. [posein@www posein]$ cat a1.txt designer programmer engineer abc [posein@www posein]$ grep [^abc] a1.txt designer programmer engineer => abc라는 문자열을 제외한 문자들이 있는 라인을 출력하는 명령이다. 그러나 a1.txt의 4번째줄은 전부 abc로 되어 있으므로 출력되지 않는다. ㄴ. [posein@www posein]$ cat a.txt I love linux I love windows I love lanux [posein@www posein]$ grep l.n a.txt I love linux I love lanux => '.'이 한문자라는 뜻이다. 4) 기타 예제 총정리 c.t : cat, apricot, cute, locate c[ai]t : catalyst, citation, incapacitate, Piscataway s[^aeiou]ri : airstrip, describe, offspring, Sanskrit at*r : atrocious, award, attribute, barrel sa.*re : massacre, sacred, sapphire, satire s[ao]*r : classroom, censor, emissary, soar sa.*re$ : massacre, satire ^sa.*re : sacred, satire 7. wc(word count) (1) 설명 : 텍스트 파일의 행수, 단어수, 문자수를 알려준다. 많이 쓰이는 명령어는 아니지만 프로그래머에게 유용한 명령이다. (2) 사용법 wc [option] file(s) (3) option -l : 행 수를 센다. (--lines 라고 해도 된다.) -w : 단어 수를 센다. -c : 문자 수를 센다. -L : 가장 긴 라인의 길이를 출력한다. (4) 사용예 1) wc readme => readme파일의 행, 단어, 문자의 수를 출력한다. 2) who | wc -l => 현재 접속한 사람의 수를 표시한다. 3) [posein@www posein]$ cat a.txt I love linux I love windows [posein@www posein]$ wc a.txt 2 6 28 a.txt => a.txt라는 파일의 행수는 2, 단어수는 6, 문자수는 28이다. 참고로 실제 문자수를 세어보 면 공백문자를 포함하여 26자이다. 그러나, 한 라인후에 [Enter]키를 입력하면 눈에 보이지 않는 개행문자가 삽입되면 wc로 카운트해보면 한라인당 한문자씩가 추가된다.
다음검색