Devin.KR

심화 · 전체 목차 공개

셸 파이프라인과 운영 진단

프로세스·네트워크·저장소와 권한 관련 명령을 목적별로 찾아봅니다.

이 책을 읽기 전에

기본 셸과 파일 권한을 이해해야 합니다. 운영 변경 명령은 별도 연습 환경에서 확인하세요.

공개 71/71장 · 목차 구성 2026-09-12

CONTENTS

목차

읽음 표시는 직접 선택하며 자동 완료되지 않습니다.

  1. 01
    리눅스 awk 명령어 사용법 - 로그 분석과 집계 실전 예제 정리

    로그에서 열을 뽑고 집계하는 awk. 상위 IP·상태코드 집계, 임계치 감시 예제와 열 번호·mawk 차이 같은 함정을 정리한다.

  2. 02
    리눅스 bc 명령어 사용법 - 셸에서 소수점 계산과 진법 변환하기

    셸 산술이 정수만 다루는 한계를 넘는 bc. scale 설정, 퍼센트·용량 계산, 진법 변환과 자주 걸리는 함정을 정리한다.

  3. 03
    리눅스 blkid 명령어 사용법 - UUID·파일시스템 타입 확인과 fstab 안전하게 쓰기

    블록 디바이스의 UUID, LABEL, 파일시스템 타입을 확인하는 blkid 사용법과 캐시·중복 UUID 함정을 정리한다.

  4. 04
    리눅스 chgrp 명령어 사용법 - 그룹 소유권 변경과 setgid 공유 디렉터리 만들기

    여러 사람이 같이 쓰는 디렉터리의 그룹 소유권을 chgrp로 정리하는 법과, setgid로 그룹을 자동 상속시켜 반복 작업을 없애는 방법을 다룬다.

  5. 05
    리눅스 chmod 명령어 사용법 - 권한 8진수 표기와 실전 예제

    chmod로 파일·디렉터리 권한을 바꾸는 방법을 8진수와 기호 표기로 정리하고, SSH 키 권한 오류와 chmod 777 사고를 예방하는 실무 기준을 담았다.

  6. 06
    리눅스 chown 명령어 사용법 - 파일 소유자와 그룹 변경 정리

    권한 오류의 진짜 원인인 소유자를 chown으로 바로잡는 방법을 정리했다. 재귀 변경 사고와 UID 불일치 문제까지 실무 사례로 다룬다.

  7. 07
    리눅스 comm 명령어 사용법 - 두 목록의 교집합·차집합을 한 줄로 구하기

    comm 으로 정렬된 두 파일의 공통 줄과 한쪽에만 있는 줄을 골라내는 방법, 정렬 전제와 탭 들여쓰기 함정을 정리한다.

  8. 08
    리눅스 crontab 사용법 - 시간 설정 형식과 예약 작업 등록

    crontab 시간 표기 규칙과 실무에서 쓰는 예약 작업 패턴을 정리했다. PATH 미상속, % 이스케이프 등 cron에서만 실패하는 원인을 짚는다.

  9. 09
    리눅스 curl 명령어 사용법 - 옵션 정리와 API 테스트 실전 예제

    배포 검증과 API 진단에 쓰는 curl. 상태코드 추출, JSON POST, 리다이렉트 추적, DNS 우회 검증과 종료코드 함정까지 정리한다.

  10. 10
    리눅스 df 명령어 사용법 - 디스크 용량 확인과 inode 고갈 점검

    파일시스템별 사용량을 확인하는 df 사용법과, 용량이 남았는데 쓰기가 안 되는 inode·삭제된 열린 파일 문제를 다룬다.

  11. 11
    리눅스 diff 명령어 사용법 - 서버 설정 파일 비교와 unified diff 읽는 법

    diff 로 설정 파일과 디렉터리를 비교하는 방법, unified 형식을 읽는 법과 종료 코드·공백 함정을 정리한다.

  12. 12
    리눅스 dig 명령어 사용법 - DNS 조회와 전파 확인 실전 예제

    DNS 레코드를 정확히 확인하는 dig. +short, @서버 지정, +trace 위임 추적, TTL과 전파 확인까지 장애 대응 기준으로 정리한다.

  13. 13
    리눅스 dmesg 명령어 사용법 - OOM Killer와 디스크 오류를 커널 로그에서 찾기

    프로세스가 로그 없이 사라졌을 때 OOM Killer 기록을 찾고 디스크·네트워크 하드웨어 오류를 확인하는 dmesg 활용법을 다룬다.

  14. 14
    리눅스 du 명령어 사용법 - 디스크 용량 잡아먹는 디렉터리 찾기

    df로 확인한 파일시스템 안에서 용량을 먹는 디렉터리를 좁혀 나가는 du 사용법과, 값이 실제와 어긋나는 이유를 정리한다.

  15. 15
    리눅스 env 명령어 사용법 - 환경변수 확인과 임시 변수로 명령 실행하기

    cron에서만 실패하는 스크립트의 원인을 찾는 env 활용법과, env VAR=val 명령 형태로 셸을 오염시키지 않고 실행하는 방법을 다룬다.

  16. 16
    리눅스 free 명령어 사용법 - available과 buff/cache 제대로 읽기

    메모리 여유를 확인하는 free의 출력 해석법과, free가 0에 가까워도 정상인 이유, 컨테이너에서 잘못 보이는 문제를 다룬다.

  17. 17
    리눅스 host 명령어 사용법 - 가장 빠른 DNS 확인과 역방향 조회

    한 줄로 끝나는 DNS 조회 도구 host. A/MX/NS 확인, 역방향 조회, 스크립트에서 쓰는 법과 dig를 써야 할 지점을 정리한다.

  18. 18
    리눅스 iostat 명령어 사용법 - await와 %util로 디스크 병목 판별하기

    vmstat의 wa가 높을 때 어느 디스크가 얼마나 밀리는지 확인하는 iostat -x 해석법과, SSD에서 %util을 오해하지 않는 기준을 다룬다.

  19. 19
    리눅스 ip 명령어 사용법 - ifconfig route arp를 대체하는 표준 도구

    IP 주소, 라우팅, ARP를 한 명령으로 다루는 ip. ifconfig 대응표, ip route get 활용, 설정이 재부팅에 날아가는 함정까지 정리한다.

  20. 20
    리눅스 jobs 명령어 사용법 - fg, bg, Ctrl+Z로 터미널 작업 관리하기

    한 터미널에서 여러 작업을 오가는 셸 잡 컨트롤(jobs/fg/bg/disown) 사용법과 Ctrl+Z로 멈춘 작업이 만드는 함정을 정리한다.

  21. 21
    리눅스 join 명령어 사용법 - 두 파일을 키로 합치는 셸 위의 SQL JOIN

    join 으로 공통 키를 가진 두 파일을 합치는 방법, 정렬 전제와 로케일 때문에 결과가 조용히 틀어지는 함정을 정리한다.

  22. 22
    리눅스 journalctl 명령어 사용법 - systemd 로그 조회와 필터

    서비스 장애와 갑작스러운 재부팅의 원인을 저널에서 찾아내는 필터 조합을 정리했다. 로그가 재부팅 시 사라지는 설정 문제도 함께 다룬다.

  23. 23
    리눅스 kill 명령어 사용법 - 시그널 종류와 -9를 쓰면 안 되는 이유

    프로세스에 시그널을 보내는 kill의 주요 시그널을 정리하고, kill -9 남용이 만드는 실제 사고와 안전한 종료 절차를 다룬다.

  24. 24
    리눅스 last 명령어 사용법 - 로그인 이력과 재부팅 시각 추적하기

    서버가 언제 재부팅됐고 누가 언제 접속했는지 wtmp에서 추적하는 last 사용법과, 침해 조사에서 로그를 교차 검증하는 방법을 다룬다.

  25. 25
    리눅스 ln 명령어 사용법 - 심볼릭 링크와 하드 링크 차이, 배포 링크 교체

    ln -s로 심볼릭 링크를 만드는 법과 하드 링크와의 차이를 정리하고, 배포 링크 교체에서 실제로 사고가 나는 -n 누락 등을 짚는다.

  26. 26
    리눅스 lsblk 명령어 사용법 - 디스크·파티션 구조와 UUID 한눈에 보기

    블록 디바이스를 트리 형태로 보여 주는 lsblk 사용법과, 새 디스크 인식·LVM 구조·UUID 확인에 쓰는 실전 조합을 정리한다.

  27. 27
    리눅스 lsof 명령어 사용법 - 포트 점유 프로세스와 삭제된 파일 찾기

    포트를 쓰는 프로세스, umount를 막는 프로세스, 지웠는데 용량이 안 도는 파일을 lsof로 찾아내는 실전 사용법.

  28. 28
    리눅스 mktemp 명령어 사용법 - 안전한 임시 파일·디렉터리 생성과 자동 정리

    경쟁 조건과 심볼릭 링크 공격을 피해 임시 파일·디렉터리를 만드는 mktemp 사용법과 trap을 이용한 정리 패턴을 다룬다.

  29. 29
    리눅스 mount 명령어 사용법 - fstab, UUID, 바인드 마운트와 재부팅 사고 방지

    디스크를 붙이는 mount 사용법과 fstab 작성법, remount·바인드 마운트, 그리고 부팅 실패로 이어지는 실수를 정리한다.

  30. 30
    리눅스 mtr 명령어 사용법 - 홉별 패킷 손실 추적과 리포트 모드

    traceroute와 ping을 합친 mtr. 리포트 모드로 근거 자료 만들기, Loss% 읽는 법, TCP 모드까지 실무 기준으로 정리한다.

  31. 31
    리눅스 nc 명령어 사용법 - 포트 열림 확인과 임시 리스너 만들기

    방화벽 점검의 표준 도구 netcat. -zv 포트 확인, 임시 리스너로 경로 검증, 배포판별 netcat 구현 차이까지 정리한다.

  32. 32
    리눅스 nl 명령어 사용법 - 줄 번호 매기기와 cat -n 과의 차이

    nl 로 텍스트에 줄 번호를 붙이는 방법, 빈 줄 처리와 번호 형식 제어 등 cat -n 으로는 안 되는 부분을 정리한다.

  33. 33
    리눅스 nohup 명령어 사용법 - SSH 끊겨도 작업이 계속 돌게 하기

    장시간 배치를 백그라운드로 안전하게 돌리는 nohup 사용법과, 로그 리다이렉트를 빼먹었을 때 생기는 문제들을 정리한다.

  34. 34
    리눅스 nslookup 명령어 사용법 - DNS 조회 기본과 dig와의 차이

    어느 서버에나 있는 DNS 조회 도구 nslookup. 레코드 타입 지정, 네임서버 직접 지정, dig를 써야 하는 경우까지 정리한다.

  35. 35
    리눅스 passwd 명령어 사용법 - 비밀번호 변경과 계정 잠금

    비밀번호 설정·초기화부터 퇴사자 계정 차단, 만료 정책 적용까지 passwd 실무 사용법을 정리했다. 잠금이 SSH 키를 막지 못하는 함정도 다룬다.

  36. 36
    리눅스 patch 명령어 사용법 - 패치 적용·되돌리기와 -p 옵션 이해하기

    patch 로 diff 결과를 파일에 적용하고 되돌리는 방법, -p 경로 레벨과 .rej 파일 처리까지 실무 기준으로 정리한다.

  37. 37
    리눅스 ping 명령어 사용법 - 네트워크 상태 확인 옵션과 실전 예제

    장애 상황에서 네트워크와 서버를 가장 먼저 갈라주는 ping. 손실률·RTT 확인, MTU 점검, 스크립트용 옵션과 macOS 차이까지 정리한다.

  38. 38
    리눅스 pkill 명령어 사용법 - pgrep으로 먼저 확인하고 안전하게 죽이기

    이름과 사용자로 프로세스를 찾아 시그널을 보내는 pkill/pgrep 사용법과, -f 옵션이 만드는 대형 사고를 피하는 방법.

  39. 39
    리눅스 ps 명령어 사용법 - aux와 -ef 차이, 옵션 정리와 실전 예제

    서버에 떠 있는 프로세스를 확인하는 ps 명령어를 aux/-ef 관용구 중심으로 정리하고, 출력이 잘리는 함정까지 짚는다.

  40. 40
    리눅스 rm 명령어 사용법 - 안전하게 파일 삭제하는 법과 rm -rf 사고 예방

    rm의 필수 옵션과 함께 rm -rf 변수 공백, 상대 경로, -f 남용 등 실제 삭제 사고가 나는 지점과 방어법을 정리한다.

  41. 41
    리눅스 rsync 명령어 사용법 - 동기화와 백업 옵션 정리, 실전 예제

    바뀐 것만 보내는 rsync. 배포·백업·이어받기 예제와 경로 끝 슬래시, --delete 처럼 사고로 직결되는 지점을 정리한다.

  42. 42
    리눅스 scp 명령어 사용법 - 원격 파일 복사 옵션과 실전 예제

    서버와 파일을 주고받는 scp. 업로드·다운로드 예제와 대문자 -P, 대상 경로 슬래시 등 실제로 자주 데는 지점을 정리한다.

  43. 43
    리눅스 screen 명령어 사용법 - 세션을 서버에 남기고 다시 붙기

    SSH가 끊겨도 작업 화면을 서버에 남겨 두는 screen. 세션 분리와 재연결, 로깅, nohup·tmux와의 선택 기준을 정리한다.

  44. 44
    리눅스 sed 명령어 사용법 - 문자열 치환 옵션 정리와 실전 예제

    설정 파일을 규칙으로 고치는 sed. 치환·삭제·범위 추출 예제와 GNU/macOS -i 차이, 구분자 선택 같은 함정을 정리한다.

  45. 45
    리눅스 seq 명령어 사용법 - 반복문 범위와 연속 이름 만들기

    숫자 나열을 만드는 seq. 반복문 범위 생성, 자리수 맞춤, 서버 이름 일괄 생성과 브레이스 확장과의 차이를 정리한다.

  46. 46
    리눅스 sha256sum 사용법 - 파일 무결성 검증과 체크섬 목록 관리

    다운로드·백업·배포 산출물이 손상되거나 바뀌지 않았는지 확인하는 sha256sum. -c 검증 흐름과 md5를 쓰면 안 되는 이유를 정리한다.

  47. 47
    리눅스 split 명령어 사용법 - 대용량 파일을 줄·크기 단위로 쪼개고 다시 합치기

    split 으로 큰 로그와 덤프 파일을 줄 수·바이트 단위로 나누는 방법, 접미사 고갈과 GNU/BSD 옵션 차이를 정리한다.

  48. 48
    리눅스 ss 명령어 사용법 - 포트 확인과 netstat 대체 실전 예제

    열린 포트와 연결 상태를 보는 ss. LISTEN 포트 주인 찾기, 커넥션 누수 확인, 바인딩 주소 함정까지 실무 기준으로 정리한다.

  49. 49
    리눅스 ssh-copy-id 사용법 - 공개키 등록과 authorized_keys 관리

    만든 공개키를 서버의 authorized_keys에 안전하게 넣어 주는 ssh-copy-id. 권한 문제, 원치 않는 키 등록, 비밀번호 인증 차단까지 정리한다.

  50. 50
    리눅스 ssh-keygen 사용법 - ed25519 키 생성과 개인키 보안 관리

    SSH 키 기반 인증의 출발점인 ssh-keygen. ed25519 키 생성, 패스프레이즈, 권한 600, 지문 확인과 known_hosts 관리까지 정리한다.

  51. 51
    리눅스 ssh 명령어 사용법 - 접속, 포트 포워딩, 터널링 실전 예제

    원격 접속을 넘어 포트 포워딩과 배스천 경유까지. ssh config 작성법, 키 권한 문제, 따옴표 하나로 나는 사고를 정리한다.

  52. 52
    리눅스 sudo 명령어 사용법 - 권한 위임과 sudoers 설정 정리

    sudo로 필요한 순간에만 root 권한을 빌리는 방법과 sudoers를 안전하게 편집하는 절차를 정리했다. 리다이렉션 함정과 NOPASSWD 위험도 다룬다.

  53. 53
    리눅스 systemctl 명령어 사용법 - 서비스 관리와 유닛 파일 등록

    서비스 상태 확인·재시작·자동 시작 등록과 직접 만든 애플리케이션의 유닛 파일 작성까지, systemd 환경의 서비스 운영 실무를 정리했다.

  54. 54
    리눅스 tar 명령어 사용법 - 압축과 해제 옵션 정리, 실전 예제

    파일을 묶고 푸는 tar. 백업·배포·원격 전송 예제와 -f 옵션 순서, tar bomb 등 실제로 파일이 날아가는 지점을 정리한다.

  55. 55
    리눅스 tcpdump 사용법 - 패킷 캡처 필터 문법과 실전 트러블슈팅

    패킷이 실제로 오가는지 확인하는 tcpdump. host/port/net 필터, -w 파일 저장 후 분석, SSH 자기 캡처 함정까지 정리한다.

  56. 56
    리눅스 tee 명령어 사용법 - sudo 로 파일에 쓰기와 로그를 보면서 저장하기

    tee 로 출력을 화면과 파일에 동시에 보내는 방법, sudo 리다이렉션 문제 해결과 종료 코드 함정을 정리한다.

  57. 57
    리눅스 telnet 명령어 사용법 - 포트 열림 확인 용도로만 살아남은 이유

    원격 접속용으로는 절대 쓰지 않는 telnet. 지금 유일하게 살아 있는 용도인 TCP 포트 확인과 빠져나오는 법을 정리한다.

  58. 58
    리눅스 time 명령어 사용법 - 셸 빌트인과 /usr/bin/time 차이, real user sys 읽는 법

    명령의 실행 시간과 메모리 사용량을 재는 time. 셸 예약어와 별도 바이너리의 차이, real·user·sys 해석법을 실무 기준으로 정리한다.

  59. 59
    리눅스 tmux 사용법 - 세션 유지, 창 분할, 스크립트 제어까지

    SSH가 끊겨도 작업이 그대로 남는 tmux. 세션·윈도우·페인 구조와 분리·재연결, 여러 서버 동시 작업, nohup·screen과의 선택 기준을 정리한다.

  60. 60
    리눅스 top 명령어 사용법 - load average 해석과 단축키, 배치 모드 예제

    서버 부하를 실시간으로 보는 top의 화면 해석법, 자주 쓰는 단축키, 크론에 넣는 배치 모드 사용법을 정리한다.

  61. 61
    리눅스 traceroute 명령어 사용법 - 네트워크 경로 추적과 별표(*) 해석

    패킷이 어디까지 가고 어디서 막히는지 보는 traceroute. 별표의 진짜 의미, TCP 모드, 방화벽 환경에서의 한계를 정리한다.

  62. 62
    리눅스 ulimit 사용법 - Too many open files 장애의 원인과 영구 설정

    파일 디스크립터 한계로 발생하는 Too many open files 장애를 ulimit로 진단하고, limits.conf와 systemd LimitNOFILE로 영구 해결하는 방법을 다룬다.

  63. 63
    리눅스 umask 사용법 - 새로 만드는 파일의 기본 권한 설정

    앞으로 생성될 파일의 기본 권한을 정하는 umask의 계산 방식과 상황별 권장값을 정리하고, cron·systemd에서 적용되지 않는 이유를 설명한다.

  64. 64
    리눅스 umount 명령어 사용법 - target is busy 해결과 lazy 언마운트의 위험

    마운트를 안전하게 해제하는 umount 사용법과, target is busy 원인 추적, lazy·force 옵션이 만드는 데이터 사고를 다룬다.

  65. 65
    리눅스 uptime 명령어 사용법 - 로드 애버리지 읽는 법과 서버 느림 진단 첫 단계

    서버가 느리다는 신고를 받았을 때 가장 먼저 치는 uptime의 출력 해석법과, 로드 애버리지를 CPU 코어 수로 나눠 판단하는 기준을 다룬다.

  66. 66
    리눅스 useradd 명령어 사용법 - 계정 생성 옵션과 서비스 계정

    사람용 계정과 데몬용 서비스 계정을 useradd로 만드는 방법을 배포판 차이와 함께 정리하고, usermod -aG 누락 같은 실제 사고 지점을 짚는다.

  67. 67
    리눅스 vmstat 명령어 사용법 - 스왑·CPU wait로 서버 느림의 원인 좁히기

    uptime으로 부하를 확인한 다음 원인이 CPU인지 메모리인지 디스크인지 가르는 vmstat 컬럼 해석법과 판단 기준을 실전 중심으로 정리한다.

  68. 68
    리눅스 watch 명령어 사용법 - 상태 변화를 주기적으로 지켜보기

    같은 명령을 몇 초 간격으로 반복 실행해 변화만 눈에 띄게 보여주는 watch. 배포 직후 모니터링과 -d 강조 옵션을 실무 기준으로 정리한다.

  69. 69
    리눅스 wget 명령어 사용법 - 파일 다운로드 옵션 정리와 실전 예제

    서버에서 파일을 내려받고 이어받는 wget. 이어받기·재귀 다운로드·링크 점검 예제와 -O/-o 혼동 같은 실제 사고 지점을 정리한다.

  70. 70
    리눅스 whois 명령어 사용법 - 도메인 만료일과 공격 IP 소유자 확인

    도메인 등록 정보와 IP 대역 소유자를 조회하는 whois. 만료일 점검, abuse 연락처 찾기, GDPR 이후의 한계까지 정리한다.

  71. 71
    리눅스 xargs 명령어 사용법 - find 조합, -I 옵션, 병렬 처리 실전 예제

    표준 입력을 명령 인자로 바꿔 주는 xargs 의 실전 조합과, 공백 든 파일명·빈 입력 때문에 사고가 나는 지점을 정리한다.

이 책은 Devin.KR 원고를 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.

이 책·표지의 저작권 및 출처 관련 요청