프로그래밍 지식/Linux

알아두면 좋은 리눅스 명령어

raptarior 2026. 7. 6. 14:30

시스템 리소스 관련

free : 시스템 메모리 사용량 출력

vmstat : 시스템 리소스 종합 모니터링 (프로세스, 메모리, 페이징, 디스크, CPU 등)

top : 시스템 실시간 성능 모니터링 (CPU, 메모리 사용량 및 실행 중인 프로세스)

 

df (disk free) : 파일 시스템 디스크 사용량 출력
-h : 읽기 좋은 단위로 출력 (K, M, G 단위)
du (disk usage) : 파일이나 디렉터리의 실제 점유 용량 출력

 

프로세스와 작업 관련

ps (process status) : 프로세스 확인 명령어
pgrep : 프로세스 검색 명령어 (ps + grep)
nohup (no hang up) : 터미널을 닫거나 접속을 끊어도(Ctrl + C 등) 프로세스가 계속 실행 (kill로 종료 가능)

 

참고) 프로세스 관리 체계 'systemd'
2015년즈음을 기준으로 시스템 기반(부팅 및 시스템과 프로세스 관리)이 SysV init에서 systemd로 변경

  SysV init systemd
최초 프로세스 위치 (PID 1) /sbin/init /usr/lib/systemd/systemd
부팅 처리 방식 직렬 (순서대로 실행하여 느림) 병렬 (동시에 실행하여 빠름)
스크립트 규격 셸 스크립트 기반 (길고 복잡) 설정 파일(Unit) 기반


설정 파일 Unit 규격의 예
.service : 사용자가 다루는 일반적인 프로그램 관리 (SSH, 웹 서버 등)
.mount : 디스크 파티션이나 네트워크 드라이브 연결 관리
.timer : 특정 시간에 주기적으로 명령어 실행하는 시스템

 

파일과 디렉토리, 명령어 관련

stat : 파일 또는 디렉토리 상세 정보

grep : 매칭되는 문자 패턴 탐색

 

which : 명령어 경로 출력

!! : 마지막으로 실행한 명령어 반복 실행

 

계정 관련

w : 로그인한 계정 확인하여 상세 정보 출력

23:56:42 up 7:20, 1 user, load average: 0.01, 0.02, 0.00
USER    TTY          LOGIN@ IDLE   JCPU   PCPU   WHAT
raptario ttyAMA0 16:36       1.00s  3.72s   0.03s   w


who : 현재 로그인한 사용자 이름, 터미널 타입, 로그인 시간 출력

raptarior ttyAMA0 2026-06-29 16:36


users : 현재 시스템에 로그인한 사용자 리스트 출력

raptarior

 

네트워크 관련

 

netstat : 네트워크 연결 상태 확인
대체 권장 => ss (socket statistics) : 모든 소켓 출력

nslookup : 네임서버 질의
대체 권장 => dig (Domain Information Groper) : 도메인 관련 상세 정보 출력

 

wget : 인터넷에서 파일 다운로드 (스크립트 자동화에서도 사용)

 

네트워크 - 방화벽과 라우팅

ip : 네트워크 인터페이스와 주소, 라우팅 정보 등을 확인하고 설정 (과거의 ifconfig, route를 대체)
ipset : IP 주소, 포트 번호 등 네트워크 관련 요소를 관리하는 도구. 대량의 주소를 세트로써 쉽게 처리할 수 있다
iptables : 패킷 필터링 규칙을 설정하여 들어오고 나가는 트래픽을 제어
=> (권장 대체 명령어) nft(nftables) : IPv4와 IPv6를 nft 명령어로 통합 관리, 커널 내부에 VM 내장, 수많은 IP나 포트 규칙을 Set/Map 그룹으로 처리

참고) iptables의 4가지 테이블 : filter, nat, mangle, raw

  1. filter : 패킷을 통과할지 차단할지 결정하는 방화벽 역할
    소속 체인
    ㄴINPUT (서버 내부로 들어오는 패킷 검사)
    ㄴFORWARD (서버를 거쳐 다른 데로 통과하는 패킷 검사 - 라우터나 게이트웨이 역할 시)
    ㄴOUTPUT (서버에서 밖으로 나가는 패킷 검사)
  2. nat : 사설 IP를 공인 IP로 변경하거나 외부의 요청을 포트포워딩
    소속 체인
    ㄴPREROUTING (주소를 바꾸고 라우팅)
    ㄴPOSTROUTING (라우팅을 마치고 나갈 때 주소를 바꿈)
    ㄴOUTPUT
  3. mangle : 패킷의 헤더 중 특수한 항목을 수정하거나 패킷에 특수한 표식을 남기는 등 고급 네트워크 제어 (대역폭을 우선적으로 넓게 주는 QoS, 랜카드 지정 Policy Routing 등)
    소속 체인 - 5가지 전부
  4. raw : 특정 패킷은 추적하지 않고 그냥 통과
    소속 체인
    ㄴPREROUTING, OUTPUT (패킷이 들어오자마자 가장 먼저 체크해야 하므로)

=> 우선순위 : raw -> mangle -> nat -> filter

 

기타

<(명령어) : 괄호 안의 명령어 결과를 실시간으로 가상 파일처럼 만들어줌
sort -r apple.txt | diff - result.txt
=> - 자리에 파이프로 넘어온 데이터를 입력