Post

Linux Command Cheat Sheet

Linux를 사용하며 알게된 CLI 명령어들을 공유합니다.

1. 파일 및 디렉토리 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 기본 파일 조작
ls                                                   # 현재 디렉토리 파일 목록
ls -la                                               # 숨김 파일 포함 상세 목록
ls -lh                                               # 파일 크기를 읽기 쉽게 표시
ls -lt                                               # 수정 시간순 정렬
ls -lS                                               # 파일 크기순 정렬
pwd                                                  # 현재 디렉토리 경로 출력
cd /path/to/directory                                # 디렉토리 이동
cd ~                                                 # 홈 디렉토리로 이동
cd -                                                 # 이전 디렉토리로 이동
mkdir directory_name                                 # 디렉토리 생성
mkdir -p /path/to/nested/directory                   # 중첩 디렉토리 생성
rmdir directory_name                                 # 빈 디렉토리 삭제
rm -rf directory_name                                # 디렉토리와 내용 모두 삭제

# 파일 복사, 이동, 삭제
cp file1 file2                                       # 파일 복사
cp -r dir1 dir2                                      # 디렉토리 재귀 복사
cp -p file1 file2                                    # 권한과 타임스탬프 유지하며 복사
mv file1 file2                                       # 파일 이동/이름 변경
rm file                                              # 파일 삭제
rm -f file                                           # 강제 삭제
rm -i file                                           # 삭제 전 확인

# 파일 링크
ln file hardlink                                     # 하드링크 생성
ln -s /path/to/file symlink                          # 심볼릭 링크 생성
readlink symlink                                     # 심볼릭 링크가 가리키는 경로 확인

2. 파일 내용 확인 및 편집

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 파일 내용 보기
cat file                                             # 파일 전체 내용 출력
less file                                            # 페이지 단위로 파일 내용 보기
more file                                            # 페이지 단위로 파일 내용 보기
head file                                            # 파일 앞부분 10줄 출력
head -n 20 file                                      # 파일 앞부분 20줄 출력
tail file                                            # 파일 뒷부분 10줄 출력
tail -n 20 file                                      # 파일 뒷부분 20줄 출력
tail -f file                                         # 파일 실시간 모니터링

# 파일 편집
nano file                                            # nano 에디터로 파일 편집
vim file                                             # vim 에디터로 파일 편집
emacs file                                           # emacs 에디터로 파일 편집

# 파일 비교
diff file1 file2                                     # 두 파일 차이점 비교
diff -u file1 file2                                  # unified 형식으로 차이점 표시
cmp file1 file2                                      # 두 파일이 동일한지 확인

3. 텍스트 처리 및 검색

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 텍스트 검색
grep "pattern" file                                  # 파일에서 패턴 검색
grep -i "pattern" file                               # 대소문자 구분 없이 검색
grep -r "pattern" directory                          # 디렉토리 내 재귀 검색
grep -n "pattern" file                               # 줄 번호와 함께 검색
grep -v "pattern" file                               # 패턴과 일치하지 않는 줄 출력
grep -c "pattern" file                               # 패턴 매칭 줄 수 카운트
grep -E "pattern1|pattern2" file                     # 확장 정규식 사용

# 텍스트 처리
sort file                                            # 파일 내용 정렬
sort -r file                                         # 역순 정렬
sort -n file                                         # 숫자 기준 정렬
sort -k 2 file                                       # 두 번째 필드 기준 정렬
uniq file                                            # 중복 줄 제거
uniq -c file                                         # 중복 줄 개수와 함께 출력
cut -d',' -f1,3 file                                 # CSV 파일에서 1,3번째 필드 추출
cut -c1-10 file                                      # 각 줄의 1-10번째 문자 추출
awk '{print $1}' file                                # 첫 번째 필드 출력
awk -F',' '{print $2}' file                          # 쉼표 구분자로 두 번째 필드 출력
sed 's/old/new/g' file                               # 문자열 치환
sed -i 's/old/new/g' file                            # 파일 내용 직접 수정

# 파이프와 리다이렉션
command1 | command2                                  # 파이프로 명령 연결
command > file                                       # 출력을 파일로 리다이렉션
command >> file                                      # 출력을 파일에 추가
command < file                                       # 파일을 입력으로 사용
command 2> error.log                                 # 에러를 파일로 리다이렉션
command &> output.log                                # 출력과 에러를 모두 파일로

4. 파일 권한 및 소유권

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 권한 확인 및 변경
ls -l file                                           # 파일 권한 확인
chmod 755 file                                       # 8진수로 권한 설정
chmod u+x file                                       # 소유자에게 실행 권한 추가
chmod g-w file                                       # 그룹에서 쓰기 권한 제거
chmod o=r file                                       # 기타 사용자에게 읽기 권한만 부여
chmod -R 755 directory                               # 디렉토리와 하위 파일 권한 재귀 변경

# 소유권 변경
chown user file                                      # 파일 소유자 변경
chown user:group file                                # 파일 소유자와 그룹 변경
chown -R user:group directory                        # 디렉토리와 하위 파일 소유권 재귀 변경
chgrp group file                                     # 파일 그룹 변경

# 특수 권한
chmod +t directory                                   # sticky bit 설정
chmod g+s file                                       # setgid 설정
chmod u+s file                                       # setuid 설정

5. 프로세스 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 프로세스 확인
ps                                                   # 현재 터미널의 프로세스 목록
ps aux                                               # 모든 프로세스 상세 정보
ps -ef                                               # 모든 프로세스 전체 형식
ps -u username                                       # 특정 사용자의 프로세스
pgrep process_name                                   # 프로세스 이름으로 PID 찾기
pidof process_name                                   # 프로세스 이름으로 PID 찾기
top                                                  # 실시간 프로세스 모니터링
htop                                                 # 향상된 프로세스 모니터링
jobs                                                 # 백그라운드 작업 목록

# 프로세스 제어
kill PID                                             # 프로세스 종료 (SIGTERM)
kill -9 PID                                          # 프로세스 강제 종료 (SIGKILL)
kill -HUP PID                                        # 프로세스에 HUP 시그널 전송
killall process_name                                 # 이름으로 프로세스 종료
pkill process_name                                   # 이름으로 프로세스 종료
nohup command &                                      # 터미널 종료 후에도 실행 유지
command &                                            # 백그라운드에서 명령 실행
fg %1                                                # 백그라운드 작업을 포그라운드로
bg %1                                                # 중단된 작업을 백그라운드로
Ctrl+Z                                               # 현재 프로세스 일시 중단
Ctrl+C                                               # 현재 프로세스 종료

6. 시스템 정보 및 모니터링

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 시스템 정보
uname -a                                             # 시스템 전체 정보
uname -r                                             # 커널 버전
hostname                                             # 호스트명 확인
whoami                                               # 현재 사용자명
id                                                   # 사용자 ID 및 그룹 정보
w                                                    # 로그인한 사용자 정보
who                                                  # 로그인한 사용자 목록
last                                                 # 최근 로그인 기록
uptime                                               # 시스템 가동 시간 및 부하
date                                                 # 현재 날짜와 시간
cal                                                  # 달력 출력

