리다이렉션(Redirection)
-표준입력과 출력의 방향을 재지정하는 방법
파일 디스크립터 (file discriptor,fd)
-리눅스의 일반 파일과 장치파일을 포함한 모든 파일을 관리하는 방식
-파일을 열거나 실행할때 혹은 명령어를 입력하면은 커널이 프로세스를 실행시켜 기본적
으로 사용하는 창치들과 추가로 실행한 프로세스가 있다면 이정보를 파일 디스크립터 테이블
이라는 곳에 저장하는데 , 이때 파일 디스크립터 테이블에 비어있는 0번 부터 순차적으로 지정
하고 가장 기본적으로 사용되는 장치에 대해서는 디스크립터 테이블에 미리 예약되어 있다.
커널?- 운영체제 중심
프로세스?- 실행중인 프로그램
discriptor?- 문서나 파일 의미
표준 입력/ 표준 출력/ 표준 오류
명령어 입력(키보드/표준입력)->명령어 결과 (모니터/표준출력)
출력 리다이렉션
-화면에(표준출력)나오는 결과를 파일 내용으로 전달
#echo 'show me the mone'
#echo 'show me the mone' 1> echo_test
fd번호 1은 생략가능
1 생략 출력
#cp /etc/resolv.conf ./ /etc//resolve.conf 파일을 현재경로로 복사
#cat resolv.cof 표준입력후 표준출력
#cat resolv.conf 1> redirection_test //표준입력 후 결과를 출력아닌 파일로 재지정
bash 쉘에서 파일 덮어쓰기 방지하기 위한 설정
#set -o noclobber //덮어쓰기 방지 설정 enable
#set +o noclobber //덮어쓰기 방지 설정 disable
덮어쓰기 방지 설정후 에러
추가 리다이렉션
[명령어] >> [파일]- 기존 파일에 내용 추가
date + cal 명령어 를 ls_test 파일로
오류 리다이렉션
# ls error_test
ls: cannot access error_test: 그런 파일이나 디렉터리가 없습니다
#ls
#ls error_test 1> err1
err1
#ls error_test 2> err1 //표준 에러의 방향을 파일로 재지정
오류메시지 출력 없음
오류메시지 출력이 안된걸 확인
오류 메시지 출력하지 않기
/dev/null -리눅스 특수 파일로 파일의 내용을 지우거나, 오류메시지를 해당 파일로
리다이렉션하여 출력하지 않을수 있다.(윈도우 쓰레기통 비슷)
#ls ls_test 1> /dev/null //출력결과를 null파일로 재지정
#ls ls_test 2> /dev/null //출력에러결과를 null파일로 재지정
#ls / 1> /dev/null //정상 결과 출력x
#ls / 2> /dev/null //에러 결과 출력x
입력 리다이렉션
[명령어] < [파일]
#sort < /etc/passwd == sort /etc/passwd
#cat < /etc/passwd == cat /etc/passwd 사용빈도적음
#tail < a.txt > b.txt
1. a.txt 내용을 tail 명령어 입력 값으로 리다이렉션 (#tail a.txt)
2. tail 명령어는 입력은 a.txt의 나용에서 마지막 10줄 출력
3. tail 명령어의 출력결과를 b.txt파일에 리다이렉션
4. 화면에 출력이아닌 b.txt파일 안에 결과가 저장
#cat < a.txt > b.txt 와 동일한 명령어는? #cp 랑 같음
cut -d ":" -f 1 /etc/passwd > account_list
첫째 단어만 출력
1. [명령어1] ; [명령어2]
-첫 번째 명령어 부터 순차적으로 실행
-첫 번째 명령어가 실패하여도 반드시 실행
#ls ; pwd ; date
가운데 없는 명령어 제외 출력
2. [명령어1] && [명령어2]
- 첫 번째 명령이 에러가 아닐시 두번째 명령을 실행
[cmd] && [err] && [cmd] 두번째 에러시 다음 순서 결과x
에러 시점에서 명령 실행 종료
가운데 없는 명령어 에러후 다음도 에러
3. [명령어1] || [명령어2]
[cmd] || [cmd] cmd1 실행
- 명령어가 정상으로 실행된 시점까지만 실행(출력)
'Server > Linux' 카테고리의 다른 글
xshell/ 환경변수 명령어 (0) | 2017.04.02 |
---|---|
Linux- vi (0) | 2017.04.01 |
xshell/ 디렉토리 명령어3 (0) | 2017.03.31 |
Linux - snapshot 기능 (0) | 2017.03.29 |
xshell/ 디렉토리 실습2 (0) | 2017.03.29 |