Skip to content

1. 처음 만나는 Linux 터미널

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

과정 준비 | 퀴즈 | 다음: 주소와 인터페이스

네트워크 관리의 출발점은 세 가지 질문에 답하는 것입니다. 지금 어느 컴퓨터에 접속했는지, 어느 파일을 바꾸는지, 변경을 어떻게 되돌릴지 알아야 합니다. 작은 실습 노트를 만들고 편집한 뒤 권한과 서비스 상태를 읽으면서 이 습관을 익혀 봅니다.

사전 준비와 학습 목표

버려도 되는 로컬 VM과 일반 사용자 계정, 그 계정의 비밀번호, sudo 사용 권한을 준비합니다. 가상 머신을 실행하는 프로그램을 하이퍼바이저라고 합니다. 하이퍼바이저의 콘솔로 VM을 여세요. 기본 경로는 Ubuntu Server 24.04 LTS이며 Rocky Linux 9는 대안입니다. 두 배포판을 동시에 배울 필요는 없습니다. 일반적인 컨테이너는 이 실습에서 사용하는 완전한 systemd 부팅 환경을 제공하지 않습니다.

게스트에 Bash, GNU 기본 유틸리티, ps, systemd, nano, vi 구현이 있어야 합니다. 편집기가 없다면 노트 실습 전에 아래 패키지 준비 절차를 사용하세요. 이번 장에서는 네트워크 설정을 바꾸지 않습니다. 과정 소개에서 준비한 기존 NAT/DHCP 관리 인터페이스를 그대로 유지합니다.

이 장을 마치면 다음을 할 수 있습니다.

  • 커널, 라이브러리, 셸, 배포판이 각각 어떤 역할을 하는지 설명합니다.
  • 경로를 이동하며 자신의 실습 파일을 생성·복사·이동·편집·삭제합니다.
  • nano와 vi에서 저장하거나 편집을 취소하고, 기본 소유권과 권한을 읽습니다.
  • Ubuntu와 Rocky에 맞는 패키지 도구를 고르고, 설치된 소프트웨어와 실행 중인 서비스를 구분합니다.
  • 프로세스 ID, systemd 상태, 범위를 제한한 저널 메시지를 읽습니다.

실행 규칙: 아래 모든 셸 명령은 실습 VM 안에서 실행합니다. 노트북의 호스트 OS, 이 문서 저장소가 있는 호스트, 클라우드 서버에서 실행하지 않습니다. sudo가 없는 명령은 일반 사용자로 실행하고, sudo가 붙은 명령만 권한을 높입니다. 한 단계씩 실행하며 예상 밖의 오류가 나오면 멈춥니다. 출력은 이해를 돕는 예시이며 Ubuntu/Rocky VM에서 실제 실행·검증한 기록이 아닙니다.

로그인한 시스템 이해하기

“Linux”는 좁게는 커널, 일상적으로는 운영체제 전체를 뜻하기도 합니다. 커널은 CPU 시간, 메모리, 파일 시스템, 장치 드라이버, 네트워크 패킷을 관리합니다. 프로그램은 시스템 호출을 통해 커널에 작업을 요청합니다. 셸과 편집기는 커널 밖인 사용자 공간에서 실행됩니다.

라이브러리는 여러 프로그램이 재사용할 수 있는 함수를 제공합니다. 예를 들어 GNU C Library(glibc)는 문자열 처리, 파일 입출력, 운영체제 접근 기능 등을 제공합니다. 어떤 라이브러리 함수는 커널을 호출하고, 어떤 함수는 메모리의 데이터만 처리합니다. 라이브러리는 편집기도, 별도의 커널도 아닙니다. 프로그램이 특정 라이브러리를 필요로 하기 때문에 패키지 의존성이 생기기도 합니다.

배포판은 커널, 라이브러리, 명령어, 설치 프로그램, 소프트웨어 저장소, 업데이트, 기본 설정을 묶어 설치 가능한 시스템으로 제공합니다. 여기서 저장소는 패키지를 공급하는 관리된 소프트웨어 출처입니다. 패키지는 소프트웨어와 그 버전·의존성 정보를 담습니다.