# 하드웨어 정보
lscpu                                                # CPU 정보
lsblk                                                # 블록 디바이스 정보
lsusb                                                # USB 디바이스 정보
lspci                                                # PCI 디바이스 정보
dmidecode                                            # 하드웨어 상세 정보
free -h                                              # 메모리 사용량 (읽기 쉬운 형식)
df -h                                                # 디스크 사용량 (읽기 쉬운 형식)
du -h directory                                      # 디렉토리 크기
du -sh *                                             # 현재 디렉토리 내 각 항목 크기

# 네트워크 정보
ifconfig                                             # 네트워크 인터페이스 정보
ip addr show                                         # IP 주소 정보
ip route show                                        # 라우팅 테이블
# 네트워크 정보
ifconfig                                             # 네트워크 인터페이스 정보 (구 버전)
ip addr show                                         # IP 주소 정보 (신 버전)
ip -c addr show                                      # IP 주소 정보 (컬러 출력)
ip route show                                        # 라우팅 테이블 확인
ip -c route show                                     # 라우팅 테이블 확인 (컬러 출력)

# 하드웨어 정보
lscpu                                                # CPU 정보
lsblk                                                # 블록 디바이스 정보
lsusb                                                # USB 디바이스 정보
lspci                                                # PCI 디바이스 정보
dmidecode                                            # 하드웨어 상세 정보
free -h                                              # 메모리 사용량 (읽기 쉬운 형식)
df -h                                                # 디스크 사용량 (읽기 쉬운 형식)
du -h directory                                      # 디렉토리 크기
du -sh *                                             # 현재 디렉토리 내 각 항목 크기

# 네트워크 정보
ifconfig                                             # 네트워크 인터페이스 정보
ip addr show                                         # IP 주소 정보
ip route show                                        # 라우팅 테이블
netstat -tuln                                        # 네트워크 연결 상태
ss -tuln                                             # 소켓 통계 (netstat 대체)
ping host                                            # 호스트 연결 테스트
traceroute host                                      # 네트워크 경로 추적
wget url                                             # 파일 다운로드
curl url                                             # HTTP 요청

7. 압축 및 아카이브

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# tar 아카이브
tar -cvf archive.tar files                           # tar 아카이브 생성
tar -xvf archive.tar                                 # tar 아카이브 추출
tar -tvf archive.tar                                 # tar 아카이브 내용 확인
tar -czvf archive.tar.gz files                       # gzip 압축과 함께 아카이브
tar -xzvf archive.tar.gz                             # gzip 압축 아카이브 추출
tar -cjvf archive.tar.bz2 files                      # bzip2 압축과 함께 아카이브
tar -xjvf archive.tar.bz2                            # bzip2 압축 아카이브 추출

# 압축
gzip file                                            # gzip 압축
gunzip file.gz                                       # gzip 압축 해제
zip archive.zip files                                # zip 압축
unzip archive.zip                                    # zip 압축 해제

8. 환경 변수 및 셸 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 환경 변수
env                                                  # 모든 환경 변수 출력
echo $PATH                                           # PATH 환경 변수 출력
export VAR=value                                     # 환경 변수 설정
unset VAR                                            # 환경 변수 제거
which command                                        # 명령어 위치 찾기
type command                                         # 명령어 타입 확인
whereis command                                      # 명령어 관련 파일 위치

# 셸 히스토리
history                                              # 명령어 히스토리
history | grep pattern                               # 히스토리에서 패턴 검색
!!                                                   # 마지막 명령어 재실행
!n                                                   # n번째 명령어 실행
!pattern                                             # 패턴으로 시작하는 마지막 명령어 실행

# 별칭
alias ll='ls -la'                                    # 별칭 설정
alias                                                # 모든 별칭 확인
unalias ll                                           # 별칭 제거

9. 사용자 및 그룹 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 사용자 관리
sudo useradd username                                # 사용자 추가
sudo userdel username                                # 사용자 삭제
sudo usermod -aG group username                      # 사용자를 그룹에 추가
passwd                                               # 비밀번호 변경
sudo passwd username                                 # 다른 사용자 비밀번호 변경
su username                                          # 사용자 전환
sudo command                                         # 관리자 권한으로 명령 실행

# 그룹 관리
groups                                               # 현재 사용자의 그룹 확인
groups username                                      # 특정 사용자의 그룹 확인
sudo groupadd groupname                              # 그룹 추가
sudo groupdel groupname                              # 그룹 삭제

10. 시스템 서비스 관리 (systemd)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 서비스 관리
sudo systemctl start service                         # 서비스 시작
sudo systemctl stop service                          # 서비스 중지
sudo systemctl restart service                       # 서비스 재시작
sudo systemctl reload service                        # 서비스 설정 다시 로드
sudo systemctl enable service                        # 부팅 시 자동 시작 설정
sudo systemctl disable service                       # 부팅 시 자동 시작 해제
systemctl status service                             # 서비스 상태 확인
systemctl is-active service                          # 서비스 활성 상태 확인
systemctl is-enabled service                         # 서비스 자동 시작 설정 확인
systemctl list-units --type=service                  # 모든 서비스 목록
journalctl -u service                                # 서비스 로그 확인
journalctl -f -u service                             # 서비스 로그 실시간 확인

11. 패키지 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Ubuntu/Debian (apt)
sudo apt update                                      # 패키지 목록 업데이트
sudo apt upgrade                                     # 패키지 업그레이드
sudo apt install package                             # 패키지 설치
sudo apt remove package                              # 패키지 제거
sudo apt purge package                               # 패키지와 설정 파일 완전 제거
sudo apt autoremove                                  # 불필요한 패키지 자동 제거
apt search package                                   # 패키지 검색
apt show package                                     # 패키지 정보 확인

# CentOS/RHEL (yum/dnf)
sudo yum update                                      # 패키지 업데이트
sudo yum install package                             # 패키지 설치
sudo yum remove package                              # 패키지 제거
yum search package                                   # 패키지 검색
yum info package                                     # 패키지 정보 확인

12. 로그 관리

1
2
3
4
5
6
7
8
9
10
# 시스템 로그
sudo tail -f /var/log/syslog                         # 시스템 로그 실시간 확인
sudo tail -f /var/log/auth.log                       # 인증 로그 확인
sudo tail -f /var/log/kern.log                       # 커널 로그 확인
journalctl                                           # systemd 저널 확인
journalctl -f                                        # systemd 저널 실시간 확인
journalctl --since "1 hour ago"                      # 1시간 전부터 로그
journalctl --until "2023-01-01"                      # 특정 날짜까지 로그
dmesg                                                # 커널 메시지 확인
dmesg | tail                                         # 최근 커널 메시지

12.1 네트워크 진단 및 도구

로컬 네트워크 설정 확인

ip -br link # 인터페이스 목록 간략히 보기 (UP/DOWN, IP) ip addr show # IP 주소, MAC 주소, 인터페이스 상태 확인 ip -c addr show # 컬러로 보기 ifconfig # (구 버전) 네트워크 인터페이스 정보 ip route show # 라우팅 테이블 확인 ip -c route # 라우팅 테이블 컬러로 확인

