Ubuntu

[Linux] 명령어

디지몬진화 2024. 4. 14. 15:55

01. chmod  (Change Mode)

- 디렉터리에 대한 접근 권한 변경

 

$ chmod [option] [mode] <파일>

 

 

02. chown (Change Owner)

- 파일의 소유자를 변경

 

#chown root test.txt       →     test.txt파일의 소유자를 root로 변경

 

 

 

 

03. sudo (SuperUser Do)

- 수퍼유저의 권한 부여

 

# sudo chwon root test.txt       →    위의 chown을 예시로 들면 chown만 썼을 때 변경되지 않았던 부분을 권한을 부여하여 변경                                                         시켜줌

 

 

 

 

04. chgrp (Change Group)

- 파일의 그룹 소유자 변경

 

# sudo chgrp adm test.txt      →      test.txt파일의 그룹 소유자를 adm으로 변경

 

 

※ chown과 chgrp를 하나의 명령으로 적용

# sudo chown root : adm test.txt      →       test.txt 파일의 소유자를 root로 그룹 소유자를 adm으로 한번에 변경

 

 

 

 

05. '>', '>>'

- 표준 출력의 redirection : 표준 출력으로 나가는 내용들의 방향을 바꾸는 것

 

# ls -l > dir_list      →     ls -l 의 결과를 dir_list라는 파일을 생성하여 그 파일로 보냄

# date >> dir_list      →     date출력 내용을 dir-list라는 기존파일에 append(첨부)

 

 

 

 

06. '<', '<<'

- 표준 입력의 redirection : 표준 입력을 파일로 redirection시키고 싶은 경우

 

# sort < input      →     input 파일에 sort 명령어를 실행

 

※표준입력과 출력을 함께 Redirction하는 것도 가능

ex) sort < unsorted > sorted

            입력               출력

 

 

 

 

07. '|'

- 한 프로세스의 표준 출력을 다른 프로세스의 표준 입력에 연결

 

$ sort input | lpr       →      sort프로그램의 결과를 lpr로 보냄

 

 

 

08. tee

- 자신에게 들어오늘 입력 데이터를 표준 출력으로 출력할 뿐 아니라 지정된 파일로도 보냄

$ sort < unsorted | tee sorted

(일반적으로 파이프라인과 함께 사용하여, 출력 결과를 화면으로 표시함과 동시에 파일로 저장하기 위하여 사용)

 

 

 

 

09. ls (List)

- 해당 디렉터리(폴더) 에 있는 파일의 목록을 나열하는 명령

- Windows 명령 프롬프트의 dir 명령과 같은 역할

 

$ ls                                    → 현재 디렉터리의 파일 목록을 표시

$ ls -a                                → 현재 디렉터리의 목록(숨김 파일 포함)을 표시

$ ls -l                                 → 현재 디렉터리의 목록을 자세히 표시

$ ls -R                                → 지식 디렉토리를 재귀적으로 탐색하는 파일 나열

$ ls - 1                                → 하나의 항목을 한 줄에 나열

$ ls - r                                 → 반대로 나열

 

$ ls *.cfg                             → 확장자가 cfg인 목록을 표시

$ ls -l /etc/sysconfig/a*             → /etc/sysconfig 디렉터리 중 

                                          앞 글자가 'a'인 것의 목록을 자세히 표시

$ ls /etc/sysconfig /etc/sysconfig    → 디렉터리의 목록을 표시

 

 

10. cd (Change Directory)

- 디렉터리를 이동하는 명령

 

# cd                       → 현재 사용자의 홈 디렉터리로 이동,

                                  만약 현재 사용자가 root면 '/root' 디렉터리로 이동

# cd ..                    → 바로 상위의 디렉터리로 이동

                                  '..'은 현재 디렉터리의 부모 디렉터리를 의미,

                                  예를 들어 현재 디렉터리가 /etc/sysconfig면 

                              바로 상위인 '/etc' 디렉터리로 이동

#cd ~                      →  사용자의 홈 디렉터리로 이동

 

# cd ~rocky rocky        → 사용자의 홈 디렉터리로 이동

# cd /etc/sysconfig      → /etc/sysconfig 디렉터리로 이동(절대 경로)

# cd ../etc/sysconfig    → 상대 경로로 이동.

                             현재 디렉터리의 상위('..')로 이동한 후 

                             다시 /etc/sysconfig로 이동

 

'.' 와 '...'

‘.’(현재 디렉터리)와 ‘..’ (현재 디렉터리의 상위 디렉터리)는 자주 사용되는 명령어입니다. 하지만 비슷하게 생겼다 보니 리눅스 초보자 입장에서는 혼란스러울 수 있습니다. 

'~' (사용자의 홈 디렉터리)

 

예를 들어 cp ../lib/ abc . 명령은 ‘현재 디렉터리의 상위 디렉터리(‘..’) 아래에 있는 ‘/lib’ 디렉터리의 abc 파일을 현재 디렉터리 (‘.’)에 복사하라’는 의미입니다.

 

 

 

