본문 바로가기
my_lesson/_Linux

Linux - 기본명령어_1

by boolean 2014. 12. 20.
728x90

기본명령어

1-1. man ( manual ) : 주어진 명령이나 유틸리티의 매뉴얼을 출력한다.
[옵션] 
  -a : 모든 manual page를 출력 
  -d : 디버깅 정보 출력 
  -f : whatis와 같음 
  -h : 도움말 출력 
  -k : apropos와 같음 
  -t : groff(troff)를 사용하여 프린트를 위한 형식으로 출력 
예) ls 명령어의 도움말을 보고자 할 때 

# man ls

1-2. pwd
- 현재의 디렉토리가 어디인지 알려준다. 

예) 작업중일 때 내가 어디서 작업하고 있는지 확인하고 싶을 때

# pwd

/root                         --à 현재 작업 위치가 /root 임을 말해주고 있다.



1-3. cd
- 디렉토리를 변경할 때, 디렉토리를 따로 입력하지 않으면 login한 디렉토리($HOME 또는 '~'로 표시됨)로 이동합니다.
- cd . 현재 디렉토리, cd ..  상위 디렉토리, cd / 최상위 / 디렉토리로 이동, cd ../.. 두단계 상위 디렉토리
예1) 최상위 / 에서 /root 디렉토리로 이동할 때
# cd /root ( /를 생략해도 무방 )

예2) 최상위 /root 에서 /bin 디렉토리로 이동할 때
# cd /bin



1-4. mkdir : 새로운 디렉토리를 만들 때 사용. 

[옵션]
-p : 지정된 모든 서브 디렉토리까지 함께 생성 
-m : mode mode에 해당하는 사용 허가로 디렉토리를 생성한다.

예) /root에 test라는 디렉토리를 만들려면(작업 위치는 /root일 때)

# mkdir test



1-5. rmdir : 디렉토리를 지울 때 사용 –어떤 디렉토리를 지울려면 먼저 그 디렉토리의 내용부터 제거.
[옵션]
  -p : 지우고자 하는 디렉토리의 상위 디렉토리까지 포함하여 지운다.
예) 만들어진 test 디렉토리를 지우려면
#rmdir test


rm 의 
-r은 해당 폴더안에 있는 모든 파일들까지 같이 삭제하고 자기자신 즉 폴더까지 삭제하는 옵션입니다. 
-i는 각 파일들이나 폴더를 삭제할때 삭제할것인가를 묻도록 하는 옵션입니다. 
-f는 파일이 있든없든 오류를 표출하지 않고 무조건 삭제한다는 옵션입니다. 

rm 명령을 사용할때 주로 rm -rf *를 사용합니다.(*는 모든것을 뜻함) 

그런나 이 옵션을 시스템 파일이 있는곳에서 삭제하게 되면 무조건 모든 파일, 폴더를 삭제해 버리기 때문에 잘못 
이용시 큰 재앙이 발생될수 있습니다. 

rmdir 는 폴더만 삭제하는 명령으로 폴더안에 파일이 존재하는 경우 폴더가 삭제되지 않습니다. 

따라서 rmdir를 이용하시려면 폴더안을 먼저 깨끗히 삭제하신후 해당 명령을 이용하여 폴더를 삭제해야지만 폴더가 
삭제됩니다. 

------------------------------------------------------------------------------ 
모든 디렉토리에서 Thumbs.db라는 파일 찾아보기 
find / -name Thumbs.db -print


찾아서 묻지 말고 모두 삭제하기 
find / -name Thumbs.db -exec rm -f {} \;


test 라는 디렉토리에서 *.bak 파일을 찾아서 모두 삭제하기 
find test/ -name *.bak -exec rm -f {} \;




1-6. ls : DOS의 dir과 비슷한 명령어, 디렉토리명 등을 출력

[옵션]
-a: 디렉토리 내의 모든 파일 출력
-i : 파일의 inode와 함께 출력한다.
-l : 파일 허용 여부, 소유자, 그룹, 크기, 날짜 등을 출력한다.
-m: 파일을 쉼표로 구분하여 가로로 출력한다.
-r : 정렬 옵션이 선택되었을 때, 그 역순으로 출력한다.
-s : KB 단위의 파일 크기를 출력한다.
-t : 최근에 만들어진 파일 순서대로 출력한다.
-x : 파일 순서를 세로로 출력한다.
-F : 파일의 형태와 함께 출력한다.
    출력되는 파일의 형태는 '*', '@', '|', '=' 등이며, 각각 실행 파일, 심볼릭 링크, FIFO 소켓을 나타낸다.
