RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

출처 : 대전국제IT교육센터 정성재 강사

 

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로 카운트해보면 한라인당 한문자씩가 추가된다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
Blah.. blah.. (5)
My Advanced Linux (73)
RedHat Knowledge (10)
Advanced Linux (47)
Virtualization (7)
HA clustering (2)
Bash shell scripts (6)
Learning Linux (96)
Fundamental (41)
AdminCourse (32)
Security (23)
OperatingSystem (5)
AIX (2)
HPUX (3)
Databases (4)
Oralce (3)
Mysql (1)
OpenSource (1)
Tips! (1)
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30