IT 성장기 (교육이수)/리눅스 기초 (2024.02-04)

운영체제의 개요와 리눅스 기초 명령어 (2/17, 2/18)

eezy 2025. 1. 8. 16:08

2023.02~2023.04 교육과정 정리


운영체제란?

운영체제는 컴퓨터 시스템의 자원을 효율적으로 관리하고, 사용자와 하드웨어 간의 인터페이스 역할을 하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어입니다.

 

1. 운영체제의 주요 역할

  1. 컴퓨터 사용자와 하드웨어 간의 인터페이스 제공
    • 사용자가 컴퓨터 자원을 쉽게 사용할 수 있도록 하드웨어와 상호 작용할 수 있는 환경 제공.
  2. 응용 프로그램 지원
    • 다른 응용 프로그램이 안정적이고 효율적으로 실행될 수 있도록 환경을 제공.

2. 운영체제의 종류

  1. Windows 계열 (MS)
    • Microsoft에서 개발한 상용 운영체제.
    • 대표적인 버전: Windows 10, 11, Server 등.
  2. Unix 계열
    • 상용 및 고급 서버용 OS로 사용.
    • 예: Solaris, SunCobalt.
  3. Linux 계열
    • Unix 기반의 오픈 소스 운영체제.
    • 예: Ubuntu, Fedora, Rocky Linux.

3. 운영체제의 5대 기능

  1. 프로세서 관리 (CPU 스케줄링)
    • CPU 자원을 효율적으로 배분하여 프로세스들이 동시에 실행될 수 있도록 관리.
  2. 메모리 관리
    • RAM과 같은 메모리 자원을 효율적으로 배분하여 실행 중인 프로세스가 필요한 메모리를 사용할 수 있도록 관리.
  3. 프로세스 관리
    • 실행 중인 프로그램(프로세스)을 관리.
    • 각 프로세스의 상태, 우선순위, 자원 할당 등을 조정.
  4. 입출력 관리
    • 사용자와 하드웨어 간의 데이터 전송을 관리.
    • 키보드, 마우스, 디스크, 네트워크 등 다양한 입출력 장치와의 통신 제어.
  5. 파일 시스템 관리
    • 데이터 저장 및 관리.
    • 파일의 생성, 삭제, 읽기, 쓰기 등의 작업을 지원하며, 디렉토리 구조 관리.

 

리눅스의 다양한 계열과 역사

 

1. 리눅스의 배포판 계열

  • Red Hat 계열
    • 대표 배포판: Rocky Linux, Fedora
    • 특징: 엔터프라이즈 환경에 적합하며 RHEL(Red Hat Enterprise Linux)을 기반으로 한 상용 및 무료 배포판으로 나뉨.
  • Debian 계열
    • 대표 배포판: Ubuntu, Kali Linux
    • 특징: 다양한 환경에서 사용되며, 사용 편의성과 보안에 초점.
  • SUSE 계열
    • 대표 배포판: Linux Mint (주로 데스크톱), Android (커널 기반)
    • 특징: 서버와 데스크톱 모두를 지원하며 안정성과 성능이 강조됨.

2. GNU 프로젝트

  • GNU의 철학
    • GNU는 "GNU is Not Unix"의 약자로, 유닉스와 비슷하지만 자유로운 소프트웨어를 지향.
    • 리처드 스톨만이 창시했으며, 자유 소프트웨어 운동의 핵심 인물.
    • 소프트웨어의 자유를 보장하는 **GPL(General Public License)**로 배포.
  • 리눅스와 GNU
    • 리눅스는 GNU 프로젝트와 결합하여 오픈소스 커뮤니티의 상징이 됨.
    • 리눅스가 오픈소스로 제공된 이유는 자유 소프트웨어 철학을 기반으로 사용자와 개발자의 자유로운 사용 및 기여를 보장하기 위함.

3. 리눅스의 3요소

  • 커널 (Kernel)
    • 운영체제의 핵심.
    • 주요 역할: 디바이스 관리, 프로세스 관리, 메모리 관리, 시스템 콜 제공.
    • 모든 시스템 자원의 접근과 관리를 담당.
  • 셸 (Shell)
    • 명령어 해석기 및 사용자와 커널 간의 인터페이스.
    • CLI(Command Line Interface)를 통해 사용자가 명령어를 입력하고 실행.
    • [root@localhost ~]# (명령어 입력받기를 대기하고 있는 상태)
  • 애플리케이션 (Application)
    • 사용자 인터페이스를 제공하며, 커널과 셸을 통해 자원을 사용.

4. Rocky Linux란?

  • 배경
    • CentOS의 지원이 중단된 후, Gregory Kurtzer가 이를 대체하기 위해 개발.
    • RHEL(Red Hat Enterprise Linux)의 소스를 기반으로 컴파일하여 무료로 배포.
  • 배포판 관계
    • Fedora: 최신 기술이 적용된 개발용 OS.
    • CentOS Stream: RHEL의 업스트림 프로젝트로 테스트용.
    • RHEL: 상용 환경에 최적화된 안정적인 OS.
    • Rocky Linux: RHEL의 다운스트림 프로젝트로, RHEL 릴리스 후 패치 및 버그 수정이 적용되어 제공.
  • 특징
    • 엔터프라이즈급 안정성과 보안을 제공.
    • 커뮤니티 기반의 무료 OS로, CentOS의 철학을 계승.

 

 

 

리눅스 명령어와 디렉토리 구조

 

1. 리눅스 프롬프트

  • 일반 사용자 프롬프트:
    • 형식: {사용자명}@{호스트명} ~ $
    • 예: test@localhost ~ $
  • 관리자(root) 프롬프트:
    • 형식: [root@{호스트명} ~]#
    • 예: [root@localhost ~]#

