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