자격증

정보처리기능사 - 12. UNIX

Beekei 2025. 3. 20. 21:09
반응형

UNIX의 개요

UNIX의 특징

  • 시분할 시스템(Time Sharing System)을 위해 설계된 운영체제로 주로 서버용 컴퓨터에서 사용
  • 소스가 공개된 개방형 시스템(Open System)으로 대부분 C언어로 작성되어 있어 크기가 작고 이해하기 쉬우며 이식성이 높고 장치와 프로세스 간의 호환성이 높음
  • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원하며 많은 네트워크 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합
  • 계층적 트리 구조의 파일 시스템을 갖고, 파일 형식은 일반 파일, 디렉터리 파일, 특수 파일 형식 제공
  • 표준 입출력을 통해 명령어들이 파이프라인으로 연결

UNIX 시스템의 구성

UNIX 시스템의 구성

커널(Kernel)

  • UNIX의 가장 핵심적인 부분으로, 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행
  • 하드웨어를 보호하고, 하드웨어와 프로그램 간의 인터페이스 역할을 담당, 하드웨어와 프로세스의 보안 책임
  • 테스트 스케줄링(Task Scheduling), 기억장치 관리(Memory Management), 파일 관리, 입출력 관리, 데이터 전송 및 변환 등의 기능 수행

쉘(Shell)

  • 사용자로부터 명령어를 입력받아 해석하여 커널로 처리할 수 있도록 전달해주는 명령어 해석기(명령 인터프리터)
  • DOS의 COMMAND.COM과 같은 기능을 수행하지만, 주기억장치에 상주하지 않고 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능
  • 공용 Shell(Bourne Shell, C Shell, Korn Shell)이나 사용자 자신이 만든 Shell도 사용 가능
    • Bourne Shell: 크기가 작아 시스템 자원을 많이 소비하지 않고, 실행이 빨라 프로그래밍에 적합
    • C Shell: 가장 많이 사용되는 Shell로 C언어와 유사, 기본 프롬프트: %
    • Korn Shell: Bourne Shell 기반으로 C Shell의 기능을 추가한 것

유틸리티(Utility Program)

  • 사용자가 작성한 응용 프로그램을 처리하는 데 사용(DOS의 외부명령어에 해당)
  • 시스템 편집기(Editor), 컴파일러, 인터프리터, 디버거 등 존재
    • 제공하는 시스템 편집기(Editor): vi, ed, emacs, pico, joe 등

UNIX 파일 시스템(File System)

  • 계층적 트리 구조 형태로 디스크를 블록으로 분류하여 배치한 구조
    • 부트 블록(Boot Block): 부팅 시 필요한 코드를 저장하고 있는 블록
    • 슈퍼 블록(Super Block): 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
    • I-node(Index node) 블록: 파일 및 디렉터리에 대한 모든 정보를 저장하고 있어 이를 관리하기 위해 사용
    • 데이터 블록: 디렉터리별로 디렉터리 엔트리와 실제 파일에 대한 데이터가 저장된 블록

UNIX 파일 시스템


UNIX 명령어

명령어의 기본 형식

[프롬프트] 명령어 [옵션] [매개변수]
  • 프롬프트: 쉘(Shell)의 종류에 따라 다르게 표시($ % #)
  • 명령어: 대,소문자를 구분하여 입력
  • 명령어와 옵션 사이에는 반드시 공백이 존재, 옵션 지정 시 앞에 "-"을 붙혀야 함

시스템 및 프로세스 관련 명령어

명령어 기능
kill 현재 실행중인 프로세스 종료, 편집 상태에서는 한 줄 전체 삭제
fork 새로운 프로세스 생성(하위 프로세스 호출, 프로세스 복제)
exec 새로운 프로세스를 수행
finger 시스템에 등록되어 있는 사용자 정보를 표시
ps 현재 작업중인 프로세스의 상태 표시, 옵션에 a 지정 시 모든 프로세스 상태 표시
(이름, 명령어 이름, 프로세스 ID, 제어 단말기와 소유주 속성 목록, 수행된 시간 등)
ping 특정 시스템과 접속이 안 될 경우 네트워크 상의 문제 진단
login UNIX 작업을 위해 사용자 ID와 비밀번호를 받아 사용자 확인
logout UNIX 시스템에 대한 접속을 종료 ([Ctrl] + [D], exit)
passwd 로그인할 때 필요한 비밀번호를 설정(명령어 인수 필수 X)
who 로그인한 사용자에 관한 정보 표시
(단말기명, 로그인명, 로그인 일시, 사용중인 단말기 번호 등)
mount 파일 시스템을 마운팅/마운팅 해제
dump 주기억장치의 내용을 화면이나 프린터, 디스크 등에 출력

디렉터리 관련 명령어

UNIX 명령어 DOS 명령어 기능
pwd   현재 작업중인 디렉터리 경로를 화면에 출력(명령어 인수 필수 X)
ls dir 현재 작업중인 디렉터리의 모든 파일을 표시
구분자: -(일반 파일, 이진 파일), b(블록형 특수 파일), c(문자형 특수 파일), d(디렉터리), l(링크 파일)
mkdir md 디렉터리 생성
rmdir rd 디렉터리 삭제
cd cd 다른 디렉터리로 이동
. . 현재 디렉터리
.. .. 상위 디렉터리
/ \ 루트 디렉터리

파일 관련 명령어

UNIX 명령어 DOS 명령어 기능
create   파일 생성
open   파일을 사용할 수 있는 상태로 준비
close   파일 닫기
cp copy, xcopy 파일 복사
rm del 파일 삭제
cat type 파일의 내용을 화면에 표시
chmod attrib 파일의 보호 모드를 설정(파일 사용 허가)
chown   소유자 변경
find   파일 찾기
mv   파일 이동 및 이름 변경
wc   파일 내 라인 수, 단어 수, 문자 수 등을 표시
cmp   두 파일을 비교하여 차이가 나는 바이트 위치와 행 번호를 표시
comm   두 파일을 비교하여 한쪽에만 있거나 양쪽에 모두 있는 라인을 찾아 표시
행 단위로 비교할 때 사용
diff fc 두 파일을 비교하여 차이점을 표시
paste   하나의 파일 끝에 다른 파일의 내용을 추가

파일 및 디렉터리의 소유권

  • chmod 명령어를 이용해 소유권 부여 시 UNIX 사용자는 소유자(user), 그룹(group), 기타 사용자(others)로 나누어 8진수 숫자로 지정 가능
  • 8진수를 3자리의 2진수로 변환 시 각 자리마다 읽기(read), 쓰기(write), 실행(execute) 속성을 의미
% chmod 7(u) 5(g) 4(o) {파일명}
→ % chmod 111(rwx) 101(r-x) 100(r--) {파일명}
→ 소유자는 모든 권한, 그룹에는 쓰기&실행 권한, 기타 사용자에게는 읽기 권한 부여
8진수 2진수 권한 설명
7 111 rwx 모든 권한 부여
6 110 rw- 읽기, 쓰기 권한 부여
5 101 r-x 읽기, 실행 권한 부여
4 100 r-- 읽기 권한 부여
3 011 -wx 쓰기, 실행 권한 부여
2 010 -w- 쓰기 권한 부여
1 001 --x 실행 권한 부여
0 000 --- 모든 권한 해제

 

반응형