DAY 01: 시스템 현황 파악

LinuxBeginner
지금 연습하기

소개

축하합니다! 여러분은 빠르게 성장 중인 기술 스타트업 LabEx Corporation 의 주니어 시스템 관리자로 갓 채용되었습니다. 출근 첫날인 오늘, 상사는 회사의 가장 야심 찬 프로젝트인 "Project Phoenix"를 맡겼습니다. 이 프로젝트는 기업의 디지털 워크플로우 관리 방식을 혁신할 혁명적인 애플리케이션입니다.

여러분의 첫 번째 임무는 Project Phoenix 가 호스팅될 개발 서버의 "현황을 파악"하는 것입니다. 여기에는 시스템의 정체성, 사용자 현황, 그리고 현재 운영 상태를 이해하기 위한 필수적인 정찰 작업이 포함됩니다.

이 챌린지에서는 기본적인 리눅스 명령어를 사용하여 새로운 환경에 대한 중요한 정보를 수집하게 됩니다. 사용자 계정을 식별하고, 시스템 세부 정보를 확인하며, 접속 중인 다른 사용자를 파악하고, 사용자 및 그룹 정보를 조사합니다. 또한 실시간 성능을 모니터링하고 조사 결과를 종합 보고서로 작성할 것입니다.

이 초기 평가는 Project Phoenix 에서 진행될 모든 향후 작업의 토대가 됩니다. 오늘 여러분의 철저한 조사가 내일 프로젝트의 성공을 보장할 것입니다.

이 과정을 시작하기 전에 기본적인 리눅스 지식을 갖추는 것이 좋습니다. 리눅스가 처음이라면 LabEx 의 리눅스 학습 경로부터 시작하는 것을 추천합니다. 이 과정은 일련의 실습 챌린지를 통해 리눅스 기초를 테스트하고 공고히 하며 심화하도록 설계되었습니다. 학습 과정 중 생소하거나 잊어버린 개념이 있다면 언제든지 AI 어시스턴트인 Labby 와 상담하세요. 이러한 상호작용 방식은 실제 업무 환경에서 겪게 될 문제 해결 과정을 시뮬레이션합니다.

주의 사항: 챌린지 도중 어려움에 부딪히면 다음을 시도해 보세요.

  1. Labby 와 상담하거나 솔루션을 확인합니다.
  2. 해당 챌린지를 잠시 건너뛰고 리눅스 학습 경로의 후속 가이드 실습을 계속 진행합니다.
이것은 챌린지입니다. 가이드 실습과 달리, 학습 단계를 따라가는 것이 아니라 스스로 과제를 완수해야 합니다. 챌린지는 보통 난이도가 조금 높습니다. 어렵게 느껴진다면 Labby 와 상담하거나 솔루션을 확인하세요. 통계에 따르면 이 챌린지는 초급 수준이며 통과율은 94%입니다. 학습자들로부터 100%의 긍정적인 평가를 받았습니다.

첫 로그인 및 환경 점검

새로운 시스템에서 가장 먼저 해야 할 일은 자신의 신원과 운영 체제의 기본 특성을 확인하는 것입니다. 이를 통해 본인이 의도한 사용자로 접속했는지, 그리고 올바른 장비에 접속했는지 확신할 수 있습니다.

과제

  • 현재 사용자의 사용자 이름을 확인합니다.
  • 운영 체제의 커널 이름을 표시합니다.

요구 사항

  • 모든 명령어는 터미널에서 실행해야 합니다.
  • whoami 명령어를 사용하여 현재 사용자를 식별합니다.
  • uname 명령어를 사용하여 커널 이름을 확인합니다.

예시

이 단계를 완료하면 다음과 유사한 출력을 볼 수 있습니다.

## 현재 사용자를 보여주는 명령어 출력
labex

## 커널 이름을 보여주는 명령어 출력
Linux

이 결과는 여러분이 리눅스 시스템의 labex 사용자임을 확인시켜 주며, 이는 작업 환경을 구축하는 데 필수적인 정보입니다.

✨ 솔루션 확인 및 연습

시스템 정보 및 가동 시간 확인

자신의 신원을 확인했다면, 이제 전체 시스템 환경과 시스템이 얼마나 오랫동안 가동되었는지 파악하는 것이 중요합니다. 이 정보는 시스템 모니터링 및 유지보수 계획 수립에 매우 중요합니다.

과제

  • 운영 체제 세부 정보, 커널 버전, 하드웨어 아키텍처를 포함한 종합적인 시스템 정보를 표시합니다.
  • 시스템 가동 시간과 현재 시스템 부하 (Load) 를 확인합니다.