-R : 서브 디렉토리의 내용을 포함하여 출력한다. 
-S : 파일 크기가 큰 순서로 출력한다. 
-U : 정렬하여 출력한다. 
-1 : 라인당 한 파일씩 출력한다. 
--help : 도움말을 화면상에 나타낸다. 
--version : 'ls'의 파일 버전과 함께 출력한다.

예) /home/test 디렉토리의 모든 파일, 크기, 허용여부, 날자 등을 출력

# ls –al /home/test



1-7. cp(copy) : 파일을 다른 파일 이름으로 또는 다른 디렉토리로 복사하는 명령어
[옵션]
  -a : 가능한 한 원래 파일의 구조, 속성을 그대로 복사한다. 
  -b : 덮어쓰거나 지울 때 백업 파일을 만든다. 
  -d : 심볼릭 링크 파일 그대로 복사한다. 
      (디폴트는 연결된 원래 파일을 복사함). 
  -f : 같은 파일명을 갖는 파일이 있을 경우, 지운 후 복사한다. 
  -i : 같은 파일명을 갖는 파일이 있을 경우, 사용자 확인후 복사한다. 
  -l : 하드 링크를 만든다. 
  -p : 원시 파일의 소유자, 그룹, 허용 여부, 시간 등을 그대로 복사한다. 
  -r : 서브 디렉토리를 포함한 모든 파일 복사한다. 
  -s : 심볼릭 링크를 만든다. 
  -u : 복사할 파일이 구 버전일 경우만 복사한다. 
  -v : 복사하기 전에 각각의 파일명을 출력한다. 
  -x : 파일 시스템이같을 경우만 복사한다.
  -P : 원시 파일이 존재하는 디렉토리까지 포함하여 복사한다. 
  -R : 디렉토리를 포함하여 복사한다. 
  -S : 환경 변수 SIMPLE_BACKUP_SUFFIX에 의해 지정된 백업 꼬리말로 백업 파일 생성한다. 
예) /root 디렉토리에서 test라는 파일을 /test라는 디렉토리로 복사하려고 할 때는
# cp test /test
★ mcopy : 도스 파일 시스템으로 가거나 도스상의 파일을 복사한다. 

[옵션] 
- n : 파일을 덮어 쓸 경우에도 경고하지 않는다. 
- v : 안내문을 자세하게 보여준다. 
- m : 파일 갱신 시간을 보존한다.


1-8. mv(move) : 파일을 다른 파일 또는 디렉토리로 옮길 때 사용(파일의 이름을 바꿀 때도 사용가능) 
[옵션]
  -b : 지워지기 전에 백업본을 만든다. 
  -f : 옮겨질 디렉토리에 존재하는 파일이 있으면 덮어쓴다. 
  -i : 옮겨질 디렉토리에 존재하는 파일이 있으면 확인한다. 
  -u : 옮겨질 디렉토리에 구 버전의 파일이 있을 경우만 옮긴다. 
  -v : 옮기기 전에 파일명을 출력한다.

예) /root 디렉토리에서 작업중 test라는 파일을 /test라는 디렉토리에 옮길려면 

# mv test /test



1-9. rm(remove) - 파일을 지우는 명령어(단, 파일들이 지워지면 복구가 불가능함)

[옵션] 
  -f : 강제로 파일을 지울 수 있다. 
  -i : 지우기 전에 확인한다. 
  -r : 서브 디렉토리의 파일까지 지운다. 
  -v : 파일을 지우기 전에 지울 파일의 이름을 나타낸다. 
  -R : -r과 같다. 
예) test.txt란 파일을 지우려면

# rm test.txt

rm: remove ‘test.txt’? y           -à rm명령으로 지우면 이와 같이 물어본다 지우려면 y를 치고 완료해준다



1-10. chmod : 파일, 디렉토리의 접근권한을 변경해주는 명령어

- user, owner : u, group : g, other :o

예) 접근권한이 644(-rw-r—r--)인 test.sh라는 파일의 접근권한을 755(-rwxr-xr-x)로 변경해주고 싶을 때

방법1) # chmod 755 test.sh

방법2) # chmod u+x,g+x,o+x test.sh