배포판관계와 패키지 계열이 과정에서의 의미
Debian.deb 패키지, APT, dpkg를 사용하는 커뮤니티 배포판Ubuntu의 배경을 이해합니다. Debian의 네트워크·서비스 기본값이 Ubuntu와 같다고 가정하지 않습니다
UbuntuDebian에서 파생되었으며 자체 릴리스와 저장소를 운영Ubuntu Server 24.04 LTS 명령 경로를 따릅니다
Rocky LinuxRHEL 생태계에 속하는 Enterprise Linux 배포판. .rpm 패키지, DNF, RPM 사용Rocky 9 대안 패키지 경로를 따릅니다

터미널은 키보드 입력과 텍스트 화면을 처리합니다. 은 입력을 해석하고 명령을 실행하는 프로그램이며 이 과정에서는 Bash를 사용합니다. ls를 입력하면 사용자 공간의 프로그램이 파일 목록을 요청합니다. 커널에 직접 말을 거는 것은 아닙니다. 이 구분의 근거는 참고 문서의 Debian·GNU 설명에서 확인할 수 있습니다.

실습 VM, 일반 사용자. 조회만 수행합니다.

bash
hostname
whoami
id
cat /etc/os-release
uname -r
pwd

hostname은 게스트 이름을 보여 줍니다. 열어 둔 콘솔의 VM과 대조하세요. whoami는 계정 이름, id는 숫자 사용자 ID(UID), 그룹 ID와 소속 그룹을 보여 줍니다. UID가 0이면 root이므로 실습용 일반 계정으로 돌아갑니다. cat은 텍스트 파일 내용을 표시합니다. /etc/os-releaseID, VERSION_ID를 읽으면 기본 경로에서는 Ubuntu와 24.04, 대안에서는 Rocky와 9.x를 확인할 수 있습니다. uname -r실행 중인 커널 버전으로, 배포판 릴리스 번호와 다릅니다. pwd는 현재 작업 디렉터리를 출력합니다.

프롬프트 예시 learner@client:~$는 계정, 컴퓨터, 현재 디렉터리와 입력 표시를 보여 줍니다. ~는 홈 디렉터리입니다. $는 보통 일반 셸, #은 흔히 root를 나타내지만 프롬프트는 변경할 수 있으므로 id로 확인하세요. 프롬프트 표시는 입력하지 않습니다. 명령 블록에서 #으로 시작하는 줄은 Bash의 설명 주석입니다.

명령을 읽고 실행하기

ls -la notes에서 ls는 명령, -l-a는 옵션, notes는 경로 인자입니다. -l은 자세한 목록, -a는 점으로 시작하는 이름도 보여 달라는 뜻입니다. Enter로 실행하고, Tab으로 경로 자동 완성, 위쪽 화살표로 이전 명령을 불러올 수 있습니다. 이전 명령도 실행 전에 내용을 다시 읽으세요.

Linux 경로는 /를 시작점으로 하는 트리입니다. /home/learner처럼 /로 시작하면 절대 경로, notes/draft.txt처럼 현재 작업 디렉터리에서 시작하면 상대 경로입니다. .은 현재 디렉터리, ..은 상위 디렉터리입니다. 이 실습의 일반적인 Linux 파일 시스템에서 Notesnotes는 다른 이름입니다.

/etc에는 시스템 설정, /var/log에는 여러 로그, /home에는 일반 사용자의 홈 디렉터리가 있습니다. 시스템 정보는 읽기만 하고, 실습 파일은 새로 만든 개인 디렉터리에만 씁니다.

실습 VM, 일반 사용자. 내장 도움말과 로컬 매뉴얼을 읽습니다.

bash
help cd
ls --help
man ls

