WIKI알아두면 좋은 CLI 도구들
플레이북

알아두면 좋은 CLI 도구들

외우는 게 아니라 있다는 걸 아는 것.

CLI터미널개발 기초생산성
터미널개발 입문5분

한눈에

  • CLI 도구 = 외우는 게 아니라 '필요할 때 이게 있다'를 아는 것
  • 네트워크·전송 = wget(통째 다운)·ssh(원격 접속)·rsync(변경분만 전송)
  • 패키지 매니저 = npm(Node)·apt/brew(OS)·Maven·Gradle(pip의 자바 격)
  • 컨테이너·인프라 = docker(이미지 pull·build·run)·kubectl(쿠버네티스 제어)
  • 실력차 나는 기본기 = grep·sed·awk(텍스트)·jq(JSON)·lsof -i :포트(포트 점유 찾기)
  • 체감 최고 = jq, rsync, grep·sed·awk 삼총사, 백엔드면 lsof -i :포트

CLI 도구는 영어 단어처럼 통째로 외우는 게 아니다. 필요한 순간에 "아, 이런 걸 해주는 도구가 있었지" 하고 떠올려 찾아 쓰는 것이다. 아래를 다 못 외워도 된다. 어떤 갈래에 뭐가 있는지 지도만 머리에 있으면, 막힐 때 정확히 그 도구를 검색해 꺼내 쓴다. 그 지도부터 그린다.

용도별로 한 장

도구를 하나씩 외우기 전에, 무슨 일을 하는지로 묶어두면 기억에 걸린다. 크게 네 갈래다.

갈래도구한 줄
네트워크·전송wget / ssh / scp·rsync파일·사이트 통째 다운(이어받기·재귀) / 원격 접속(배포·로그 필수) / 원격 파일 전송
패키지 매니저npm·yarn·pnpm / apt·brew / Maven·GradleNode / OS레벨(apt=우분투, brew=맥) / pip의 자바 격
컨테이너·인프라docker / kubectl이미지 pull·build·run / 쿠버네티스 제어
터미널 기본기grep·sed·awk / jq / chmod·chown / ps·kill·lsof텍스트 검색·치환·가공 / JSON 파싱 / 권한 / 프로세스

네트워크 쪽에서 하나만 더 짚으면, scprsync는 둘 다 원격으로 파일을 옮기지만 rsync는 바뀐 부분만 골라 동기화한다. 매번 전부 다시 보내는 scp보다 크고 반복적인 전송에서 압도적으로 효율적이다. 배포 스크립트에서 rsync가 단골인 이유다.

패키지 매니저는 언어·OS마다 이름만 다를 뿐 자리가 같다. Java를 했다면 Maven·Gradle이 바로 그 자리 — 파이썬의 pip, Node의 npm과 하는 일이 똑같다(남이 만든 라이브러리를 받아온다). OS 레벨에선 우분투가 apt, 맥이 brew다.

docker·kubectl는 그 자체로 큰 주제라 여기선 이름만 걸어둔다. 상자(이미지·컨테이너) 개념은 Docker 노트에서 따로 짚었다.

실력차가 나는 곳, 터미널 기본기

앞의 세 갈래는 "이런 도구가 있다"만 알면 검색해서 쓴다. 진짜 손에 익느냐로 갈리는 건 마지막 갈래, 평범한 텍스트와 프로세스를 다루는 기본기다. 여기가 능숙하면 남이 GUI 뒤지는 시간에 한 줄로 끝낸다.

  • grep / sed / awk — 텍스트 검색·치환·가공 삼총사. 로그를 뒤질 때 위력을 발휘한다. grep으로 원하는 줄만 뽑고, sed로 치환하고, awk로 특정 열만 잘라낸다. 파이프(|)로 이어 붙이면 즉석 데이터 처리기가 된다.
  • jq — JSON 전용 도구. curl ... | jq처럼 API 응답을 바로 파이프에 걸어 원하는 필드만 필터링한다. REST API를 터미널에서 디버깅할 때 이거 없으면 눈이 아프다.
  • chmod / chown — 파일 권한과 소유자. Permission denied가 떴을 때 찾게 되는 두 명령이다.
  • ps / kill / lsof — 프로세스를 보고 죽이고 추적한다. 특히 lsof -i :8080그 포트를 누가 점유했는지 한 번에 찾아준다. "서버가 안 뜨는데요, 포트가 이미 쓰이고 있대요" 할 때 단골로 꺼내는 명령이다.

체감 효율이 제일 좋은 넷

전부 익힐 필요는 없다. 실무에서 "이거 알길 잘했다"가 자주 나오는 순서로 꼽으면 이렇다.

jq — API·CLI가 뱉는 JSON을 그 자리에서 필터링. curl과 붙이면 최강
rsync — 변경분만 동기화라 반복 전송에서 시간을 크게 아낌
grep·sed·awk 삼총사 — 로그·텍스트를 파이프 한 줄로 원하는 모양으로
lsof -i :포트 — 백엔드라면 필수. 포트 물고 있는 프로세스를 즉시 특정

우리 프로젝트에선

이 지도는 그냥 지식이 아니라 안전장치로도 쓰인다. AI 하네스는 밤마다 도는 무인 자동화에서 아무 명령이나 실행하게 두지 않고, grep·find·ls 같은 읽기성 명령만 허용리스트에 올려둔다. 자동화가 설령 엉뚱하게 굴러도 파일을 지우거나 덮어쓰지 못하니, 잘못됐을 때의 피해 범위(blast radius)가 애초에 좁다. 여기서 갈래 지도가 그대로 정책이 된다 — "읽는 도구"와 "바꾸는 도구"를 나눠 후자만 사람 손에 남긴다. 자세한 설계는 AI 하네스에.

그래서 나한테 이 도구들은 "언젠가 외울 것"이 아니라 자동화의 경계선을 긋는 언어로 먼저 왔다. 무엇이 읽기고 무엇이 쓰기인지 구분할 줄 알아야, 기계에게 어디까지 맡길지 정할 수 있다.

더 읽기

한 번 직접 파이프에 걸어보면 감이 확 붙는 도구들이다. 막히는 것부터 하나씩.