1580, 3/79 회원가입  로그인  
   괴도js
   II. 일반명령어2.

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=208 [복사]


l          grep : 특정한 문자 또는 문자열 출력

l          cat : 파일의 내용 출력

l          more / less : 통독을 위한 페이지 단위로 필터링해서 출력

l          head / tail : 파일의 내용 출력

l          표준 입출력

l          입출력 재지정 (Redirection)

l          파이프

l          find / locate : 파일 또는 디렉토리 검색

l          which / whereis

l          df : 파티션 정보 보기

l          du : 디렉토리 사용량 보기

l          정규표현식

grep

주어진 pattern을 포함하는 file의 line 출력하는 명령어이다. 나중에 배울 파이프(|)와 연결되어 많이 쓰이는 명령이다.

주요 옵션

  ① -i : ignore. 조사할 패턴의 대소문자를 구분하지 않음.

  ② -n : number. pattern과 일치하는 내용을 가진 라인 번호 출력

  ③ -w : word. 한단어로 정확하게 일치하는 단어가 있는 경우에 출력

예)

[root@www /root]# grep mk /etc/passwd

mk:x:500:500::/home/mk:/bin/bash

[root@www /root]# ps -aux |grep sendmail

root      9250  0.0  0.7  5008 1876 ?        S    Mar02   0:00 sendmail: accepti

root     31109  0.0  0.2  1624  616 pts/1    S    21:01   0:00 grep sendmail

[root@www /root]# rpm -qa |grep sendmail

sendmail-cf-8.11.3-1wl

sendmail-8.11.3-1wl


cat

file의 모든 내용을 출력한다. 편집을 하고 싶을 경우는 vi나 pico를 이용해야 한다.

주요 옵션

-n' 옵션 : 모든 출력행의 개수를 출력한다.

예)

[root@www /root]# cat  /etc/inittab


more

페이지 단위로 필터링해서 출력 이때, 화면 하단에 %로 현재 표시량을 보여준다.

b(backward) 와 f(forward) 키를 이용해서 화면 위 아래로 스크롤 가능하며, q키를 치면(quit) 빠져나간다.

예)

[root@www /root]# more  /etc/inittab

less

more와 비슷하지만 좀 더 다양한 기능을 제공하며, b키와 f를 사용할 수 있다. 찾기 기능도 제공한다. q키를 치면(quit) 빠져나간다.

예)

[root@www /root]# less  /etc/inittab


head

위로부터 사용자가 지정한 라인수 만큼 보여준다. default는 10줄이다.

예)

[root@www /root]# head -3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:

daemon:x:2:2:daemon:/sbin:

tail

아래로부터 사용자가 지정한 라인수 만큼 보여준다. log-file 볼 때 –f 옵션을 이용하여 실시간으로 로그를 모니터링 할 수 있다.

예)

[root@www /root]# tail -3 /var/log/secure

Mar  7 20:07:02 www proftpd[30969]: www.mk.com (127.0.0.1[127.0.0.1]) - USER mk (Login failed): Incorrect password.

Mar  7 20:07:07 www proftpd[30971]: www.mk.com (127.0.0.1[127.0.0.1]) - USER mk: Login successful.

Mar  7 20:07:25 www xinetd[29617]: START: telnet pid=30974 from=127.0.0.1

[root@www /root]# tail -f /var/log/secure        /* 실시간으로 보기 */

입출력 재지정 (I/O redirection)

키보드와 모니터로 설정되어 있는 표준 입출력의 방향을 파일이나 다른 장치로 재지정하는 것을 말한다.

예) $ ls dir1 > ls.out          (ls dir1 명령의 결과를 ls.out 라는 파일에 출력한다)

    $ cat <file1 >file2          (file1을 cat 명령의 입력으로 받아 그 결과를 file2로 출력한다)

    $ cat file1 >> file2        (file1의 내용을 file2에 덧붙인다)

    $ cat < file1 >> file2  (file1을 cat 명령의 입력으로 받아 그 결과를 file2에 덧붙인다)

ex) cat lilo.conf > test_cat 은 cat < lilo.conf > test_cat과 같다.


표준 입출력(Standard Input and Output)

shell 명령어에는 3가지의 표준 입출력이 있다.

stdin (0)  : 키보드에서 들어오는 입력을 말한다.

stdout (1) : 사용자의 터미널(콘솔)로 보내지는 출력을 말한다.

             출력은 프린터나 파일로도 갈 수가 있다.

stderr (2) : 표준 에러로 사용자의 터미널(콘솔)로 보내진다.

파이프 (|)

입출력 재지정 기능을 확장해서 한 프로그램의 출력 결과를 다른 프로그램의 입력으로 직접 연결시키는 기능을 말한다.

예)

[root@www /root]# ls -l | more     /*  ls -l 명령의 결과를 페이지 단위로 출력한다.  */

[root@www /root]# cat /etc/passwd |grep mk    

mk:x:500:500::/home/mk:/bin/bash

[root@www /root]# cut -f 1  -d ":"  /etc/passwd |sort |tail -5

shutdown

sook

sync

uucp

xfs

/*  /etc/passwd 파일의 첫 번째 필드 값을 추출하여 그 결과를 정렬하여 보여준다. */

find

file이나 directory를 찾는다. locate를 사용할 수도 있다.

[형식]

[root@localhost/root]# find   .    -name   mk.txt  

                                경로   표현법    file 또는 directory명

경로는 .(현재 디렉토리)으로 검색할 수 있으며, /로 전체 디렉토리에서 검색할 수도 있다.