방법3) # chmod +x test.sh

★ 이외에도 chown, chgrp 명령어를 통해서 파일의 소유권, 그룹을 변경시킬 수 있다.



1-11. echo : 주어진 인자를 단순히 화면에 나타나게 한다.
예1) "i love you"를 출력시키려면

# echo i love you 
예2) date를 통해서 날짜를 출력시키고 싶을때는

# echo `date`



1-12. cat : 파일의 모든 내용을 한번에 화면에 나타나게 한다. 
예) test.txt의 모든 내용을 확인하고 싶을 때

# cat test.txt


1-13. more : 주어진 파일의 내용이 많을 때 한 화면씩 출력시키고 할 때 사용한다. 
[옵션] 
  - h : 도움말(help) 
  - SPACE 또는 - z : 다음 페이지 
  - RETURN 또는 - 1 : 라인 스크롤 
  - d 또는 -^D : 반 페이지 스크롤 
  - q 또는 -Q : 종료 (quit) 
  - f : 다음 페이지 (forward) 
  - b 또는 - ^B : 이전 페이지 (back) 
  - /pattern : 검색 
  - = : 현재 라인 출력 
  - ! : 명령어 실행 
  - ^L : 화면 다시 출력 
  - f : 현재 파일명과 라인 출력 
예) root/tes.txt 파일을 페이지 단위로 출력시키려면

# more /root/test.txt 



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

리눅스 출력 결과, 화면에 한 페이지씩 스크롤, LINUX UNIX Paging


명령어의 출력 결과가 너무 길어서, 한 화면에 다 나오지 않을 때에는, 화면 출력을 한 페이지씩 짧게 나누어서 화면에 출력하는 명령어인 less 를 사용하면 됩니다.

ls /usr/bin


예를 들어 위의 명령은 /usr/bin 디렉토리의 목록을 보는 것인데, 파일이 많아서 화면이 넘칠 것입니다. 이때는

ls /usr/bin | less


이렇게 less (LESS 의 소문자) 명령을 뒤에 붙이면, 한 페이지씩 나누어서 읽기 쉽게 출력됩니다. 상하 화살표키를 누르면 아래위로 스크롤이 됩니다. PageUp / PageDown 키를 누르면 한 페이지씩 상하로 이동합니다.

less 앞에 있는 "|" 이 기호는 백슬래쉬 기호(\) 위에 있는 파이프(|) 입니다. 키보드의 플러스(+)기호 우측에 있는 것입니다. 숫자1이나 알파벳 L의 소문자가 아닙니다.


"ls /usr/bin" 명령의 출력을, "|" 이 기호를 사용하여, "less" 명령에 입력하는 것입니다. 이런 것을 파이핑(Piping)이라고 합니다.



유닉스에는 less 명령이 없을 수도 있는데 이때는 more 명령을 대신 사용하면 됩니다. 다만 more 명령은, less 와 달리 화면을 아래위로 이동하며 볼 수는 없기에 불편합니다. 그냥 Enter키를 칠 때마다 한줄씩 아래로 내려가고, 스페이스키를 누르면 한 페이지씩 내려갑니다.

1-15. head /tail

- head : 파일의 시작부분을 보여준다.

- tail : 파일의 끝부분을 보여준다.

예) #head -3 test.txt

#tail -2 test.txt


1-16. alias/unalias : 자신만의 고유한 명령어를 만들어 사용

예) # alias dir ls –al         à dir을 입력하면 ls –al과 같은 동작을 하게 한다.

   # unalias dir



1-17. exit/logout

- exit : 현재의 shell을 빠져 나올 때 사용

- logout : 로그인 shell을 종료



1-18. history : shell의 명령 히스토리를 표시해준다.

예) # history 5     -à 최근 5개의 명령어를 보여준다.



1-19. 리디렉션(입출력 방향전환)

예) test.txt파일을 생성할 때 

# cat > test.txt       --- 내용 입력 완료는 Ctrl+D를 누른다

예) test.txt파일에 test1.txt라는 파일의 내용을 추가하고 싶을 때 

# cat test1.txt >> test.txt



1-20. 파이프라인( | ) : 여러 명령을 함께 사용할 때, 한 명령의 결과가 다른 명령으로 전송되는 통로

명령어를 하나 하나씩 일일이 치지 않고도 한꺼번에 여러 가지를 실행할 수 있어 편리하다. 
예) ls화면을 한 페이지씩 출력하려면

