모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

13강 / 전체 14강

기타 필수 명령어 — 파일 내용 확인·검색·도움말·시스템 정보

13분 읽기 조회 0

[1과목 3장 03절] cat·head·tail·wc 등 내용 확인, find·which·locate 검색, man 섹션 번호, date·uname 등 시스템 정보 명령을 다룹니다.

🎯 이 강의 학습 목표

이 강은 1과목 3장 03절 기타 필수 명령어이며, 1과목의 마지막 강입니다. 이 강을 마치면 파일 내용을 보는 명령들의 차이를 구분하고, find의 조건 옵션으로 원하는 파일을 찾을 수 있으며, which·whereis·locate의 용도 차이와 man의 섹션 번호 체계를 설명할 수 있게 됩니다.

이 단원은 "명령어와 기능을 짝지어라" 유형이 압도적으로 많습니다. 비슷해 보이는 명령들을 무엇이 다른가 기준으로 묶어 두는 것이 핵심입니다. 예를 들어 cat·more·less는 모두 파일을 보여 주지만 되돌아갈 수 있는가에서 갈립니다.

💡 파일 내용을 보는 명령

명령동작핵심 옵션
cat파일 전체를 한 번에 출력-n 줄 번호, -b 빈 줄 제외 번호, -A 특수문자 표시
tac마지막 줄부터 거꾸로 출력(cat의 반대)—
more한 화면씩. 앞으로만 이동Space 다음 쪽, Enter 한 줄, q 종료
less한 화면씩. 앞뒤로 이동 + 검색/ 검색, b 뒤로, q 종료
head파일 앞부분(기본 10줄)-n 줄 수, -c 바이트 수
tail파일 끝부분(기본 10줄)-n 줄 수, -f 실시간 추적
wc줄·단어·바이트 수 세기-l 줄, -w 단어, -c 바이트

more와 less의 차이가 시험 단골입니다. more는 앞으로만 넘길 수 있고 less는 뒤로도 갈 수 있으며 검색도 됩니다. "less is more than more(less가 more보다 낫다)"라는 말장난이 이름의 유래입니다.

tail -f는 실무에서 가장 많이 쓰는 옵션 중 하나입니다. 파일 끝에 새 줄이 추가될 때마다 자동으로 화면에 표시하므로, 서버 로그를 실시간으로 지켜볼 때 씁니다. tail -f /var/log/syslog 같은 형태이며, Ctrl+C로 빠져나옵니다.

💡 파일을 찾는 명령 — find, which, whereis, locate

네 명령 모두 "찾는다"지만 대상과 방식이 완전히 다릅니다.

명령찾는 대상방식속도
find모든 파일디렉터리를 직접 순회. 조건이 매우 다양느림
which실행 파일PATH 환경변수에 등록된 경로만 검색빠름
whereis실행 파일 + 매뉴얼 + 소스정해진 표준 경로만 검색빠름
locate모든 파일미리 만들어 둔 DB를 검색매우 빠름

locate는 DB를 조회하기 때문에 압도적으로 빠르지만, 방금 만든 파일은 찾지 못합니다. DB는 updatedb 명령이나 주기적 작업으로 갱신되기 때문입니다. 이 특성이 그대로 시험 문제가 됩니다.

find는 조건 조합이 핵심입니다. 형식은 find [경로] [조건] [동작]입니다.

조건의미
-name / -iname이름으로(대소문자 구분 / 무시)
-type유형 — f 일반 파일, d 디렉터리, l 링크
-size크기 — +10M(10MB 초과), -1k(1KB 미만)
-perm권한으로 — 특수 권한 점검에 사용(16강)
-user / -group소유자 / 그룹으로
-mtime / -atime수정 / 접근 시각 — -7(7일 이내), +30(30일 이전)
-exec ... {} \;찾은 파일마다 명령 실행. {}가 파일명으로 치환
-delete찾은 파일 삭제 (위험)

-exec는 강력하지만 형식이 까다롭습니다. find /tmp -name "*.log" -exec rm {} \;에서 {}는 찾은 파일 이름, \;는 명령의 끝을 뜻합니다. 세미콜론 앞의 역슬래시를 빠뜨리면 셸이 먼저 해석해 버려 오류가 납니다.