cd는 셸 내장 명령이므로 Bash의 help로 설명을 읽습니다. --help는 사용법을 출력합니다. 선택 구성 요소인 man 프로그램과 매뉴얼이 설치되어 있다면 man ls는 페이지 단위로 읽는 프로그램을 엽니다. Space는 다음 화면, /permission은 검색, q는 종료입니다. man이 없다면 ls --help와 참고 문서를 사용하면 됩니다. Ctrl+C는 아직 실행하지 않은 셸 입력을 취소하거나 여러 전경 프로그램을 중단합니다. 모든 프로그램의 “저장하고 종료” 단축키는 아닙니다.

패키지 준비: 배포판 하나 선택하기

패키지 관리자를 사용하면 구성된 저장소에서 편집기와 필요한 라이브러리를 함께 받을 수 있습니다. 먼저 무엇이 설치되어 있는지 확인합니다. 다음 조회는 로컬 패키지 데이터베이스를 사용하므로 저장소 연결이나 관리자 권한이 필요하지 않습니다.

Ubuntu 실습 VM에서만, 일반 사용자:

bash
dpkg-query -W bash coreutils nano vim-tiny iproute2

Rocky 실습 VM에서만, 일반 사용자:

bash
rpm -q bash coreutils nano vim-minimal iproute

설치된 패키지는 이름과 버전을 출력합니다. “not installed”, “no packages found” 같은 메시지는 해당 패키지가 없다는 뜻이지, 시스템 전체를 교체하라는 뜻이 아닙니다. 다른 이름의 패키지가 같은 명령을 제공할 수도 있으므로 명령 자체도 확인합니다.

어느 실습 VM에서든, 일반 사용자:

bash
command -v nano
command -v vi

/usr/bin/vi 같은 실행 파일 경로가 나오면 사용할 수 있습니다. 경로가 나오지 않으면 셸의 명령 검색 경로에서 찾지 못한 것입니다.

편집기가 없을 때만 다음 선택적 게스트 준비 작업을 수행합니다. 이미 연결되는 관리 네트워크를 통해 자신의 배포판 블록 하나만 사용하세요. 먼저 하이퍼바이저에서 before-cli-editors 같은 이름으로 VM 스냅샷을 만들어 설치 전 상태 전체를 복원할 수 있게 합니다. 제안된 설치 내역을 읽고 예상한 편집기와 의존성일 때만 승인하세요. 예상 밖의 제거·업그레이드가 있으면 n으로 취소합니다.

Ubuntu 실습 VM에서만, 일반 사용자가 sudo 호출:

bash
sudo apt update
sudo apt install nano vim-tiny

apt update는 설치할 수 있는 패키지 목록을 갱신하며, 설치된 소프트웨어 전체를 업그레이드하지 않습니다. 저장소 오류 없이 갱신이 성공한 경우에만 설치로 진행합니다. apt install은 지정한 패키지와 필요한 의존성을 설치합니다. apt upgrade는 설치된 패키지의 업그레이드라는 다른 목적의 명령이며 이번 실습에는 필요하지 않습니다.

Rocky 실습 VM에서만, 일반 사용자가 sudo 호출:

bash
sudo dnf install nano vim-minimal

DNF는 RPM 패키지 의존성을 해결하며 필요할 때 저장소 메타데이터를 갱신합니다. Rocky 9에는 익숙한 명령을 위한 yum 호환 기능도 있지만 이 과정은 dnf로 통일합니다. 같은 게스트에서 두 배포판의 명령을 모두 실행하거나, 예제를 실행하려고 외부 저장소를 추가하지 마세요.

준비 후 로컬 패키지 조회와 command -v 확인을 반복합니다. 다운로드 실패는 관리 연결이나 저장소 접근 문제이며 다음 장의 격리 실습 NIC와는 무관합니다.

복구: apt remove, dnf remove는 패키지를 제거하지만 설치의 정확한 역연산은 아닙니다. 의존성 변경, 캐시, 로그, 일부 설정이 남을 수 있습니다. 원래 설치되어 있던 편집기를 제거하지 마세요. 이후 장을 위해 그대로 두거나, 게스트 사용을 마친 뒤 before-cli-editors 스냅샷으로 복원합니다. 스냅샷 복원은 생성 이후의 다른 작업도 없앱니다. 노트 실습을 정리하기 위해 패키지 제거 또는 autoremove를 할 필요는 없습니다.

