2010년 4월 2일 금요일

Linux basic commands

기본 명령어s

cd
디렉토리를 변경할 때 사용.
예 : [test@host2]$ cd 이동할 디렉토리 명.

ls
디렉토리의 화일들을 보여줌.
예 : [test@host2]$ ls <옵션>
<옵션>
-al : Hidden속성의 파일 표시(a옵션),파일의 종류, 사용권한등 자세한 정보표시(l옵션)
-aC : 도스의 dir /w명령과 같이 한 줄에 여러 개의 정보를 표시(C옵션)
-R : 도스의 dir/s 명령과 같이 서브디렉토리의 모든 명령어를 보여주는 옵션(R옵션)

passwd
자신의 계정의 암호를 변경할 때 사용.
예 : [test@host2]$ passwd 변경할 ID.
New Unix Password : 암호 입력
Retype new Unix Password : 암호 재입력

pwd
자신의 홈디렉토리를 확인할 때 사용.
예 : [test@host2]$ pwd
/www/home/test

cp
파일이나 디렉토리 복사시 사용.
예 : [test@host2]$ cp <복사할 파일명> <복사되어 생성될 파일명>

mv
move라는 도스명령어와 같은 것으로 파일을 다른곳으로 옮겨주는 명령어입니다.
cp명령어는 복사를 하기 때문에 원본파일은 그대로 존재하면서 또다른 파일을 생성해 주지만 mv는 원본파일이 다른곳으로 대체되어 버립니다.
따라서 mv라는 명령어의 용도는 파일이나 디렉토리의 이름을 바꾸는 용도로 많이 사용됩니다.

mv의 사용형식과 예를 들어보면 다음과 같습니다.
mv 옵션 원본파일(디렉토리) 목적파일(디렉토리)
<옵션>
-b : 삭제하기전에 백업본을 만들 수 있습니다.(backup)
-f : 목적디렉토리에 동일한 파일이 있더라도 overwrite합니다.(force)
     즉, overwrite여부를 확인하지 않고 바로 덮어쓰게 됩니다.
-i : 목적디렉토리에 동일한 파일이있을 경우에는 overwrite여부를 확인합니다.(interactive)

rm
파일이나 디렉토리를 삭제할 때 사용.
예 : [test@host2]$ rm <옵션> <삭제할 파일이나 디렉토리명>
<옵션>
-f: 삭제여부를 묻지않고 바로 삭제해 버립니다.(force)
-i: 삭제여부를 확인하게 됩니다.(interactive)
-r, -R: 서브디렉토리가 있을 경우에도 모두 삭제해 버립니다.(recursive)

mkdir
디렉토리를 생성할 때 사용.
예 : [test@host2]$ mkdir <생성할 디렉토리명>

rmdir
디렉토리를 삭제할 때 사용.
예 : [test@host2]$ rmdir <삭제할 디렉토리명>

du
자기 계정의 디스크 사용량을 볼 때 사용.
디렉토리를 삭제할 때 사용.
예 : [test@host2]$ du <옵션> <사용자아이디>
<옵션>
-s : 전체 사용량을 간략히 표시
-h : 용량단위로 표시하여 좀 더 알기 쉬움.

cat
concatenate의 약자로서 텍스트형식으로 된 파일의 내용을 볼 수 있는 명령어입니다.
예 : [test@host2]$ cat <옵션> <파일명>
<옵션>
-b : 행번호를 앞에 붙여서 출력. (빈행은 번호를 붙이지 않습니다.)
-n : 행번호를 앞에 붙여서 출력. (빈행도 번호를 붙입니다.)

tar
여러개의 파일을 묶거나 풀 때 사용.
예 : [test@host2]$ tar cvf 압축파일.tar 압축대상파일 및 디렉토리 : 압축할때
        [test@host2]$ tar xvf 압축파일.tar : 풀 때
<옵션>
-c : tar 파일을 생성할 때
-d : tar 파일과 해당 파일시스템간의 차이점을 확인하고자 할 때 사용.
-r : tar 파일에 다른 파일들을 추가하고자 할 때 사용.
-t : tar 파일의 내용을 확인하고자 할 때 사용.
-f : tar 파일을 사용할 때 반드시 사용.
-p : tar 파일을 생성할 때 당시의 퍼미션을 그대로 하여 풀어줄 때 사용.
-v : 묶을 때나 풀어줄 때 파일들의 내용을 자세하게 보려고 할 때 사용.
-Z : compress로 압축파일 사용할 때 압축이나 해제까지 한번에 할 때 사용.
-z : gzip과 관련하여 압축이나 해제를 한꺼번에 할 때 사용


head
이 명령어는 파일의 내용을 처음부터 몇행까지만 보고자 할 때에 사용합니다.
다음과 같은 형식으로 사용됩니다.

head 파일명 : 아무런 옵션없이 사용하시면 처음부터 10행까지만을 보여줍니다.
head -n 파일명 : 파일의 첫행부터 n행까지만을 보여줍니다.
이에 대한 예를 보이면 다음과 같습니다.

[yourid@nice ~/logs]$ head  access_log

