Skip to content

퀴즈 1. 처음 만나는 Linux 터미널

지원 버전: Ubuntu Server 24.04 LTS(기본), Rocky Linux 9(대안) 마지막 업데이트: 2026년 9월 15일

본문으로 | 과정 준비

해설을 열기 전에 답을 고르세요. 문제는 1장의 버려도 되는 게스트와 개인 실습 노트를 기준으로 합니다. 문제 속 명령은 해석 대상이며 호스트에서 실행하라는 지시가 아닙니다.

  1. cat /etc/os-release에는 Ubuntu 24.04가 나오고 uname -r에는 다른 버전 숫자가 나옵니다. 올바른 설명은 무엇인가요?

    • A) Linux 버전은 하나뿐이므로 둘 중 한 명령이 고장 났습니다.
    • B) Ubuntu는 라이브러리이고 uname은 터미널 종류를 알려 줍니다.
    • C) Ubuntu는 배포판이고 uname -r은 실행 중인 커널을 보여 줍니다. 라이브러리와 셸은 별도 사용자 공간 구성 요소입니다.
    • D) 편집기를 새로 설치하면 항상 커널이 교체됩니다.
정답 보기

정답: C

설명: 배포판은 커널, 라이브러리, 도구, 저장소, 설정을 묶습니다. 커널은 자원을 관리하고 시스템 호출을 제공하며 라이브러리는 재사용 함수를 제공합니다. 일부 함수는 시스템 호출을 사용합니다. Bash는 사용자 공간에서 명령을 해석합니다. 각 구성 요소 버전이 배포판 릴리스와 같을 필요는 없습니다. Ubuntu가 Debian에서 파생되었다고 기본 설정까지 항상 같은 것도 아닙니다.

  1. 현재 위치는 고유한 실습 디렉터리의 루트입니다. cp -i notes/draft.txt notes/copy.txt 다음에 mv -i notes/copy.txt archive/saved.txt를 실행했습니다. 둘 다 성공하면 어떤 파일이 남나요?

    • A) archive/saved.txt만 남습니다. cp가 초안을 제거합니다.
    • B) notes/draft.txtarchive/saved.txt가 남고 notes/copy.txt는 없습니다.
    • C) 세 파일 모두 남습니다. mv도 복사 명령입니다.
    • D) 상대 경로는 /에서 시작하므로 /notes, /archive에 파일이 생깁니다.
정답 보기

정답: B

설명: cp는 원본을 남기고 복사본을 만들며 mv는 복사본의 위치·이름을 바꿉니다. 상대 경로는 현재 작업 디렉터리가 기준이므로 pwd 확인이 중요합니다. -i는 기존 대상을 덮어쓰기 전에 물을 뿐, 일반적인 실행 취소 기록을 만들지는 않습니다. 저장한 복사본으로 나중에 초안을 복구할 수 있습니다.

  1. 빈 파일을 만들려고 touch notes/draft.txt를 실행했지만 사실 그 파일에는 이미 노트가 있었습니다. touch는 보통 무엇을 하나요?

    • A) 기존 시간을 유지하면서 내용을 비웁니다.
    • B) 같은 이름의 디렉터리를 만듭니다.
    • C) 내용을 유지하면서 기존 파일의 타임스탬프를 갱신합니다.
    • D) 홈 디렉터리로 파일을 이동합니다.
정답 보기

정답: C

설명: 해당 경로가 없을 때만 빈 파일을 만듭니다. 기존 파일에서는 보통 접근·수정 시간을 바꾸며 텍스트를 비우지 않습니다. cat으로 내용, ls -l로 크기를 확인하세요. 익숙한 파일 이름이 비어 있다고 가정하지 않고 고유한 디렉터리에서 시작하는 이유이기도 합니다.

  1. vi에서 저장하지 않은 편집을 버리고 종료하려고 합니다. 올바른 동작은 무엇인가요?

    • A) Bash 프롬프트에서 :q!를 입력합니다.
    • B) vi 안에서 Esc, :q!, Enter를 차례로 누릅니다.
    • C) i를 누르고 :wq를 입력합니다.
    • D) Ctrl+O를 누릅니다. 모든 편집기에서 저장하고 종료하는 키입니다.
정답 보기

정답: B

