2학년 2학기 기말 컴퓨터 시스템 일반 - 1

리눅스의 개요
  • 리눅스란?
    • 멀티 유저, 멀티 태스킹 지원
    • UNIX와 유사
    • 리누스 토발스에 의해 개발된 공개OS
    • 독점/배타X, 프리 소프트웨어
    • GNU라이센스 => 누구에게나 자유롭게 배포

  • GNU 프로젝트
    • 프로그램 복제/공유 자유
    • 개작 자유
    • 개작 후 배포 자유

  • 리눅스의 역사
    • 1969 - UNIX 개발(어셈블리어)
    • 1971 - C언어로 UNIX 재작성
    • 1985 - GNU 선언문 발표
    • 1991 - 리눅스 커널 완성

  • 리눅스의 특징
    • 완벽한 멀티 유저, 멀티 태스킹 OS
    • CLI, GUI 지원
    • 오픈 소스
    • 여러 종류의 파일 시스템 지원 (FAT, FAT3, NTFS, NFS, xfs)
    • 쉘 제공 : 대화형 사용자 인터페이스
    • HW 효과적 사용 : 메모리 적게 차지
    • 인터넷의 모든 기능 지원
    • 가술 지원 어려움

  • 배포판
    • 전체 시스템을 구성하는 SW패키지 형태
    • 데비안 리눅스
      • GNU 공식 후원
      • 제품
        • 우분투 : 사용자 편의성 중점
        • 민트
    • 레드햇 리눅스
      • 알기 쉬운 인스톨러, 관리도구 사용
      • RPM(Redhat Package Manager) 지원
      • 제품
        • 페트라 : 래드햇 후원, 기술 지향, 짧은 간격으로 업데이트
        • CentOS : 래드햇 엔터프라이즈 리눅스 배포판, 기업용 서버로 많이 사용, 기술지원X

  • 리눅스의 구조
    • HW
      • cpu, gpu, ram 등의 하드웨어
    • 커널
      • 가장 핵심적인 연산이 이루어지는 곳
      • 하드웨어 제어
      • 프로세스/메모리/파일 관리
      • 프로그램과 HW사이의 관리자
      • 명령어를 해석하여 커널에 저장
      • 대화형 사용자 인터페이스
      • 명령어 이해&실행
      • 종류
        • 본쉘(bash)
        • C쉘(csh)
        • 콘쉘(ksh)
      • 커널 -> 쉘 (작업 지시)
      • 커널 <- 쉘 (결과 전송)
파티션
  • 파티션의 개념
    • 물리적인 볼륨을 여러 개의 조각으로 나누는 것
    • 하나의 디스크를 여러 개의 파티션으로 나누면 다른 드라이브로 인식
  • 장점
    • 파티션은 트랙 단위로 구성 => 같은 파티션에서 탐색시 헤더 이동 거리 단축
    • 논리적으로 분리 => 특정 파티션 장애 시 다른 파티션은 안전
  • 단점
    • 초기에 설정된 파티션을 이용해야 하기 때문에 잔여 용량이 차이가 날 수 있음
      • 수정하기 위해서는 시스템 정지 필요
  • 파티션의 종류
    • 주(primary) 파티션 : 최대 4개까지 설정 가능, 주로 os설치
    • 확장 파티션 : 하나의 영역을 다시 여러 개로 분할 가능
  • 마운트 포인트 별 저장 내용
    • / : 루트 파티션
    • /boot : 부팅 커널 저장
    • /backup : 백업 데이터 저장, 디스크가 1개만 있다면 50%정도 백업으로 할당 권장
    • /home : 사용자 데이터 저장
    • /var : 사용자 log 저장
    • swap
      • 메모리 부족 or 오랫동안 사용하지 않는 메모리에 로드된 프로그램 저장 시 사용
      • swap을 할당하지 않으면 메모리 부족 시 시스템 장애 발생
  • 디렉토리 종류&특징
    • 디렉토리 : 피일 저장소, 최상위 디렉토리를 기준으로 하위 디렉토리가 있는 트리 구조
    • 디렉토리 별 저장 내용
      • / : 최상위(루트), 특수한 목적의 파티션을 나눈 후 남은 공간을 루트 파티션에 할당(최소 5GB)
      • /boot : 부팅 시 필요한 커널 이미지, 부팅 정보 파일 저장
      • /proc : 커널 기능 제어, 현재 실행 중인 프로제스와 사용 중인 장치 정보 저장
      • /lib : 동적 라이브러리 저장
        • 동적 라이브러리 : 프로그램 실행할 때 가져와 사용
      • /bin : 기본적인 명령어 저장
      • /dev : 시스템 디바이스 파일 저장
      • /etc : 시스템 환경 설정 파일 저장
      • /root : 관리자용 홈 디렉토리
      • /usr : 사용자 디렉토리(사용자 데이터, 앱 저장)
      • /home : 사용자 계정의 홈 디렉토리 위치
      • /var : 가변 자료 저장(로그, 메일 저장)
      • /tmp : 임시 파일 저장, 모든 사용자에 대해 RW 허용
      • /backup : 데이터 백업용
      • /sbin : 시스템 관리 관련 명령어 저장