💡 도움말 — man과 섹션 번호

리눅스의 공식 도움말은 man(manual)입니다. 중요한 것은 같은 이름이 여러 섹션에 존재할 수 있다는 점입니다.

섹션내용예
1일반 사용자 명령ls, passwd(명령)
2시스템 호출open, fork
3라이브러리 함수printf
4특수 파일(/dev)null
5파일 형식과 규약passwd(파일), fstab
6게임—
7기타·규약hier, regex
8관리자 명령useradd, mount
9커널 루틴—

1번과 5번의 대비가 가장 자주 출제됩니다. man passwd는 암호를 바꾸는 명령(섹션 1)을 보여 주고, man 5 passwd는 /etc/passwd 파일의 형식(섹션 5)을 보여 줍니다. 10강에서 본 7개 필드 설명이 바로 섹션 5에 있습니다. 관리자 명령은 섹션 8입니다.

관련 명령도 함께 정리합니다. whatis는 한 줄 요약을 보여 주고, apropos(또는 man -k)는 키워드로 매뉴얼을 검색합니다. info는 GNU가 만든 더 자세한 문서 시스템이고, --help는 명령 자체가 제공하는 간단한 사용법입니다.

💡 시스템 정보 명령

명령보여 주는 것비고
date현재 날짜와 시각+%Y-%m-%d 형식 지정 가능
cal달력-y는 해당 연도 전체
uname시스템 정보-a 전체, -r 커널 버전, -m 아키텍처
hostname호스트명uname -n과 동일
free메모리·스왑 사용량-h 읽기 좋은 단위
uptime가동 시간·접속자 수·부하 평균—
who / w접속자 목록 / 접속자 + 작업 내용—
last로그인 기록—
clear화면 지우기—
echo문자열·변수 값 출력echo $PATH

cal -y는 "올해의 달력 전체를 출력하는 옵션"을 묻는 문제로 그대로 나옵니다. uname은 옵션마다 출력이 달라 3강·4강에서도 다뤘는데, -r은 커널 버전, -o는 GNU/Linux였다는 점을 다시 확인해 두십시오.

💻 실습으로 확인하기

아래는 /tmp/lm13에서 실제 실행한 결과입니다. 5줄짜리 list.txt를 먼저 만들었습니다.

$ cat -n list.txt
     1	alpha
     2	bravo
     3	charlie
     4	delta
     5	echo

$ head -2 list.txt
alpha
bravo

$ tail -2 list.txt
delta
echo

cat -n은 줄 번호를 붙여 전체를 출력합니다. head -2는 앞 2줄, tail -2는 뒤 2줄을 보여 줍니다. -n이 cat에서는 "줄 번호", head·tail에서는 "줄 수"로 의미가 다르다는 점에 주의하십시오. 같은 글자라도 명령마다 뜻이 달라지는 대표적 사례입니다.

$ wc list.txt
 5  5 31 list.txt

$ wc -l list.txt
5 list.txt

wc는 옵션 없이 쓰면 줄 수 · 단어 수 · 바이트 수 순으로 세 값을 출력합니다. 여기서는 5줄, 5단어, 31바이트입니다. 한 줄에 단어가 하나씩이라 줄 수와 단어 수가 같습니다. -l을 붙이면 줄 수만 나옵니다. 출력 순서 줄→단어→바이트가 시험에 그대로 나옵니다.

$ find . -name "*.txt" -type f
./list.txt
./small.txt

-name "*.txt"로 이름 조건을, -type f로 일반 파일만이라는 조건을 걸었습니다. 같은 디렉터리에 있던 big.log는 확장자가 달라 제외되었습니다. 조건은 나열하면 모두 만족(AND)하는 것만 출력됩니다.

$ which ls
/usr/bin/ls

$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

두 명령의 차이가 한눈에 드러납니다. which는 실행 파일 경로 하나만 알려 주지만, whereis는 매뉴얼 페이지 위치까지 함께 보여 줍니다. /usr/share/man/man1/ls.1.gz에서 man1과 .1이 보이는데, 이것이 바로 ls의 매뉴얼이 섹션 1에 있다는 표시입니다. 앞에서 표로 외운 섹션 번호가 파일 경로에 그대로 반영되어 있습니다.

