System
리눅스 리다이렉션, 파이프
Ohs_
2021. 1. 6. 15:08
리다이렉션(Redirection)
리다이렉션은 표준 출력을 사용자가 원하는 것으로 바꿀 수 있는 것이다. 예를 들면 특정 명령 수행할 때 해당 명령이 화면에 출력되는 것이 아닌 파일로 출력하고 싶을 때 사용할 수 있다.
위의 그림은 ps -a 명령을 그냥 실행한 경우와 리다이랙션을 이용하여 출력방향을 바꾼 경우이다. test라는 파일로 리다이렉션한 결과 test 파일이 생성된 것을 확인할 수 있다. test 파일의 내용은 다음과 같다.
이처럼 리다이렉션은 표준 출력의 방향을 바꿀 수 있다. 리다이렉션과 여러 명령어들을 조합하여 원하는 값만 파일로 출력하게 만들 수 있다.
[1,2]> | 출력 방향을 전환하여 파일이 없으면 새로 만든다. 앞의 숫자 [1,2]를 넣을 수 있는데 1은 일반적인 표준 출력을 의미한다. 출력될 모든 내용이 그대로 리다이렉션되는 것이다. 2로 설정하면 출력 중 오류 메시지만 리다이렉션한다. 2의 사용 예로는 find 명으로 들 수 있다. find 명령을 통해 파일 탐색 시 권한제한 메시지들이 나올 때가 있는데 이 메시지들을 /dev/null로 리다이랙션하면 불필요한 메시지들은 제거되고 일치하는 값들만 볼 수 있다. |
[1,2]>> | 지정된 파일에 내용을 덮어쓴다. |
파이프(Pipe)
파이프는 앞의 명령의 수행 결과를 뒤의 명령으로 넘기고 이어서 명령을 수행하게 만드는 것이다. 예를 들면 로그파일에서 특정 시간대의 로그 기록을 보고싶을 때 cat 등의 명령으로 출력 후 번거롭게 찾아야 되거나 수행해야 하는 과정이 많아질 수 있다. 이때 파이프를 이용하면 cat 명령의 결과를 grep 명령으로 넘겨서 원하는 값을 필터링할 수 있을 것이다.
위 그림처럼 ps -ef 명령의 결과를 파이프 뒷쪽의 grep 명령으로 넘겨서 grep 명령이 이어서 실행된다.
반응형