고유한 임시 디렉터리에 노트 만들기

먼저 실습 경계를 만듭니다. $HOME은 이미 홈 디렉터리를 가리키는 변수이므로 다시 정의하지 않습니다. LAB_DIR는 이 장에서 새로 사용할 변수입니다. $(...)는 명령 출력을 받아오며, 큰따옴표는 공백이 들어 있는 경로도 하나로 묶어 줍니다.

실습 VM, 일반 사용자:

bash
LAB_DIR=$(mktemp -d "$HOME/network-beginner-cli.XXXXXX")
printf '%s\n' "$LAB_DIR"

mktemp -d는 여섯 개의 X를 고유한 접미사로 바꾸어 새 디렉터리를 만듭니다. printf '%s\n'은 저장된 경로와 줄바꿈을 출력합니다. /home/learner/network-beginner-cli.aB12Cd 같은 경로가 나오며 계정과 접미사는 자신의 값입니다. 실제 경로를 기록한 다음 진행하세요. 생성이 실패하거나 값이 비어 있으면 멈추고 파일 실습을 실행하지 않습니다.

같은 VM과 셸, 일반 사용자:

bash
cd -- "$LAB_DIR"
pwd
ls -la

pwd가 기록한 디렉터리와 일치할 때만 계속합니다. cd는 상대 경로의 기준 위치를 바꾸며 파일 자체를 이동하지 않습니다. --는 옵션 해석을 끝냅니다. 처음 목록에는 ...이 있으며 새 디렉터리는 자신의 계정만 접근하도록 만들어집니다.

같은 VM과 셸, 일반 사용자. 해당 디렉터리에서 실행합니다.

bash
mkdir notes archive
touch notes/draft.txt notes/vi.txt
ls -l notes
cd notes
pwd
cd ..
pwd

mkdir는 디렉터리를 만듭니다. touch는 아직 없는 두 파일을 빈 파일로 만듭니다. 기존 파일에 사용하면 내용을 비우지 않고 타임스탬프를 갱신합니다. 처음 두 파일의 크기는 0입니다. 첫 pwd/notes로 끝나고 두 번째는 실습 루트로 돌아옵니다. mkdir, touch, cd는 성공해도 보통 아무것도 출력하지 않습니다. ls, pwd로 결과를 확인하세요.

편집, 저장, 복사, 이동하기

같은 실습 VM, 일반 사용자, 실습 루트:

bash
nano notes/draft.txt

다음 두 줄은 셸 명령이 아니라 편집기 안에서 입력할 내용입니다.

text
I am learning Linux networking.
This file belongs to my practice notebook.

nano 도움말의 ^O는 문자 ^, O를 입력하라는 뜻이 아니라 Ctrl+O입니다. Ctrl+O를 누르고 파일 이름을 확인한 뒤 Enter로 기록합니다. Ctrl+X로 종료합니다. 마지막 저장 이후 편집을 버리려면 Ctrl+X를 누르고 저장 질문에서 N을 선택합니다. 언어 설정에 따라 화면에 표시되는 선택 키가 다를 수 있습니다. Y를 선택하면 파일 이름 확인 후 변경을 기록합니다.

셸로 돌아와서, 같은 VM, 일반 사용자:

bash
cat notes/draft.txt
cp -i -- notes/draft.txt notes/copy.txt
mv -i -- notes/copy.txt archive/saved.txt
ls -l notes archive

cat에 저장한 문장이 보여야 합니다. cp는 내용을 다른 파일에 복사하며 원본을 남깁니다. mv는 파일을 이동하거나 이름을 바꾸므로 notes/copy.txtarchive/saved.txt가 됩니다. 두 명령의 -i는 기존 대상을 덮어쓰기 전에 물어봅니다. 예상하지 못한 대상이면 n으로 거절하세요. 결과적으로 notes에는 draft.txt, vi.txt, archive에는 saved.txt가 있어야 합니다. 이후 편집을 잘못해도 저장해 둔 복사본으로 초안을 복구할 수 있습니다.