기본 연결 및 경로 추적 (ping, mtr, traceroute)

ping -c 4 google.com # 4번의 ICMP 요청으로 기본 연결 확인 traceroute google.com # 대상까지의 네트워크 경로 추적 (UDP 기본)

12.2 mtr (My Traceroute) - ping과 traceroute를 결합한 강력한 도구

sudo mtr 1.1.1.1 # 실시간 인터랙티브 모드로 경로 추적 sudo mtr -n 8.8.8.8 # DNS 조회 없이 IP 주소로만 표시 sudo mtr -rwzc 100 1.1.1.1 # 100회 실행 후 리포트 출력 (자동화용) sudo mtr -rwzc 100 -T -P 443 example.com # TCP 443 포트로 경로 추적 (방화벽 통과 시 유용) sudo mtr -rwzc 100 -u -P 53 1.1.1.1 # UDP 53 포트로 경로 추적 (DNS 쿼리 경로) sudo mtr -rwzc 50 -s 1472 1.1.1.1 # 패킷 크기 설정 (MTU 문제 확인) sudo mtr -rwzc 100 -I eth1 -a 192.168.10.101 8.8.8.8 # 특정 인터페이스와 소스 IP 지정 sudo mtr -rwzc 200 -T -P 443 example.com > mtr_443.txt # 결과를 파일로 저장

포트 및 서비스 확인 (ss, netstat)

ss -tnlp # TCP 리스닝 소켓과 사용하는 프로세스 확인 ss -unlp # UDP 리스닝 소켓과 사용하는 프로세스 확인 ss -tuna # 모든 TCP/UDP 소켓 상태 확인 netstat -tnlp # (구 버전) ss와 유사한 기능

DNS 조회 (dig, nslookup, host)

nslookup google.com # 도메인의 IP 주소 확인 dig google.com +short # 간단한 A 레코드 조회 dig google.com MX # 메일 서버(MX) 레코드 조회 host google.com # 간단한 DNS 정보 조회

패킷 캡처 및 분석 (tcpdump, termshark)

12.3 tcpdump - 저수준 패킷 캡처 및 분석

sudo tcpdump -i any # 모든 인터페이스의 트래픽 캡처 sudo tcpdump -i eth0 -nn # eth0 인터페이스, 호스트명/포트번호 해석 없이(-nn) sudo tcpdump -i eth0 -w capture.pcap # 캡처 결과를 파일로 저장 sudo tcpdump -r capture.pcap # 저장된 파일 읽기 sudo tcpdump -i eth0 host 1.2.3.4 # 특정 호스트(IP)와 관련된 트래픽 sudo tcpdump -i eth0 src 1.2.3.4 # 소스 IP가 1.2.3.4인 트래픽 sudo tcpdump -i eth0 dst 1.2.3.4 # 목적지 IP가 1.2.3.4인 트래픽 sudo tcpdump -i eth0 port 443 # 443 포트를 사용하는 트래픽 sudo tcpdump -i eth0 tcp portrange 22-80 # 22-80번 TCP 포트 범위의 트래픽 sudo tcpdump -i eth0 ‘tcp[tcpflags] & (tcp-syn|tcp-fin) != 0’ # TCP SYN 또는 FIN 플래그가 있는 패킷 sudo tcpdump -i eth0 -s 0 -A ‘port 80’ # HTTP(80) 트래픽의 전체 패킷(-s 0)을 ASCII로(-A) 보기 sudo tcpdump -i eth1 -nn ‘udp port 8472’ # VXLAN 캡슐화 트래픽 확인 sudo tcpdump -i cilium_vxlan -nn icmp # 가상 터널 인터페이스 내부의 ICMP 패킷 확인

12.4 termshark - 터미널용 Wireshark (TUI)

sudo termshark -i eth1 # 실시간으로 eth1 인터페이스 캡처 및 분석 sudo termshark -i eth1 ‘tcp port 80’ # BPF 필터로 HTTP 트래픽만 실시간 분석 termshark -r /tmp/cap.pcap # 저장된 pcap 파일 열기 termshark -r /tmp/cap.pcap -Y ‘http.request’ # 저장된 파일에 디스플레이 필터(-Y) 적용 termshark -r /tmp/cap.pcap ‘icmp or tcp port 443’ # 저장된 파일에 BPF 필터 적용하여 열기

termshark 내에서 ‘z’ -> ‘Follow TCP Stream’ 과 같은 Wireshark 기능 사용 가능

원격 연결 및 파일 전송 (ssh, scp, rsync, wget, curl)

ssh user@host # SSH 원격 접속 scp file user@host:/path # SCP로 안전하게 파일 전송 rsync -avz –progress source/ destination/ # 효율적인 파일 동기화 (압축, 진행상황 표시) wget -c https://example.com/large-file.zip # 이어받기 기능으로 대용량 파일 다운로드 curl -L http://example.com # 리다이렉션을 따라가며 HTTP 요청 curl -s -o /dev/null -w “%{http_code}” http://example.com # HTTP 상태 코드만 확인

13. 유용한 단축키 및 팁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 터미널 단축키
Ctrl+A                                               # 줄 시작으로 이동
Ctrl+E                                               # 줄 끝으로 이동
Ctrl+U                                               # 커서 앞 모든 텍스트 삭제
Ctrl+K                                               # 커서 뒤 모든 텍스트 삭제
Ctrl+W                                               # 커서 앞 단어 삭제
Ctrl+L                                               # 화면 지우기 (clear와 동일)
Ctrl+R                                               # 히스토리 검색
Tab                                                  # 자동 완성
Tab Tab                                              # 가능한 완성 목록 표시

# 유용한 조합
find /path -name "*.txt" -exec grep -l "pattern" {} \;  # 패턴을 포함한 파일 찾기
ps aux | grep process_name                           # 특정 프로세스 찾기
df -h | grep -v tmpfs                                # tmpfs 제외한 디스크 사용량
ss -tnlp | grep :80                                  # 80번 포트를 사용하는 프로세스 확인
history | grep command                               # 히스토리에서 명령어 검색

궁금하신 점이나 추가해야 할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKamJi


title: Linux Command Cheat Sheet date: 2025-03-07 21:28:11 +0900 author: kkamji categories: [System, Linux] tags: [linux, bash, shell, devops, command-line, cli, cheat-sheet] # TAG names should always be lowercase comments: true image: path: /assets/img/linux/linux.webp —

Linux를 사용하며 알게된 CLI 명령어들을 공유합니다.

14. 파일 및 디렉토리 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 기본 파일 조작
ls                                                   # 현재 디렉토리 파일 목록
ls -la                                               # 숨김 파일 포함 상세 목록
ls -lh                                               # 파일 크기를 읽기 쉽게 표시
ls -lt                                               # 수정 시간순 정렬
ls -lS                                               # 파일 크기순 정렬
pwd                                                  # 현재 디렉토리 경로 출력
cd /path/to/directory                                # 디렉토리 이동
cd ~                                                 # 홈 디렉토리로 이동
cd -                                                 # 이전 디렉토리로 이동
mkdir directory_name                                 # 디렉토리 생성
mkdir -p /path/to/nested/directory                   # 중첩 디렉토리 생성
rmdir directory_name                                 # 빈 디렉토리 삭제
rm -rf directory_name                                # 디렉토리와 내용 모두 삭제