$ whatis passwd
passwd (1)           - change user password
passwd (1ssl)        - OpenSSL application commands
passwd (5)           - the password file

섹션 번호의 의미를 보여 주는 가장 좋은 예입니다. 같은 passwd인데 (1)은 암호를 바꾸는 명령, (5)는 암호 파일 그 자체로 설명이 완전히 다릅니다. 10강에서 다룬 /etc/passwd의 7개 필드를 확인하려면 man 5 passwd를 실행해야지, 그냥 man passwd를 치면 섹션 1이 열려 엉뚱한 내용을 보게 됩니다.

$ date "+%Y-%m-%d %H:%M:%S"
2026-09-12 20:59:59

$ uname -a
Linux BOOK-80MR4T5EPH 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun  5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

$ uptime
 20:59:59 up 1 day,  6:22,  2 users,  load average: 9.77, 9.28, 6.28

date는 +로 시작하는 형식 문자열을 주면 원하는 모양으로 출력합니다(%Y 연, %m 월, %d 일, %H:%M:%S 시각). 스크립트에서 로그 파일 이름을 만들 때 자주 씁니다. uname -a는 커널 이름·호스트명·커널 버전·빌드 정보·아키텍처·운영체제를 한 줄에 모두 출력합니다. uptime의 load average 세 숫자는 최근 1분·5분·15분 평균 부하로, 25강 top에서 다시 다룹니다.

⚠️ 시험에 나오는 함정

함정정확한 사실
more로 뒤로 돌아갈 수 있다less만 가능. more는 앞으로만
which로 매뉴얼 위치를 찾는다which는 실행 파일만. 매뉴얼까지는 whereis
locate는 항상 최신 결과를 준다DB 기반이라 updatedb 전에 만든 파일은 못 찾음
man passwd로 /etc/passwd 형식을 본다그건 man 5 passwd. 그냥 man passwd는 섹션 1(명령)
관리자 명령 매뉴얼은 섹션 1이다섹션 8
wc의 출력 순서는 바이트→단어→줄줄 → 단어 → 바이트
find의 -exec는 ;로 끝낸다\;(역슬래시 필요)
find는 새 파일을 만드는 명령이다검색 전용. 파일 생성과 무관

📝 핵심 요약 — 암기표

항목핵심
내용 보기cat(전체) · tac(역순) · more(앞으로만) · less(앞뒤+검색)
앞/뒤 일부head(앞 10줄) · tail(뒤 10줄) · tail -f 실시간 추적
wc 출력 순서줄 → 단어 → 바이트 (-l/-w/-c)
find직접 순회 · -name -type f/d/l -size -perm -mtime · -exec ... {} \;
which / whereisPATH의 실행 파일 / 실행 파일 + 매뉴얼 + 소스
locateDB 검색(매우 빠름, updatedb 필요)
man 섹션1 일반 명령 · 5 파일 형식 · 8 관리자 명령 (2 시스템 호출, 3 라이브러리)
매뉴얼 검색whatis(한 줄 요약) · apropos·man -k(키워드 검색)
시스템 정보date · cal -y · uname -r · free -h · uptime · who/w

이것으로 1과목 리눅스 일반이 끝났습니다. 여기까지가 1차 시험의 출제 범위입니다. 다음 14강부터는 2과목 리눅스 운영 및 관리로 들어가며, 2차 시험에서 가장 많이 틀리는 영역인 파일 권한부터 다룹니다.

📋 실전 문제

1. 파일을 화면 단위로 보되 앞뒤로 이동하고 검색까지 할 수 있는 명령은?
① cat    ② more    ③ less    ④ head

2. 로그 파일에 새로운 내용이 기록될 때마다 실시간으로 화면에 출력하는 명령은?
① tail -f    ② head -n    ③ cat -n    ④ wc -l