명령어
  • date
    • 서버 시간 확인 & 설정
    • 부팅 시 CMOS에서 정보 가져옴
    • 재설정 시 date MMDDhhmmYY 형식 사용
    • 옵션
      • -u 세계 표준 시간 출력
      • –help 도움말
      • –version 버전 정보
  • who
    • 현재 접속 중인 사용자 확인
    • 로그인명, 터미널, 로그인 시간 출력
    • 옵션
      • -H 각 열 위에 헤더 표시
      • -q 로그인한 사람 + 로그인한 사람 수 출력
      • -m who am i와 동치, 현재 로그인한 사용자의 id 출력
  • cal
    • 그레고리력 기준 달력 출력
    • cal [옵션] [[month]year]
    • 옵션
      • -3 이전 달, 다음 달 모두 출력
      • -m 월요일을 기준으로 출력
      • -j Julian 형식 출력(1~365)
      • -y 그 해의 전체 달력 출력
  • man
    • 도움말 제공
    • /usr/share/man에 저장되어 있음
    • 구성
      • name
      • synopsis
      • option
      • parameter, environment
  • ls
    • 특정 디렉토리의 파일 리스트 왁인
    • 옵션
      • -a 모든 파일 출력
      • -l 세부 정보 제공
      • -R 하위 디렉토리도 표시
  • pwd
    • 현재 위치 출력(절대 경로)
  • cd
    • 작업 디렉토리 변경
  • cat
    • 파일 내용 출력
    • 옵션
      • -b 줄 번호 표시(빈 행 제외)
      • -n 줄 번호 표시(빈 행 포함)
      • -s 연속된 빈 행을 한 행으로 출력
    • 사용법
      • cat > 파일명 : 내용 쓰고 ctrl+D로 종료(파일 새로 생성)
      • cat 파일명 : 내용 출력
      • cat 파일1 > 파일2 : 파일1의 내용을 파일2에 덮어씌움
      • cat » 파일명 : 내용 쓰고 ctrl+D로 종료(이어 쓰기)
      • cat 파일1 » 파일2 : 파일1의 내용을 파일2에 추가
  • mkdir
    • 디렉토리 생성
    • 옵션
      • -p 하위 디렉토리 동시 생성
      • -m 접근 권한 설정
  • rmdir
    • 디렉토리 삭제
    • 파일이 들어있는 디렉토리 삭제 시 rm -r 사용
  • cp
    • 파일&디렉토리 복사
    • 옵션
      • -a 속성, 링크 정보 유지
      • -b 백업본 만들고 복사
      • -f 강제 덮어쓰기
      • -i 덮어쓰기 전에 복사 여부 확인
      • -p 원본 파일의 소유주, 그룹, 권한, 시간 정보 복사
      • -r -R 하위 디렉토리와 파일 복사
  • rm
    • 파일, 디렉토리 삭제
    • 옵션
      • -i 삭제 전 삭제 여부 확인
      • -f 강제 삭제
      • -r -R 파일이면 삭제, 디렉토리면 모두 삭제
      • -v 삭제 시 정보 출력
  • mv
    • 파일 이름 변경, 파일 이동
    • mv [옵션] [원본 파일명] [변경 파일명]
    • mv [옵션] [원본1] [원본2] ... [이동 디렉토리]
    • 옵션
      • -i 덮어쓰기 여부 확인
      • -f 강제 덮어쓰기
  • touch
    • 크기가 0인 새 파일 생성 or 수정 시간 변경
    • 옵션
      • -t 시간 설정
      • -r 동기화