# 파일 복사, 이동, 삭제
cp file1 file2                                       # 파일 복사
cp -r dir1 dir2                                      # 디렉토리 재귀 복사
cp -p file1 file2                                    # 권한과 타임스탬프 유지하며 복사
mv file1 file2                                       # 파일 이동/이름 변경
rm file                                              # 파일 삭제
rm -f file                                           # 강제 삭제
rm -i file                                           # 삭제 전 확인

# 파일 링크
ln file hardlink                                     # 하드링크 생성
ln -s /path/to/file symlink                          # 심볼릭 링크 생성
readlink symlink                                     # 심볼릭 링크가 가리키는 경로 확인

15. 파일 내용 확인 및 편집

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 파일 내용 보기
cat file                                             # 파일 전체 내용 출력
less file                                            # 페이지 단위로 파일 내용 보기
more file                                            # 페이지 단위로 파일 내용 보기
head file                                            # 파일 앞부분 10줄 출력
head -n 20 file                                      # 파일 앞부분 20줄 출력
tail file                                            # 파일 뒷부분 10줄 출력
tail -n 20 file                                      # 파일 뒷부분 20줄 출력
tail -f file                                         # 파일 실시간 모니터링

# 파일 편집
nano file                                            # nano 에디터로 파일 편집
vim file                                             # vim 에디터로 파일 편집
emacs file                                           # emacs 에디터로 파일 편집

# 파일 비교
diff file1 file2                                     # 두 파일 차이점 비교
diff -u file1 file2                                  # unified 형식으로 차이점 표시
cmp file1 file2                                      # 두 파일이 동일한지 확인

16. 텍스트 처리 및 검색

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 텍스트 검색 (grep)
grep "pattern" file                                  # 파일에서 패턴 검색
grep -i "pattern" file                               # 대소문자 구분 없이 검색
grep -r "pattern" directory                          # 디렉토리 내 재귀 검색
grep -n "pattern" file                               # 줄 번호와 함께 검색
grep -v "pattern" file                               # 패턴과 일치하지 않는 줄 출력
grep -c "pattern" file                               # 패턴 매칭 줄 수 카운트
grep -E "pattern1|pattern2" file                     # 확장 정규식 사용
grep -o "pattern" file                               # 매칭되는 부분만 출력
grep -A 3 -B 2 "pattern" file                        # 매칭된 줄의 앞 2줄, 뒤 3줄 함께 출력

# 텍스트 처리 (sort, uniq, cut)
sort file                                            # 파일 내용 정렬
sort -r file                                         # 역순 정렬
sort -n file                                         # 숫자 기준 정렬
sort -k 2 file                                       # 두 번째 필드 기준 정렬
uniq file                                            # 중복 줄 제거 (정렬된 상태여야 함)
uniq -c file                                         # 중복 줄 개수와 함께 출력
cut -d',' -f1,3 file                                 # CSV 파일에서 1,3번째 필드 추출
cut -c1-10 file                                      # 각 줄의 1-10번째 문자 추출

# 텍스트 처리 (awk, sed)
awk '{print $1}' file                                # 첫 번째 필드 출력
awk -F',' '{print $2}' file                          # 쉼표 구분자로 두 번째 필드 출력
awk '/pattern/ {print $3}' file                      # 패턴이 있는 줄의 세 번째 필드 출력
sed 's/old/new/g' file                               # 문자열 치환
sed -i 's/old/new/g' file                            # 파일 내용 직접 수정
sed '1,5d' file                                      # 1-5번째 줄 삭제

# 파이프와 리다이렉션
command1 | command2                                  # 파이프로 명령 연결
command > file                                       # 출력을 파일로 리다이렉션 (덮어쓰기)
command >> file                                      # 출력을 파일에 추가
command < file                                       # 파일을 입력으로 사용
command 2> error.log                                 # 에러를 파일로 리다이렉션
command &> output.log                                # 출력과 에러를 모두 파일로

# 고급 예제
find . -name "*.log" -type f -print0 | xargs -0 grep "ERROR" # .log 파일에서 "ERROR" 문자열 검색
awk -F':' '{print $1, $3}' /etc/passwd | sort -k2 -n  # /etc/passwd에서 사용자명과 UID를 UID 순으로 정렬
grep -r "FAIL" /var/log/ | awk -F: '{print $1}' | sort | uniq -c | sort -nr # 로그에서 "FAIL"이 많은 파일 순으로 정렬

17. 파일 권한 및 소유권

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 권한 확인 및 변경
ls -l file                                           # 파일 권한 확인
chmod 755 file                                       # 8진수로 권한 설정
chmod u+x file                                       # 소유자에게 실행 권한 추가
chmod g-w file                                       # 그룹에서 쓰기 권한 제거
chmod o=r file                                       # 기타 사용자에게 읽기 권한만 부여
chmod -R 755 directory                               # 디렉토리와 하위 파일 권한 재귀 변경

# 소유권 변경
chown user file                                      # 파일 소유자 변경
chown user:group file                                # 파일 소유자와 그룹 변경
chown -R user:group directory                        # 디렉토리와 하위 파일 소유권 재귀 변경
chgrp group file                                     # 파일 그룹 변경

# 특수 권한
chmod +t directory                                   # sticky bit 설정
chmod g+s file                                       # setgid 설정
chmod u+s file                                       # setuid 설정

18. 프로세스 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 프로세스 확인
ps                                                   # 현재 터미널의 프로세스 목록
ps aux                                               # 모든 프로세스 상세 정보 (BSD 형식)
ps -ef                                               # 모든 프로세스 상세 정보 (System V 형식)
ps -u username                                       # 특정 사용자의 프로세스
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head      # 메모리 사용량 상위 프로세스 확인
pgrep process_name                                   # 프로세스 이름으로 PID 찾기
pidof process_name                                   # 프로세스 이름으로 PID 찾기
top                                                  # 실시간 프로세스 모니터링 (Shift+M: 메모리, Shift+P: CPU)
htop                                                 # 향상된 프로세스 모니터링 (F4: 필터, F5: 트리, F9: 종료)
jobs                                                 # 백그라운드 작업 목록

# 프로세스 제어
kill PID                                             # 프로세스에 종료 시그널(SIGTERM, 15) 전송
kill -9 PID                                          # 프로세스 강제 종료 (SIGKILL, 9)
kill -l                                              # 사용 가능한 모든 시그널 목록 확인
kill -HUP PID                                        # 프로세스에 재시작/설정 리로드 시그널(SIGHUP, 1) 전송
killall process_name                                 # 이름으로 프로세스 종료
pkill -f "process_pattern"                           # 패턴으로 프로세스 종료
nohup command &                                      # 터미널 종료 후에도 실행 유지
command &                                            # 백그라운드에서 명령 실행
fg %1                                                # 백그라운드 작업을 포그라운드로
bg %1                                                # 중단된 작업을 백그라운드로
Ctrl+Z                                               # 현재 프로세스 일시 중단
Ctrl+C                                               # 현재 프로세스 종료 (SIGINT)