3. wc list.txt의 출력이 5 5 31 list.txt일 때, 세 숫자의 의미를 순서대로 바르게 나열한 것은?
① 바이트 수, 단어 수, 줄 수
② 줄 수, 단어 수, 바이트 수
③ 단어 수, 줄 수, 바이트 수
④ 줄 수, 바이트 수, 단어 수

4. 미리 구축된 데이터베이스를 검색하기 때문에 매우 빠르지만, 방금 만든 파일은 찾지 못할 수 있는 명령은?
① find    ② which    ③ whereis    ④ locate

5. /etc/passwd 파일의 형식에 대한 매뉴얼을 보려면 실행해야 하는 명령은?
① man passwd    ② man 1 passwd
③ man 5 passwd    ④ man 8 passwd

6. 현재 디렉터리 아래에서 확장자가 .log인 일반 파일만 찾는 명령으로 알맞은 것은?
① find . -name "*.log" -type d
② find . -name "*.log" -type f
③ find . -iname "*.log" -type l
④ locate "*.log" -type f

7. 올해의 달력 전체를 출력할 때 cal 명령에 사용하는 옵션은?
① -a    ② -m    ③ -s    ④ -y

8. whereis ls의 실행 결과가 ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz일 때, 이에 대한 설명으로 틀린 것은?
① ls의 실행 파일은 /usr/bin/ls이다.
② ls의 매뉴얼은 섹션 1에 속한다.
③ which ls를 실행해도 매뉴얼 경로가 함께 출력된다.
④ whereis는 실행 파일과 매뉴얼 위치를 함께 찾아 준다.

✅ 정답과 해설

1. 정답 ③
less는 앞뒤 이동과 / 검색을 모두 지원합니다. ②의 more는 앞으로만 넘길 수 있습니다. ①의 cat은 화면 단위가 아니라 한 번에 전부 출력하고, ④의 head는 앞부분만 보여 줍니다.

2. 정답 ①
tail -f(follow)가 파일 끝에 추가되는 내용을 계속 따라갑니다. 서버 로그 모니터링의 표준 방법입니다. ②·③·④는 한 번 실행하면 그 시점의 결과만 출력하고 끝납니다.

3. 정답 ②
wc는 줄 수 → 단어 수 → 바이트 수 순으로 출력합니다. 옵션 -l(line)·-w(word)·-c(character/byte)와 순서가 대응한다고 기억하면 헷갈리지 않습니다.

4. 정답 ④
locate는 updatedb가 만들어 둔 데이터베이스를 조회하므로 매우 빠르지만, DB 갱신 전에 생성된 파일은 검색되지 않습니다. ①의 find는 디렉터리를 직접 순회하므로 느리지만 항상 최신 상태를 반영합니다.

5. 정답 ③
파일 형식은 섹션 5입니다. ①처럼 섹션을 생략하면 낮은 번호부터 찾아 섹션 1(암호 변경 명령)이 열립니다. ④의 섹션 8은 관리자 명령용입니다. whatis passwd를 실행하면 (1)과 (5)가 모두 존재함을 확인할 수 있습니다.

6. 정답 ②
-name "*.log"로 이름을, -type f로 일반 파일이라는 조건을 겁니다. ①의 -type d는 디렉터리, ③의 -type l은 심볼릭 링크를 찾습니다. ④의 locate에는 -type 옵션이 없습니다.

7. 정답 ④
cal -y가 해당 연도 전체 달력을 출력합니다. cal 2026처럼 연도를 직접 적어도 같은 결과가 나옵니다.

8. 정답 ③
which는 PATH에 등록된 실행 파일 경로만 출력하고 매뉴얼 경로는 보여 주지 않습니다. 매뉴얼과 소스까지 함께 찾는 것이 whereis의 특징입니다. ①·②·④는 출력 내용 그대로 옳으며, 특히 ②는 경로의 man1과 .1.gz가 섹션 번호를 나타냅니다.

📚 참고 자료

관련 주제

  • cat
  • head
  • tail
  • find
  • which
  • whereis
  • man 섹션
  • uname
  • 자격증
  • 자격증 강의
  • 리눅스마스터 2급 완전정복
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

리눅스마스터 2급 완전정복

이 강의가 속한 시리즈는 총 14강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...