파일의 내용을 볼 수 있는 명령어가 무엇인지는 리눅스 초보 사용자들이 가장 자주 묻는 질문 중 하나입니다. 전통적인 유닉스 환경의 거의 모든 작업이 그렇듯이, 하나의 일을 처리하는 방법은 여러 가지가 있으며 오늘 소개할 팁들은 OS X나 FreeBSD 사용자에게도 대부분 동일하게 적용됩니다.
즉, 명령줄에서 파일을 보는 기본기를 한 번 익혀두면 어떤 유닉스 계열 프롬프트를 만나더라도 당황하지 않고 대처할 수 있다는 뜻입니다.
방법 1: 일반 텍스트 파일 보기
텍스트 파일을 가장 간단하게 확인하는 방법은 cat 명령어 뒤에 파일 이름을 입력하는 것입니다. 파일이 충분히 짧다면 전체 내용이 화면에 그대로 출력되지만, 길이가 길면 내용이 빠르게 스크롤되어 올라갑니다. 다행히 최신 기기에서는 터미널 창을 최대화해 더 많은 공간을 확보할 수 있지만, 그래도 내용이 화면 밖으로 순식간에 지나가 버릴 수 있습니다.
이런 경우 more 명령어 뒤에 파일 이름을 입력해 보세요. 이 명령어는 내용을 페이지 단위로 나누어 보여주므로, 스페이스바를 누르기 전까지 다음 내용이 표시되지 않아 여유 있게 읽을 수 있습니다. 다 읽은 후에는 q 키를 눌러 종료하면 됩니다. more -d처럼 옵션을 붙이면 하단에 간단한 조작 안내가 표시되고, h 키를 누르면 상세 도움말 시트를 확인할 수 있습니다.

좀 더 세밀한 조작이 필요하다면 less 명령어 뒤에 파일 이름을 입력하세요. less를 사용하면 커서 키나 Page Up/Page Down 키, 그리고 vi의 k/j 키 조합으로 텍스트 파일을 앞뒤로 자유롭게 스크롤할 수 있습니다.

man 명령어로 명령줄 프로그램의 매뉴얼 페이지를 찾아본 경험이 있다면, 사실 이미 less를 쓰는 법을 알고 있는 셈입니다. 대부분의 배포판이 man 페이지를 넘겨볼 때 less를 사용하기 때문입니다. man 뷰어에서 쓰던 키 조합을 less에서도 그대로 활용할 수 있으며, 언제든 h 키를 눌러 도움말 화면을 열어볼 수 있습니다.

vi/vim에 익숙한 사용자라면 h/j/k/l 이동 방식이 다소 어색하게 느껴질 수 있지만, less에서는 좌우 이동 자체가 필요 없으므로 금방 적응할 수 있습니다. Ctrl+N 또는 Ctrl+E로 한 줄씩 앞으로, Ctrl+Y 또는 Ctrl+P로 한 줄씩 뒤로 이동할 수도 있습니다. 도움말 화면에 'CR이 한 줄 앞으로 이동한다'는 문구가 있는데, CR은 캐리지 리턴(Carriage Return), 즉 키보드의 Return(Enter) 키를 의미합니다.
문서 전체에서 특정 단어를 검색하려면 검색어 앞에 /(슬래시)를 입력하고, n 키를 누르면 다음 결과로, Shift+N 키를 누르면 이전 결과로 이동합니다.

grep만큼 유연하지는 않지만, less로 파일을 열어둔 상태에서 특정 내용을 빠르게 찾아야 할 때 유용하게 활용할 수 있습니다.
방법 2: 특수 파일 보기
평소 방식으로 열리지 않는 파일을 강제로 열려면 less -f 명령어 뒤에 파일 이름을 입력합니다. 예를 들어 sudo less -f /dev/sdb1을 실행하면 파티션의 부트 레코드 시작 부분을 직접 들여다볼 수 있는데, sudo 권한으로 부트 레코드를 다룰 때는 각별히 주의해야 합니다.
실제로 필자는 안드로이드 태블릿에서 포맷한 microSDHC 카드의 부트 레코드를 확인할 때 이 방법을 사용했습니다.

파일 탐색은 평소와 같이 진행하고, 종료할 때는 q 키를 누르면 됩니다. 인코딩이 특이한 일반 파일을 분석하고 싶다면 od -c 명령어 뒤에 파일 이름을 입력해 보세요. 터미널 창에서 직접 스크롤하며 확인할 수도 있고, 내용이 너무 길다면 od -c 파일명 | less처럼 출력을 less로 넘겨 천천히 살펴볼 수도 있습니다. 그래픽 프로그램을 포함해 어떤 프로그램으로도 열어볼 수 없는 파일이라도 이 방법이라면 내용을 확인할 수 있습니다. 참고로 od를 아무 옵션 없이 실행하면 파일 내용을 8진수 스트림 형태로 출력하는데, 이는 사실상 마지막 수단으로 쓰이는 방식입니다.
방법 3: 압축 파일 내용 보기
텍스트 파일이 압축되어 있어도, 먼저 압축을 풀지 않고 바로 내용을 읽을 수 있는 경우가 있습니다. MS-DOS 생태계에서 유래한 전통적인 ZIP 형식은 압축과 아카이브(여러 파일 묶기) 기능을 함께 수행하므로, ZIP 아카이브 안에 든 텍스트 파일을 읽으려면 먼저 압축을 해제해야 합니다. 반면 유닉스 계열의 압축 알고리즘은 파일을 제자리에서 압축할 수 있습니다.
예를 들어 smallerFile.gz라는 압축 텍스트 파일이 있다면 zcat smallerFile.gz 명령어로 명령줄에서 곧바로 내용을 확인할 수 있습니다. zmore나 zless를 사용해도 되는데, 이들은 more와 less와 동일하게 작동하면서 gzip 프로그램으로 압축된 텍스트 파일을 지원합니다.
점점 더 많은 리눅스 배포판이 xz 파일 형식을 채택하고 있습니다. 이 형식으로 압축된 텍스트 파일이라면 기존 파일 보기 명령어 앞에 xz를 붙이면 됩니다. 즉, cat, less, more 대신 xzcat, xzless, xzmore를 사용하면 됩니다. 마찬가지로 bzip2 표준으로 압축된 텍스트 파일을 위해서는 bzcat, bzless, bzmore 명령어가 준비되어 있습니다.
다만 tar나 cpio 아카이브로 묶은 후 압축한 파일은 이 방식으로 읽을 수 없습니다. 따라서 smallerFile.gz는 잘 읽히지만, smallerFile.tar.gz나 smallerFile.tgz는 같은 방법으로 열리지 않습니다.