복구할 때는 같은 실습 루트에서 일반 사용자로 cp -i -- archive/saved.txt notes/draft.txt를 실행합니다. 초안만 교체하므로 그 이후 편집 내용을 버리려는 경우에만 승인합니다.

같은 실습 VM, 일반 사용자, 실습 루트:

bash
vi notes/vi.txt

두 게스트에서는 vi가 보통 Vim 계열 구현을 실행합니다. 시작 상태는 키를 명령으로 해석하는 일반 모드입니다. i로 입력 모드에 들어가 I can save and exit vi.를 입력하고 Esc로 일반 모드로 돌아옵니다.

Esc 이후 누를 키결과
:w 다음 Enter저장하고 편집 계속
:wq 다음 Enter이 단일 파일 세션을 저장하고 종료
:q 다음 Enter저장하지 않은 변경이 없을 때 종료
:q! 다음 Enter마지막 저장 이후 변경을 버리고 종료

:wq로 저장한 다음 파일을 다시 열고, i를 누른 후 단어를 하나 더 입력합니다. Esc, :q!, Enter로 그 편집만 버려 보세요. 셸에서 cat notes/vi.txt를 실행하면 저장했던 문장만 남아 있어야 합니다. 콜론 명령은 Bash가 아니라 vi 안에서 입력합니다. :q의 “No write since last change” 메시지는 저장하지 않은 작업을 보호하는 안내입니다.

권한과 sudo

모든 파일에는 소유자와 그룹이 있습니다. 기본 권한은 소유자, 그룹, 그 외 사용자의 순서로 적용됩니다. 출력 예시 -rw-r--r--에서 첫 -는 일반 파일을 뜻합니다. 이어지는 세 글자씩은 소유자의 읽기·쓰기, 그룹의 읽기, 나머지 사용자의 읽기 권한입니다. 디렉터리는 첫 글자가 d입니다. 뒤의 .이나 +는 보안 메타데이터나 ACL 등을 나타낼 수 있으며 이번 기본 권한 실습의 범위 밖입니다.

파일에서 r은 내용 읽기, w는 내용 변경, x는 실행 허용입니다. 디렉터리에서 r은 이름 목록 읽기, x는 경로 통과와 접근을 뜻합니다. 디렉터리의 쓰기와 통과 권한이 있으면 다른 보안 조건에 따라 항목 생성·삭제가 가능합니다. 파일의 쓰기 권한만으로 그 파일의 디렉터리 항목 삭제 가능 여부가 결정되지는 않습니다.

같은 실습 VM, 일반 사용자, 실습 루트. 자신의 초안만 변경합니다.

bash
ls -l notes/draft.txt
LAB_DRAFT_MODE=$(stat -c '%a' notes/draft.txt)
printf '%s\n' "$LAB_DRAFT_MODE"
chmod 600 notes/draft.txt
ls -l notes/draft.txt

stat으로 원래 숫자 권한을 기록하고 그 값을 보관합니다. 세 글자의 권한을 숫자로 나타낼 때 읽기=4, 쓰기=2, 실행=1입니다. 600은 소유자에게 4+2, 그룹과 나머지 사용자에게 각각 0을 주므로 -rw-------가 됩니다. 상위 실습 디렉터리가 이미 접근을 제한하므로 실제 비밀 파일 보호가 아니라 권한 해석 연습입니다.

바로 되돌리기. 같은 VM과 셸, 일반 사용자:

bash
chmod "$LAB_DRAFT_MODE" notes/draft.txt
stat -c '%a' notes/draft.txt

출력 숫자는 기록한 원래 값과 같아야 합니다. 모든 시스템이 처음부터 644였다고 가정하지 않고 실제 기록한 값을 복원합니다. 자신이 소유한 이 파일의 권한 변경에는 sudo가 필요하지 않습니다.

sudo는 허용된 명령을 다른 사용자, 기본적으로 root로 실행합니다. 일반적으로 자기 계정의 비밀번호를 물으며 입력 중 문자가 표시되지 않을 수 있습니다. “Permission denied”를 만날 때마다 사용하는 만능 해결책은 아닙니다.

