2023. 4. 19. 01:53ㆍ리눅스/리눅스_입문
입출력 리다이렉션과 파이프
표준 출력
명령어로 결과를 모니터에 출력하듯, 명령어 결과를 파일로 리다이렉션하여 저장할 수 있다. '>' (greater than sign 또는 right angle bracket) 기호를 사용한다.
ls 명령어 결과물을 '>' 을 이용해서 'ls.txt'파일에 저장하고 '|' 파이프 라인을 연결해서 cat 명령어로 'ls.txt' 파일 내용을 확인해서 ls 명령어 결과가 입력된 것을 확인했다.
그런데 'ls.txt' 파일에 내용을 추가하고 싶다면 '>>' 문자를 사용하면 된다.
test1.txt 파일을 출력한고 '>>'을 사용해서 'ls.txt'파일 아래에 추가하는 명령을 실행했다. test1.txt의 내용이 ls.txt의 마지막 라인에 추가된 것을 확인했다.
cat /dev/null > lsls.txt : 텍스트 파일의 내용을 모두 삭제하여 빈 파일로 만든다. /dev/null 디바이스 내용을 cat명령으로 읽어서 lsls.txt 파일로 리다이렉션했다.
표준 입력 -> 파일 디스크립터 숫자는 0
표준 출력 -> 파일 디스크립터 숫자는 1
표준 에러 -> 파일 디스크립터 숫자는 2
2>&1 : 표준 출력(1)이 전달되는 곳으로 표준 에러(2)도 전달하라는 의미이다.
일반적으로 "명령 수행" > /dev/null 2>&1 로 사용하여 표준 에러 메시지도 /dev/null 디바이스로 전달하는데, 명령 수행에 대한 모든 에러와 표준 출력 메시지를 삭제한다.
linuxer.txt 파일이 존재하지 않아서 cat 명령어를 실행했을 때 표준 에러 메시지가 발생한다.
cat linuxer.txt > /dev/null 2>&1 : (2>&1) 은 표준 출력(1)으로 표준 에러(2)도 전달하라고 지정했기 때문에, cat 명령에 의한 에러 메시지도 /dev/null 디바이스로 전달되어 모니터에 아무 메시지도 출력되지 않는다. 모니터에 에러 메시지가 출력되지 않는다
존재 한지 않는 linuxer.txt 파일을 삭제하려 해서 에러 메시지가 발생했다.
rm linuxer.txt > rm_error.txt 2>&1 : rm 명령 결과의 표준 에러도 표준 출력으로 리다이렉션하도록 했으므로 에러 메시지가 rm_error.txt 파일에 저장되고 모니터에 출력되지 않는다.
표준 입력(제목)
키보드를 대신해서 파일로부터 입력을 받을 수 있다. '<' (less than sign 또는 left angle bracket)을 사용한다.
입력받은 파일의 내용을 sort 명령으로 알파벳 순서로 정렬하여 화면에 출력한다.
'리눅스 > 리눅스_입문' 카테고리의 다른 글
jobs, ps, kill (0) | 2023.04.21 |
---|---|
파이프, 파일 퍼미션 (0) | 2023.04.20 |
파일 복사, 디렉터리 이동 (0) | 2023.04.19 |
ls 명령어로 시간 포맷 변경, cd 명령어 (0) | 2023.04.18 |
1.1 리눅스와 쉘 (0) | 2023.04.17 |