cat은 파일 내용을 있는 그대로 표준출력으로 보낸다. less는 한 화면씩 읽고 검색한다. wc는 줄, 단어, 바이트를 센다.

cat

Bash
cat file.txt
cat a.txt b.txt > all.txt

두 번째는 a.txt와 b.txt를 이어 all.txt로 만든다. `>`는 대상 파일을 새로 쓰므로, 있던 내용은 사라진다.

자주 쓰는 옵션은 보이지 않는 문자를 드러내는 쪽이다.

Bash
cat -n file.txt
cat -b file.txt
cat -s file.txt
cat -A file.txt

`-n`은 모든 줄에 번호를 붙인다. `-b`는 빈 줄은 빼고 번호를 붙인다. `-s`는 연속된 빈 줄을 한 줄로 줄인다. `-A`는 탭을 `^I`로, 줄 끝을 `$`로, 인쇄되지 않는 문자를 보이게 출력한다. `-T`는 탭만, `-E`는 줄 끝만 표시한다.

줄 끝이 `$` 앞에 붙어 보이면 그 줄 끝에 공백이 있는 것이다. 윈도우에서 온 파일은 줄 끝이 `^M$`처럼 보일 수 있다. 캐리지 리턴이 남아 있다는 뜻이다.

cat으로 짧은 설정은 확인하기 좋다. 수천 줄짜리 로그는 less로 연다.

less

Bash
less /var/log/syslog
less -N file.txt
less -S file.txt
less -R file.txt

`-N`은 줄 번호, `-S`는 긴 줄을 화면 너비에서 자르고 좌우로 움직이게 한다. `-R`은 색을 내는 제어 문자를 해석한다. 색이 입혀진 명령을 less로 넘길 때 쓴다.

Bash
ls --color=always | less -R

화면 안에서의 키는 이렇다.

- Space는 다음 화면, b는 이전 화면이다. - d와 u는 반 화면씩 내려가고 올라간다. - j와 k, 또는 화살표는 한 줄이다. - g는 맨 앞, G는 맨 끝이다. `50G`는 50번째 줄이다. - `/error`는 앞으로 검색한다. n은 다음, N은 이전이다. - `?error`는 뒤로 검색한다. - `&error`는 error가 없는 줄을 숨긴다. - F는 파일 끝에 붙어 새 줄을 따라간다. Ctrl-c로 따라가기를 멈추면 다시 검색할 수 있다. - h는 키 도움말, q는 종료다.

열 때 위치를 지정할 수도 있다.

Bash
less +/error app.log
less +G app.log

첫 명령은 error가 처음 나오는 곳에서 연다. 둘째는 맨 끝에서 연다.

more는 앞으로 읽는 데 맞춘 예전 페이저다. less가 설치되어 있으면 less를 쓴다.

wc

Bash
wc file.txt
wc -l file.txt
wc -c file.txt
wc -m file.txt

옵션이 없으면 줄 수, 단어 수, 바이트 수를 한 줄에 출력한다. `-l`은 줄, `-w`는 단어, `-c`는 바이트, `-m`은 문자다. 파일을 여러 개 주면 마지막에 합계가 나온다.

단어는 공백으로 나뉜 덩어리다. 한글은 한 글자가 여러 바이트라서 `-c`와 `-m`의 숫자가 다르다. 글자 수가 필요하면 `-m`을 본다.

Bash
printf '가\n' | wc -c -m