1. 디렉토리 구조 출력 (tree / ls -R)
- 개념: 디렉토리 구조를 계층적으로 표시
- 명령어: tree
입력
tree /home/user
출력
/home/user
├── documents
│ ├── resume.docx
│ └── report.pdf
├── downloads
│ └── setup.sh
└── pictures
├── cat.png
└── dog.jpg
2. 파일 끝부분 보기 (tail)
개념: 파일의 마지막 n줄을 확인 (로그 확인용)
명령어:
입력
tail -n 5 access.log
출력
192.168.0.2 - - [31/Oct/2025:10:15:23] "GET /index.html HTTP/1.1" 200 512
192.168.0.2 - - [31/Oct/2025:10:15:24] "GET /style.css HTTP/1.1" 200 1024
192.168.0.3 - - [31/Oct/2025:10:15:25] "POST /login HTTP/1.1" 302 64
192.168.0.3 - - [31/Oct/2025:10:15:26] "GET /dashboard HTTP/1.1" 200 5400
192.168.0.3 - - [31/Oct/2025:10:15:27] "GET /favicon.ico HTTP/1.1" 404 209
3. 포트 사용 프로세스 확인 (lsof)
개념: 특정 포트를 점유 중인 프로세스를 확인
입력
sudo lsof -i :80
출력
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN)
4. 서비스 상태 확인 (systemctl)
개념: systemd 기반 서비스의 실행 여부 확인
입력
systemctl status nginx
출력
● nginx.service - A high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: active (running) since Fri 2025-10-31 09:00:00 KST
Main PID: 1234 (nginx)
Tasks: 2 (limit: 1150)
Memory: 5.6M
CGroup: /system.slice/nginx.service
├─1234 nginx: master process
└─1235 nginx: worker process
5. 네트워크 연결 확인 (ping)
개념: 네트워크 연결 및 응답 속도 확인
입력
ping -c 3 google.com
출력
PING google.com (142.250.206.14) 56(84) bytes of data.
64 bytes from 142.250.206.14: icmp_seq=1 ttl=114 time=14.3 ms
64 bytes from 142.250.206.14: icmp_seq=2 ttl=114 time=14.5 ms
64 bytes from 142.250.206.14: icmp_seq=3 ttl=114 time=13.9 ms
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
6. 로그인 사용자 확인 (w)
개념: 로그인한 사용자, 접속 터미널, CPU 사용률 등 확인
입력
w
출력
10:32:20 up 1 day, 3:02, 2 users, load average: 0.05, 0.10, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
admin pts/0 192.168.0.5 09:00 1:00m 0.10s 0.10s bash
test pts/1 192.168.0.6 10:00 0.00s 0.20s 0.01s top
리눅스 예상문제 (심화편 20문항)
1
현재 디렉토리의 하위 디렉토리 구조를 트리 형태로 출력하는 명령어는?
A. ls -R
B. find /
C. tree
D. ls -t
E. du -a
✅ 정답: C
해설: tree는 디렉토리 구조를 계층적으로 출력합니다.
설치 필요(sudo apt install tree).
2
파일 “test.txt”의 마지막 10줄을 확인하는 명령어는?
A. head test.txt
B. cat -n test.txt
C. tail test.txt
D. grep test.txt
E. less test.txt
✅ 정답: C
해설: tail은 파일의 끝부분을 출력하며, tail -n 10으로 줄 수를 조절할 수 있습니다.
3
리눅스에서 포트 80을 사용 중인 프로세스를 확인하려면?
A. ps aux | grep 80
B. lsof -i :80
C. netstat -p
D. top -p 80
E. ping 80
✅ 정답: B
해설: lsof -i :80은 특정 포트를 사용하는 프로세스를 확인합니다.
(netstat는 deprecated, ss 명령어로 대체 가능)
| A | ps aux | 현재 실행 중인 모든 프로세스를 출력하는 명령어 |
| C | netstat -p | 네트워크 연결 + 프로세스 확인 가능하지만 포트를 지정하지 않음 |
| D | top -p 80 | PID=80인 프로세스 확인 (포트 80 아님) (PID란 : Process Id - 운영체제에서 각 프로세스를 구분하기 위한 고유 번호) |
| E | ping 80 | 잘못된 명령. ping은 IP를 ICMP로 확인 |
4
리눅스에서 서비스의 상태를 확인하는 명령은?
A. service status nginx
B. systemctl status nginx
C. chkconfig nginx
D. ps nginx
E. runlevel nginx
✅ 정답: B
해설: 현대 리눅스(systemd 기반)에서는 systemctl status 서비스명으로 상태 확인합니다.
5
“ping” 명령어의 주요 용도는?
A. 네트워크 속도 측정
B. 서버 부하 측정
C. 호스트와의 연결 여부 확인
D. 포트 열림 확인
E. 파일 전송
✅ 정답: C
해설: ping은 ICMP 프로토콜로 대상 호스트의 연결 상태를 점검합니다.
6
현재 실행 중인 사용자 세션을 모두 확인하는 명령은?
A. who
B. id
C. users
D. w
E. finger
✅ 정답: D
해설: w는 로그인 사용자와 CPU 사용량 등 세션 정보를 함께 표시합니다.
(who는 단순 로그인 목록만 표시)
명령어주요 역할예시 출력특징/차이점
| A. who | 로그인한 사용자 목록 표시 | 로그인 터미널, 시간 | 기본적인 로그인 정보만 |
| B. id | 현재 사용자 ID 정보 | uid, gid, 그룹 목록 | 세션 정보 X |
| C. users | 로그인한 사용자 계정명만 출력 | root ubuntu ubuntu | 아주 간단한 요약만 |
| D. w | 로그인 사용자 + CPU/작업/시스템 부하 표시 | What each user is doing! | 가장 상세한 사용자 세션 정보 |
| E. finger | 사용자 상세 정보 표시(이름/홈/전화번호 등) | finger root | 기본 설치 안 된 경우 많음 |
7
현재 시스템의 CPU 정보를 확인하려면?
A. cat /etc/cpu
B. lscpu
C. ps cpu
D. cat /proc/meminfo
E. cpuinfo
✅ 정답: B
해설: lscpu 명령으로 CPU 아키텍처, 코어 수, 쓰레드 등을 조회합니다.
(/proc/cpuinfo도 가능)
D. cat /proc/meminfo -> 메모리(RAM) 정보 출력
8
리눅스에서 파일 압축 해제 명령어로 올바른 것은?
A. tar -zxvf file.tar.gz
B. tar -czvf file.tar.gz
C. gzip file.tar
D. unzip file.zip.gz
E. extract file
✅ 정답: A
해설: -z(gzip), -x(extract), -v(verbose), -f(파일 지정)
- 압축 해제: tar -zxvf,
- 압축 생성: tar -czvf
| -z | gzip | gzip 방식으로 압축/해제 |
| -x | extract | 압축 해제 |
| -c | create | 압축 생성 |
| -v | verbose | 처리 과정 출력(파일 목록 보여줌) |
| -f | file | 파일 이름 지정 (항상 마지막에!) |
9
파일을 찾을 때 대소문자를 구분하지 않으려면?
A. find . -name "File.txt"
B. find . -iname "File.txt"
C. find . -cname "File.txt"
D. grep -n "File.txt"
E. locate "File.txt"
✅ 정답: B
해설: -iname 옵션은 대소문자를 구분하지 않고 검색합니다.
| A | find . -name "File.txt" | 파일 이름으로 검색 | ✅ 구분함 | 기본 검색 |
| B | find . -iname "File.txt" | 파일 이름 검색 | ❌ 구분하지 않음 | 시험 단골 |
| C | find . -cname "File.txt" | ❌ 없음 | — | 오답 유도용 옵션 |
| D | grep -n "File.txt" | 파일 내부 텍스트 검색 | ✅ 구분함 | 파일 이름이 아니라 내용 검색 |
| E | locate "File.txt" | DB 기반 빠른 파일 검색 | ✅ 보통 구분함 | DB 업데이트 필요 (updatedb) |
10
현재 사용 중인 쉘 종류를 확인하는 명령은?
A. echo $SHELL
B. echo $PATH
C. cat /etc/shell
D. shelltype
E. whoami
✅ 정답: A
해설: $SHELL 환경변수에는 현재 로그인 세션의 쉘 경로가 저장됩니다. 예) /bin/bash
| ✅ A | echo $SHELL | 기본 로그인 쉘 확인 | 환경변수 $SHELL 출력 |
| B | echo $PATH | 실행가능한 명령어가 저장된 디렉토리 경로 목록 | 쉘 경로가 아님 |
| C | cat /etc/shells | 시스템에 설치된 사용 가능한 쉘 목록 출력 | 현재 사용하는 쉘이 아님 |
| D | shelltype | ❌ 존재하지 않음 | 오답 유도 |
| E | whoami | 현재 로그인한 사용자 이름 출력 | 쉘과 관련 없음 |
11
패키지 설치를 위한 Ubuntu 계열 명령어는?
A. yum install
B. rpm -ivh
C. apt install
D. pkgadd
E. emerge install
✅ 정답: C
해설: Debian/Ubuntu는 apt install, RedHat/CentOS는 yum install을 사용합니다.
12
파일의 변경 시간(timestamp)을 기준으로 정렬해 출력하려면?
A. ls -l
B. ls -lh
C. ls -lt
D. ls -la
E. ls -lr
✅ 정답: C
해설: ls -lt는 최신 수정순으로 파일을 나열합니다.
| A | ls -l | 상세(long) 목록 표시 | 권한, 소유자, 크기, 날짜 등 |
| B | ls -lh | 사람이 읽기 쉬운 크기 표시 | KB/MB/GB 단위 |
| C | ls -lt | 시간 기준 정렬(최신순) | 최근 수정된 파일 먼저 |
| D | ls -la | 숨김파일 포함 + 상세 정보 | .git, .env까지 표시 |
| E | ls -lr | 정렬 순서 뒤집기(reverse) | 알파벳/시간 등 정렬 반대 |
13
시스템 시간을 확인하는 명령어는?
A. cal
B. time
C. date
D. clock
E. hwclock
✅ 정답: C
해설: date는 현재 시스템 시간을 출력/변경합니다.
hwclock은 하드웨어 시계 기준 명령입니다.
14
로그 파일의 새로운 내용을 실시간으로 모니터링하려면?
A. cat -f
B. head -f
C. tail -f
D. watch tail
E. grep -l
✅ 정답: C
해설: tail -f /var/log/messages는 로그가 추가될 때마다 자동으로 갱신해 표시합니다.
15
시스템의 IP 주소를 확인하는 명령어는?
A. ifconfig
B. netstat
C. route
D. ping
E. ss
✅ 정답: A
해설: ifconfig 또는 ip addr show로 IP 주소를 확인할 수 있습니다.
(신규 리눅스는 ip a 권장)
16
현재 시스템의 메모리(RAM) 사용량을 확인하는 명령은?
A. memstat
B. df -h
C. free -h
D. top -m
E. sysmem
✅ 정답: C
해설: free -h는 전체/사용/가용 메모리를 MB/GB 단위로 출력합니다.
17
파일을 다른 이름으로 복사하는 명령어는?
A. mv
B. cp
C. rename
D. cat
E. touch
✅ 정답: B
해설: cp old.txt new.txt → 기존 파일을 복사하여 새 이름으로 생성합니다.
mv는 이동(또는 이름 변경).
18
시스템 종료 명령어로 옳은 것은?
A. poweroff
B. reboot
C. halt
D. shutdown -h now
E. 모두 정답
✅ 정답: E
해설: 위 모든 명령은 시스템 종료를 수행합니다.
reboot는 재부팅, shutdown -r now는 즉시 재부팅.
19
SELinux의 상태를 확인하는 명령어는?
A. getsebool
B. getenforce
C. sestatus
D. chkconfig selinux
E. securityctl
✅ 정답: B
해설: getenforce → enforcing / permissive / disabled 중 현재 상태를 출력.
setenforce 0으로 일시 비활성화 가능.
| A | getsebool | 보안 정책(Booleans) 상태 확인 | httpd_can_network_connect --> off |
| ✅ B | getenforce | SELinux 현재 동작 모드 확인 | Enforcing / Permissive / Disabled |
| ✅ C | sestatus | SELinux 상태 전체 요약 표시 | 모드 + 정책 파일 경로 등 자세함 |
| D | chkconfig selinux | ❌ 이런 명령 없음 | 오답 유도 |
| E | securityctl | ❌ 존재하지 않음 | 오답 |
20
리눅스에서 DNS 설정이 저장되는 기본 파일은?
A. /etc/hostname
B. /etc/hosts
C. /etc/resolv.conf
D. /etc/dns.conf
E. /etc/network
✅ 정답: C
해설: /etc/resolv.conf는 DNS 서버 주소(nameserver)를 지정하는 설정 파일입니다.
| A | /etc/hostname | 시스템의 호스트명 저장 | myserver |
| B | /etc/hosts | 로컬에서 직접 도메인→IP 매핑 | 127.0.0.1 localhost |
| ✅ C | /etc/resolv.conf | DNS 서버 주소 설정 | nameserver 8.8.8.8 |
| D | /etc/dns.conf | ❌ 없는 파일 | 오답 유도 |
| E | /etc/network | 네트워크 설정 디렉토리 | Ubuntu 계열에서 인터페이스 설정 포함 |
'CS(computer science) 지식 > 운영체제' 카테고리의 다른 글
| [운영체제] 예제로 배우는 리눅스 명령어 (0) | 2025.10.30 |
|---|