# ls –al | more              -à 중단 하려면 q를 치면 된다. 



1-21. grep : 주어진 패턴을 포함하는 파일의 라인을 출력시킨다.

[옵션] 
-C : 일치하는 문장의 상하 두 라인까지 포함하여 출력한다. 
-V : 버전과 함께 출력한다. 
-b : Byte 오프셋과 함께 출력한다. 
-c : 일치하는 라인의 갯수를 출력한다. 
-h : 파일명은 출력하지 않는다. 
-i : 대소문자 구분하지 않는다. 
-l : 일치하는 내용을 가지는 파일명만 출력한다. 
-n : 일치하는 내용을 가지는 라인 번호를 출력한다. 
-s : 에러 메시지만을 출력한다. 
-v : 일치하지 않는 내용을 출력한다. 
-w : 한 단어로 일치해야 출력한다. 
-x : 전체 라인이 일치해야 출력한다. 

예) rm이라는이름이 들어간 파일을 ls중에서 찾을 때

# ls | grep rm 

1-22. 링크(link)만들기

- 심볼릭링크 : 파일 또는 디렉토리의 내용이 아니라 해당 파일 또는 디렉토리의 포인터를 포함하고있는 파일

예) /home/test/test.txt의 파일에 대한 test라는 심볼릭링크를 만들고 싶을 때

# ln –s /home/test/test.txt test          --à test만 입력하여도 /home/test/test.txt의 파일이 사용된다.

- 하드링크 : 파일의 실제 내용에 대한 정보를 공유(원본파일의 크기와 동일하게 생성된다.)



1-23. mount/unmout : 파일 시스템의 확장(cd-rom, fdd, usb 등)

# mount -t iso9660 /dev/cdrom /mnt/cdrom   à CD-Rom 인식

# unmout /mnt/cdrom

★ 요즘은 자동인식이 되어 잘 사용하지 않는다.


1-24. find : 원하는 파일을 디렉토리를 탐색하면서 지정된 조건에 만족하는 파일을 찾는다.

[옵션]

-name : 찾고자 하는 파일의 이름을 정하면 된다. 
-perm : 파일의 권한 (permission)이 일치하는 것을 찾는다. 
-user : 사용자의 ID에 따라서 검색한다. 
-atime : 최근 며칠내에 접속한 파일을 검색한다
-newer : 최근에 갱신된 모든 파일을 검색한다. 

예) test.txt라는 이름을 가진 파일을 찾으려면

- find [찾을위치] [옵션] 파일명

# find / -name test.txt


파일 찾기 (파일명 검색)


현재 디렉토리에서, pl 확장자를 가진 모든 파일 찾기
find -name '*.pl'

(현재 디렉토리 밑의 하위 디렉토리까지 다 찾습니다.)


루트에서부터, 즉 전체 하드에서, pl 확장자를 가진 모든 파일 찾기
find / -name '*.pl'



전체 하드 디스크에서, 파일명이 ab 로 시작하는 모든 파일 찾기
find / -name 'ab*'



전체 하드 디스크에서, 파일명이 .bash 로 시작하는 모든 파일 찾기
find / -name '.bash*'



전체 하드 디스크에서, 파일명이 .bash 로 시작하는 모든 파일 찾기
+ ls 명령 형식으로 출력
find / -name '.bash*' -ls

뒤에 -ls 라는 옵션을 붙이면 됩니다.




디렉토리명 찾기


전체 하드 디스크에서, 디렉토리 이름이 et 로 시작하는 모든 디렉토리 찾기
find / -name 'et*' -type d


주의! 옵션 순서를 바꾸면 에러가 납니다.

find 명령으로 찾은 목록 결과를, 파일로 저장하는 법


find / -name '*.pl'

예를 들어 위와 같은 명령어로, 하드의 모든 .pl 확장자의 파일들을 찾았는데, 그 화면 출력 결과를 텍스트 파일로 저장하려면 재지향(Redirection)을 사용하면 됩니다.


즉,

find / -name '*.pl' > out.txt

이렇게 명령어의 끝에 > 이런 부등호를 넣고, 저장할 파일명을 입력하면 됩니다. (단, 부등호의 방향이 거꾸로 되면 안됩니다.)

이 경우 find 로 찾은 파일명들이 out.txt 라는 텍스트 파일로 하드에 저장됩니다.