19. 시스템 정보 및 모니터링

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 시스템 정보
uname -a                                             # 시스템 전체 정보
uname -r                                             # 커널 버전
hostname                                             # 호스트명 확인
whoami                                               # 현재 사용자명
id                                                   # 사용자 ID 및 그룹 정보
w                                                    # 로그인한 사용자 정보
who                                                  # 로그인한 사용자 목록
last                                                 # 최근 로그인 기록
uptime                                               # 시스템 가동 시간 및 부하
date                                                 # 현재 날짜와 시간
cal                                                  # 달력 출력

# 하드웨어 정보
lscpu                                                # CPU 정보
lsblk                                                # 블록 디바이스 정보
lsusb                                                # USB 디바이스 정보
lspci                                                # PCI 디바이스 정보
dmidecode                                            # 하드웨어 상세 정보
free -h                                              # 메모리 사용량 (읽기 쉬운 형식)
df -h                                                # 디스크 사용량 (읽기 쉬운 형식)
du -h directory                                      # 디렉토리 크기
du -sh *                                             # 현재 디렉토리 내 각 항목 크기

# 네트워크 정보
ifconfig                                             # 네트워크 인터페이스 정보
ip addr show                                         # IP 주소 정보
ip route show                                        # 라우팅 테이블
# 네트워크 정보
ifconfig                                             # 네트워크 인터페이스 정보 (구 버전)
ip addr show                                         # IP 주소 정보 (신 버전)
ip -c addr show                                      # IP 주소 정보 (컬러 출력)
ip route show                                        # 라우팅 테이블 확인
ip -c route show                                     # 라우팅 테이블 확인 (컬러 출력)

# 하드웨어 정보
lscpu                                                # CPU 정보
lsblk                                                # 블록 디바이스 정보
lsusb                                                # USB 디바이스 정보
lspci                                                # PCI 디바이스 정보
dmidecode                                            # 하드웨어 상세 정보
free -h                                              # 메모리 사용량 (읽기 쉬운 형식)
df -h                                                # 디스크 사용량 (읽기 쉬운 형식)
du -h directory                                      # 디렉토리 크기
du -sh *                                             # 현재 디렉토리 내 각 항목 크기

# 네트워크 정보
ifconfig                                             # 네트워크 인터페이스 정보
ip addr show                                         # IP 주소 정보
ip route show                                        # 라우팅 테이블
netstat -tuln                                        # 네트워크 연결 상태
ss -tuln                                             # 소켓 통계 (netstat 대체)
ping host                                            # 호스트 연결 테스트
traceroute host                                      # 네트워크 경로 추적
wget url                                             # 파일 다운로드
curl url                                             # HTTP 요청

20. 압축 및 아카이브

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# tar 아카이브
tar -cvf archive.tar files                           # tar 아카이브 생성
tar -xvf archive.tar                                 # tar 아카이브 추출
tar -tvf archive.tar                                 # tar 아카이브 내용 확인
tar -czvf archive.tar.gz files                       # gzip 압축과 함께 아카이브
tar -xzvf archive.tar.gz                             # gzip 압축 아카이브 추출
tar -cjvf archive.tar.bz2 files                      # bzip2 압축과 함께 아카이브
tar -xjvf archive.tar.bz2                            # bzip2 압축 아카이브 추출

# 압축
gzip file                                            # gzip 압축
gunzip file.gz                                       # gzip 압축 해제
zip archive.zip files                                # zip 압축
unzip archive.zip                                    # zip 압축 해제

21. 환경 변수 및 셸 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 환경 변수
env                                                  # 모든 환경 변수 출력
echo $PATH                                           # PATH 환경 변수 출력
export VAR=value                                     # 환경 변수 설정
unset VAR                                            # 환경 변수 제거
which command                                        # 명령어 위치 찾기
type command                                         # 명령어 타입 확인
whereis command                                      # 명령어 관련 파일 위치

# 셸 히스토리
history                                              # 명령어 히스토리
history | grep pattern                               # 히스토리에서 패턴 검색
!!                                                   # 마지막 명령어 재실행
!n                                                   # n번째 명령어 실행
!pattern                                             # 패턴으로 시작하는 마지막 명령어 실행

# 별칭
alias ll='ls -la'                                    # 별칭 설정
alias                                                # 모든 별칭 확인
unalias ll                                           # 별칭 제거

22. 사용자 및 그룹 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 사용자 관리
sudo useradd username                                # 사용자 추가
sudo userdel username                                # 사용자 삭제
sudo usermod -aG group username                      # 사용자를 그룹에 추가
passwd                                               # 비밀번호 변경
sudo passwd username                                 # 다른 사용자 비밀번호 변경
su username                                          # 사용자 전환
sudo command                                         # 관리자 권한으로 명령 실행

# 그룹 관리
groups                                               # 현재 사용자의 그룹 확인
groups username                                      # 특정 사용자의 그룹 확인
sudo groupadd groupname                              # 그룹 추가
sudo groupdel groupname                              # 그룹 삭제

23. 시스템 서비스 관리 (systemd)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 서비스 관리
sudo systemctl start service                         # 서비스 시작
sudo systemctl stop service                          # 서비스 중지
sudo systemctl restart service                       # 서비스 재시작
sudo systemctl reload service                        # 서비스 설정 다시 로드
sudo systemctl enable service                        # 부팅 시 자동 시작 설정
sudo systemctl disable service                       # 부팅 시 자동 시작 해제
systemctl status service                             # 서비스 상태 확인
systemctl is-active service                          # 서비스 활성 상태 확인
systemctl is-enabled service                         # 서비스 자동 시작 설정 확인
systemctl list-units --type=service                  # 모든 서비스 목록
journalctl -u service                                # 서비스 로그 확인
journalctl -f -u service                             # 서비스 로그 실시간 확인

24. 패키지 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Ubuntu/Debian (apt)
sudo apt update                                      # 패키지 목록 업데이트
sudo apt upgrade                                     # 패키지 업그레이드
sudo apt install package                             # 패키지 설치
sudo apt remove package                              # 패키지 제거
sudo apt purge package                               # 패키지와 설정 파일 완전 제거
sudo apt autoremove                                  # 불필요한 패키지 자동 제거
apt search package                                   # 패키지 검색
apt show package                                     # 패키지 정보 확인

# CentOS/RHEL (yum/dnf)
sudo yum update                                      # 패키지 업데이트
sudo yum install package                             # 패키지 설치
sudo yum remove package                              # 패키지 제거
yum search package                                   # 패키지 검색
yum info package                                     # 패키지 정보 확인

25. 로그 관리

