명령행 사고방식. 명령행의 핵심은 "작은 도구를 파이프로 연결한다"는 것이다. 하나의 거대한 프로그램이 모든 것을 처리하는 대신, find, grep, sort, awk 같은 단순한 도구들을 |로 이어 복잡한 작업을 조립한다. 이번 주에 배운 명령들은 모두 이 조립의 부품이다.
경로에는 루트(/)부터 시작하는 절대 경로와 현재 위치 기준의 상대 경로가 있다.
상대 경로의 핵심 기호는 .(현재), ..(상위), ~(홈)이다.
명령
역할
자주 쓰는 옵션
pwd
현재 위치 출력
-P(실제 경로)
cd
디렉터리 이동
cd -(직전 위치)
ls
목록 보기
-l, -a, -h, -ltr
mkdir
디렉터리 생성
-p(중간 경로 생성)
rmdir
빈 디렉터리 삭제
-p
touch
빈 파일/시간 갱신
-t(시각 지정)
cp
복사
-r, -p, -i
mv
이동/이름변경
-i, -f
rm
삭제
-r, -f
find
실시간 파일 검색
-name, -type, -exec
locate
DB 기반 검색
-i, updatedb
which
명령 경로 찾기
-a
⚠️ 함정 모음: Day 1
디렉터리 복사는 cp -r이 필수(없으면 오류), rmdir은 빈 디렉터리만 삭제, gzip이 아니라 rm에는 휴지통이 없음, locate는 DB 기반이라 최신 파일을 못 찾을 수 있음. find의 -exec에서 {}는 파일명 치환, \;는 명령의 끝.
아카이브(묶기)와 압축(크기 줄이기)은 다른 작업이다. tar는 묶고, gzip/bzip2/xz는 압축한다.
작업
명령
묶고 gzip 압축
tar czvf x.tar.gz dir/
gzip 아카이브 풀기
tar xzvf x.tar.gz
내용 목록 보기
tar tzvf x.tar.gz
특정 위치에 풀기
tar xvf x.tar -C /tmp
단일 파일 압축
gzip file(원본 삭제), -k로 보존
zip 압축
zip -r x.zip dir/
tar 옵션: c(생성), x(풀기), t(목록), v(자세히), f(파일명), z(gzip), j(bzip2), J(xz).
압축률은 xz > bzip2 > gzip 순이다.
도움말은 man(섹션별 매뉴얼), info(상세 문서), whatis(한 줄 요약, man -f), apropos(키워드 검색, man -k)로 활용한다.
매뉴얼 섹션 1은 명령, 5는 파일 형식, 8은 시스템 관리이다.
한 주를 관통하는 유닉스 철학. 이번 주 도구들은 모두 켄 톰슨과 데니스 리치가 1970년대에 세운 유닉스 철학을 따른다. "하나의 일을 잘하라", "프로그램이 함께 동작하게 하라", "텍스트 스트림을 다뤄라". grep도 sort도 tar도 각자 한 가지만 잘하고, 파이프로 협력한다. 이 설계가 50년이 지나도 유효한 이유이다.