11. pwd  (Print Working Directory)

- 현재 디렉터리의 전체 경로를 화면에 표시합니다.

 

# pwd    →    현재 작업 중인 디렉터리의 경로(위치)를 출력

 

 

숨김 파일 및 현재 디렉터리

리눅스는 숨김 파일(hidden file)이라는 속성이 별도로 존재하지 않습니다. 파일 이름이나 디렉터리의 제일 앞 글자를 ‘.’으로 지정하면 자동으로 숨김 파일이 됩니다.

 

한편 리눅스를 처음 사용할 때 익숙하지 않은 것 중 하나가 ‘현재 디렉터리’라는 개념인데요. 예전의 도스에서도 이러한 개념이 있었지만, Windows 시대에 접어들면서 거의 사용하지 않게 되었죠. 리눅스에 익숙하지 않은 사용자에게 자주 사용하도록 권장하는 명령이 pwd입니다. cd 명령과 함께 pwd 명령을 자주 사용하면 현재 디렉터리 위치를 명확히 파악할 수 있어 리눅스의 전체적인 디렉터리 구조를 더욱 빨리 익힐 수 있습니다.

 

 

 

12. mkdir  (Make Directory)

- 새로운 디렉터리를 생성. 생성된 디렉터리는 명령을 실행한 사용자의 소유가 됩니다.

# mkdir abc            →        현재 디렉터리 아래에 /abc 이름의 디렉터리 생성

 

# mkdir -p /def/fgh    →       /def/fgh 디렉터리를 생성. 만약 /fgh 디렉터리의 부모 디렉터리인

                           /def 디렉터리가 없다면 자동 생성(p는 Parents의 약자)

 

 

 

13. rmdir  (Remove Directory)

- 디렉터리를 삭제. 해당 디렉터리의 삭제 권한이 있어야 하며 디렉터리는 비어 있어야 합니다. 파일이 있는 디렉터리를 삭제하려면 rm -r 명령을 실행해야 합니다.

 

# rmdir abc    →    /abc 디렉터리를 삭제

 

 

 

14. pushd

- 현재 디렉터리를 저장하고, 지정된 디렉터리로 이동

$ pushd <directory> 

 

 

 

15. popd

- 가장 최근에 저장한 디렉터리로 돌아감

 

 

 

16. cp  (Copy) 

- 파일이나 디렉터리를 복사. 새로 복사한 파일은 복사한 사용자의 소유가 됩니다. 그러므로 명령을 실행하는 사용자는 해당 파일의 읽기 권한이 필요

 

# cp abc.txt cba.txt     → abc.txt를 cba.txt라는 이름으로 바꿔서 복사

# cp -r abc cda         → 디렉터리 복사

 

 

 

17. mv  (Move)

- 파일이나 디렉터리의 이름을 변경하거나 다른 디렉터리로 옮길 때 사용합니다.

 

# mv abc.txt /etc/sysconfig/     → abc.txt을 /etc/sysconfig/ 디렉터리로 이동

# mv aaa bbb ccc ddd            → aaa, bbb, ccc 파일을 /ddd 디렉터리로 이동

# mv abc.txt www.txt            → abc.txt의 이름을 www.txt로 변경해서 이동

 

 

 

18. rm  (ReMove)

- 파일이나 디렉터리를 삭제. 당연히 파일이나 디렉터리를 삭제할 권한이 있어야 해당 명령을 실행할 수 있습니다. 단 root 사용자는 모든 권한이 있으므로 rm 명령 사용에 제약이 없습니다.

 

# rm abc.txt       → 해당 파일을 삭제(내부적으로 'rm -i'로 연결됨)

# rm -i abc.txt    → 삭제 시 정말 삭제할 지 확인하는 메시지를 표시

# rm -f abc.txt    → 삭제 시 확인하지 않고 바로 삭제(f는 Force의 약자)

# rm -r abc        → 해당 디렉터리를 삭제(r은 Recursive의 약자)

# rm -rf abc       → r 옵션과 f 옵션을 합친 것으로 abc 디렉터리와 그 아래에 있는

                      하위 디렉터리를 강제로 전부 삭제(편리하지만 주의해서 사용해야 함)

 

*, ?, [ ]

* : 임의의 문자열을 의미                        

? : 단일 문자를 의미                              

[ ] : [ ] 사이의 단일 문자를  의미             

$ ls b*             →      b로 시작하는 모든 파일 검색

$ ls b???         →      b_ _ _ 로 된 파일 검색

$ ls [ a~s ]       →      a 와 s 사이의 값으로 된 파일 검색

 

 

 

 

19. cat (conCATenate)

- 파일 내용을 화면에 출력. 여러 파일을 나열하면 파일을 연결해서 출력합니다.

 

# cat a.txt    → a.txt 파일의 내용을 화면에 출력

 

 

 