실습 VM, 일반 사용자. 한 번의 권한 상승 조회로 계정을 비교합니다.

bash
sudo whoami
whoami

첫 결과는 root, 다음은 자신의 일반 사용자 이름이어야 합니다. 권한이 없다면 멈추고 과정에서 준비한 계정을 사용하세요. 무작정 sudoers를 수정하지 않습니다. 노트에 쓰지 못한다면 먼저 pwd, id, 관련 디렉터리의 ls -ld 결과를 확인합니다. 넓은 범위의 재귀 권한 변경은 원인을 가리고 다른 파일에도 영향을 주므로 피합니다.

프로그램, 프로세스, 서비스, 로그

프로그램은 디스크에 저장된 소프트웨어입니다. 프로세스는 그것이 실행되는 한 인스턴스로, 프로세스 ID(PID), 소유자, 메모리가 있습니다. 프로그램을 설치했다고 반드시 실행되는 것은 아닙니다. 서비스는 보통 systemd가 관리하는 백그라운드 작업이며 하나의 서비스에 여러 프로세스가 있을 수 있습니다.

실습 VM, 일반 사용자. 조회만 수행합니다.

bash
ps -p $$ -o pid,ppid,user,comm
ps -p 1 -o pid,comm

$$는 현재 Bash 셸의 PID로 확장됩니다. -p는 PID 선택, -o는 출력 열 선택입니다. PPID는 부모 프로세스 ID, COMM은 명령 이름입니다. 첫 결과에는 자신의 셸, 두 번째에는 부팅된 실습 게스트의 PID 1인 systemd가 보여야 합니다. 1 이외의 PID는 실행 환경마다 다릅니다. PID 1이 systemd가 아니라면 서비스 실습 전에 완전한 VM 환경으로 돌아오세요.

실습 VM, 일반 사용자. 시간이 제한된 전경 프로세스를 실행합니다.

bash
sleep 30

sleep이 실행되는 동안 셸 프롬프트는 기다립니다. Ctrl+C로 중단하고 프롬프트를 되찾거나 30초 후 자연스럽게 종료되도록 두세요. 정리할 파일이나 서비스 설정은 없습니다. 정체를 모르는 프로세스를 종료하는 것보다 안전한 연습입니다. kill은 지정한 프로세스에 신호를 보내는 명령이므로 문서의 PID를 그대로 복사하면 다른 작업을 대상으로 삼을 수 있습니다.

systemd는 .service를 비롯한 유닛을 관리합니다. 저널은 systemd와 서비스의 메시지를 수집합니다. 두 게스트 경로에서 사용하는 로그 서비스부터 살펴봅니다.

실습 VM, 일반 사용자. 조회만 수행합니다.

bash
systemctl status systemd-journald.service --no-pager
systemctl is-active systemd-journald.service
systemctl is-enabled systemd-journald.service

statusLoaded는 유닛 정의를 찾았는지, Active는 현재 실행 상태, Main PID는 해당하는 경우 주 프로세스 ID를 보여 줍니다. 저널 서비스는 보통 active 상태여야 합니다. is-enabledstatic을 반환할 수 있습니다. 이는 일반적인 enable 설정 섹션이 없다는 뜻이지, 서비스가 고장 났다는 뜻이 아닙니다. 의존성이나 활성화 경로로 시작되는 유닛도 있습니다.

알아 둘 동작바꾸는 대상
start / stop현재 실행 상태
restart정지 후 다시 시작. 사용자 작업을 끊을 수 있음
enable / disable부팅 등을 위한 활성화 연결. 그 자체로 시작·정지하지 않음
enable --now활성화 설정과 현재 시작을 함께 수행
reload지원하는 서비스에 설정을 다시 읽도록 요청

이 표는 이후 관리 작업을 위한 개념입니다. 이번 실습에서 로그나 네트워크 서비스를 정지·재시작하지 마세요. enabled인 서비스도 실패할 수 있고, disabled인 서비스도 현재 실행 중일 수 있습니다. 실행 상태와 활성화 설정을 각각 확인합니다.

