소개
숙련된 Linux 사용자는 모든 명령과 옵션을 외우지 않습니다. 명령 이름의 의미를 시스템에 확인하고, 간단한 사용법 요약을 찾고, 전체 문서를 열고, 주제별로 매뉴얼을 검색하는 방법을 알고 있습니다.
이 실습은 기본 파일 작업에서 바로 이어집니다. cd, ls, cp와 같이 익숙한 명령을 확인한 다음 /home/labex/project/command-help 아래에 간단한 결과 파일을 저장합니다. 실습을 마치면 익숙하지 않은 구문도 막막한 문제가 아니라 문서에서 확인할 수 있는 내용이 됩니다.
명령 이름의 의미 확인하기
이 단계에서는 적절한 도움말을 선택하기 전에 셸 내장 명령, 별칭, 실행 파일을 구분합니다.
실습 작업 디렉터리로 이동합니다.
cd /home/labex/project/command-help
셸 자체를 변경해야 하는 일부 명령은 셸에 내장되어 있습니다. cd가 무엇인지 셸에 확인합니다.
type cd
다음 내용이 포함된 출력이 표시됩니다.
cd is a shell builtin
다른 이름은 셸에서 설정한 짧은 대체 이름인 별칭이거나, 파일로 저장된 외부 프로그램일 수 있습니다. ls를 확인합니다.
type ls
셸 설정에 따라 출력에는 별칭 또는 실행 파일 경로가 표시될 수 있습니다. 셸이 찾을 수 있는 모든 일치 형식을 표시하려면 type -a를 사용합니다.
type -a ls
command -V를 사용해도 명령에 대한 읽기 쉬운 설명을 확인할 수 있습니다.
command -V cp
command -v는 셸이 실제로 선택할 명령 또는 경로를 출력합니다.
command -v cp
간단한 분류 보고서를 저장합니다. 첫 번째 >는 보고서를 새로 만들거나 기존 보고서를 교체하고, 이후의 각 >>는 앞서 저장한 줄을 지우지 않고 다른 명령의 출력을 덧붙입니다.
type cd > command-types.txt
type ls >> command-types.txt
command -V cp >> command-types.txt
cat command-types.txt
보고서에는 cd가 내장 명령이라는 내용과 ls, cp에 대한 설명이 포함되어야 합니다. 명령 유형을 알면 적절한 도움말을 선택할 수 있습니다. 셸 내장 명령은 셸별 문서를 사용하고, 외부 프로그램은 일반적으로 --help와 매뉴얼 페이지를 제공합니다.
간단한 도움말과 사용법 구문 읽기
이 단계에서는 내장 도움말과 --help를 사용하고, 사용법 줄에 표시되는 일반적인 표기법을 읽는 방법을 배웁니다.
cd는 셸 내장 명령이므로 Bash에 문서를 요청합니다. 실습 터미널은 Zsh를 사용하며, help는 독립 실행 명령이 아니라 Bash 내장 명령입니다. 따라서 Bash를 명시적으로 실행합니다.
bash -c 'help cd'
첫 번째 줄에는 cd [-L|[-P ...]] [dir]와 비슷한 사용법 패턴이 표시됩니다. 아직 모든 옵션을 이해할 필요는 없습니다. 구조에 집중합니다. 명령 이름이 먼저 나오고, 대괄호 안의 항목은 선택 사항입니다.
외부 프로그램은 일반적으로 --help를 지원합니다. ls의 전체 도움말은 길기 때문에, 여기서는 과정에서 처음으로 파이프라인을 의도적으로 사용합니다. 파이프는 |로 표시합니다. 왼쪽 명령은 일반 출력을 작성하고, 오른쪽 명령은 그 출력을 입력으로 받습니다. 여기서 head -n 8은 처음 8줄만 남깁니다.
ls --help | head -n 8
첫 번째 줄은 다음과 같은 일반 형식입니다.
Usage: ls [OPTION]... [FILE]...
[OPTION]...은 옵션을 0개 이상 사용할 수 있다는 뜻입니다. [FILE]...은 파일 또는 디렉터리 인수를 0개 이상 사용할 수 있다는 뜻입니다. 대괄호는 구문을 설명하는 표기일 뿐이므로 그대로 입력하지 않습니다.
파일 복사 명령의 간단한 도움말도 확인합니다.
cp --help | head -n 8
두 명령의 앞부분을 섹션 제목과 함께 저장합니다. >는 새 파일을 시작하고, 이후의 >>는 각 섹션을 파일 뒤에 추가합니다.
echo "=== ls ===" > quick-help.txt
ls --help | head -n 3 >> quick-help.txt
echo "=== cp ===" >> quick-help.txt
cp --help | head -n 3 >> quick-help.txt
cat quick-help.txt
이 작은 파일은 전체 도움말을 대신하지 않습니다. 명령의 사용법 줄을 찾아 읽을 수 있다는 사실을 확인하는 용도입니다.
매뉴얼 페이지 탐색하기
이 단계에서는 대화형 man 뷰어를 사용하고 매뉴얼 섹션의 의미를 배웁니다.
ls의 매뉴얼 페이지를 엽니다.
man ls
매뉴얼은 일반적으로 less인 페이지 표시기에서 열립니다. 뷰어 안에서 다음 키를 사용해 봅니다.
- 아래쪽 화살표 키(Down Arrow): 한 줄 아래로 이동합니다.
- 스페이스바(Space): 한 화면 앞으로 이동합니다.
- b: 한 화면 뒤로 이동합니다.
/sort를 입력하고 Enter 키를 누릅니다:sort를 앞으로 검색합니다.- n: 다음 검색 결과로 이동합니다.
- q: 종료하고 셸 프롬프트로 돌아갑니다.
제목에는 일반적으로 LS(1)이 표시됩니다. 숫자는 매뉴얼 섹션을 나타냅니다. 섹션 1에는 일반 사용자 명령이 들어 있고, 다른 섹션에는 시스템 호출, 라이브러리 함수, 설정 형식, 관리 명령이 들어 있습니다.
man -f를 사용하면 “whatis” 조회라고도 하는 한 줄 설명을 확인할 수 있습니다.
man -f ls
같은 매뉴얼 페이지에서 대화형이 아닌 일부 내용을 저장합니다. 이 파이프라인을 왼쪽에서 오른쪽으로 읽어 보세요. -P cat은 man이 페이지 표시기를 열지 않고 내용을 출력하게 하고, col -b는 터미널 서식 제어 문자를 제거하며, head -n 20은 20줄만 남기고, >는 최종 출력을 저장합니다.
man -P cat ls | col -b | head -n 20 > ls-man-excerpt.txt
cat ls-man-excerpt.txt
매뉴얼 제목, 이름, 개요, 설명의 시작 부분이 표시되어야 합니다. 이를 통해 대화형 보기와 비대화형 보기가 같은 문서에서 나온다는 사실을 확인할 수 있습니다.
주제별로 명령 찾기
이 단계에서는 작업은 알고 있지만 명령 이름을 모를 때 apropos를 사용합니다.
apropos는 매뉴얼 데이터베이스에 저장된 간단한 설명을 검색합니다. 암호와 관련된 문서를 검색합니다.
apropos password | head -n 15
각 결과에는 매뉴얼 이름, 괄호 안의 섹션, 간단한 설명이 포함됩니다. 결과 중 하나에는 passwd에 대한 설명이 표시되어야 합니다.
파일과 관련된 주제를 검색합니다.
apropos file | head -n 20
범위가 넓은 키워드는 많은 결과를 반환합니다. 더 구체적인 문구를 사용하면 유용한 결과를 얻을 수 있습니다.
apropos "copy files"
범위가 넓은 검색 결과를 다시 필터링할 수도 있습니다. -i 옵션은 grep이 대소문자를 무시하게 하고, -m 5는 일치하는 줄을 5개 찾은 뒤 중지하게 합니다.
apropos file | grep -i -m 5 'copy'
나중에 확인할 수 있도록 암호 검색 결과 전체를 저장합니다.
apropos password > password-topics.txt
grep -E '^passwd|change.*password' password-topics.txt | head
새로 설치한 시스템에서 apropos가 아무 결과도 찾지 못하면 매뉴얼 데이터베이스에 sudo mandb가 필요할 수 있습니다. 이 실습에서는 데이터베이스를 자동으로 준비했지만, 이 관계를 기억해 두면 다른 환경에서 문제를 해결하기 쉽습니다.
요약
명령 이름을 확인할 때는 type 또는 command -V를 사용하고, 간단한 구문은 Bash의 help 같은 셸별 도움말이나 프로그램의 --help를 사용하며, 전체 문서는 man으로 확인하고, 주제는 알지만 명령을 모를 때는 apropos를 사용하는 반복 가능한 도움말 확인 전략을 배웠습니다. 이러한 도구를 사용하면 모든 옵션을 외울 필요가 없으며, 과정의 나머지 부분에서 익숙하지 않은 명령을 직접 조사할 수 있습니다.



