2011년 5월 25일 수요일

Chapter 5 Unix System Utility

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)를 변경할 수 있음

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...