[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

[정보보안,리눅스,유닉스,ccna,c언어,자바] [tip] find - 파일찾기

find 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾는다. 

사용법을 살펴보자. 
find 대상디렉토리 검색 조건 처리 방법 
  

대상 디렉토리 : 찾기를 시작할 디렉토리를 지정한다. 

검색 조건 : 찾을 조건을 지정한다. 
-name filename 파일 이름으로 찾는다. 
  
-atime +n access time 이 n일 이전인 파일을 찾는다. 
-atime -n access time이 n일 이내인 파일을 찾는다. 
-mtime +n n일 이전에 변경된 파일을 찾는다. 
-mtime -n n일 이내에 변경된 파일을 찾는다. 
-perm nnn 파일 권한이 nnn인 파일을 찾는다. 
-type x 파일 타입이 x인 파일들을 찾는다. 
-size n 사이즈가 n이상인 파일들을 찾는다. 
-links n 링크된 개수가 n인 파일들을 찾는다. 
  
-user username user이름으로 찾는다. 
  
-group groupname group 이름으로 찾는다. 
  

처리방법 : 찾은 파일을 어떻게 할 것인지를 지정한다. 
-print 찾은 파일의 절대 경로명을 화면에 출력한다. 
-exec cmd {};  찾은 파일들에 대해 cmd 명령어를 실행한다. 
  

예를 들어보자. 
$ find /user4 -name test* -print 
  
/user4 아래에서 파일이름이 test로 시작하는 모든 파일을 찾아서 화면에 보여준다. 

$ cd / 
$ find . -name ping -print 
  
root 디렉토리 밑에서 파일이름이 ping인 파일을 찾아 절대 경로명을 화면에 출력한다. 

$ cd / 
$ find /usr -name *.c -print 
  
/usr 밑에 이름이 .c로 끝나는 모든 파일들을 찾아 경로명을 보여준다. 

$ cd / 
$ find $home -name who.txt -print 
  
home 디렉토리 아래에 who.txt라는 파일을 찾아 경로명을 보여준다. 

$ cd / 
$ find . -type d -print 
  
파일 타입이 d인 파일을 찾아 경로명을 화면에 출력한다. 

$ cd / 
$ find /dev -type c -print 
  
/dev디렉토리 아래에서 파일 타입이 c인 파일을 찾아 경로명을 보여 준다. 

$ cd / 
$ find . -perm 700 -print 
  
파일 권한이 700인 파일을 찾아준다. 

$ cd / 
$ find . \ ( -perm 400 -o -perm 200 ) -print 
  
파일 권한이 400인 파일과 200인 파일을 찾아준다. 
(주의 : “\”의 앞뒤에 space 가 반드시 있어야 한다.) 

$ cd / 
$ find . -size +1024 -print 
  
파일의 블럭 크기가 1024 이상인 파일을 찾아준다. 

$ cd / 
$ find . -name core -size +2048 -print 
  
파일 이름이 core이고 크기가 2048블럭 이상인 파일을 찾아준다. 

$ cd / 
$ find . -user unix01 -print 
  
파일 소유자가 unix01인 파일을 찾아준다. 

$ cd / 
$ find . -group unix -print 
  
사용자그룹이 unix인 파일을 찾아준다. 

$ cd / 
$ find . -atime +30 -print 
  
30일 이전에 억세스되었던 파일을 찾는다. 

$ cd / 
$ find . -mtime -7 -print 
  
7일 이내에 수정된 적이 있는 파일을 찾는다. 

$ cd / 
$ find . -name core -exec ls -l {} \; 
  
이름이 core인 파일을 찾아서 ls -l 한다. 

$ cd / 
$ find . -name \*.c -atime +30 -exec ls -l {} \; 
  
30일 이전에 억세스된 파일 중 *.c를 찾아 ls -l 한다. 

$ cd / 
$ find . -name core -exec rm -i {} \; 
  
현재 디렉토리 밑에서 이름이 core인 파일을 찾아 지운다(지우기 전에 정말 지울 지를 물어본다.)


'my_lesson > _Linux' 카테고리의 다른 글

Linux - 종합 기초  (0) 2014.12.21
Linux - nano(pico) editer 사용법  (0) 2014.12.20
Linux - 기본명령어_2  (0) 2014.12.20
Linux - vi편집기 사용법  (2) 2014.12.20
ubuntu_server  (0) 2014.12.14

댓글