우선 첫째날로 기본기 다지기에 들어가겠다.
UNIX 서버를 운영중이라면 SHELL Script 를 통해 더욱 강력한 서버를 구성할 수 있다.
알아둔다면 업무자동화는 물론 다양한 방면으로 활용가능하다.
동영상 강의나 책을 보면서 정리된 내용을 옮겨 적는 것이라 좀 난잡할 수도 있다.
=====================================================================================================================
script는 실행권한 필요
- chmod 를 이용하여 실행권한을 주어야 실행 가능하다.
$ chmod 755 script.sh
$ chmod a+x script.sh
=====================================================================================================================
Foreground / Background Process
- login 되어 Foreground 에서 작업중이다가 &를 사용하여 Background 로 Process를 돌림으로써, 여러가지 작업을 동시에 할 수 있다.
- 동시에 Background Process가 실행하면 먼저 큐에 도착한 녀석이 먼저 처리된다. ($ date & pwd &)
=====================================================================================================================
subshell
- 생성시기 : 명령어 사용 시, 스크립트 실행 시 (부모 shell은 subshell이 종료될 때까지 sleep 됨)
- 부모 shell 의 환경변수(복사본)와 지역변수(초기화본)를 상속한다.
=====================================================================================================================
$ stty -a
- 현재 사용중인 터미널의 메타문자들을 보여준다. 설정된 대로 키가 먹힌다.
- erase : ^H (한글자 지우기)
- kill : ^U (한줄 지우기)
- susp : ^Z
- intr : ^C (인터럽트. 실행 도중 작업을 중지시킨다.)
- eof : ^D (파일의 끝. 파일에 내용을 다 썼으면 ^D로 파일의 끝을 알린다.)
- stop : ^S/^Q (출력정지/재출력 - 출력이 계속해서 올라갈 경우, 출력을 정지 시킬 수 있다.)
=====================================================================================================================
$ who | tee test.txt | sort
- tee 명령을 통해 출력을 'T' 처럼 2방향으로 갈라 출력을 달리 줄 수 있다.
- 아래 그림에서 who 라는 명령을 sort 하려고 하는 도중에 tee가 끼어들어 who 내용을 test.txt로 redirection 하고 있다.
우측방향> who의 내용이 sort 되어 터미널에 보여진다.
아래방향> who의 내용이 test.txt 파일로 떨어진다.
=====================================================================================================================
문자열 사용과 명령어 대치 (' ' / ` ` / " ")
- 따옴표 사용법을 알아야 한다.
' ' : 100% 동일한 문자열. ' ' 안에 있는 내용은 쓴 내용 그대로 나온다.
` ` : 명령어 대치.
$ echo ls ▶ ls 그대로 출력
$ echo `ls` ▶ ls 명령의 결과를 출력
" " : 내부에 ` ` 명령어 대치를 사용할 수 있는 문자열
=====================================================================================================================
&& 와 ||
- 명령1 && 명령2 : 명령1 성공시 명령2 실행
- 명령1 || 명령2 : 명령1 실패시 명령2 실행
$ df -k && echo ------------------ && ls
- df -k 명령이 정상적으로 실행 완료 되었기 때문에 ehco 명령이 실행되고, 이것도 성공했기 때문에 ls 까지 실행된다.
- bdf라는 명령이 존재하지 않아 실패하였으므로, echo로 Failure를 찍는다.
=====================================================================================================================
명령어 그룹으로 묶기
- 괄호를 사용하여 명령어를 그룹으로 묶을 수 있다.
$ (date; ls; pwd) > out.txt
=====================================================================================================================
sleep 과 wait
- sleep : 지정한 시간동안 대기
- wait : 지정한 프로세스가 끝날때까지 대기
=====================================================================================================================
$ echo $?
- 직전에 실행된 프로세스가 성공했는가?
- 0이면 성공. 0이 아니면 실패.
=====================================================================================================================
내장 명령어
$ eval `echo x=5` ☞ ` ` 안의 결과를 실행한다.
$ exec ☞ 명령을 subshell을 생성하여 실행하지 않고, 바로 shell에서 실행한다. 실행이 끝나면 창이 바로 닫힌다.
$ shift ☞ 파라미터를 shift 시킨다.
$ umask ☞ umask를 지정한다.
'공부하는 하스씨 > Linux' 카테고리의 다른 글
루트킷 #2 (0) | 2008.10.11 |
---|---|
루트킷 #1 (0) | 2008.10.11 |
Shell Script (2) - 환경변수와 지역변수, Borune Shell (0) | 2008.08.27 |
공유 라이브러리로 컴파일 하기 (0) | 2008.08.27 |
Makefile 참고 자료. (0) | 2008.08.26 |