요구 사항

  • uname -a 명령어를 사용하여 모든 시스템 정보를 표시합니다.
  • uptime 명령어를 사용하여 시스템 가동 시간과 평균 부하를 확인합니다.

예시

필요한 명령어를 실행하면 다음과 유사한 출력을 볼 수 있습니다.

## 종합 시스템 정보
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

## 시스템 가동 시간 및 부하 정보
14:51:52 up 183 days, 2:55, 0 users, load average: 6.02, 1.80, 0.94

첫 번째 출력은 커널 버전, 호스트 이름, 아키텍처를 포함한 상세한 시스템 정보를 보여줍니다. 두 번째 출력은 시스템이 183 일 동안 가동되었음을 나타내며, 현재 평균 부하를 통해 서로 다른 시간대별 시스템 성능 상태를 보여줍니다.

힌트

  • uname -a 명령어는 사용 가능한 모든 시스템 정보를 한 줄로 표시합니다.
  • uptime 명령어는 시스템 가동 시간, 사용자 수, 평균 시스템 부하를 보여줍니다.
  • 시스템 평균 부하 (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
    ...

이 화면은 다음 정보를 보여줍니다.

  • 시스템 요약: 현재 시간, 가동 시간, 사용자 수 및 평균 부하
  • 작업 요약: 전체 프로세스 수와 상태 (실행 중, 대기 중 등)
  • CPU 사용량: 카테고리별 CPU 사용률 상세 내역
  • 메모리 사용량: 전체, 여유, 사용 중 및 사용 가능한 메모리
  • 프로세스 목록: PID, 사용자, 리소스 소비량과 함께 CPU 사용량 순으로 정렬된 실행 프로세스

화면은 몇 초마다 자동으로 업데이트되어 실시간 시스템 모니터링을 제공합니다.

힌트

  • top은 실행 중인 시스템의 동적인 실시간 뷰를 제공하며 자동으로 새로고침됩니다.
  • q 키는 top 프로그램을 종료하는 표준 방법입니다.
✨ 솔루션 확인 및 연습

시스템 상태 보고서 생성

마지막으로, 조사한 내용을 간단한 텍스트 파일로 통합합니다. 이는 특정 시점의 시스템 상태를 기록하는 일반적인 관행입니다. 출력 리다이렉션을 사용하여 여러 명령어의 결과를 단일 파일에 저장합니다.

과제

  • 현재 디렉토리 (~/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 행: 시스템 가동 시간 및 현재 평균 부하 (uptime 명령어 결과)

이 파일은 시스템의 현재 상태에 대한 스냅샷 역할을 하며, 문서화 및 문제 해결 용도로 유용합니다. 파일 생성 후 cat 명령어를 사용하여 내용을 확인할 수 있습니다.

힌트

  • > 연산자를 사용하여 첫 번째 명령어의 출력을 리다이렉션합니다. 이 연산자는 파일을 생성하거나 이미 존재한다면 덮어씁니다.
  • >> 연산자를 사용하여 기존 내용을 삭제하지 않고 후속 명령어의 출력을 파일 끝에 추가 (append) 합니다.
  • uptime 명령어는 시스템이 얼마나 오랫동안 가동되었는지 보여줍니다.
✨ 솔루션 확인 및 연습

요약

수고하셨습니다! LabEx Corporation 에서의 첫날 업무를 성공적으로 마치고 Project Phoenix 를 위한 기초를 다졌습니다.

이 챌린지에서 여러분은 모든 시스템 관리자가 마스터해야 할 몇 가지 필수 명령어를 연습했습니다.

  • whoami: Project Phoenix 서버에서 자신의 사용자 신원을 확인했습니다.
  • uname: 운영 체제 정보를 확인하고 호환성을 점검했습니다.
  • who: 개발 서버에서 작업 중인 다른 사용자를 파악했습니다.
  • id: 적절한 접근 제어를 위해 사용자 및 그룹 소속 정보를 조사했습니다.
  • top: 최적의 성능을 보장하기 위해 시스템 프로세스와 리소스 사용량을 모니터링했습니다.
  • 출력 리다이렉션 (>>>): 조사 결과를 전문적인 보고서로 문서화했습니다.

이 명령어들은 시스템 관리자 도구 상자의 기초를 이룹니다. 오늘 여러분의 철저한 평가는 앞으로 진행될 Project Phoenix 의 흥미진진한 개발 작업을 위한 환경을 완벽히 준비시켰습니다. 내일은 디지털 아키텍트로서 프로젝트의 파일 구조를 조직하는 업무를 시작하게 될 것입니다!