퀴즈 1. 처음 만나는 Linux 터미널
지원 버전: Ubuntu Server 24.04 LTS(기본), Rocky Linux 9(대안) 마지막 업데이트: 2026년 9월 15일
해설을 열기 전에 답을 고르세요. 문제는 1장의 버려도 되는 게스트와 개인 실습 노트를 기준으로 합니다. 문제 속 명령은 해석 대상이며 호스트에서 실행하라는 지시가 아닙니다.
cat /etc/os-release에는 Ubuntu 24.04가 나오고uname -r에는 다른 버전 숫자가 나옵니다. 올바른 설명은 무엇인가요?- A) Linux 버전은 하나뿐이므로 둘 중 한 명령이 고장 났습니다.
- B) Ubuntu는 라이브러리이고
uname은 터미널 종류를 알려 줍니다. - C) Ubuntu는 배포판이고
uname -r은 실행 중인 커널을 보여 줍니다. 라이브러리와 셸은 별도 사용자 공간 구성 요소입니다. - D) 편집기를 새로 설치하면 항상 커널이 교체됩니다.
정답 보기
정답: C
설명: 배포판은 커널, 라이브러리, 도구, 저장소, 설정을 묶습니다. 커널은 자원을 관리하고 시스템 호출을 제공하며 라이브러리는 재사용 함수를 제공합니다. 일부 함수는 시스템 호출을 사용합니다. Bash는 사용자 공간에서 명령을 해석합니다. 각 구성 요소 버전이 배포판 릴리스와 같을 필요는 없습니다. Ubuntu가 Debian에서 파생되었다고 기본 설정까지 항상 같은 것도 아닙니다.
현재 위치는 고유한 실습 디렉터리의 루트입니다.
cp -i notes/draft.txt notes/copy.txt다음에mv -i notes/copy.txt archive/saved.txt를 실행했습니다. 둘 다 성공하면 어떤 파일이 남나요?- A)
archive/saved.txt만 남습니다.cp가 초안을 제거합니다. - B)
notes/draft.txt와archive/saved.txt가 남고notes/copy.txt는 없습니다. - C) 세 파일 모두 남습니다.
mv도 복사 명령입니다. - D) 상대 경로는
/에서 시작하므로/notes,/archive에 파일이 생깁니다.
- A)
정답 보기
정답: B
설명: cp는 원본을 남기고 복사본을 만들며 mv는 복사본의 위치·이름을 바꿉니다. 상대 경로는 현재 작업 디렉터리가 기준이므로 pwd 확인이 중요합니다. -i는 기존 대상을 덮어쓰기 전에 물을 뿐, 일반적인 실행 취소 기록을 만들지는 않습니다. 저장한 복사본으로 나중에 초안을 복구할 수 있습니다.
빈 파일을 만들려고
touch notes/draft.txt를 실행했지만 사실 그 파일에는 이미 노트가 있었습니다.touch는 보통 무엇을 하나요?- A) 기존 시간을 유지하면서 내용을 비웁니다.
- B) 같은 이름의 디렉터리를 만듭니다.
- C) 내용을 유지하면서 기존 파일의 타임스탬프를 갱신합니다.
- D) 홈 디렉터리로 파일을 이동합니다.
정답 보기
정답: C
설명: 해당 경로가 없을 때만 빈 파일을 만듭니다. 기존 파일에서는 보통 접근·수정 시간을 바꾸며 텍스트를 비우지 않습니다. cat으로 내용, ls -l로 크기를 확인하세요. 익숙한 이름의 파일이 비어 있다고 가정하지 않고 고유한 디렉터리에서 시작하는 이유이기도 합니다.
vi에서 저장하지 않은 편집을 버리고 종료하려고 합니다. 올바른 동작은 무엇인가요?
- A) Bash 프롬프트에서
:q!를 입력합니다. - B) vi 안에서 Esc,
:q!, Enter를 차례로 누릅니다. - C)
i를 누르고:wq를 입력합니다. - D) Ctrl+O를 누릅니다. 모든 편집기에서 저장하고 종료하는 키입니다.
- A) Bash 프롬프트에서
정답 보기
정답: B
설명: Esc로 일반 모드에 돌아온 뒤 :q!로 마지막 저장 이후 변경을 버리고 종료합니다. :wq는 저장 후 종료, :q는 미저장 변경이 있으면 종료를 거부하여 작업을 보호합니다. nano는 Ctrl+O와 파일 이름 확인으로 저장하고 Ctrl+X로 종료합니다. nano에서 미저장 편집을 버리려면 종료 후 저장 질문을 거절합니다. 편집기 명령은 셸이 아니라 편집기 안에서 입력해야 합니다.
파일의 기본 권한이
640(-rw-r-----)입니다. 올바른 해석은 무엇인가요?- A) 소유자는 읽기·쓰기, 그룹은 읽기, 나머지 사용자는 기본 파일 권한이 없습니다.
- B)
6이 가장 큰 숫자이므로 모두 읽고 쓸 수 있습니다. - C)
6은 읽기와 실행이므로 소유자는 실행할 수 있습니다. - D) 실행 비트가 없으므로 누구도 삭제할 수 없습니다.
정답 보기
정답: A
설명: 읽기=4, 쓰기=2, 실행=1이므로 소유자 6은 읽기·쓰기, 그룹 4는 읽기입니다. 접근과 디렉터리 항목 삭제에는 디렉터리 권한 및 다른 통제도 영향을 줍니다. 파일 쓰기 권한만으로 삭제 여부가 결정되지는 않습니다. 실습의 chmod 600을 되돌릴 때는 644로 추측하지 말고 기록한 원래 숫자 권한을 복원합니다.
노트를 저장할 때 “Permission denied”가 나옵니다. 가장 먼저 할 일은 무엇인가요?
- A)
/home전체에 재귀 권한 변경을 실행합니다. - B) root 셸을 열고 남은 실습을 모두 다시 실행합니다.
- C)
pwd,id, 관련 디렉터리·파일의 소유권과 권한을 확인합니다. - D) 게스트 방화벽을 끕니다.
- A)
정답 보기
정답: C
설명: 잘못된 디렉터리에 있거나 다른 계정 소유의 파일을 편집할 수 있습니다. 자신의 실습 디렉터리에 있는 노트에는 보통 권한 상승이 필요하지 않습니다. sudo는 허용된 명령을 기본적으로 root로 실행할 뿐 진단을 대신하지 않습니다. sudo whoami 다음 whoami를 실행하면 단일 권한 상승 명령이 일반 셸을 영구 root로 바꾸지 않음을 알 수 있습니다.
Ubuntu에서
sudo apt update가 성공했습니다. 설치된 패키지 전체를 업그레이드하고 nano 설치도 보장한 것인가요?- A) 그렇습니다.
update는 모든 업데이트와 없는 편집기를 설치합니다. - B) 아닙니다. 저장소 패키지 목록을 갱신했으며 실제 설치·업그레이드에는 별도 패키지 작업이 필요합니다.
- C) 실행 중인 커널만 변경했습니다.
- D) 새로 발견한 서비스를 모두 활성화했습니다.
- A) 그렇습니다.
정답 보기
정답: B
설명: apt update는 설치 가능한 패키지 정보를 갱신합니다. apt install nano는 설치와 의존성 해결을 요청하고 apt upgrade는 별도 목적의 명령입니다. 게스트에서 제안된 작업을 읽고 승인하세요. 로컬 dpkg-query는 설치된 패키지 기록을 확인합니다. 패키지 제거는 의존성·캐시·로그·설정 변경 전체의 정확한 역작업이 아니므로 선택적 설치의 완전 복구에는 기록한 VM 스냅샷을 사용합니다.
Rocky Linux 9 게스트에 편집기가 필요합니다. 본문에 맞는 준비 경로는 무엇인가요?
- A) Ubuntu 저장소를 추가하고 APT를 실행합니다.
- B) 로컬 패키지 조회는
rpm -q, 설치는 DNF를 사용합니다.yum호환 기능이 있어도 둘 다 실행할 필요는 없습니다. - C) 모든 소프트웨어는 서비스이므로
systemctl install nano를 사용합니다. - D) 패키지를 설치하기 전에 커널부터 다시 빌드합니다.
정답 보기
정답: B
설명: Rocky는 RPM 패키지와 DNF 의존성 관리를 사용합니다. 본문의 대안 편집기 패키지는 nano, vim-minimal이며 Ubuntu는 자신의 패키지 계열과 이름을 사용합니다. 배포판을 알면 도구를 고를 수 있지만, 저장소를 섞거나 서비스·네트워크 기본값까지 같다고 가정해서는 안 됩니다.
ps -p $$ -o pid,ppid,user,comm과sleep 30실습으로 관찰하는 것은 무엇인가요?- A) 셸 프로세스의 정체와 셸을 잠시 기다리게 하는 전경 프로세스입니다.
- B) 게스트에 설치된 모든 패키지입니다.
- C) 모든 셸 명령이 만드는 영구 서비스입니다.
- D) 두 VM과 모든 재부팅 후에도 같은 PID입니다.
정답 보기
정답: A
설명: $$는 현재 Bash PID, PPID는 부모 프로세스 ID입니다. 프로세스는 프로그램의 실행 인스턴스이고 패키지는 디스크에 설치된 소프트웨어입니다. sleep은 30초 후 끝나며 Ctrl+C로 중단할 수도 있습니다. 서비스를 활성화하지 않았으며 문서의 PID를 복사해 모르는 프로세스를 종료해서는 안 됩니다.
systemctl is-active systemd-journald.service는active,is-enabled는static입니다. 타당한 결론은 무엇인가요?
- A)
enabled가 아니므로 로그 서비스가 실패했습니다. - B) 현재 실행 중이며 일반적인 enable 설정 섹션은 없습니다. 의존성·활성화 경로로 시작될 수 있습니다.
- C)
static이므로 로그가 영구적으로 멈췄습니다. - D) 두 명령이 같은 단어를 반환할 때까지
enable을 반복해야 합니다.
정답 보기
정답: B
설명: 실행 상태와 활성화 설정은 별개입니다. start는 현재 실행에 영향을 주고 enable은 활성화 연결을 만듭니다. --now를 함께 쓰지 않으면 enable 자체로 시작하지 않습니다. static 유닛이 본질적으로 고장 난 것은 아닙니다. 표시를 억지로 맞추려고 시스템 서비스를 바꾸지 말고 Loaded, Active, 관련 로그를 읽으세요.
sudo journalctl -b -u systemd-journald.service -n 20 --no-pager가 선택하는 것은 무엇인가요?
- A) 모든 부팅의 모든 로그 파일 앞 20줄입니다.
- B) 현재 부팅에서 해당 유닛에 맞는 보관된 최근 항목 20개이며 페이지 프로그램 없이 출력합니다.
- C) 모든 항목을 보여 준 다음 마지막 20개를 삭제합니다.
- D) 모든 저널 메시지는 오류이므로 오류만 선택합니다.
정답 보기
정답: B
설명: -b는 부팅, -u는 유닛, -n은 최근 항목 수를 제한합니다. 읽기 작업이며 로그를 지우지 않습니다. 시간과 문맥을 함께 해석해야 하고 안내 이벤트가 실패는 아닙니다. 항목이 없으면 필터·보관 상태 때문일 수 있으며 권한이 낮으면 일부만 보일 수 있습니다. 로그 기능이 고장 났다고 결론 내리기 전에 서비스 상태와 비교합니다.
- VM 콘솔을 다시 열었더니
LAB_DIR가 비어 있습니다. 올바른 정리 방법은 무엇인가요?
- A)
network-beginner로 시작하는 모든 디렉터리를 삭제합니다. - B) 이전 셸과 같은 위치라고 가정하고 재귀 삭제를 실행합니다.
- C) 정확히 기록한 경로로
LAB_DIR를 복구하고 내용을 확인한 뒤 명시한 실습 파일과 빈 디렉터리만 지웁니다. - D) 모든 임시 파일을 없애려고
/tmp를 삭제합니다.
정답 보기
정답: C
설명: 변수는 세션 사이에 자동 유지되지 않습니다. 기록한 고유 경로와 명시한 파일 이름이 작업 범위를 제한합니다. rmdir가 비어 있지 않은 디렉터리의 삭제를 거부하면 그 결과는 유용한 증거입니다. 광범위한 삭제로 바꾸지 말고 편집기 파일이나 미완료 단계를 확인하세요. test ! -e "$LAB_DIR"가 상태 0으로 끝나면 해당 경로가 없음을 확인한 것입니다.