Computer >> 컴퓨터 >  >> 스마트폰 >> Linux

리눅스 관리자를 위한 필수 Bash 명령어 20선

시스템 관리자와 개발자가 일상에서 가장 자주 사용하는 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)이나 쉘 함수로 등록해 두세요.