소개
축하합니다! 빠르게 성장하는 기술 스타트업인 LabEx Corporation 에 주니어 시스템 관리자로 입사했습니다. 오늘은 첫 출근일이며, 상사는 회사의 가장 야심 찬 프로젝트인 "Project Phoenix"를 맡겼습니다. "Project Phoenix"는 기업의 디지털 워크플로 관리 방식을 혁신할 애플리케이션입니다.
첫 번째 임무는 Project Phoenix 를 호스팅할 개발 서버의 "전체 상황을 파악하는 것"입니다. 이를 위해 시스템의 정체성, 현재 사용자를 확인하고 현재 운영 상태를 파악하는 기본 정찰을 수행합니다.
이 챌린지에서는 기본 Linux 명령을 사용해 새 환경에 대한 핵심 정보를 수집합니다. 사용자 계정을 식별하고, 시스템 정보를 확인하고, 다른 로그인 사용자를 확인하고, 사용자 및 그룹 정보를 조사하고, 실시간 성능을 모니터링한 다음, 조사 결과를 종합 보고서로 작성합니다.
이 초기 점검 결과는 앞으로 Project Phoenix 에서 수행할 모든 작업의 기반이 됩니다. 오늘 철저히 점검하면 내일 프로젝트를 성공적으로 진행할 수 있습니다.
이 과정을 시작하기 전에 기본적인 Linux 지식을 갖추는 것이 좋습니다. Linux 가 처음이라면 LabEx Linux 학습 경로부터 시작하는 것을 권장합니다. 이 과정은 여러 실습형 챌린지를 통해 Linux 기초 지식을 확인하고, 정리하고, 심화하도록 구성되어 있습니다. 학습 중 익숙하지 않거나 잊어버렸거나 잘 모르는 개념이 나오면 LabEx 의 AI 어시스턴트인 Labby 와 자유롭게 토론해 보세요. 이 상호작용 방식은 실제 업무 환경에서 경험하게 될 문제 해결 과정을 재현합니다.
중요 안내: 챌린지를 진행하다가 어려움이 생기면 다음 방법을 사용하세요.
- Labby 와 논의하거나 해설을 확인합니다.
- 챌린지를 잠시 건너뛰고 Linux 학습 경로의 다음 Guided Lab 을 계속 진행합니다.
첫 로그인 및 환경 확인
새 시스템에서 가장 먼저 할 일은 자신의 신원과 운영 체제의 기본 특성을 확인하는 것입니다. 이를 통해 현재 로그인한 사용자가 본인이 맞는지, 올바른 시스템에 접속했는지 확인합니다.
작업
- 현재 사용자의 사용자 이름을 확인합니다.
- 운영 체제의 커널 이름을 출력합니다.
요구 사항
- 모든 명령은 터미널에서 실행해야 합니다.
whoami명령을 사용해 현재 사용자를 식별합니다.uname명령을 사용해 커널 이름을 출력합니다.
예시
이 단계를 완료하면 다음과 비슷한 출력이 표시됩니다.
## Command output showing current user
labex
## Command output showing kernel name
Linux
이 결과는 Linux 시스템에서 labex 사용자로 로그인했음을 확인해 줍니다. 이는 작업 환경을 파악하는 데 필수적입니다.
시스템 정보 및 가동 시간 확인
자신의 신원을 확인한 후에는 전체 시스템 환경과 시스템이 실행된 시간을 파악해야 합니다. 이 정보는 시스템 모니터링과 유지 관리 계획에 중요합니다.
작업
- 운영 체제 정보, 커널 버전, 하드웨어 아키텍처를 포함한 전체 시스템 정보를 출력합니다.
- 시스템이 실행된 시간과 현재 시스템 부하를 확인합니다.
요구 사항
uname -a명령을 사용해 모든 시스템 정보를 출력합니다.uptime명령을 사용해 시스템 가동 시간과 load average 를 표시합니다.
예시
필수 명령을 실행하면 다음과 비슷한 출력이 표시됩니다.
## Comprehensive system information
Linux labex-virtual-machine 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
## System uptime and load information
14:51:52 up 183 days, 2:55, 0 users, load average: 6.02, 1.80, 0.94
첫 번째 출력에는 커널 버전, 호스트 이름, 아키텍처를 비롯한 상세한 시스템 정보가 표시됩니다. 두 번째 출력은 시스템이 183 일 동안 실행 중이며, 현재 load average 를 통해 여러 시간 구간의 시스템 성능을 보여 줍니다.
힌트
uname -a명령은 사용 가능한 모든 시스템 정보를 한 줄로 표시합니다.uptime명령은 시스템 실행 시간, 사용자 수, 시스템 load average 를 표시합니다.- load average 는 1 분, 5 분, 15 분 동안의 평균 시스템 부하를 나타냅니다.
사용자 및 그룹 정보 수집
사용자 권한을 이해하는 것은 기본적인 시스템 관리 작업입니다. 사용자 ID(UID), 기본 그룹 ID(GID), 소속된 다른 그룹을 확인해야 합니다. 이 정보가 시스템에서 사용할 수 있는 접근 권한을 결정하기 때문입니다.
작업
- 현재 사용자 계정의 상세한 사용자 및 그룹 정보를 출력합니다.
요구 사항
id명령을 사용해 사용자 및 그룹 식별자를 확인합니다.
예시
필수 명령을 실행하면 다음과 비슷한 출력이 표시됩니다.
uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)
이 출력은 다음 정보를 보여 줍니다.
- uid=5000(labex): 사용자 ID 가 5000 이고 사용자 이름이 "labex"입니다.
- gid=5000(labex): 기본 그룹 ID 가 5000 이고 그룹 이름이 "labex"입니다.
- groups=...: "sudo"(관리 권한), "ssl-cert"(SSL 인증서 접근 권한), "public"(공유 리소스) 등을 포함한 여러 그룹에 속해 있습니다.
어떤 시스템 리소스에 접근하거나 수정할 수 있는지 파악하려면 이러한 권한을 이해해야 합니다.
힌트
- 인수 없이
id명령을 실행하면 기본적으로 현재 사용자의 정보를 표시합니다. - 출력에는 UID, GID, 보조 그룹이 명확하게 표시됩니다.
실시간 시스템 성능 모니터링
시스템 정찰의 핵심은 현재 성능을 관찰하는 것입니다. 여기에는 CPU 및 메모리 사용량 확인과 실행 중인 프로세스 파악이 포함됩니다. 이 작업에는 top 명령이 표준 도구로 사용됩니다.
작업
- 대화형 시스템 모니터링 도구를 실행해 활성 프로세스와 리소스 사용량을 확인합니다.
- 잠시 출력을 관찰한 후 도구를 종료합니다.
요구 사항
top명령을 사용해 모니터링 화면을 시작합니다.top이 실행된 후q키를 눌러 종료하고 명령 프롬프트로 돌아옵니다.
예시
시스템 모니터링 도구를 실행하면 다음과 비슷한 동적 화면이 표시됩니다.
top - 10:45:00 up 1:15, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1987.2 total, 890.5 free, 540.1 used, 556.6 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1234.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 169404 12920 8584 S 0.0 0.6 0:01.50 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
...
이 화면에는 다음 정보가 표시됩니다.
- 시스템 요약: 현재 시간, 가동 시간, 사용자 수, load average
- 작업 요약: 전체 프로세스 수와 상태 (실행 중, 대기 중 등)
- CPU 사용량: 범주별 CPU 사용률
- 메모리 사용량: 전체, 여유, 사용 중, 사용 가능한 메모리
- 프로세스 목록: PID, 사용자, 리소스 사용량과 함께 CPU 사용량 순으로 정렬된 실행 중인 프로세스
화면은 몇 초마다 자동으로 갱신되므로 시스템을 실시간으로 모니터링할 수 있습니다.
힌트
top은 실행 중인 시스템을 동적으로 실시간으로 보여 줍니다. 화면이 자동으로 새로 고쳐집니다.top프로그램을 종료할 때는q키를 사용합니다.
시스템 상태 보고서 작성
마지막으로 조사 결과를 간단한 텍스트 파일에 정리합니다. 특정 시점의 시스템 상태를 기록할 때 흔히 사용하는 방법입니다. 출력 리디렉션을 사용해 여러 명령의 출력을 하나의 파일에 저장합니다.
작업
- 현재 디렉터리 (
~/project) 에system_report.txt파일을 생성합니다. - 파일에는
whoami,uname -a(전체 시스템 정보),uptime명령의 출력이 포함되어야 합니다.
요구 사항
- 최종 보고서 파일 이름은
system_report.txt여야 합니다. - 출력 리디렉션 연산자 (
>및>>) 를 사용해 명령 출력을 파일에 기록해야 합니다. - 파일은
~/project디렉터리에 생성해야 합니다.
예시
이 단계를 완료하면 system_report.txt 파일에 다음과 비슷한 내용이 포함됩니다.
labex
Linux labex-virtual-machine 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
10:50:01 up 1:20, 1 user, load average: 0.00, 0.01, 0.05
이 보고서 파일은 다음 내용을 보여 줍니다.
- 1 번째 줄: 현재 사용자의 신원 (
whoami명령의 출력) - 2 번째 줄: 커널 버전, 호스트 이름, 아키텍처를 포함한 전체 시스템 정보 (
uname -a명령의 출력) - 3 번째 줄: 시스템 가동 시간과 현재 load average(
uptime명령의 출력)
이 파일은 현재 시스템 상태의 스냅샷 역할을 하므로 문서화와 문제 해결에 유용합니다. 파일을 생성한 후 cat 명령으로 내용을 확인할 수 있습니다.
힌트
- 첫 번째 명령의 출력을 리디렉션하려면
>연산자를 사용합니다. 이 연산자는 파일을 생성하며, 파일이 이미 있으면 기존 내용을 덮어씁니다. - 이후 명령의 출력을 기존 파일에서 삭제하지 않고 추가하려면
>>연산자를 사용합니다. uptime명령은 시스템이 실행된 시간을 보여 줍니다.
요약
훌륭합니다! LabEx Corporation 에서의 첫날 업무를 성공적으로 마치고 Project Phoenix 의 기반을 마련했습니다.
이번 챌린지에서는 모든 시스템 관리자가 익혀야 하는 다음과 같은 필수 명령을 연습했습니다.
whoami: Project Phoenix 서버에서 자신의 사용자 신원을 확인합니다.uname: 운영 체제 정보를 확인하고 호환성을 점검합니다.who: 개발 서버에서 누가 작업 중인지 확인합니다.id: 적절한 접근 제어를 위해 사용자의 소속 사용자 및 그룹을 조사합니다.top: 최적의 성능을 유지하도록 시스템 프로세스와 리소스 사용량을 모니터링합니다.- 출력 리디렉션 (
>및>>): 조사 결과를 전문적인 보고서로 기록합니다.
이 명령들은 시스템 관리자 도구 모음의 기반을 이룹니다. 오늘의 철저한 점검으로 Project Phoenix 환경이 앞으로 진행할 흥미로운 개발 작업을 위한 준비를 마쳤습니다. 내일은 Digital Architect 로서 프로젝트의 파일 구조를 정리하기 시작합니다!