20. more

- 텍스트 형식으로 작성된 파일을 페이지 단위로 화면에 출력합니다. [Space]를 누르면 다음 페이지로 이동하며, [B]를 누르면 앞 페이지로 이동합니다. [Q]를 누르면 명령을 종료합니다.

 

# more anaconda-ks.cfg

# more +30 anaconda-ks.cfg    → 30행부터 출력

 

 

 

21. find

- 디렉터리 계층에서 파일을 검색

 

# find abc           

 

 

 

22. ps  (Process Status)

- 현재 시스템에서 실행되고 있는 프로세스들의 현재 상태를 출력

 

# ps aux          →       시스템의 모든 프로세스

# ps -r              →        해당 쉘에 의해 실행되고 있는 프로세스만 출력

# ps -p            →        프로세스 아이디로 필터링

 

22-1. pstree

- ps를 그림처럼 보여주는 명령어

 

# pstree -a        →       해당 프로세스로 전달된 파라미터를 같이 보여줌

# pstree -h        →       현재 프로세스와 그 조상들을 하이라이트하여 보여줌

# pstree -n        →       같은 부모를 가진 프로세스들을 pid로 정렬함

# pstree -s        →       특정 프로세스의 부모 프로세스들을 보여줌

 

 

 

 

23.top

- 프로세스들의 상태를 출력

# top

 

※ ctrl+c

ctrl+c를 눌러서 무한 반복을 실행하고 있던 프로그램을 강제 종료 (q로도 가능)

 

 

 

 

24. kill

- 프로세스에 signal을 보내는 명령

 

# kill -9 100       →      프로세스 100을 종료

#kill -l -1            →      모든 프로세스 죽이기

 

 

 

 

25. tar  (Tape ARchive)

- 파일과 디렉터리를 압축 또는 해제

$ tar [options] <아카이브 파일 이름> <아카이브로 묶을 파일 경로>

$ tar cf dir1.tar dir1

 

[options]

-c : 생성

-x : 해제

-t : 목록

-v : 자세한 정보

-f filename: 압축할 파일 이름 지정

-z : gzip으로 압축된 아카이브 생성 혹은 해제

-j : bzip으로 압축된 아카이브 생성 혹은 해제

 

 

 

 

26. bzip2 / gzip

- tar와 달리 압축 기능을 수행

- bzip2 사용법

$ bzip2 <file 이름>       →    압축

$ bzip2 -d <file 이름>    →    압축 해제

- gzip 사용법

$ gzip <file 이름>    →    압축

$ gzip -d <file 이름>    →  압축 해제

 

 

ex) $ tar -cjf file.bz2 files-directories     →    files-directories를 tar하고, file.bz2로 압축(아카이빙과 동시에)

ex) $ tar xjf file.bz2      →    압축해제 및 untar file.bz2

 

 

 

 

 

27. df (Disk free)

- 파일 시스템의 남은 공간 출력

 

$ df -h      →    사람이 읽을 수 있는 단위로 출력 (MB, GB 단위로)

 

 

 

 

28. du  (Disk Usage)

- 파일 공간 사용량 출력

 

$ du -h      →     사람이 읽을 수 있는 단위로 출력

$ du -s      →     총계만 표시

 

 

 

 

29. man

- 대상 응용에 대한 도움말을 보여줌

 

$ man <대상 명령어>

 

 

 

 

30. touch

- 크기가 0인 새 파일을 생성하거나 생성된 파일이 존재한다면 파일의 최종 수정 시간을 변경합니다.

 

# touch abc.txt    → 파일이 없는 경우 abc.txt라는 빈 파일을 생성하고,

                                abc.tx 파일이 있는 경우 최종 수정 시간을 현재 시각으로 변경

 

 



 

31. head, tail

- 텍스트 형식으로 작성된 파일의 앞 10행 또는 마지막 10행만 화면에 출력합니다.

 

# head anaconda-ks.cfg       → 해당 파일의 앞 10행을 화면에 출력

# head -3 anaconda-ks.cfg    → 앞 3행만 화면에 출력

# tail -5 anaconda-ks.cfg      → 마지막 5행만 화면에 출력

 

 

 

 

 

32. less

- more 명령과 용도가 비슷하지만, 기능이 더 확장되어 있습니다. more에서 사용하는 키와 더불어 화살표 키나 [PageUp], [PageDown]도 사용할 수 있습니다.

 

# less anaconda-ks.cfg

# less +30 anaconda-ks.cfg    → 30행부터 출력

 

 

 

 

 

33. file

- 파일의 종류를 표시합니다.

# file anaconda-ks.cfg    → anaconda-ks.cfg는 텍스트 파일이므로

                              아스키 파일(ASCII)로 표시

# file /dev/sr0            → sr0은 DVD 장치이므로 block special로 표시

 

 

 

 

 

34. clear

- 현재 사용 중인 터미널 화면을 깨끗하게 지웁니다.

 

# clear