시스템 관리자와 개발자가 일상에서 가장 자주 사용하는 Bash 명령어 20가지를 엄선해 소개합니다. 각 명령어의 핵심 용도와 실전 예제를 함께 정리했습니다.
1. ifconfig / ip addr — 네트워크 인터페이스 정보 확인
시스템의 IP 주소, MAC 주소, 인터페이스 상태를 확인할 때 사용합니다. ifconfig는 전통적인 도구이며, 최신 배포판에서는 ip addr 사용을 권장합니다.
$ ip addr show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:1a:73:0f:0e:fd brd ff:ff:ff:ff:ff:ff
inet 192.168.1.139/24 brd 192.168.1.255 scope global wlan0
inet6 fe80::21a:73ff:fe0f:efd/64 scope link
팁: ip -br addr을 쓰면 한 줄 요약으로 깔끔하게 볼 수 있습니다.
2. route -n / ip route — 라우팅 테이블 및 기본 게이트웨이 확인
기본 게이트웨이(라우터) IP를 찾을 때 유용합니다. route -n은 숫자만 출력해 빠르게 확인 가능합니다.
$ ip route
default via 192.168.1.1 dev wlan0 proto static
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.139
3. ping — 네트워크 연결성 테스트
호스트까지 패킷이 왕복하는지, 지연 시간은 어떤지 확인합니다. -c 옵션으로 횟수 제한 가능.
$ ping -c 4 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.23 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.149/1.190/1.238/0.032 ms
4. traceroute / tracepath — 경로 추적
목적지까지 거치는 라우터(홉) 목록과 각 구간 지연 시간을 보여줍니다. 네트워크 병목 지점 파악에 필수.
$ traceroute example.com
5. host — 간단 DNS 조회
도메인 명의 IP 주소(A 레코드)나 메일 서버(MX 레코드)를 빠르게 확인할 때 씁니다.
$ host example.com
example.com has address 93.184.216.34
example.com mail is handled by 10 mail.example.com.
6. dig — 상세 DNS 쿼리
host보다 자세한 정보를 제공합니다. 레코드 타입(A, MX, NS, TXT 등)을 지정해 조회 가능.
$ dig example.com A
$ dig example.com MX
$ dig example.com NS
출력에서 ANSWER SECTION이 실제 레코드 값, SERVER가 사용된 네임서버입니다.
7. iwlist / iw dev — 무선 네트워크 스캔 (관리자 권한 필요)
주변 와이파이 네트워크(SSID, 채널, 신호 강도, 암호화 방식)를 탐색합니다.
$ sudo iwlist wlan0 scan
# 또는 최신 방식
$ sudo iw dev wlan0 scan
8. iwconfig / iw dev — 무선 인터페이스 상태 확인
현재 연결된 SSID, 비트레이트, 링크 품질, 신호 강도 등을 보여줍니다.
$ iwconfig wlan0
wlan0 IEEE 802.11bg ESSID:"Coffee"
Mode:Managed Frequency:2.437 GHz Access Point: 00:10:18:90:20:DB
Bit Rate=54 Mb/s Tx-Power=27 dBm
Link Quality=96/100 Signal level=-37 dBm
9. free — 메모리 및 스왑 사용량 확인
-h 옵션으로 사람이 읽기 쉬운 단위(KiB, MiB, GiB)로 출력하세요.
$ free -h
total used free shared buff/cache available
Mem: 7.7Gi 3.2Gi 1.1Gi 256Mi 3.4Gi 4.0Gi
Swap: 2.0Gi 0B 2.0Gi
참고: available 열이 실제 사용 가능한 메모리 추정치입니다.
10. mount — 마운트된 파일시스템 목록
인자 없이 실행하면 현재 마운트된 모든 파일시스템을 보여줍니다. findmnt를 쓰면 트리 형태로 더 보기 좋습니다.
$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2 ext4 rw,relatime
├─/boot /dev/sda1 ext4 rw,relatime
└─/home /dev/sda3 ext4 rw,relatime
11. df — 디스크 공간 사용량 (파일시스템 단위)
-h로 읽기 쉬운 단위, -T로 파일시스템 타입 함께 표시.
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 190M 19M 162M 11% /boot
/dev/sda3 ext4 60G 44G 16G 74% /home
/dev/sda1 vfat 512M 4.0M 508M 1% /boot/efi
12. du — 디렉터리별 디스크 사용량
-h 인간 친화 단위, -c 총합 표시, -s 요약만 보기.
$ du -hc ~/Documents/project/
12M project/src
8.0M project/docs
4.0M project/tests
24M total
꿀팁: du -h --max-depth=1 | sort -hr로 하위 디렉터리 크기 내림차순 정렬 가능.
13. head — 파일 앞부분 출력
기본 10줄, -n으로 줄 수 지정. 로그 파일 초반 확인에 유용.
$ head -20 /var/log/dmesg
14. tail — 파일 뒷부분 출력
기본 10줄. -f 옵션으로 실시간 스트리밍(로그 모니터링) 가능.
$ tail -f /var/log/syslog
$ tail -30 /var/log/yum.log
15. grep / zgrep — 파일 내 문자열 검색
정규식 지원. -i 대소문자 무시, -n 줄 번호 표시, -r 재귀 검색. 압축 파일에는 zgrep.
$ grep -in error /var/log/nginx/error.log
$ zgrep "failed" /var/log/auth.log.1.gz
16. type / which / command -v — 명령어 위치 확인
type은 내장 명령어/별칭/함수/실행파일 모두 구분해 보여줍니다. 스크립트에서 경로 확인 시 command -v가 표준적입니다.
$ type ping
ping is /usr/bin/ping
$ type cd
cd is a shell builtin
17. locate — 파일명으로 빠른 검색
미리 구축된 데이터베이스(/var/lib/mlocate/mlocate.db)를 조회해 즉각 결과를 줍니다. updatedb로 DB 갱신 필요.
$ locate *.rpm
/home/user/Downloads/package-1.0.x86_64.rpm
18. file — 파일 타입 판별
확장자 없이 파일 내용(매직 넘버)을 분석해 타입을 알려줍니다. 바이너리/텍스트/이미지/압축 등 구분 가능.
$ file /bin/bash
/bin/bash: ELF 64-bit LSB shared object, x86-64
$ file image.png
image.png: PNG image data, 1920 x 1080, 8-bit/color RGBA
$ file data.tar.gz
data.tar.gz: gzip compressed data
19. history — 명령어 히스토리 조회
이전에 실행한 명령어 목록을 보여줍니다. history | grep ssh로 특정 명령어 찾기, !1001로 1001번 명령어 재실행 가능.
$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10
142 ls
89 cd
56 git
43 vim
31 grep
28 docker
22 systemctl
19 ssh
15 make
12 python3
위 파이프라인은 가장 많이 쓴 명령어 Top 10을 뽑아줍니다.
20. less / more — 페이저로 긴 출력 보기
less는 양방향 스크롤, 검색(/), 줄 이동(g/G) 등 기능이 풍부합니다. dmesg | less, journalctl -u nginx | less처럼 파이프와 조합해 쓰세요.
마치며
이 20가지 명령어는 리눅스/유닉스 환경에서 매일 마주치는 네트워크 진단, 디스크 관리, 로그 분석, 파일 검색 등 핵심 작업을 커버합니다. 각 명령어의 주요 옵션(-h, -v, -f 등)만 익혀도 작업 효율이 크게 오릅니다. 자주 쓰는 조합은 별칭(alias)이나 쉘 함수로 등록해 두세요.