Linux/Linux 관련 노하우
Linux 기본 명령어 요약
2sjin
2022. 10. 31. 14:31
Shell 기본 명령어
명령어 | 기능 | 형식 및 옵션 |
clear | 화면 지우기 | $ clear |
logout / exit | 접속 끊기 및 로그아웃 ([Ctrl] + [D]) |
$ logout 또는 $ exit |
파일 및 디렉토리 속성 확인
명령어 | 기능 | 형식 및 옵션 |
ls | 파일 및 디렉토리 목록 출력 | $ ls [옵션] [파일 또는 디렉토리] -l : 자세히 보기(크기, 저장 날짜, 허가권, 소유권 등) -a : 숨겨진 파일(마침표로 시작) 포함 -t : 시간 순서대로 정렬 -R : 재귀적으로 출력(하위 디렉토리 파일) |
pwd | 현재 디렉토리 확인 | $ pwd |
tree | 디렉토리 구조 트리모양으로 출력 | $ tree |
cd | 디렉토리 이동 | $ cd [디렉토리] ※ 디렉토리 ~ : 자신의 홈 디렉토리(디렉토리 생략하는 것과 같음) ~계정이름 : 다른 사용자의 홈 디렉토리 . : 현재 디렉토리 .. : 상위 디렉토리 - : 바로 직전에 사용한 디렉토리 |
stat | 파일의 자세한 정보 제공 | $ stat <파일명> |
file | 파일의 종류 출력 (예: ASCII text, UTF-8 Unicode text 등) |
$ file <파일이름> |
파일 및 디렉토리 조작
명령어 | 기능 | 형식 및 옵션 |
cp | 파일 및 디렉토리 복사 | $ cp [옵션] <소스파일> <타겟파일> -f : 강제 복사(타겟 파일이 존재해도 무시하고 덮어쓰기) -i : 대화형 복사(복사 여부 묻기) -r : 재귀적 복사(하위 디렉토리 및 모든 파일 복사) -a : 심볼릭 링크 형식으로 파일 복사 |
mv | 파일 및 디렉토리 이동 (또는 이름 변경) |
$ mv [옵션] <소스파일> <타겟파일> -f : 강제 이동(타겟 파일이 존재해도 무시하고 덮어쓰기) -i : 대화형 이동(이동 여부 묻기) |
rm | 파일 삭제 | $ rm [옵션] <파일명> -f : 강제 삭제 -i : 대화형 삭제(삭제 여부 묻기) -r : 재귀적 삭제(하위 디렉토리 및 모든 파일 삭제) |
mkdir | 디렉토리 생성 | $ mkdir [옵션] <디렉토리> -p : 인자에 존재하지 않는 중간 디렉토리를 입력했다면 자동으로 생성해줌 |
rmdir | 디렉토리 제거 | $ rmdir [옵션] <디렉토리> -p : 인자에 입력한 최상위 디렉토리와 그 하위 디렉토리를 모두 삭제함 |
touch | 빈 파일 생성 또는 파일의 생성 시간을 현재로 변경 | $ touch <파일명> |
ln | 링크 파일 생성 | $ link [옵션] <링크 대상 파일명> <링크 파일명> [no option] : 하드 링크 파일 생성 -s : 심볼릭(소프트) 링크 파일 생성 |
파일 내용 보기
명령어 | 기능 | 형식 및 옵션 |
cat | 파일 내용 출력 | $ cat [옵션] <파일명> -n : 줄 번호 붙이기 |
more | 파일 내용 한페이지씩 출력 ([Enter]키로 다음 페이지 출력) |
$ more <파일명> |
less | 파일 내용 한페이지씩 출력 (방향키로 스크롤 가능) |
$ less <파일명> |
head | 파일의 처음 n개의 줄 출력 | $ head [옵션] <파일명> -n : 파일의 처음 n개의 줄 출력 (예: head -1 filename) |
tail | 파일의 마지막 n개의 줄 출력 | $ head [옵션] <파일명> -n : 파일의 마지막 n개의 줄 출력 (예: tail -2 filename) |
grep | 파일에서 특정 키워드 찾기 | $ grep <키워드> <파일명> |
파일 압축 명령어
명령어 | 기능 | 형식 및 옵션 |
gz | 파일 압축 및 복원 | $ gzip [옵션] <파일명> [no option] : 파일의 압축(gzip) -d : gz 파일의 압축 해제(gunzip) |
tar | 파일 또는 디렉토리 묶기 또는 풀기 | $ tar [옵션] <파일명> -c : 파일 묶기(아카이브) -x : 파일 풀기(전개) -f : 아카이브 파일명 지정(tar 명령어 사용할 때 반드시 표시) -z : 압축(gzip) 또는 복원(gunzip) 작업과 동시에 수행 -v : 파일을 묶거나 풀 때 진행 과정 출력 -C 디렉토리 : tar 파일을 전개할 위치 지정 ※ 옵션 앞의 "-" 기호는 생략 가능함 |
명령어 관리
명령어 | 기능 | 형식 및 옵션 |
man | 명령어에 대한 온라인 도움말 보기 | $ man <명령어> |
which | 명령어가 설치된 위치 찾기 | $ which <명령어> |
whereis | 명령어 위치 자세히 찾기 | $ whereis [옵션] <명령어> -b : 바이너리 파일(실행 파일) 위치만 출력 -m : 매뉴얼 파일 위치 출력 -s : 소스 파일 위치만 출력 |
history | 이전에 수행한 명령 출력 | $ history [옵션] [숫자] : 최근 수행한 명령어를 숫자 개수만큼 보여줌 -c : history 정보가 저장된 버퍼 초기화 |
!<숫자> | history 출력 결과에서 해당 숫자에 해당하는 명령 실행 | $ !<숫자> 예: !3, !24, !120, ... |
!! | 가장 최근 명령어 다시 실행 | $ !! |
alias | 명령어의 별명 설정 | $ alias [옵션] [no option] : alias된 명령어 확인 <alias명> = '<명령어>' : 명령어 별명 설정 |
unalias | alias 해제 | $ unalias <alias명> |
type | 명령어의 종류 출력 (외부 / 내부(shell builtin) / aliased) |
$ type <명령어> |
그룹 관리
명령어 | 기능 | 형식 및 옵션 |
groups | 사용자가 속한 그룹 확인 | $ groups <사용자명> |
groupadd | 새로운 그룹 추가 | $ groupadd <그룹명> |
groupdel | 그룹 삭제 | $ groupdel <그룹명> |
gpasswd | 그룹에 암호 설정 또는 사용자 추가 | $ gpasswd [옵션] <그룹명> [no option]: 암호 설정 $ gpasswd [옵션] <사용자명> <그룹명> -a : 사용자를 그룹에 추가 |
사용자 관리
명령어 | 기능 | 형식 및 옵션 |
adduser | 새로운 사용자 추가 | $ adduser <사용자명> |
userdel | 사용자 삭제 | $ userdel [옵션] <사용자명> -r : 사용자와 관련된 디렉토리 및 모든 내용 삭제 |
passwd | 사용자 패스워드 설정 | $ passwd <사용자명> |
su | 사용자 전환 | $ su [옵션] <사용자명> - 또는 -l 또는 --login : 바뀐 사용자에 대한 권한과 shell 환경 제공 ※ 사용자명 (생략) : root 사용자 |
sudo | root 권한으로 명령어 실행 | $ sudo <명령어> |
who | 접속한 사용자 및 작업 목록 출력 | $ who |
whoami | 현재 사용자의 이름 출력 | $ whoami |
파일 허가권 관리
명령어 | 기능 | 형식 및 옵션 |
chmod | 파일의 허가권 변경 | $ chmod [옵션] <권한> <파일명> -R : 재귀적으로 소유권 변경(디렉토리 안의 모든 파일의 소유권 변경) ※ 권한: 3자리 퍼미션 값 또는 [u|g|o] [+|-] [r|w|x] 형식 |
chown | 파일의 소유권 변경 | $ chown [옵션] <사용자명> <파일명> -R : 재귀적으로 소유권 변경(디렉토리 안의 모든 파일의 소유권 변경) |
chgrp | 파일의 그룹 변경 | $ chgrp <그룹명> <파일명> |
APT 패키지 관리자 명령어
명령어 | 기능 | 형식 및 옵션 |
apt-get install | 패키지 다운로드 및 설치 | $ apt-get install [옵션] <패키지명> -y : 질문 입력을 생략하고 무조건 y를 입력한 것으로 간주함 -d : 패키지 설치 없이 /var/cache/apt/archives/ 디렉토리에 다운로드 |
apt-get remove | 패키지 제거 (설정파일 보존) |
$ apt-get remove [옵션] <패키지명> -y : 질문 입력을 생략하고 무조건 y를 입력한 것으로 간주함 --purge : 패키지 관련 설정파일도 함께 삭제 |
apt-get purge | 패키지 및 설정파일 제거 | $ apt-get purge [옵션] <패키지명> -y : 질문 입력을 생략하고 무조건 y를 입력한 것으로 간주함 |
apt-get update | 패키지 DB 업데이트 | $ apt-get update |
apt-get upgrade | 설치된 모든 패키지를 최신 버전으로 설치 | $ apt-get upgrade |
apt-get clean | /var/cache/apt/archives/ 디렉토리에 캐시된 패키지 모두 삭제 | $ apt-get clean |
apt-get autoclean | 불완전하게 다운로드된 패키지나 오래된 패키지 삭제 | $ apt-get autoclean |
apt-get autoremove | 다른 패키지의 의존성 때문에 설치되었지만, 지금은 사용되지 않는 패키지 삭제 | $ apt-get autoremove |
apt-cache search | 특정 키워드가 포함된 패키지 목록 출력 | $ apt-cache search <키워드> |
텍스트 조작
명령어 | 기능 | 형식 및 옵션 |
echo | 지정한 문자열과 변수를 화면에 출력 | $ echo <문자열 또는 변수> -e : 이스케이프 문자(\r, \n, \t 등..)의 기능을 활성화함 |
cut | 텍스트 파일을 열 단위로 자르기 | $ cut [옵션] <파일명> -c <번호> : 열 번호 지정(1부터 시작) -d <구분자> : 필드 구분자 지정(디폴트는 Tab) -f <번호> : 필드 구분자 기준 필드 번호 지정(1부터 시작) |
uniq | 파일 내 연속으로 내용이 중복된 줄 제거 | $ uniq <파일명> |
sort | 파일 내 단어 순서를 행 단위로 정렬 | $ sort [옵션] <파일명> [no option] : 오름차순(알파벳순) 정렬 -r : 내림차순(역순) 정렬 -n : 숫자 정렬 시 숫자의 크기순으로 정렬 |
tee | 줄 단위로 표준 입력을 받아 표준 출력하고 파일에 저장 (입력 종료는 [Ctrl] + [D]) |
$ tee [옵션] <파일명> [no option] : 표준 입력을 파일에 덮어쓰기 -a : 표준 입력을 파일에 이어쓰기 |
파이프 및 리다이렉션
명령어 | 기능 | 형식 및 옵션 |
> | 명령어의 출력을 파일에 덮어쓰기 | $ 명령어 > 파일명 |
>> | 명령어의 출력을 파일에 이어쓰기 | $ 명령어 >> 파일명 |
< | 표준 입력 대신 파일의 내용을 명령어에 입력 | $ 명령어 < 파일명 |
| | 명령어 1의 출력 결과를 명령어 2에 보냄(파일명 인자) | $ 명령어1 | 명령어2 |
연속해서 여러 명령어 실행하기
명령어 | 기능 | 형식 및 옵션 |
; | 앞 명령어가 실패해도 다음 명령어 실행 | $ 명령어1; 명령어2; |
&& | 앞 명령어가 성공했을 때만 다음 명령어 실행 | $ 명령어1 && 명령어2 |
|| | 앞 명령어가 실패했을 때만 다음 명령어 실행 | $ 명령어1 || 명령어2 |
네트워크 관리 명령어
명령어 | 기능 | 형식 및 옵션 |
ifconfig | 네트워크 인터페이스 확인 | $ ifconfig |
nslookup | 지정한 호스트명과 관련된 정보를 DNS 서버에서 가져옴 | $ nslookup <호스트명> |
시스템 종료 명령어
명령어 | 기능 | 형식 및 옵션 |
shutdown | 시스템 종료 또는 재부팅 예약 | $ shutdown [옵션1] [옵션2] [통지할 메시지] ※ 옵션1 -h : 종료(halt) -r : 리부팅(reboot) ※ 옵션2 now : 즉시(종료만 가능) +n : n분 후 |
halt | 시스템 즉시 종료 | $ halt |
reboot | 시스템 즉시 재부팅 | $ reboot |
파일 다운로드
명령어 | 기능 | 형식 및 옵션 |
wget | URL의 파일 다운로드 | $ wget <URL> |
git clone | Git 저장소 URL의 파일 다운로드(fetch) | $ git clone <URL> |
파일 시스템 관련 명령어
명령어 | 기능 | 형식 및 옵션 |
mount | 디바이스를 디렉토리에 연결 | $ mount <장치 디렉토리> <마운트 디렉토리> |
umount | 마운트 연결 해제 | $ umount <마운트 디렉토리> |
df | 파일 시스템의 구조와 용량 표시 | $ df |
dmesg | 리눅스 시스템(커널)에서 발생하는 디바이스 메시지 출력 | $ dmesg |
du | 디렉토리와 파일이 차지하는 메모리 공간 출력 | $ du |
free | 비어 있는 메모리 공간, 사용중인 메모리 공간, swap 메모리, 커널이 사용하는 버퍼 등을 출력 | $ free |
프로세스 관련 명령어
명령어 | 기능 | 형식 및 옵션 |
& | 명령의 백그라운드 실행 | $ 명령어 & |
ps | 백그라운드 프로세스의 검사 | $ ps [옵션] [no option] : 현재 사용자의 프로세스 상태 파악 -a : 터미널과 연관이 있는 모든 프로세스 출력 -x : 실행 중인 모든 프로세스의 정보를 출력 -e : 다른 사용자들이 구동시킨 프로세스도 함께 출력 -f : 더 자세한 정보 보기 |
kill | 백그라운드 프로세스 종료 | $ kill [옵션] <PID> -9 : 프로세스 강제 종료 |
서비스 제어 명령어
명령어 | 기능 | 형식 및 옵션 |
systemctl stop | 서비스 중지 | $ systemctl stop <서비스명> |
systemctl start | 서비스 시작 | $ systemctl start <서비스명> |
systemctl restart | 서비스 재시작 (stop + start) |
$ systemctl restart <서비스명> |
systemctl reload | 서비스 설정 갱신 | $ systemctl reload <서비스명> |
systemctl enable | 부팅 시 서비스 자동 실행 | $ systemctl enable <서비스명> |
systemctl disable | 부팅 시 서비스 자동 실행하지 않음 | $ systemctl disable <서비스명> |
기타 명령어
명령어 | 기능 | 형식 및 옵션 |
date | 현재 날짜와 시간 표시 | $ date |
env | 현재 계정에 대한 모든 환경 변수 출력 | $ env |
cal | 달력 표시 | $ cal [월] <년> |
crontab | 예약 실행 관련 설정 | $ crontab [옵션] -e : crontab 파일 내용 편집 -l : crontab 파일 내용 출력(예약된 동작 확인하기) |
uname | 시스템에 관한 정보 출력 | $ uname [옵션] [no option] 또는 -s : 커널 이름 출력 -a : 모든 시스템 정보 출력 |
scrot | 화면 캡처 | $ scrot |