리눅스 필수 명령어 정리

서버를 다루다 보면 손에 붙는 명령어들이 있습니다. 자주 쓰는 것들을 주제별로 정리해 뒀어요.

네트워크

ifconfig                               # 인터페이스 정보 (net-tools 필요)
ifconfig | grep "inet " | awk '{print $2}'   # IP만 추출

ss -tln            # 리슨 중인 TCP 소켓 (-a 전체, -u UDP)
netstat -nltp      # 리슨 상태 포트 + 프로세스
lsof -i :8080      # 특정 포트를 쓰는 프로세스
lsof -c nginx      # 특정 프로세스가 여는 파일·포트

트래픽·속도 측정이 필요하면 iftop(실시간 트래픽), speedtest-cli(대역폭)를 설치해 씁니다.

프로세스

ps -ef                          # 전체 프로세스 (풀 포맷)
ps aux --sort -rss              # 메모리(RSS) 사용량 순 정렬
pstree                          # 트리 형태로 보기

top                             # 실시간 모니터링 (Shift+M 메모리순, k로 종료)
free -h                         # 메모리 현황
kill -9 [PID]                   # 강제 종료

메모리 누수가 의심되면 시간에 따라 프로세스의 VSZ가 계속 커지는지 보면 힌트가 됩니다.

패키지 (apt)

apt-get update                  # 패키지 인덱스 갱신 (설치/업그레이드 전 필수)
apt-get install -y [패키지]      # 설치
apt-get remove [패키지]          # 삭제 (설정 파일은 남김)
apt-get purge [패키지]           # 설정 파일까지 완전 삭제
apt-get autoremove              # 불필요한 의존 패키지 정리
apt-get clean                   # 받은 패키지 파일 삭제로 공간 확보

압축 (tar)

tar -cvf test.tar test          # 묶기
tar -cvzf test.tar.gz test      # 묶기 + gzip 압축
tar -tvf test.tar.gz            # 내용 확인
tar -xvzf test.tar.gz           # 압축 해제 + 추출

옵션은 c(생성) x(추출) v(상세) f(파일명) z(gzip) j(bzip2)로 외워두면 조합이 쉽습니다.

원격 접속

ssh [user]@[host] -p [port]     # 원격 접속
sftp -P [port] [user]@[host]    # SSH 기반 파일 전송

sftp 세션 안에서는 get(다운로드) put(업로드), 여러 개는 mget mput, 로컬 이동은 lcd 를 씁니다.

터미널 세션 유지 (screen)

SSH가 끊겨도 작업이 이어지게 하려면 screen 을 씁니다.

screen -S work      # work 세션 시작
# 작업 중 Ctrl + a, d 로 빠져나오기 (detach)
screen -ls          # 세션 목록
screen -r work      # 재접속

긴 빌드나 마이그레이션을 돌릴 때 특히 유용합니다. 접속이 끊겨도 세션 안에서 명령이 계속 돌거든요.