1
2
3
4
5
6
7
8
9
10
# 시스템 로그
sudo tail -f /var/log/syslog                         # 시스템 로그 실시간 확인
sudo tail -f /var/log/auth.log                       # 인증 로그 확인
sudo tail -f /var/log/kern.log                       # 커널 로그 확인
journalctl                                           # systemd 저널 확인
journalctl -f                                        # systemd 저널 실시간 확인
journalctl --since "1 hour ago"                      # 1시간 전부터 로그
journalctl --until "2023-01-01"                      # 특정 날짜까지 로그
dmesg                                                # 커널 메시지 확인
dmesg | tail                                         # 최근 커널 메시지

25.1 네트워크 진단 및 도구

로컬 네트워크 설정 확인

ip -br link # 인터페이스 목록 간략히 보기 (UP/DOWN, IP) ip addr show # IP 주소, MAC 주소, 인터페이스 상태 확인 ip -c addr show # 컬러로 보기 ifconfig # (구 버전) 네트워크 인터페이스 정보 ip route show # 라우팅 테이블 확인 ip -c route # 라우팅 테이블 컬러로 확인

기본 연결 및 경로 추적 (ping, mtr, traceroute)

ping -c 4 google.com # 4번의 ICMP 요청으로 기본 연결 확인 traceroute google.com # 대상까지의 네트워크 경로 추적 (UDP 기본)

25.2 mtr (My Traceroute) - ping과 traceroute를 결합한 강력한 도구

sudo mtr 1.1.1.1 # 실시간 인터랙티브 모드로 경로 추적 sudo mtr -n 8.8.8.8 # DNS 조회 없이 IP 주소로만 표시 sudo mtr -rwzc 100 1.1.1.1 # 100회 실행 후 리포트 출력 (자동화용) sudo mtr -rwzc 100 -T -P 443 example.com # TCP 443 포트로 경로 추적 (방화벽 통과 시 유용) sudo mtr -rwzc 100 -u -P 53 1.1.1.1 # UDP 53 포트로 경로 추적 (DNS 쿼리 경로) sudo mtr -rwzc 50 -s 1472 1.1.1.1 # 패킷 크기 설정 (MTU 문제 확인) sudo mtr -rwzc 100 -I eth1 -a 192.168.10.101 8.8.8.8 # 특정 인터페이스와 소스 IP 지정 sudo mtr -rwzc 200 -T -P 443 example.com > mtr_443.txt # 결과를 파일로 저장

포트 및 서비스 확인 (ss, netstat)

ss -tnlp # TCP 리스닝 소켓과 사용하는 프로세스 확인 ss -unlp # UDP 리스닝 소켓과 사용하는 프로세스 확인 ss -tuna # 모든 TCP/UDP 소켓 상태 확인 netstat -tnlp # (구 버전) ss와 유사한 기능

DNS 조회 (dig, nslookup, host)

nslookup google.com # 도메인의 IP 주소 확인 dig google.com +short # 간단한 A 레코드 조회 dig google.com MX # 메일 서버(MX) 레코드 조회 host google.com # 간단한 DNS 정보 조회

패킷 캡처 및 분석 (tcpdump, termshark)

25.3 tcpdump - 강력하고 유연한 저수준 패킷 캡처 도구

기본 사용법

sudo tcpdump -i any # 모든 인터페이스의 트래픽 캡처 sudo tcpdump -i eth0 -nn # eth0 인터페이스, 호스트명/포트번호 해석 없이(-nn) sudo tcpdump -i eth0 -w capture.pcap # 캡처 결과를 파일로 저장 sudo tcpdump -r capture.pcap # 저장된 파일 읽기

필터링 (BPF - Berkeley Packet Filter)

sudo tcpdump -i eth0 host 1.2.3.4 # 특정 호스트(IP)와 관련된 트래픽 sudo tcpdump -i eth0 src 1.2.3.4 # 소스 IP가 1.2.3.4인 트래픽 sudo tcpdump -i eth0 dst 1.2.3.4 # 목적지 IP가 1.2.3.4인 트래픽 sudo tcpdump -i eth0 port 443 # 443 포트를 사용하는 트래픽 sudo tcpdump -i eth0 tcp portrange 22-80 # 22-80번 TCP 포트 범위의 트래픽 sudo tcpdump -i eth0 ‘tcp[tcpflags] & (tcp-syn|tcp-fin) != 0’ # TCP SYN 또는 FIN 플래그가 있는 패킷 sudo tcpdump -i eth0 ‘icmp[icmptype] = icmp-echo or icmp[icmptype] = icmp-echoreply’ # Ping 요청/응답

출력 제어 및 고급 기능

sudo tcpdump -i eth0 -s 0 -A ‘port 80’ # HTTP(80) 트래픽의 전체 패킷(-s 0)을 ASCII로(-A) 보기 sudo tcpdump -i eth0 -C 10M -W 5 -w capture.pcap # 10MB 단위로 파일을 5개까지 로테이션하며 저장 sudo tcpdump -i eth1 -nn ‘udp port 8472’ # VXLAN 캡슐화 트래픽 확인 sudo tcpdump -i cilium_vxlan -nn icmp # 가상 터널 인터페이스 내부의 ICMP 패킷 확인

25.4 termshark - 터미널용 Wireshark (TUI), 직관적인 분석 환경 제공

기본 사용법

sudo termshark -i eth1 # 실시간으로 eth1 인터페이스 캡처 및 분석 sudo termshark -i eth1 ‘tcp port 80’ # BPF 필터로 HTTP 트래픽만 실시간 분석 termshark -r /tmp/cap.pcap # 저장된 pcap 파일 열기

필터링 (Wireshark 디스플레이 필터)

termshark -r /tmp/cap.pcap -Y ‘http.request’ # 저장된 파일에 디스플레이 필터(-Y) 적용 termshark -r /tmp/cap.pcap -Y ‘dns.qry.name == “google.com”’ # 특정 DNS 쿼리 필터링 termshark -r /tmp/cap.pcap ‘icmp or tcp port 443’ # BPF 필터를 적용하여 파일 열기

termshark 내에서 ‘z’ -> ‘Follow TCP/UDP/TLS Stream’ 과 같은 Wireshark 핵심 기능 사용 가능

파이프(|)를 눌러 디스플레이 필터 실시간 변경, Tab으로 패널 이동 등 다양한 인터랙션 제공

원격 연결 및 파일 전송 (ssh, scp, rsync, wget, curl)

ssh user@host # SSH 원격 접속 scp file user@host:/path # SCP로 안전하게 파일 전송 rsync -avz –progress source/ destination/ # 효율적인 파일 동기화 (압축, 진행상황 표시) wget -c https://example.com/large-file.zip # 이어받기 기능으로 대용량 파일 다운로드 curl -L http://example.com # 리다이렉션을 따라가며 HTTP 요청 curl -s -o /dev/null -w “%{http_code}” http://example.com # HTTP 상태 코드만 확인

26. 유용한 단축키 및 팁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 터미널 단축키
Ctrl+A                                               # 줄 시작으로 이동
Ctrl+E                                               # 줄 끝으로 이동
Ctrl+U                                               # 커서 앞 모든 텍스트 삭제
Ctrl+K                                               # 커서 뒤 모든 텍스트 삭제
Ctrl+W                                               # 커서 앞 단어 삭제
Ctrl+L                                               # 화면 지우기 (clear와 동일)
Ctrl+R                                               # 히스토리 검색
Tab                                                  # 자동 완성
Tab Tab                                              # 가능한 완성 목록 표시

