Devin.KR

심화 · 전체 목차 공개

셸 파이프라인과 운영 진단

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

읽기 전에

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

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

목차

현재 공개된 원고만 표시합니다. 읽음 표시는 직접 선택하며 자동 완료되지 않습니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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