Self-Improvement
Linux 특성1 (Redirection, pipe, bash쉘의 기능 set) 본문
*Redirection (방향 재지정)
-fd(file descriptor) : 파일 기술자
표준입력(0, standard input) -------> Shell(bash) ------> 표준출력(1, standard output)
ex) KeyBoard | ex) Screen
|
표준에러(2, standard error)
ex)Screen
1.입력재지정 형식
CMD < 파일이름
CMD 0< 파일이름
//예제
#cat < /etc/passwd
#cat 0< /etc/passwd
2.출력재지정 형식
CMD > 파일이름 (표준출력, 덮어쓰기)
CMD 1> 파일이름
CMD >> 파일이름 (표준출력, 이어쓰기)
CMD 1>> 파일이름
//예제
#echo 1111 > filename1
#echo 2222 > filename1 (덮어쓰기)
#echo 3333 >> filename1 (이어쓰기)
3.에러재지정 형식
CMD 2> 파일이름
CMD 2>> 파일이름
//예제
#ls -l /nodir 2> error.txt
#ls -l /nodi2 2>> error.txt
/*복합예제*/
#ls /test/ nodir > dirfilename 2>&1
=결과물은 dirfilename에 출력하고 에러메시지도 dirfilename에 출력
#./script.sh > file.log 2>&1
#./configure -perfix=/usr/local/apache2 > file.log 2>&1
#find / -name core -type f 2> /dev/null
*파이프 ('|')
-앞에 실행한 명령어의 출력결과를 뒤 명령어의 입력값으로 사용하는 것
//tee(출력내용을 Screen, 파일에 동시지정)와 혼합
#cal 2002 | tee file.log (출력결과를 Screen에 출력하고 file.log에도 저장)
#cal 2002 | tee -a file.log (tee -a는 덮어쓰기)
//script(로그남기기)을 이용한 예제 (터미널끼리 공유 기능)
세개의 터미널을 준비하고 tty을 통해 터미널값을 알아낸다. 혹은 세번째 터미널에서 who로 알아낸다
세번째 터미널에서 #script -a /dev/null | tee /dev/pts/숫자 | tee /dev/pts/숫자 (script는 그 터미널에서 행한 로그, 명령어들을 저장하게 된다 지금 터미널에 출력을 하면서 | tee을 통해 다른 터미널에서도 출력이되면서 전달을 하게된다. exit을 하게되면 종료하게 됨)
*bash쉘의 기능
#set -o (쉘 자체의 기능 목록)
#set -o vi (vi기능을 on)
#set +o vi (vi기능을 off로 해야 기본적인 편집기 선언)
//예제
#set -o ignoreeof (ignoreeof는 <Ctrl + D>로 인한 로그아웃 방지를 막는 기능이다. on으로 바꿔서 <Ctrl + D>로 인한 로그아웃을 방지해야 한다.)
#set -o noclobber (overwrite을 방지하는 기능)
'리눅스 > 명령어' 카테고리의 다른 글
12) Linux 프로세스1(ps, jobs, Background, Foreground, Signal, top) (0) | 2018.10.21 |
---|---|
Linux 특성2(변수, 메타데이터, history, alias, 환경파일) (0) | 2018.10.21 |
Linux 편집기 (vi, vim) (0) | 2018.10.21 |
Linux 명령어 (gzip/gunzip, bzip2/bunzip2, tar, jar, zip) (0) | 2018.10.21 |
Linux 명령어(grep, egrep, fgrep, find) (0) | 2018.10.21 |