본문 바로가기
C.W.K.
Stream
Lesson 09 of 10 · published

실전 한 줄 명령

~13 min · one-liner, compose

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

질문 하나를 작은 단계로 나눠

한 줄 명령은 탐색, 변환, 집계를 빠르게 시험하기 좋아. 아래 예제는 외워야 할 주문이 아니라 각 단계가 어떤 자료를 받고 무엇을 내보내는지 읽는 연습이야. 실제 경로와 입력 형식을 확인하고, 원본을 변경하지 않는 질문부터 실행해.

디스크를 많이 쓰는 경로 찾기

du -sh ./* 2>/dev/null | sort -h | tail

du의 요약을 사람이 읽는 크기로 출력하고 정렬한 뒤 큰 항목을 골라. 권한 오류를 숨겼다면 결과가 전체 파일 시스템을 대표하지 않는다는 점을 함께 기록해.

기록에서 가장 많이 쓴 명령 보기

fc -l 1 | awk '{print $2}' | sort | uniq -c | sort -rn | head

셸 기록 형식과 여러 줄 명령 처리 방식에 따라 결과가 달라질 수 있어. 통계가 비밀 값이 든 기록을 다시 노출하지 않는지도 확인해.

액세스 로그에서 많이 등장한 IP 찾기

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -10

첫 번째 필드가 실제 클라이언트 IP라는 로그 계약이 있을 때만 맞는 명령이야. 프록시 헤더와 따옴표가 포함된 형식은 전용 파서가 필요할 수 있어.

Python과 JavaScript 파일의 줄 수 보기

find . -type f \( -name '*.py' -o -name '*.js' \) -print0 |
  xargs -0 wc -l | sort -n

NUL 구분으로 파일명 경계를 보존해. 생성물과 의존성 디렉터리를 제외하지 않으면 통계의 의미가 달라져.

파일별 TODO 모으기

grep -rn --exclude-dir=.git --exclude-dir=node_modules 'TODO' .

검색 결과는 할 일 후보이지 우선순위나 소유권까지 알려 주지는 않아. 주석 규칙과 대소문자 범위를 팀 계약에 맞춰.

중복된 줄 확인하기

sort input.txt | uniq -d

정렬 때문에 원래 순서가 사라져. 공백과 대소문자를 같은 값으로 볼지 먼저 정하고, 구조화된 레코드는 해당 형식을 아는 도구로 비교해.

ISO 시각을 로컬 시각으로 바꾸기

date -j -f '%Y-%m-%dT%H:%M:%SZ' '2026-01-02T03:04:05Z' '+%F %T %Z'

이 예시는 macOS의 BSD date 형식이야. GNU date와 옵션이 다르며 입력의 Z가 UTC를 뜻한다는 전제를 명시해야 해.

로그의 ANSI 색 제어 코드 지우기

perl -pe 's/\e\[[0-9;]*[A-Za-z]//g' colored.log

모든 터미널 제어 시퀀스를 완전하게 처리하는 정규식은 아니야. 원본을 보존하고 대표 표본에서 필요한 시퀀스만 제거됐는지 확인해.

최근 한 시간에 수정된 파일 찾기

find . -type f -mmin -60 -print

수정 시각이 의미하는 사건과 파일 시스템의 시각 정밀도를 확인해. 자동 정리 조건으로 쓰기 전에는 경로만 출력해 검토해.

북마크 내보내기에서 URL만 고르기

jq -r '.bookmarks[].url' bookmarks.json | sort -u

JSON 스키마가 다르면 경로가 달라져. null과 누락 필드를 어떻게 처리할지도 결정해.

한 줄 명령은 가설을 시험하는 도구야

한 번의 조사와 임시 보고서에는 짧은 파이프라인이 빠르지만, 반복 실행하거나 외부 입력을 받고 상태를 변경하기 시작하면 이름 붙인 스크립트와 테스트로 옮겨. 길이가 짧다는 이유만으로 안전하거나 이해하기 쉬운 것은 아니야. 입력 계약과 실패 상태를 설명할 수 있는지가 승격 시점을 정해.

중간 결과를 관찰해

검색, 변환과 집계를 한 줄에 이어 붙이면 앞 단계가 빈 결과를 냈는데도 마지막 명령이 그럴듯한 0을 만들 수 있어. 각 단계에서 행 수와 대표 표본을 확인하고, 오류 출력을 데이터와 분리해. 삭제나 덮어쓰기처럼 되돌리기 어려운 마지막 단계는 읽기 전용 검증과 분리해서 실행해.

Code

디스크 분석 한 줄 명령 외워두기·bash
du -h --max-depth=1 ~ 2>/dev/null | sort -h | tail -10
# POSIX 도구만 사용하는 방법
du -sh ~/.* */ 2>/dev/null | sort -h | tail

External links

Exercise

이 레슨에서 읽기 전용 예제 세 개를 골라 작은 시험 데이터에서 실행해. 각 파이프의 중간 결과를 한 단계씩 확인하고, 실제 저장소나 로그에 맞춰 입력 경로와 제외 규칙을 바꿔. 변형한 명령에는 입력 계약과 실패 시 확인할 항목을 메모해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.