시스템 전체 파악하기

LinuxBeginner
지금 연습하기

소개

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

첫 번째 임무는 Project Phoenix 를 호스팅할 개발 서버의 "전체 상황을 파악하는 것"입니다. 이를 위해 시스템의 정체성, 현재 사용자를 확인하고 현재 운영 상태를 파악하는 기본 정찰을 수행합니다.

이 챌린지에서는 기본 Linux 명령을 사용해 새 환경에 대한 핵심 정보를 수집합니다. 사용자 계정을 식별하고, 시스템 정보를 확인하고, 다른 로그인 사용자를 확인하고, 사용자 및 그룹 정보를 조사하고, 실시간 성능을 모니터링한 다음, 조사 결과를 종합 보고서로 작성합니다.

이 초기 점검 결과는 앞으로 Project Phoenix 에서 수행할 모든 작업의 기반이 됩니다. 오늘 철저히 점검하면 내일 프로젝트를 성공적으로 진행할 수 있습니다.

이 과정을 시작하기 전에 기본적인 Linux 지식을 갖추는 것이 좋습니다. Linux 가 처음이라면 LabEx Linux 학습 경로부터 시작하는 것을 권장합니다. 이 과정은 여러 실습형 챌린지를 통해 Linux 기초 지식을 확인하고, 정리하고, 심화하도록 구성되어 있습니다. 학습 중 익숙하지 않거나 잊어버렸거나 잘 모르는 개념이 나오면 LabEx 의 AI 어시스턴트인 Labby 와 자유롭게 토론해 보세요. 이 상호작용 방식은 실제 업무 환경에서 경험하게 될 문제 해결 과정을 재현합니다.

중요 안내: 챌린지를 진행하다가 어려움이 생기면 다음 방법을 사용하세요.

  1. Labby 와 논의하거나 해설을 확인합니다.
  2. 챌린지를 잠시 건너뛰고 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 로서 프로젝트의 파일 구조를 정리하기 시작합니다!

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습