설명: Esc로 일반 모드에 돌아온 뒤 :q!로 마지막 저장 이후 변경을 버리고 종료합니다. :wq는 저장 후 종료, :q는 미저장 변경이 있으면 종료를 거부하여 작업을 보호합니다. nano는 Ctrl+O와 파일 이름 확인으로 저장하고 Ctrl+X로 종료합니다. nano에서 미저장 편집을 버리려면 종료 후 저장 질문을 거절합니다. 편집기 명령은 셸이 아니라 편집기 안에서 입력해야 합니다.

  1. 파일의 기본 권한이 640(-rw-r-----)입니다. 올바른 해석은 무엇인가요?

    • A) 소유자는 읽기·쓰기, 그룹은 읽기, 나머지 사용자는 기본 파일 권한이 없습니다.
    • B) 6이 가장 큰 숫자이므로 모두 읽고 쓸 수 있습니다.
    • C) 6은 읽기와 실행이므로 소유자는 실행할 수 있습니다.
    • D) 실행 비트가 없으므로 누구도 삭제할 수 없습니다.
정답 보기

정답: A

설명: 읽기=4, 쓰기=2, 실행=1이므로 소유자 6은 읽기·쓰기, 그룹 4는 읽기입니다. 접근과 디렉터리 항목 삭제에는 디렉터리 권한 및 다른 통제도 영향을 줍니다. 파일 쓰기 권한만이 삭제 규칙은 아닙니다. 실습의 chmod 600을 되돌릴 때는 644로 추측하지 말고 기록한 원래 숫자 권한을 복원합니다.

  1. 노트를 저장할 때 “Permission denied”가 나옵니다. 가장 먼저 할 일은 무엇인가요?

    • A) /home 전체에 재귀 권한 변경을 실행합니다.
    • B) root 셸을 열고 남은 실습을 모두 다시 실행합니다.
    • C) pwd, id, 관련 디렉터리·파일의 소유권과 권한을 확인합니다.
    • D) 게스트 방화벽을 끕니다.
정답 보기

정답: C

설명: 잘못된 디렉터리에 있거나 다른 계정 소유의 파일을 편집할 수 있습니다. 자신의 실습 디렉터리에 있는 노트에는 보통 권한 상승이 필요하지 않습니다. sudo는 허용된 명령을 기본적으로 root로 실행할 뿐 진단을 대신하지 않습니다. sudo whoami 다음 whoami를 실행하면 단일 권한 상승 명령이 일반 셸을 영구 root로 바꾸지 않음을 알 수 있습니다.

  1. Ubuntu에서 sudo apt update가 성공했습니다. 설치된 패키지 전체를 업그레이드하고 nano 설치도 보장한 것인가요?

    • A) 그렇습니다. update는 모든 업데이트와 없는 편집기를 설치합니다.
    • B) 아닙니다. 저장소 패키지 목록을 갱신했으며 실제 설치·업그레이드에는 별도 패키지 작업이 필요합니다.
    • C) 실행 중인 커널만 변경했습니다.
    • D) 새로 발견한 서비스를 모두 활성화했습니다.
정답 보기

정답: B

설명: apt update는 설치 가능한 패키지 정보를 갱신합니다. apt install nano는 설치와 의존성 해결을 요청하고 apt upgrade는 별도 목적의 명령입니다. 게스트에서 제안된 작업을 읽고 승인하세요. 로컬 dpkg-query는 설치된 패키지 기록을 확인합니다. 패키지 제거는 의존성·캐시·로그·설정 변경 전체의 정확한 역작업이 아니므로 선택적 설치의 완전 복구에는 기록한 VM 스냅샷을 사용합니다.

  1. Rocky Linux 9 게스트에 편집기가 필요합니다. 본문에 맞는 준비 경로는 무엇인가요?

    • A) Ubuntu 저장소를 추가하고 APT를 실행합니다.
    • B) 로컬 패키지 조회는 rpm -q, 설치는 DNF를 사용합니다. yum 호환 기능이 있어도 둘 다 실행할 필요는 없습니다.
    • C) 모든 소프트웨어는 서비스이므로 systemctl install nano를 사용합니다.
    • D) 패키지를 설치하기 전에 커널부터 다시 빌드합니다.
정답 보기

정답: B

