Akashic Records

Chapter 5 Unix System Utility 본문

Operation System Controls

Chapter 5 Unix System Utility

Andrew's Akashic Records 2018. 4. 17. 16:04
728x90

Chapter 5 Unix System Utility


Shell 명령 및 파일시스템

1.      UNIX System Shell

쉘이란?

표준 UNIX 명령 인터프리터로서 사용자가 입력한 명령을 해석하여 또 다른 프로그램을 수행하라는 명령으로 해석 시스템과의 대화는 shell이라는 프로그램의 도움을 받아서 이루어진다. shell은 유틸리티 프로그램으로 UNIX시스템의 부분은 아니지만, 사용자들이 보는 UNIX시스템은 바로 shell이다.

셀의 종류

Steven Bourne의 Bourne 쉘(sh)

- 가장 오랜동안 모든 UNIX시스템의 표준 구성 요소

- 강력한 명령 프로그래밍 언어 기능을 가짐

- 쉘 명령 대본을 작성하는데 이용

Bill Joy의 C 쉘(csh)

- C 언어와 유사한 언어를 사용

- 대화형 사용으로 C쉘을 추천

Dave korn의 Korn 쉘(ksh)

- UNIX시스템에서 표준 shell로 제공되지만 보편적으로 사용되지 않음

- Bourne쉘과 완전히 호환성이 있으며, C 쉘의 대화형 기능을 추가

쉘의 차이점

Bourne

c

korn

command history

N

Y

Y

command alias

N

Y

Y

shell scripts

Y

Y

Y

filename completion

N

Y*

Y

command line editing

N

N

Y*

job control

N

Y

Y


쉘 명령

n          단일 명령어(single commands)

command-name [argument]

- command-name : 일련의 단어, 하나 또는 그 이상의 매개변수를 가짐 강력한 명령 프로그래밍 언어 기능을 가짐

- arguments : flag or option, 명령 옵션으로 한 글자 사용, 옵션 매개변수 앞에 -를 붙임,한 명령에 여러 개의 옵션 제공

n          다중 명령어(multiple commands)

한 line에 여러개의 명령을 입력하면 쉘은 여러 명령을 수행

- 순차 수행(세미콜론으로 구분)

command1; command2; ㆍㆍㆍㆍㆍ; commandn

- 동시 수행

command1& command2& ㆍㆍㆍㆍㆍcommandn

n          백그라운드 프로세스

오랜 시간 작업을 요하며 터미널에서 입력을 받지 않는 작업인 경우 백그라운드 프로세스로 수행 백그라운드 프로세스와 포그라운드 프로세스를 동시에 수행(멀티태스킹 시스템)

- 백그라운드 : 별다른 주의없이 실행되는 프로그램(sorts, compilations 등) 명령의 끝에 앰퍼샌드(&)를 붙임

- 포그라운드 : 사용자가 입력한 명령들

표준입출력

UNIX시스템에서 실행되는 세가지 응용 프로그램

u       GUI 프로그램 : 그래픽 환경, X윈도우 환경을 위해 특별히 작성된 프로그램

u       화면 입출력 모델 프로그램 : 텍스트 위치화(positioning), 하이라이팅(highlighting) 및 비디오 디스플레이 터미널의 다른 기능들을 사용해 간단한 사용자 인터페이스를 생성하기 위한 프로그램

u       텔레타이프 모델 프로그램 : 출력이 일련의 텍스트로 구성된 프로그램들. 모든 입·출력은 C표준 입출력 라이브러리를 사용하여 수행

┌ 내용 출력 : 표준 출력(stdout)

├ 내용 입력 : 표준 입력(stdin)

└ 에러 메시지 : 표준 에러(stderr)

출력 재지정

명령의 출력을 터미널에 연결하는 대신 파일로 저장.

출력 재지정 기호(>)

command > file

- ps 프로그램의 출력을 memo라는 파일로 연결할 경우

$ ls > memo

$ cat memo


주의 : 출력 재지정하고자 하는 파일이 기존에 존재하는 파일일 경우,

이전 내용이 모두 지워진다.

출력 재지정 추가

출력을 파일의 끝에 추가하고자 하는 경우

출력 재지정 추가 기호(>>)

command >> file

- memo파일의 끝에 ps명령의 결과를 저장

$ ps >> memo

$ cat memo


표준 에러 재지정

에러 메시지를 터미널에 출력하지 않고 파일로 저장할 경우

Bourne 쉘의 경우 표준 출력의 연결 번호인 2를 > 앞에 써서 사용

command 2> file

$ ls -z 2> errfile

· 표준 출력과 에러 출력을 다른 파일에 저장할 경우