2. 시스템 시작, 재시작, 종료 명령어

종료

  • #shutdown [옵션] [시간]
    • 즉시 종료: #shutdown -h now
    • 1분 뒤 종료: #shutdown -h +1
    • 명령 취소: #shutdown -c
    • 시스템 종료: #init 0, #halt, #poweroff

재시작

  • -r: 재시작 옵션
    • 즉시 재시작: #shutdown -r now
    • 1분 뒤 재시작: #shutdown -r +1
    • 시스템 재시작: #init 6, #reboot

3. 명령어 사용 팁

  • 이전 명령어 확인:
    • #history: 최대 1000개의 명령어 기록
    • #history -c: 명령어 기록 삭제
  • 명령어 자동 완성:
    • [Tab] 키 사용
  • 이전 명령어 탐색:
    • 방향키 ↑ / ↓ 사용

4. 런레벨 (Runlevel)

  • 0: 종료
  • 1: 단일 사용자 모드 (긴급 복구)
  • 2: 다중 사용자 모드 (NFS 지원 X)
  • 3: 다중 사용자 모드 (텍스트 기반)
  • 4: 미사용
  • 5: 다중 사용자 모드 (그래픽 기반)
  • 6: 재시작

5. 리눅스 디렉토리 구조

  • /bin: 기본 명령어 저장 디렉토리 (e.g., ls, cp, mv)
  • /boot: 부팅 관련 파일 및 커널 저장
  • /dev: 장치 파일 (e.g., 하드웨어, USB)
  • /etc: 시스템 환경설정 파일
  • /home: 일반 사용자의 홈 디렉토리
  • /lib: 기본 라이브러리 파일 (32/64비트)
  • /mnt: 마운트 디렉토리
  • /root: 관리자(root) 사용자의 홈 디렉토리
  • /sbin: 시스템 관리 명령어 (e.g., ifconfig, fsck)
  • /srv: 서버 관련 데이터
  • /tmp: 임시 파일 저장 디렉토리
  • /usr: 일반 사용자용 프로그램 및 명령어
  • /var: 캐시, 로그, 스풀, 임시 파일 등 시스템 변화 데이터

 

리눅스 기본 명령어 요약 및 정리

 

1. 명령어 종류

  • 내부 명령어: 셸에 포함된 명령어 (e.g., clear, shutdown)
  • 외부 명령어: 셸 외부 프로그램 (e.g., ls, cd)
    • 내부 명령어가 우선 실행됨.
  • 주의: 리눅스는 대소문자를 구분.

2. 명령어 활용

디렉토리 이동
  • ls: 현재 디렉토리 내용 확인
  • cd [경로]: 디렉토리 이동
    • cd /etc: etc 디렉토리로 이동
    • cd ~: 홈 디렉토리로 이동
    • cd ..: 상위 디렉토리로 이동
디렉토리 생성/삭제/수정
  • mkdir [디렉토리명]: 디렉토리 생성
    • mkdir dir1 dir2 dir3: 여러 디렉토리 생성
    • mkdir -p dir3/dir4/dir5: 하위 디렉토리 생성
  • rmdir [디렉토리명]: 빈 디렉토리 삭제
  • rm -r [디렉토리명]: 하위 디렉토리 포함 삭제
  • mv [원본] [목적지]: 파일/디렉토리 이름 변경 또는 이동
  • touch [파일명]: 파일 생성 또는 수정 시간 갱신
  • cp [원본] [복사본]: 파일/디렉토리 복사
시간/날짜 확인 및 설정
  • cal: 현재 달력 표시
  • date: 현재 날짜 및 시간 확인
  • timedatectl: 시스템 타임존 확인 및 설정
  • systemctl restart chronyd: 시간 동기화 서비스 재시작
리다이렉션
  • >: 출력 리다이렉션
    • ls -l > ls.txt: ls 출력 결과를 ls.txt에 저장
  • <: 입력 리다이렉션
  • >>: 기존 파일에 내용 추가

3. 파이프와 파일 조작

파일 부분 출력
  • head -n [줄수] [파일명]: 파일 앞부분 출력
  • tail -n [줄수] [파일명]: 파일 뒷부분 출력
파일 내용 페이지 단위 출력
  • more [파일명]: 한 페이지씩 출력 (방향키 사용 불가)
  • less [파일명]: 한 페이지씩 출력 (방향키 사용 가능)
파일 내용 분할
  • split -l [줄수] [파일명]: 지정된 줄 수로 파일 분할
  • cat x* > [파일명]: 분할된 파일 합치기
문자열 검색
  • grep [문자열] [파일명]: 파일에서 특정 문자열 검색
    • grep -n 'root' passwd: passwd 파일에서 root 문자열과 줄 번호 검색

4. 유용한 옵션

  • mkdir
    • -p: 하위 디렉토리 생성
  • rm
    • -r: 하위 디렉토리 포함 삭제
    • -f: 삭제 확인 없이 강제 삭제
    • -rf: 모든 파일 강제 삭제
  • cat
    • -n: 줄 번호 표시
    • -b: 빈 줄 제외하고 줄 번호 표시
  • tail
    • -f: 실시간 파일 내용 모니터링 (Ctrl+C로 종료)

5. 파일 편집기

  • vi [파일명]: 텍스트 파일 편집기
    • :w: 저장
    • :q: 종료
    • :wq: 저장 후 종료
    • :w!: 강제 저장 (읽기 전용 파일일 경우)
  • gedit [파일명]: GUI 기반 편집기