설명: Rocky는 RPM 패키지와 DNF 의존성 관리를 사용합니다. 본문의 대안 편집기 패키지는 nano, vim-minimal이며 Ubuntu는 자신의 패키지 계열과 이름을 사용합니다. 배포판을 알면 도구를 고를 수 있지만, 저장소를 섞거나 서비스·네트워크 기본값까지 같다고 가정해서는 안 됩니다.

  1. ps -p $$ -o pid,ppid,user,commsleep 30 실습으로 관찰하는 것은 무엇인가요?

    • A) 셸 프로세스의 정체와 셸을 잠시 기다리게 하는 전경 프로세스입니다.
    • B) 게스트에 설치된 모든 패키지입니다.
    • C) 모든 셸 명령이 만드는 영구 서비스입니다.
    • D) 두 VM과 모든 재부팅 후에도 같은 PID입니다.
정답 보기

정답: A

설명: $$는 현재 Bash PID, PPID는 부모 프로세스 ID입니다. 프로세스는 프로그램의 실행 인스턴스이고 패키지는 디스크에 설치된 소프트웨어입니다. sleep은 30초 후 끝나거나 Ctrl+C로 중단할 수 있습니다. 서비스를 활성화하지 않았으며 문서의 PID를 복사해 모르는 프로세스를 종료해서는 안 됩니다.

  1. systemctl is-active systemd-journald.serviceactive, is-enabledstatic입니다. 타당한 결론은 무엇인가요?
  • A) enabled가 아니므로 로그 서비스가 실패했습니다.
  • B) 현재 실행 중이며 일반적인 enable 설정 섹션은 없습니다. 의존성·활성화 경로로 시작될 수 있습니다.
  • C) static이므로 로그가 영구적으로 멈췄습니다.
  • D) 두 명령이 같은 단어를 반환할 때까지 enable을 반복해야 합니다.
정답 보기

정답: B

설명: 실행 상태와 활성화 설정은 별개입니다. start는 현재 실행에 영향을 주고 enable은 활성화 연결을 만듭니다. --now를 함께 쓰지 않으면 enable 자체로 시작하지 않습니다. static 유닛이 본질적으로 고장 난 것은 아닙니다. 표시를 억지로 맞추려고 시스템 서비스를 바꾸지 말고 Loaded, Active, 관련 로그를 읽으세요.

  1. sudo journalctl -b -u systemd-journald.service -n 20 --no-pager가 선택하는 것은 무엇인가요?
  • A) 모든 부팅의 모든 로그 파일 앞 20줄입니다.
  • B) 현재 부팅에서 해당 유닛에 맞는 보관된 최근 항목 20개이며 페이지 프로그램 없이 출력합니다.
  • C) 모든 항목을 보여 준 다음 마지막 20개를 삭제합니다.
  • D) 모든 저널 메시지는 오류이므로 오류만 선택합니다.
정답 보기

정답: B

설명: -b는 부팅, -u는 유닛, -n은 최근 항목 수를 제한합니다. 읽기 작업이며 로그를 지우지 않습니다. 시간과 문맥을 함께 해석해야 하고 안내 이벤트가 실패는 아닙니다. 항목이 없으면 필터·보관 상태 때문일 수 있으며 권한이 낮으면 일부만 보일 수 있습니다. 로그 기능이 고장 났다고 결론 내리기 전에 서비스 상태와 비교합니다.

  1. VM 콘솔을 다시 열었더니 LAB_DIR가 비어 있습니다. 올바른 정리 방법은 무엇인가요?
  • A) network-beginner로 시작하는 모든 디렉터리를 삭제합니다.
  • B) 이전 셸과 같은 위치라고 가정하고 재귀 삭제를 실행합니다.
  • C) 정확히 기록한 경로로 LAB_DIR를 복구하고 내용을 확인한 뒤 명시한 실습 파일과 빈 디렉터리만 지웁니다.
  • D) 모든 임시 파일을 없애려고 /tmp를 삭제합니다.
정답 보기

정답: C

설명: 변수는 세션 사이에 자동 유지되지 않습니다. 기록한 고유 경로와 명시한 파일 이름이 작업 범위를 제한합니다. rmdir가 비어 있지 않은 디렉터리를 거부하면 유용한 증거입니다. 광범위한 삭제로 바꾸지 말고 편집기 파일이나 미완료 단계를 확인하세요. test ! -e "$LAB_DIR"가 상태 0으로 끝나면 해당 경로가 없음을 확인한 것입니다.

틀린 문제는 본문의 해당 실습을 다시 살펴보고 주소와 인터페이스로 이어가세요.