168.126.62.78 - - [14/Sep/1999:17:34:07 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1515
168.126.62.78 - - [14/Sep/1999:17:34:09 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:10 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:11 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:12 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:13 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:14 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:15 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:16 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:17 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1526

[yourid@nice ~/logs]$ head  -5 access_log

168.126.62.78 - - [14/Sep/1999:17:34:07 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1515
168.126.62.78 - - [14/Sep/1999:17:34:09 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:10 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:11 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525
168.126.62.78 - - [14/Sep/1999:17:34:12 +0900] "GET /server-status?refresh=1 HTTP/1.1" 200 1525


tail
이 명령어는 바로앞의 head라는 명령어와는 상반되는 것이며 파일의 내용을 맨 마지막부터 몇행까지 보고자 할 때에 사용합니다.

이런 tail이라는 명령어의 주용도는 계속 추가되는 파일의 내용을 모니터링하면서 내용을 확인하고자 할경우에 매우 유용하게 활용됩니다.

tail 파일명 : 아무런 옵션없이 사용하시면 마지막부터 10행까지만을 보여줍니다.
tail -n 파일명 : 파일의 마지막행부터 n행까지만을 보여줍니다.
[yourid@nice ~/logs]$ tail  access_log

210.219.170.93 - - [06/Dec/1999:19:02:41 +0900] "GET /cgi-bin/home.cgi HTTP/1.1" 404 - "http://www.m
210.219.170.93 - - [06/Dec/1999:19:02:48 +0900] "GET /logo.html HTTP/1.1" 404 - "http://www.manualan
210.117.112.49 - - [07/Dec/1999:02:04:34 +0900] "GET / HTTP/1.0" 200 513 "http://dir1.naver.com/sear
210.117.112.49 - - [07/Dec/1999:02:04:34 +0900] "GET /logo.html HTTP/1.0" 404 - "http://dir1.naver.c
210.117.112.49 - - [07/Dec/1999:02:04:34 +0900] "GET /cgi-bin/menu.cgi HTTP/1.0" 404 - "http://dir1.
210.117.112.49 - - [07/Dec/1999:02:04:37 +0900] "GET /cgi-bin/home.cgi HTTP/1.0" 404 - "http://dir1.
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET / HTTP/1.0" 200 513 "http://search.simmani.com/c
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET /cgi-bin/menu.cgi HTTP/1.0" 404 - "http://www.ma
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET /logo.html HTTP/1.0" 404 - "http://www.manualand
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET /cgi-bin/home.cgi HTTP/1.0" 404 - "http://www.ma

[yourid@nice ~/logs]$ tail -5  access_log

210.117.112.49 - - [07/Dec/1999:02:04:37 +0900] "GET /cgi-bin/home.cgi HTTP/1.0" 404 - "http://dir1.
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET / HTTP/1.0" 200 513 "http://search.simmani.com/c
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET /cgi-bin/menu.cgi HTTP/1.0" 404 - "http://www.ma
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET /logo.html HTTP/1.0" 404 - "http://www.manualand
210.221.2.125 - - [07/Dec/1999:02:29:20 +0900] "GET /cgi-bin/home.cgi HTTP/1.0" 404 - "http://www.ma

tail 이라는 명령어는 위의 두 경우 보다도 다음과 같은 용도로 많이 사용됩니다.

[yourid@nice ~/logs]$ tail -f  error_log

[Tue Dec 7 02:04:34 1999] [error] [client 210.117.112.49] File does not exist: /home/yourid/public_
[Tue Dec 7 02:04:34 1999] [error] [client 210.117.112.49] File does not exist: /home/yourid/public_
[Tue Dec 7 02:04:37 1999] [error] [client 210.117.112.49] File does not exist: /home/yourid/public_
[Tue Dec 7 02:04:37 1999] [error] [client 210.117.112.49] File does not exist: /home/yourid/public_
[Tue Dec 7 02:29:20 1999] [error] [client 210.221.2.125] File does not exist: /home/yourid/public_h
[Tue Dec 7 02:29:20 1999] [error] [client 210.221.2.125] File does not exist: /home/yourid/public_h
[Tue Dec 7 02:29:20 1999] [error] [client 210.221.2.125] File does not exist: /home/yourid/public_h
[Tue Dec 7 02:29:20 1999] [error] [client 210.221.2.125] File does not exist: /home/yourid/public_h
[Tue Dec 7 02:29:20 1999] [error] [client 210.221.2.125] File does not exist: /home/yourid/public_h
[Tue Dec 7 02:29:20 1999] [error] [client 210.221.2.125] File does not exist: /home/yourid/public_h

f라는 옵션을 사용하면 계속적으로 추가되는 파일의 내용을 실시간으로 모니터링하면서 보실 수 있습니다.
따라서 어떤 파일의 내용, 특히 에러파일의 내용이나 로그파일의 내용을 확인하고자 할 때 가장 유용하게 사용됩니다.

grep
지정된 file내의 특정문자나 단어를 검색하는 명령어
예) %grep <option> <찾을문자> <대상file>
    %grep -i hello /etc/test   → test file에서 hello라는 문자를 대소문자 구분없이 검색하여 출력

<options>
-v: 지정한 패턴과 일치하지 않는 것들을 보여준다.
-n: 일치하는 라인의 결과와 그 파일에서의 결과 라인이 몇 번째 라인인지 출력
-i: 대 소문자의 구별을 하지 않음
-c: 일치하는 라인의 수를 보여준다.
-C num: 일치하는 문자가 포함된 라인과, 지정한 num 라인만큼의 위와 아래라인을 보여준다.
        default는 두줄. ex) grep -C 5 hello /etc/test
-A num: 일치하는 문자가 포함된 라인과, 지정한 num 라인만큼의 아래라인을 보여준다.

댓글 없음:

댓글 쓰기