--------------입력---------------->
사람 <-----> 운영체제 <----> 컴퓨터
<-------------출력----------------
0
으로 표현한다.1
으로 표현한다.2
으로 표현한다.리눅스는 모든 데이터를 파일로 관리한다. 파일 디스크립터란 파일을 처리하기 위한 아이디이다.
출력 결과를 특정 파일에 저장하며 명령어 결과를 파일에 저장하고 싶을 때 사용한다.
pwd > pwd_result
/home/kali/redirection_test
pwd >> pwd_result # 꺽쇠를 2번 사용하면 이어서 쓸 수 있다.
/home/kali/redirection_test
/home/kali/redirection_test
pwd > pwd_result
명령어는 표준 출력, 1
이 생략되어 있다.
find / -name "rockyou.txt.gz"
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/openvas/gnupg’: Permission denied
find: ‘/etc/ssl/private’: Permission denied
find / -name "rockyou.txt.gz" 2> /tmp/errorMsg
명령어에서 2>
는 표준 에러를 의미하며 에러 결과를 /tmp/errorMsg
파일에 리다이렉션 하라는 의미이다.
# 에러 메시지를 errorMsg 파일로 리다이렉션한다.
find / -name "rockyou.txt.gz" 2> /tmp/errorMsg
/usr/share/wordlists/rockyou.txt.gz
# 에러 메시지를 리다이렉션 후 날려버리기 때문에 파일 생성이 필요없다.
find / -name "rockyou.txt.gz" 2> /dev/null
/usr/share/wordlists/rockyou.txt.gz
출력 입력 출력
프로세스 ==> 파이프 ==> 프로세스 ==>
어떤 프로세스의 출력을 다른 프로세스의 입력으로 넣어주고 싶을 때 사용한다.
Ex) ls /bin | grep "find"
ls /bin
명령어를 사용하면 bind 디렉토리의 모든 파일이 출력되기 때문에, 찾고 싶은 파일을 찾을 수 없다.
이러한 경우, | grep [찾는 문자열]
을 사용하면 /bin
디렉토리 출력 결과에서 grep
명령어로 찾는 문자열과 일치하는 결과만 출력한다. 따라서 ls /bin | grep "find"
명령어를 사용하면 아래와 같이 find
문자열을 포함한 파일만 출력한다.