소개
숙련된 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와 매뉴얼 페이지를 지원하기 때문입니다.
간단한 도움말과 사용법 문법 읽기
이 단계에서는 내장 명령어의 도움말과 --help를 사용하고, 사용법 표시줄에 사용되는 일반적인 표기법을 읽는 방법을 익힙니다.
cd는 셸 내장 명령어이므로 help를 사용해 Bash 문서를 확인합니다.
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를 사용하는 페이지 뷰어에서 열립니다. 뷰어 안에서 다음 키를 연습해 보세요.
- 아래쪽 화살표: 한 줄 아래로 이동합니다.
- 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, 간단한 문법을 확인할 때는 help 또는 --help, 전체 문서를 확인할 때는 man, 주제는 알지만 명령어 이름을 모를 때는 apropos를 사용하는 반복 가능한 도움말 전략을 익혔습니다. 이러한 도구를 활용하면 모든 옵션을 외울 필요가 없으며, 과정의 나머지 부분에서 익숙하지 않은 명령어를 스스로 조사할 수 있습니다.