# 유용한 조합
find /path -name "*.txt" -exec grep -l "pattern" {} \;  # 패턴을 포함한 파일 찾기
ps aux | grep process_name                           # 특정 프로세스 찾기
df -h | grep -v tmpfs                                # tmpfs 제외한 디스크 사용량
ss -tnlp | grep :80                                  # 80번 포트를 사용하는 프로세스 확인
history | grep command                               # 히스토리에서 명령어 검색

궁금하신 점이나 추가해야 할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKam._.Ji

netstat -tuln # 네트워크 연결 상태 ss -tuln # 소켓 통계 (netstat 대체) ss -tnlp # 소켓 통계 (프로세스 정보 포함) ping host # 호스트 연결 테스트 traceroute host # 네트워크 경로 추적 wget url # 파일 다운로드 curl url # HTTP 요청

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## 압축 및 아카이브

```shell
# tar 아카이브
tar -cvf archive.tar files                           # tar 아카이브 생성
tar -xvf archive.tar                                 # tar 아카이브 추출
tar -tvf archive.tar                                 # tar 아카이브 내용 확인
tar -czvf archive.tar.gz files                       # gzip 압축과 함께 아카이브
tar -xzvf archive.tar.gz                             # gzip 압축 아카이브 추출
tar -cjvf archive.tar.bz2 files                      # bzip2 압축과 함께 아카이브
tar -xjvf archive.tar.bz2                            # bzip2 압축 아카이브 추출

# 압축
gzip file                                            # gzip 압축
gunzip file.gz                                       # gzip 압축 해제
zip archive.zip files                                # zip 압축
unzip archive.zip                                    # zip 압축 해제

환경 변수 및 셸 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 환경 변수
env                                                  # 모든 환경 변수 출력
echo $PATH                                           # PATH 환경 변수 출력
export VAR=value                                     # 환경 변수 설정
unset VAR                                            # 환경 변수 제거
which command                                        # 명령어 위치 찾기
type command                                         # 명령어 타입 확인
whereis command                                      # 명령어 관련 파일 위치

# 셸 히스토리
history                                              # 명령어 히스토리
history | grep pattern                               # 히스토리에서 패턴 검색
!!                                                   # 마지막 명령어 재실행
!n                                                   # n번째 명령어 실행
!pattern                                             # 패턴으로 시작하는 마지막 명령어 실행

# 별칭
alias ll='ls -la'                                    # 별칭 설정
alias                                                # 모든 별칭 확인
unalias ll                                           # 별칭 제거

사용자 및 그룹 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 사용자 관리
sudo useradd username                                # 사용자 추가
sudo userdel username                                # 사용자 삭제
sudo usermod -aG group username                      # 사용자를 그룹에 추가
passwd                                               # 비밀번호 변경
sudo passwd username                                 # 다른 사용자 비밀번호 변경
su username                                          # 사용자 전환
sudo command                                         # 관리자 권한으로 명령 실행

# 그룹 관리
groups                                               # 현재 사용자의 그룹 확인
groups username                                      # 특정 사용자의 그룹 확인
sudo groupadd groupname                              # 그룹 추가
sudo groupdel groupname                              # 그룹 삭제

시스템 서비스 관리 (systemd)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 서비스 관리
sudo systemctl start service                         # 서비스 시작
sudo systemctl stop service                          # 서비스 중지
sudo systemctl restart service                       # 서비스 재시작
sudo systemctl reload service                        # 서비스 설정 다시 로드
sudo systemctl enable service                        # 부팅 시 자동 시작 설정
sudo systemctl disable service                       # 부팅 시 자동 시작 해제
systemctl status service                             # 서비스 상태 확인
systemctl is-active service                          # 서비스 활성 상태 확인
systemctl is-enabled service                         # 서비스 자동 시작 설정 확인
systemctl list-units --type=service                  # 모든 서비스 목록
journalctl -u service                                # 서비스 로그 확인
journalctl -f -u service                             # 서비스 로그 실시간 확인

패키지 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Ubuntu/Debian (apt)
sudo apt update                                      # 패키지 목록 업데이트
sudo apt upgrade                                     # 패키지 업그레이드
sudo apt install package                             # 패키지 설치
sudo apt remove package                              # 패키지 제거
sudo apt purge package                               # 패키지와 설정 파일 완전 제거
sudo apt autoremove                                  # 불필요한 패키지 자동 제거
apt search package                                   # 패키지 검색
apt show package                                     # 패키지 정보 확인

# CentOS/RHEL (yum/dnf)
sudo yum update                                      # 패키지 업데이트
sudo yum install package                             # 패키지 설치
sudo yum remove package                              # 패키지 제거
yum search package                                   # 패키지 검색
yum info package                                     # 패키지 정보 확인

로그 관리

1
2
3
4
5
6
7
8
9
10
# 시스템 로그
sudo tail -f /var/log/syslog                         # 시스템 로그 실시간 확인
sudo tail -f /var/log/auth.log                       # 인증 로그 확인
sudo tail -f /var/log/kern.log                       # 커널 로그 확인
journalctl                                           # systemd 저널 확인
journalctl -f                                        # systemd 저널 실시간 확인
journalctl --since "1 hour ago"                      # 1시간 전부터 로그
journalctl --until "2023-01-01"                      # 특정 날짜까지 로그
dmesg                                                # 커널 메시지 확인
dmesg | tail                                         # 최근 커널 메시지

네트워크 도구

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 연결 테스트
ping -c 4 host                                       # 4번 ping 테스트
traceroute host                                      # 경로 추적
mtr host                                             # traceroute와 ping을 결합한 네트워크 진단 도구
nslookup domain                                      # DNS 조회
dig domain                                           # DNS 상세 조회
host domain                                          # 간단한 DNS 조회

# 패킷 분석
tcpdump -i any -n 'port 80'                          # 모든 인터페이스에서 80번 포트 트래픽 캡처
tcpdump -i eth0 -w capture.pcap                      # eth0 인터페이스 트래픽을 파일에 저장
termshark -i eth0                                    # 터미널용 Wireshark (TUI)

# 네트워크 연결
ssh user@host                                        # SSH 연결
scp file user@host:/path                             # SCP 파일 전송
rsync -av source/ destination/                       # rsync 동기화
wget -O file url                                     # 파일 다운로드
curl -o file url                                     # 파일 다운로드

유용한 단축키 및 팁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 터미널 단축키
Ctrl+A                                               # 줄 시작으로 이동
Ctrl+E                                               # 줄 끝으로 이동
Ctrl+U                                               # 커서 앞 모든 텍스트 삭제
Ctrl+K                                               # 커서 뒤 모든 텍스트 삭제
Ctrl+W                                               # 커서 앞 단어 삭제
Ctrl+L                                               # 화면 지우기 (clear와 동일)
Ctrl+R                                               # 히스토리 검색
Tab                                                  # 자동 완성
Tab Tab                                              # 가능한 완성 목록 표시

# 유용한 조합
find /path -name "*.txt" -exec grep -l "pattern" {} \;  # 패턴을 포함한 파일 찾기
ps aux | grep process_name                           # 특정 프로세스 찾기
df -h | grep -v tmpfs                                # tmpfs 제외한 디스크 사용량
netstat -tuln | grep :80                             # 80번 포트 사용 확인
history | grep command                               # 히스토리에서 명령어 검색

궁금하신 점이나 추가해야 할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKam._.Ji

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## 27. 압축 및 아카이브

```shell
# tar 아카이브
tar -cvf archive.tar files                           # tar 아카이브 생성
tar -xvf archive.tar                                 # tar 아카이브 추출
tar -tvf archive.tar                                 # tar 아카이브 내용 확인
tar -czvf archive.tar.gz files                       # gzip 압축과 함께 아카이브
tar -xzvf archive.tar.gz                             # gzip 압축 아카이브 추출
tar -cjvf archive.tar.bz2 files                      # bzip2 압축과 함께 아카이브
tar -xjvf archive.tar.bz2                            # bzip2 압축 아카이브 추출