$ (ls -z > memo) 2> errfile


C 쉘의 경우 > 뒤에 &를 붙임

command >& file

% ls -z >& errfile

· 표준 출력과 에러 출력을 다른 파일에 저장할 경우

% (ls -z > memo) >& errfile


입력 재지정

키보드로부터 명령을 읽는 대신 파일에서 명령을 읽음

입력 재지정 기호 (<)

command < file

- memo 파일에서 명령을 읽어서 실행

$ cat memo

 ls -al

 ps

$ sh < memo

$ mail mun < memo


파이프

한 프로그램의 표준 출력을 다른 프로그램의 표준 입력으로 연결

⼘입출력 재지정 방법

$ ls -al > tempfile

$ wc -l < tempfile

$ rm tempfile

⼘파이프라인 방법

$ ls | wc -l


만능문자

파일명 생성을 제어하는 만능 문자

*   어떠한 문자열과 부합

*.c memo.* a* a*.* *b*

?   어떤 한 글자와 부합

??.c me??.* ???

[   어떤 문자 클래스를 시작

]   어떤 문자 클래스를 종결

mem[aeiou] [*?]a-bc


문자 클래스 내의 문자 범위를 지정

def[0-9] ch[0-15] ch[a-zA-Z]

특수 쉘 문자의 기능을 잃게 하려면 역슬래쉬를 문자앞에 놓음

$ ls *\*

$ ls *\**


shell에서 제공되는 특징들

create an environment that meets your needs

쉘은 login시에 setup file을 읽고 실행한다.

history list 초기화, alias 정의, prompt 변경

C쉘의 경우(.cshrc)

Bourne쉘의 경우(.profile)

Korn 쉘의 경우(.kshrc)

manipulate the command history

history list에서 이전 명령을 참조하기 위해 command number가 프롬프트에 출력하여야 함

C쉘의 경우 가장 최근의 마지막 명령을 수행

% !!

history list에서 n번째 명령 수행

% !n

가장 최근에 수행한 string으로 시작하는 명령 수행

% !string

현재 command number에서 이전 n번째 명령 수행

% !-n

special name

!$    !*

automatically complete filename in the command line

명령의 일부분으로서 file이나 directory name의 앞의 몇 글자만 입력하고 <ESC>를   누르면 자동적으로 file이나 directory의 name을 완성

C쉘의 경우 % cat or<ctrl-d>

2.      UNIX File System

파일의 유형

보통 파일

정보 저장, 실행 프로그램, 문서의 텍스트, 회사의 기록 및 컴퓨터에 저장될 수 있는 어떤 유형의 정보

보통 파일의 형식 : 텍스트 파일과 이진 파일

디렉토리 파일

파일 리스트를 포함하는 파일

각 사용자는 홈디렉토리를 가짐 : cd를 사용하여 디렉토리를 옮겨다님

계층 파일 시스템

UNIX 시스템의 파일 => 디렉토리로 분류(계층적으로 조직화)

UNIX 파일 시스템 : 트리 구조

루트 디렉토리 : /로 표기

서브 디렉토리 : /bin, /usr, /dev, /etc, /tmp 및 /lib, /usr/bin, usr/include, usr/local/etc

파일 액세스 모드

-         사용자가 파일 액세스 => 시스템은 액세스를 수행할 수 있는 권한 검사

-         UNIX 시스템에서는 파일을 읽고, 쓰고, 실행하는 연산이 있음

n        읽는 연산 : 파일의 내용을 이용 가능하도록 하는 것

n        쓰기 연산 : 파일의 내용을 변경 가능하도록 함

n        실행 연산 : 파일을 주기억 장치에 옮겨 기계어를 수행하거나 쉘 명령어를 실행함을 의미

-         UNIX 시스템의 파일은 특정 소유자에게 속하고, 특정 소유자의 그룹과 관계를 맺음

-         UNIX 시스템의 파일 보호 기법은 액세스의 유형(읽기, 쓰기, 실행하기)과 누가 액세스를 수행하는지에 따름. ls명령으로 확인할 수 있음.

-         파일 소유자나 수퍼 사용자는 파일의 허용 권한(chmod), 소유권(chown)과 그룹관계(chgrp)를 변경할 수 있음



728x90

'Operation System Controls' 카테고리의 다른 글

grep  (0) 2018.04.17
fsck  (0) 2018.04.17
Chapter 4 Unix System Solaris Install  (0) 2018.04.17
Chapter 3 Unix System 보안  (0) 2018.04.17
Chapter 2 Unix 사용자 계정 관리  (0) 2018.04.17
Comments