#!if this['this'] == null
'''이 문서는'''#!if this['this'] != null
'''이 문단은'''#!if 토론주소2 == null
''' [[https://namu.wiki/thread/AfraidSubstantialModernEar|토론]]을 통해 이전의 문서명 고정에 대한 합의안을 파기하기로 합의되었습니다.''' 합의된 부분을 토론 없이 수정할 시 [[나무위키:기본방침/이용자 관리 방침#편집권 남용|편집권 남용]]으로 간주되어 제재될 수 있습니다.#!if 토론주소2 != null
''' 아래 토론들로 합의된 편집방침이 적용됩니다.''' 합의된 부분을 토론 없이 수정할 시 [[나무위키:기본방침/이용자 관리 방침#편집권 남용|편집권 남용]]으로 간주되어 제재될 수 있습니다.{{{#!wiki style="text-align:center;"
{{{#!folding [ 내용 펼치기 · 접기 ]
{{{#!wiki style="margin: 0px -5px;"
||<table width=100%><tablebordercolor=transparent><tablebgcolor=transparent><(>'''[[https://namu.wiki/thread/AfraidSubstantialModernEar|토론]] - 이전의 문서명 고정에 대한 합의안을 파기하기'''
----
'''[[https://namu.wiki/thread/|토론]] - 합의사항2'''
----
{{{#!if 토론주소3 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항3'''
----
}}}{{{#!if 토론주소4 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항4'''
----
}}}{{{#!if 토론주소5 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항5'''
----
}}}{{{#!if 토론주소6 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항6'''
----
}}}{{{#!if 토론주소7 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항7'''
----
}}}{{{#!if 토론주소8 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항8'''
----
}}}{{{#!if 토론주소9 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항9'''
----
}}}{{{#!if 토론주소10 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항10'''
----
}}}{{{#!if 토론주소11 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항11'''
----
}}}{{{#!if 토론주소12 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항12'''
----
}}}{{{#!if 토론주소13 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항13'''
----
}}}{{{#!if 토론주소14 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항14'''
----
}}}{{{#!if 토론주소15 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항15'''
----
}}}{{{#!if 토론주소16 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항16'''
----
}}}{{{#!if 토론주소17 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항17'''
----
}}}{{{#!if 토론주소18 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항18'''
----
}}}{{{#!if 토론주소19 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항19'''
----
}}}{{{#!if 토론주소20 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항20'''
----
}}}{{{#!if 토론주소21 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항21'''
----
}}}{{{#!if 토론주소22 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항22'''
----
}}}{{{#!if 토론주소23 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항23'''
----
}}}{{{#!if 토론주소24 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항24'''
----
}}}{{{#!if 토론주소25 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항25'''
----
}}}{{{#!if 토론주소26 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항26'''
----
}}}{{{#!if 토론주소27 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항27'''
----
}}}{{{#!if 토론주소28 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항28'''
----
}}}{{{#!if 토론주소29 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항29'''
----
}}}{{{#!if 토론주소30 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항30'''
----
}}}{{{#!if 토론주소31 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항31'''
----
}}}{{{#!if 토론주소32 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항32'''
----
}}}{{{#!if 토론주소33 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항33'''
----
}}}{{{#!if 토론주소34 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항34'''
----
}}}{{{#!if 토론주소35 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항35'''
----
}}}{{{#!if 토론주소36 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항36'''
----
}}}{{{#!if 토론주소37 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항37'''
----
}}}{{{#!if 토론주소38 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항38'''
----
}}}{{{#!if 토론주소39 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항39'''
----
}}}{{{#!if 토론주소40 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항40'''
----
}}}{{{#!if 토론주소41 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항41'''
----
}}}{{{#!if 토론주소42 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항42'''
----
}}}{{{#!if 토론주소43 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항43'''
----
}}}{{{#!if 토론주소44 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항44'''
----
}}}{{{#!if 토론주소45 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항45'''
----
}}}{{{#!if 토론주소46 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항46'''
----
}}}{{{#!if 토론주소47 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항47'''
----
}}}{{{#!if 토론주소48 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항48'''
----
}}}{{{#!if 토론주소49 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항49'''
----
}}}{{{#!if 토론주소50 != null
'''[[https://namu.wiki/thread/|토론]] - 합의사항50'''
----
}}}||}}}}}}}}}1. 개요2. 디렉토리/파일 관련
2.1. ls2.2. pwd2.3. cd2.4. mkdir2.5. rmdir2.6. rm2.7. shred2.8. ln2.9. touch2.10. cp2.11. mv2.12. cat2.13. chmod2.14. chown2.15. chgrp2.16. awk2.17. dd2.18. sed2.19. less
3. 정보 표시 관련3.1. history3.2. man page3.3. top 및 htop3.4. uname3.5. find3.6. who3.7. w3.8. ps3.9. pstree3.10. tee3.11. stat3.12. df
4. 시스템 관리 관련5. sudo6. alias7. grep1. 개요
Unix 및 Linux에서 사용할 수 있는 명령어들을 정리한 문서.대부분은 POSIX 표준으로 관리되는 툴들이며, 대부분이 coreutils에 포함되어 있다.
2. 디렉토리/파일 관련
2.1. ls
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[ls(UNIX)#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[ls(UNIX)#|]] 부분을 참고하십시오.특정 디렉토리의 상세 내용을 출력한다.
2.2. pwd
현재 작업 중인 디렉토리의 경로를 출력한다.Print Working Directory 를 의미한다.
2.3. cd
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[CD(동음이의어)#s-2.3|2.3]]번 문단을#!if 문단 == null & 앵커 != null
의 [[CD(동음이의어)#|]] 부분을 참고하십시오.디렉토리를 이동할 때 사용하는 명령어이다.
다른 대부분의 기본 명령어(예: ls, mv, cp, rm, mkdir 등)들은 모두 별도의 실행 파일이 /bin 디렉토리 밑에 존재한다.[1] 하지만, cd 는 셸 자체 명령어이기에 /bin/cd 라는 파일은 존재하지 않는다.
2.4. mkdir
MaKeDIRectory의 약자로, 디렉토리를 생성할 때 사용하는 명령어이다.mkdir <만들 디렉토리 이름>2.5. rmdir
ReMoveDIRectory의 약자로, 빈 디렉토리를 삭제할 때 사용한다.2.6. rm
ReMove의 약자로 파일이나 디렉토리를 삭제할 때 사용한다.rm <옵션> <삭제할 파일명>| 옵션 | 설명 |
| -f, --force | 강제로 삭제한다. |
| -r, -R, --recursive | 재귀적으로 디렉토리와 내부 컨텐츠를 삭제한다. |
| -d, --dir | 빈 디렉토리를 삭제한다. |
| --one-file-system | 어떤 디렉토리를 삭제할 때, 그 디렉토리의 파일시스템과 다른 파일시스템이 특정 디렉토리로 마운트 되어있으면 그 디렉토리의 내부 컨텐츠는 삭제하지 않는다. |
| -v, --verbose | 무슨 작업을 하는지 설명한다. |
2.7. shred
위 rm 명령과 달리 대상파일에 임의의 데이터를 덮어쓰기하여 복구를 힘들게 하는 명령이다.shred \[옵션\] <대상파일 \[대상파일 2\]...>
| 옵션 | 설명 |
| -f, --force | 필요시 권한을 변경하여 덮어쓰기할 수 있도록 한다. |
| -n, --iterations=N | N만큼 파일 내용을 재작성한다. (기본값: 3) |
| --random-source=FILE | 제공한 FILE 내 임의의 바이트를 사용한다. |
| -u, --remove | 덮어쓰기 후 대상 파일을 잘라서 제거한다. |
| -v, --verbose | 무슨 작업을 하는지 설명한다. |
| -z, --zero | 마지막에 0을 덮어쓰기하여 단편화된 파일을 숨긴다. |
| -s, --size=N | N 바이트 만큼 파쇄를 시도한다. (K, M, G 단위 입력 가능) |
2.8. ln
링크 파일[2]을 생성하는 명령어이다.ln <옵션> <원본 파일명> <생성될 링크의 파일명>
| 축약 | 전체 | 비고 |
| -P | --physical | 하드 링크를 생성한다. |
| -f | --force | 생성할 때 그 이름으로 존재하는 링크파일을 없앤다. |
| -s | --symbolic | 심볼릭 링크를 생성한다. |
| -n | --no-dereference | 생성된 링크 파일을 일반 파일처럼 대한다. |
2.9. touch
아무 것도 없는 빈 파일을 생성한다.touch <생성할 파일명>만약 이미 존재하는 파일에 touch 를 실행하면, 내용은 변경되지 않은 채, 파일의 최종 수정일을 현재로 바꾼다.
2.10. cp
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[CP#s-1|1]]번 문단을#!if 문단 == null & 앵커 != null
의 [[CP#|]] 부분을 참고하십시오.CoPy의 약자로, 파일을 복사하는 데 사용한다.
cp <파일명> <파일을 복사할 해당 디렉토리>2.11. mv
MoVe의 약자로, 파일을 옮기거나 파일명을 수정할 때 사용하는 명령어이다.mv <파일명> <파일을 옮길 해당 디렉토리>mv <수정 전 파일명> <수정 후 파일명>2.12. cat
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[cat(UNIX)#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[cat(UNIX)#|]] 부분을 참고하십시오.파일의 내용을 화면에 텍스트로 출력해주는 용도의 명령어이다.
2.13. chmod
파일이나 디렉토리의 권한을 변경할 때 사용한다. ls에 -l을 붙여 명령어를 실행시키면 왼쪽에-rwxr-xr-- 이런 식으로 뜨는데, 여기서 맨 왼쪽의 -는 파일의 형식을 나타내고,[3] r은 읽기(Read), w는 쓰기(Write), x는 실행(eXecute)를 의미한다.[4]읽기는 4의 값을 가지고, 쓰기는 2, 실행은 1의 값을 가진다. 그래서 rw-의 값을 만들려면 4+2를 하여 6, r-x는 5, rwx는 7의 값을 가진다. 그래서 어떤 파일이나 디렉토리의 권한을 모두 읽고 쓰게 만들려면
chmod 777 <파일 또는 디렉터리명>| -v | 진단 메시지 출력 |
| -f | 에러 메시지를 출력하지 않는다. |
| -R | 하위 디렉터리와 파일에도 적용 |
2.14. chown
파일이나 디렉토리의 소유주를 변경하는 데 사용된다.chown <사용자명> <파일이나 디렉토리명>2.15. chgrp
파일이나 디렉토리의 소유 그룹을 변경하는 데 사용된다.chgrp <그룹명> <파일이나 디렉토리명>2.16. awk
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[awk#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[awk#|]] 부분을 참고하십시오.텍스트 처리를 위한 스크립트 언어.
2.17. dd
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[디디#s-9|9]]번 문단을#!if 문단 == null & 앵커 != null
의 [[디디#|]] 부분을 참고하십시오.파일을 생성하거나, 드라이브 내용을 파일로 저장하거나 복사할 수 있는 명령어.
2.18. sed
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[sed(UNIX)#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[sed(UNIX)#|]] 부분을 참고하십시오.문자 스트림을 수정하고 편집해 내보낼 수 있는 명령어.
2.19. less
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[less(UNIX)#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[less(UNIX)#|]] 부분을 참고하십시오.UNIX계열 운영체제의 페이저.
3. 정보 표시 관련
3.1. history
지금까지 사용했던 명령어 역사를 출력한다.3.2. man page
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[man page#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[man page#|]] 부분을 참고하십시오.명령어에 대한 매뉴얼을 표시하는 명령어이다.
3.3. top 및 htop
top은 현재 실행되고 있는 프로세스에 관한 정보를 출력하는 명령어이다. 작업 관리자와 같은 개념이다.htop은 top의 강화판이며 기본적으로 설치되어 있지 않다.
위 형식으로 작성하여 사용한다.
3.4. uname
현재 사용하고 있는 운영체제에 관한 정보를 표시한다.| 축약 | 전체 | 비고 |
| -a | --all | 현재 시스템에 관한 모든 정보를 출력한다. |
| -s | --kernel-name | 커널의 이름을 출력한다. |
| -r | --kernel-release | 커널 릴리즈 정보를 출력한다. |
| -v | --kernel-version | 커널 버전 정보를 출력한다. |
3.5. find
파일을 찾는 명령어이다.find <파일을 찾을 디렉토리> <옵션>| 옵션 | 설명 |
| -name <파일명> | 파일명으로 찾는다. |
| -executable | 실행 가능한 파일을 찾는다. |
| -ctime <시간> | <시간>일 전에 변경된 파일을 찾는다. |
| -empty | 빈 파일을 찾는다. |
| -amin <시간> | <시간>분 전에 접근된 파일을 찾는다. |
| -cmin <시간> | <시간>분 전에 변경된 파일을 찾는다. |
| -perm <권한> | <권한> 권한을 가진 파일을 찾는다. |
| -readable | 현재 사용자가 읽기 권한이 있는 파일을 찾는다. |
| -type <b,c,d,p,f,l,s> | 파일 종류로 찾는다. b는 블럭 디바이스, c는 캐릭터 디바이스, d는 디렉토리, f는 일반 파일, l은 링크, s는 소켓이다. |
| -uid <사용자 아이디> | 해당 사용자 아이디가 소유한 파일을 찾는다. |
3.6. who
현재 로그인된 사용자의 정보를 출력한다.3.7. w
현재 로그인된 사용자가 실행 중인 작업을 볼 수 있다.3.8. ps
현재 실행중인 프로세스를 보여준다.| 옵션 | 설명 |
| -A , -e | 모든 프로세스를 보여준다. |
| -a | 세션 리더[5]와 백그라운드 프로세스를 제외한 모든 프로세스를 보여준다. |
| -d | 세션 리더를 제외한 프로세스를 보여준다. |
| -N, --deselect | 이 옵션을 넣으면 넣은 옵션의 반대조건을 만족하는 프로세스를 보여준다. |
| T | 현재 터미널과 연관된 프로세스를 보여준다. |
| r | 실제로 작동중인[6] 프로세스만 보여준다. |
| --pid, -p, p <프로세스 아이디> | 해당 프로세스 아이디의 프로세스를 보여준다. |
| --ppid <프로세스 아이디> | 선택된 프로세스 아이디와 그 프로세스의 부모 프로세스를 보여준다. |
| -g, -G, --Group, --group <그룹 아이디> | 해당 그룹 아이디의 프로세스를 보여준다. |
| -s, --sid <세션 아이디> | 해당 세션 아이디의 프로세스를 보여준다. |
| -t, --tty, t <터미널 이름> | 해당 터미널에서 작동중인 프로세스를 보여준다. |
| -U, -u, --User, --user <사용자 이름, 아이디> | 해당 사용자의 실행중인 프로세스를 보여준다. |
3.9. pstree
현재 실행하고 있는 프로세스를 트리 형식으로 보여준다.3.10. tee
화면에 출력한 내용을 그대로 파일로 저장하는 명령어.<명령어> | tee <저장하고 싶은 파일명>
| 옵션 | 설명 |
| -a | 기존에 있던 내용의 뒤에 덧붙인다. |
3.11. stat
특정 파일의 상세 정보를 출력한다.stat \[옵션\] <대상 파일 \[대상 파일2\]...>
파일 크기, 타입, i-node, 접근 권한 등 해당 파일에 관련된 여러 정보를 나열한다. 3.12. df
마운트된 디스크 사용량을 출력한다. HP-UX의 경우 df와 bdf가 구분되어 있으며, bdf가 우리가 현재 알고있는 df의 형식을 출력한다.df \[옵션\] \[파일\]
| 옵션 | 설명 |
| -i, --inodes | i-node 사용량을 대신 표시한다. |
| -h, --human-readable | 읽기 쉽도록 1,024를 거듭제곱한 단위를 사용한다. (예시: 1023M) |
| -H, --si | 읽기 쉽도록 1,000을 거듭제곱한 단위를 사용한다. (예시: 1.1G) |
4. 시스템 관리 관련
4.1. systemctl
SYSTEM ConTroL의 약자이다.systemd를 사용하고 있는 시스템에서 사용할 수 있는 명령어로, 데몬 서비스의 실행, 중지와 상태확인, 그 외에도 시스템의 상태를 변경하는 등 여러 가지 기능을 할 수 있다. 서비스명에는 .service를 붙이는 것이 보통 관례이나 붙이지 않아도 작동한다.
| 명령 | 설명 |
systemctl start <서비스명> | 서비스 시작 |
systemctl stop <서비스명> | 서비스 중지 |
systemctl restart <서비스명> | 서비스 재시작 |
systemctl enable <서비스명> | 서비스 활성화 |
systemctl disable <서비스명> | 서비스 비활성화 |
systemctl status <서비스명> | 서비스 상태 확인 |
systemctl edit <서비스명> | 서비스 편집 |
systemctl list-unit-files <서비스명> | 서비스 유닛파일 표시 |
systemctl daemon-reload | systemd 관리자 구성 재로드 |
systemctl reboot | 시스템 재시작 |
systemctl poweroff | 시스템 종료 |
systemctl set-default <타겟 이름> | 시스템 기본 타겟 또는 기본 런레벨 변경[7] |
systemctl isolate <타겟 이름> | 시스템 타겟 또는 런레벨 변경 |
4.2. service
SysVInit을 사용하는 시스템에서 사용하는 명령어로, 서비스를 실행, 중지하거나 현재 상태를 표시할 수 있다.| 명령 | 설명 |
service <서비스명> start | 서비스 시작 |
service <서비스명> stop | 서비스 중지 |
service <서비스명> restart | 서비스 재시작 |
service <서비스명> reload | 서비스 구성 파일 재로드 |
service <서비스명> status | 서비스 상태 확인 |
4.3. visudo
sudo 명령어 설정 파일을 수정하는 명령어이다. 이 명령어를 사용하면 기본 에디터로 /etc/sudoers 파일이 열린다.5. sudo
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[sudo#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[sudo#|]] 부분을 참고하십시오.지정된 사용자에게 root 권한으로 명령어를 시행할 권한을 주는 명령어이다.
6. alias
특정 단어를 다른 명령어로 연결할 때 쓰는 명령어이다.[8]alias <부르고 싶은 단어>='<실제 명령어>'7. grep
#!if (문단 == null) == (앵커 == null)
를#!if 문단 != null & 앵커 == null
의 [[grep#s-|]]번 문단을#!if 문단 == null & 앵커 != null
의 [[grep#|]] 부분을 참고하십시오.정규표현식을 사용해 주어진 패턴을 검색하는 명령어이다.
[1] 시스템 관리를 위한 명령어는 /sbin 디렉토리 밑에 존재한다.[2] 특정 파일이나 폴더에 대한 바로가기를 만드는 것이라고 생각하면 쉽다.[3] d라고 되어있으면 디렉토리, 아무런 알파벳도 없으면 일반 파일, l이면 링크파일, c라고 되어있으면 장치 파일이라는 뜻이다.[4] 왼쪽에서 부터 소유자, 소유자가 속한 그룹, 다른 사용자 이런 순서대로 되어 있다. 그래서 예를 들어
-rwxr------라고 되어 있으면, 소유한 사용자는 읽기, 쓰기, 실행 권한이 있고, 사용자가 속한 그룹의 사용자들은 읽을 권한만 있으며, 나머지 사용자들은 아무런 권한도 없는 것이다.[5] 대개 /sbin/init[6] 일시정지된 프로세스 제외[7] 타겟은 시스템을 특정 상태로 바꾸기 위해서 시작해야 하는 유닛의 집합이다. graphical.target은 GUI 지원 멀티유저 모드, multi-user.target은 텍스트 기반 멀티유저 모드, rescue.target은 네트워킹 없이 단일유저 모드로 변경한다. 이 외에도 여러 가지 타겟이 있고, 직접 만들 수도 있다.[8] 만약 sudo systemctl stop example.service같이 긴 명령어를 자주 쳐야 하는데 너무 길다면 그것을 examplestop같이 바꿀수 있는 것이다. 이 경우에서는 alias examplestop='sudo systemctl stop example.service'라고 입력하면 된다. 참고로 이는 현 세션에서만 유효하기에 계속 사용하기 위해선 .bashrc, .zshrc 등의 파일에 명령어를 입력하면 된다.