file명이나 directory명에는 ‘*’나, ‘?’같은 wild-card를 사용할 수 있는데, 이럴 때는 반드시 ‘’나 “”를 사용해서 묶어 주어야 한다.

Unix의 경우 맨뒤에 -print 붙여야 화면에 출력을 한다. 리눅스는 디폴트가 화면 출력으로 지정되어 있다.

이외에도 많은 옵션이 존재하므로 반드시 man 파일을 참고하기 바란다.

빠른 검색을 위해서는 locate를 사용하며, 명령어 및 경로를 검색할 때는 which나 whereis를 이용한다.

예)

[root@lsrg log]# find / -name "stdi*.h"

/usr/include/bits/stdio-lock.h

/usr/include/bits/stdio.h

/usr/include/bits/stdio_lim.h

/usr/include/stdint.h

/usr/include/stdio.h

locate

find처럼 file 또는 디렉토리를 찾을 때 쓰는 명령인데, find는 전체를 검색을 하는 반면, locate는 DB를 이용한다. 이 때 사용되는 DB는 /var/lib/slocate/slocatedb이다.

locate는 cron daemon에 의해 하루에 한번씩 갱신된다.

DB 업데이트

[root@lsrg log]# updatedb

예)

[root@lsrg log]# locate stdio.h

/usr/include/bits/stdio.h

/usr/include/stdio.h

which / whereis

명령어 검색시에는 find 나 locate 보다는 which와 whereis를 많이 사용한다. which는 alias명과 명령어의 경로를 나타내며, whereis는 매뉴얼의 위치와 명령어의 경로를 나타낸다.

[root@www /root]# which ls

alias ls='ls --color=tty'

        /bin/ls

[root@www /root]# whereis ls

ls: /bin/ls /usr/share/man/man1/ls.1.gz

df

partition별로 전체 용량과 현재 남은 용량을 확인할 수 있음. 따라서 system 관리에 꼭 필요하다.

이때, 사용된 용량이 100%가 되면 system이 down 될 수도 있다.

KB 단위로 확인하고 싶을 때는 -k 옵션을 사용하는데, 그 보다는 용량에 따라 알맞게 K, M, G등의 단위로 출력해 주는 -h 옵션을 더 많이 사용한다.

[root@lsrg /root]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/hda5             2.9G   45M  2.6G   2% /

/dev/hda1              38M  2.8M   33M   8% /boot

/dev/hda9              11G  5.9G  5.0G  54% /home

/dev/hda6             2.9G  941M  1.8G  34% /usr

/dev/hda7             988M  111M  827M  12% /var

du

디렉토리의 사용량을 출력한다.

합계를 출력하기 위한 옵션 -s와 df명령에서와 같은 -h 옵션을 함께 사용하면 좀 더 읽기 쉬운 결과를 얻을 수 있다.

[root@lsrg /root]# du -h

8.0k    ./.ssh

92k     .

정규표현식

*  : 여러개의 문자를 대표한다.    

[root@localhost /etc]#ls -l host*


?  : 한개의 문자를 대표한다.      

[root@localhost /root]#ls -l host*.????

[123] 1 or 2 or 3, [1-5] 1부터 5 :  어떠한 범위를 표현

[root@localhost /etc]#ls -l [a-b]*

^pattern : 해당 글자로 시작하는 라인 검색

[root@www /root]# grep ^image /etc/lilo.conf

image=/boot/vmlinuz-2.4.2-2지

pattern$ : 해당 글자로 끝나는 라인 검색

[root@www /root]# grep linux$ /etc/lilo.conf

default=linux

        label=linux

  Hit : 10147     Date : 2004/07/04 02:47



    
1540   [[초급/강좌]] 유닉스 주요 명령어[7]     소유
10/09 14281
1539   [[초급/강좌]] 유닉스 기본 정리[8]     소유
10/09 14230
1538     [re] 허접팁] 암호를 바꿔 해킹피해 줄이쟈 ㅋ ^^; 더 좋은방법[9]     xeon400
10/14 9184
1537   콘솔과 엑스윈도에서 마우스 사용하기[1]     소유
10/28 9814
1536   리눅스에서 한국통신 adsl 설정[10]     jgminam
11/06 11267
1535   gdb사용법_링크임다...[3]     esang72
01/10 8671
1534   리모트에서 명령어 실행시키기[1]     xiangyi
02/03 10429
1533   format string을 위한 리턴어드레스 구하기.[2]     ssuckies
02/08 10439
1532   그녀의 Vulnerabilities에 따른 Remote/local one night stand exploit.[2]     ssuckies
03/29 9922
1531   왜 C 이어야 하는가 ?[96]     소유
04/09 23947
1530   BOF 해결 무작정 따라하기 #1[7]     ssuckies
04/12 14113
1529   BOF 해결 무작정 따라하기 #2     ssuckies
04/12 9783
1528   커널버전 확인하기ㅋ[1]     괴도js
07/02 8918
1527   [C강좌] C언어의 기본개요     괴도js
07/02 11069
1526   C언어 기본구조[1]     괴도js
07/02 12305
1525   C강좌;;라 할것잇나?[1]     괴도js
07/03 11039
1524   2번째C강좌~![9]     괴도js
07/03 11772
1523   I. 리눅스 구조 및 일반 명령어.     괴도js
07/04 12526
  II. 일반명령어2.     괴도js
07/04 10146
1521   [Bash Shell] 정복하기[1]     괴도js
07/04 9875
[1][2] 3 [4][5][6][7][8][9][10]..[79]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com