# 압축
gzip file                                            # gzip 압축
gunzip file.gz                                       # gzip 압축 해제
zip archive.zip files                                # zip 압축
unzip archive.zip                                    # zip 압축 해제

28. 환경 변수 및 셸 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 환경 변수
env                                                  # 모든 환경 변수 출력
echo $PATH                                           # PATH 환경 변수 출력
export VAR=value                                     # 환경 변수 설정
unset VAR                                            # 환경 변수 제거
which command                                        # 명령어 위치 찾기
type command                                         # 명령어 타입 확인
whereis command                                      # 명령어 관련 파일 위치

# 셸 히스토리
history                                              # 명령어 히스토리
history | grep pattern                               # 히스토리에서 패턴 검색
!!                                                   # 마지막 명령어 재실행
!n                                                   # n번째 명령어 실행
!pattern                                             # 패턴으로 시작하는 마지막 명령어 실행

# 별칭
alias ll='ls -la'                                    # 별칭 설정
alias                                                # 모든 별칭 확인
unalias ll                                           # 별칭 제거

29. 사용자 및 그룹 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 사용자 관리
sudo useradd username                                # 사용자 추가
sudo userdel username                                # 사용자 삭제
sudo usermod -aG group username                      # 사용자를 그룹에 추가
passwd                                               # 비밀번호 변경
sudo passwd username                                 # 다른 사용자 비밀번호 변경
su username                                          # 사용자 전환
sudo command                                         # 관리자 권한으로 명령 실행

# 그룹 관리
groups                                               # 현재 사용자의 그룹 확인
groups username                                      # 특정 사용자의 그룹 확인
sudo groupadd groupname                              # 그룹 추가
sudo groupdel groupname                              # 그룹 삭제

30. 시스템 서비스 관리 (systemd)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 서비스 관리
sudo systemctl start service                         # 서비스 시작
sudo systemctl stop service                          # 서비스 중지
sudo systemctl restart service                       # 서비스 재시작
sudo systemctl reload service                        # 서비스 설정 다시 로드
sudo systemctl enable service                        # 부팅 시 자동 시작 설정
sudo systemctl disable service                       # 부팅 시 자동 시작 해제
systemctl status service                             # 서비스 상태 확인
systemctl is-active service                          # 서비스 활성 상태 확인
systemctl is-enabled service                         # 서비스 자동 시작 설정 확인
systemctl list-units --type=service                  # 모든 서비스 목록
journalctl -u service                                # 서비스 로그 확인
journalctl -f -u service                             # 서비스 로그 실시간 확인

31. 패키지 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Ubuntu/Debian (apt)
sudo apt update                                      # 패키지 목록 업데이트
sudo apt upgrade                                     # 패키지 업그레이드
sudo apt install package                             # 패키지 설치
sudo apt remove package                              # 패키지 제거
sudo apt purge package                               # 패키지와 설정 파일 완전 제거
sudo apt autoremove                                  # 불필요한 패키지 자동 제거
apt search package                                   # 패키지 검색
apt show package                                     # 패키지 정보 확인

# CentOS/RHEL (yum/dnf)
sudo yum update                                      # 패키지 업데이트
sudo yum install package                             # 패키지 설치
sudo yum remove package                              # 패키지 제거
yum search package                                   # 패키지 검색
yum info package                                     # 패키지 정보 확인

32. 로그 관리

1
2
3
4
5
6
7
8
9
10
# 시스템 로그
sudo tail -f /var/log/syslog                         # 시스템 로그 실시간 확인
sudo tail -f /var/log/auth.log                       # 인증 로그 확인
sudo tail -f /var/log/kern.log                       # 커널 로그 확인
journalctl                                           # systemd 저널 확인
journalctl -f                                        # systemd 저널 실시간 확인
journalctl --since "1 hour ago"                      # 1시간 전부터 로그
journalctl --until "2023-01-01"                      # 특정 날짜까지 로그
dmesg                                                # 커널 메시지 확인
dmesg | tail                                         # 최근 커널 메시지

33. 네트워크 도구

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 연결 테스트
ping -c 4 host                                       # 4번 ping 테스트
traceroute host                                      # 경로 추적
mtr host                                             # traceroute와 ping을 결합한 네트워크 진단 도구
nslookup domain                                      # DNS 조회
dig domain                                           # DNS 상세 조회
host domain                                          # 간단한 DNS 조회

# 패킷 분석
tcpdump -i any -n 'port 80'                          # 모든 인터페이스에서 80번 포트 트래픽 캡처
tcpdump -i eth0 -w capture.pcap                      # eth0 인터페이스 트래픽을 파일에 저장
termshark -i eth0                                    # 터미널용 Wireshark (TUI)

# 네트워크 연결
ssh user@host                                        # SSH 연결
scp file user@host:/path                             # SCP 파일 전송
rsync -av source/ destination/                       # rsync 동기화
wget -O file url                                     # 파일 다운로드
curl -o file url                                     # 파일 다운로드

34. 유용한 단축키 및 팁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 터미널 단축키
Ctrl+A                                               # 줄 시작으로 이동
Ctrl+E                                               # 줄 끝으로 이동
Ctrl+U                                               # 커서 앞 모든 텍스트 삭제
Ctrl+K                                               # 커서 뒤 모든 텍스트 삭제
Ctrl+W                                               # 커서 앞 단어 삭제
Ctrl+L                                               # 화면 지우기 (clear와 동일)
Ctrl+R                                               # 히스토리 검색
Tab                                                  # 자동 완성
Tab Tab                                              # 가능한 완성 목록 표시

# 유용한 조합
find /path -name "*.txt" -exec grep -l "pattern" {} \;  # 패턴을 포함한 파일 찾기
ps aux | grep process_name                           # 특정 프로세스 찾기
df -h | grep -v tmpfs                                # tmpfs 제외한 디스크 사용량
netstat -tuln | grep :80                             # 80번 포트 사용 확인
history | grep command                               # 히스토리에서 명령어 검색

궁금하신 점이나 추가해야 할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKamJi

This post is licensed under CC BY 4.0 by the author.