실습 VM, 일반 사용자가 sudo로 시스템 로그 조회:

bash
sudo journalctl -b -u systemd-journald.service -n 20 --no-pager

-b는 현재 부팅, -u는 유닛, -n 20은 조건에 맞는 최근 20개 항목으로 범위를 제한합니다. --no-pager는 별도의 페이지 프로그램 없이 셸로 돌아오게 합니다. 시간, 컴퓨터, 프로세스·유닛, 메시지를 함께 읽으세요. 저널 항목은 이벤트의 증거이지 반드시 오류는 아닙니다. 항목이 없다면 필터에 맞는 보관된 메시지가 없을 수 있습니다. 권한이 부족해 일부만 보이는 경우도 있습니다. 서비스 실패로 결론 내리기 전에 status와 비교하세요.

완료 확인과 정리

노트를 지우기 전에 실습 루트에서 cat, ls -l로 다음을 확인합니다.

  1. notes/draft.txtarchive/saved.txt에 두 문장이 있고, notes/copy.txt는 없습니다.
  2. notes/vi.txt에는 저장한 문장이 남고 버린 추가 단어는 없습니다.
  3. 초안의 권한이 기록한 원래 값과 같으며 세 글자씩의 의미를 설명할 수 있습니다.
  4. 게스트 배포판, 실행 중인 커널, 일반 계정, 셸 PID, journald 실행 상태를 혼동하지 않고 구분합니다.
  5. 패키지 목록 갱신, 서비스 시작, 서비스 활성화 설정이 왜 서로 다른 작업인지 설명합니다.

이제 여기서 만든 파일만 제거합니다. 새 셸을 열었다면 변수는 자동으로 이어지지 않습니다. LAB_DIR에 기록해 둔 정확한 경로를 넣고 내용을 확인한 다음 진행하세요. 접미사를 추측하거나 와일드카드로 여러 디렉터리를 선택하지 않습니다.

실습 VM, 일반 사용자. 기록한 LAB_DIR를 사용합니다.

bash
cd -- "$LAB_DIR"
pwd
ls -la notes archive

자신의 실습 디렉터리가 맞는지 확인한 다음 실행합니다.

bash
rm -i -- notes/draft.txt notes/vi.txt archive/saved.txt
rmdir -- notes archive
cd -- "$HOME"
rmdir -- "$LAB_DIR"

rm -i는 명시한 파일마다 확인을 요청합니다. 자신의 실습 파일만 승인하세요. rmdir 디렉터리만 제거합니다. 거부되면 편집기 백업·스왑 파일이나 이동하지 못한 copy.txt 등이 남았는지 확인하고, 자신이 만든 것으로 식별한 파일만 정확한 이름으로 제거합니다. 재귀 삭제로 바꾸지 않습니다. 정리 중 이미 사라진 파일이 있다는 이유로 삭제 범위를 넓히지 마세요.

실습 VM, 일반 사용자. 정리 결과를 확인합니다.

bash
test ! -e "$LAB_DIR"
echo $?
unset LAB_DIR LAB_DRAFT_MODE
sudo -k

test ! -e는 기록한 경로가 더 이상 없는지 검사합니다. echo $?0이면 직전 확인이 성공한 것이고, 1이면 경로가 남아 있습니다. unset은 실습 변수를 지웁니다. sudo -k는 저장된 sudo 인증을 무효화하므로 다음 권한 상승에서 비밀번호를 다시 물을 수 있습니다. 게스트 시스템 설정은 조회만 했습니다. 선택적으로 설치한 편집기는 앞서 설명한 스냅샷 복구를 선택할 때까지 남아 있습니다.

참고 문서와 더 읽기

2026년 9월 14–15일에 확인한 1차 문서입니다. 이번 장의 도구를 더 설명하는 자료이며 실습을 대신하거나 선행 학습을 요구하는 링크가 아닙니다.

퀴즈로 이해도를 확인한 뒤 주소와 인터페이스로 이어갑니다.