2025. 3. 19. 12:41ㆍ보안/Linux
Kali Linux 기초 가이드는 normaltic 강의를 참고하여 제작하였습니다.
1. Redirection (리다이렉션)란?
방향을 바꾸다, 즉 리눅스에서 데이터 스트림을 파일로 저장하거나, 특정 위치로 전달 할 수 있다.
1. 출력 리다이렉션 (>, >>)
📌 출력 결과를 파일로 저장
ls > test.txt
ls 실행 결과를 test.txt에 저장 (덮어쓰기)
📌 출력 결과를 파일에 추가
ls >> test.txt
기존 test.txt에 ls 실형 결과를 추가 (덮어쓰기 X)
2. 오류 리다이렉션 (2>, 2>>)
📌 에러 메시지를 파일로 저장
ls textfile 2> error.log
에러 메시지만 error.log에 저장 (덮어쓰기)
📌 에러 메시지를 기존 파일에 추가
ls textfile 2>> error.log
기본 error.log 파일에 에러 메시지 추가 저장 (덮어쓰기X)
3. 출력과 오류 함께 저장 (&>, 2>&1)
📌 표준 출력과 오류를 하나의 파일에 저장
ifconfig &> output.log
또는
ifconfig > output.log 2>&1
출력과, 에러를 output.log에 저장
4. 입력 리다이렉션 (<)
📌 파일을 명령어의 입력으로 사용
sort < test.txt
test.txt의 내용을 sort 명령어에 입력하여 정령
📌 입력을 파일에서 가져와 출력 저장
cat < input.txt > output.txt
input.txt의 내용을 output.txt에 저장
실습
먼저, redirection_test 라는 디렉토리를 만들어서 안에 This is Test File 이라고 적힌 redirection_test.txt 파일을 만들어 줍시다.
여기서 cat 명령어로 This is Test File 이라는 걸 읽을 수 있죠? 이 결과가 바로 standard output (표준 출력)으로 화면에 나온것이라고 할 수 있습니다.
한번 > 를 사용 해서 결과를 저장해 봅시다!
이와 같이 리다이렉션을 사용해서 데이터 스트림 흐름을 변경 한 것을 볼 수있고, 그 데이터가 dst_file 파일 안에 저장된 것을 확인 할 수 있습니다.
이번엔 IP 주소를 확인 해서 그 내용을 저장해 보겠습니다.
ifconfig > ip
이런식으로 표준 출력 되는 방향을 > 리다이렉션을 통해서 ip로 이동 시킨 걸 확인 할 수있습니다.
이 방식은 아까 덮어쓰기로 내용이 삭제 된 다고 했었는데요, 이번엔 추가를 시켜 보겠습니다.
ifconfig >> ip
이런 식으로 기존 내용은 그대로 있고, 내용이 추가 된 것을 확인 할 수있습니다!
여기서 아까 배웠던 데이터 스트림에서 FD 값이 있다고 했었는데요, 이 값은 > 앞에 숫자 1 이 숨어 있다고볼 수 있습니다.
즉 ifconfig 1> ip 이런 식으로 해도 된다는 것이죠!
다음으로 에러 메시지를 출력해 볼 건데요, 먼저 kali 계정으로 전환해서 rockyou.txt.gz 라는 파일을 한번 찾아 봅시다!
find / -name "rockyou.txt.gz"
이런 식으로 막 뜨게 되는데, 여기서 에러 메시지만 출력 하고 싶다면?
바로 표준 에러인 2> 을 쓰면 되는 것이죠!
find / -name "rockyou.txt.gz" 2> /tmp/error_msg
이런 식으로 /tmp/error_msg 에 저장된 것을 확인 할 수 있습니다.
에러 메시지를 저장 하기 싫을 때는, Windows에 쓰레기통 같은 곳이 있습니다!
바로 /dev/null 인데, 여기에 저장하게되면 따로 에러파일을 저장하지 않고 날릴 수 있습니다!
즉 정리해보자면,
- 리다이렉션은 명령어의 입출력 방향을 변경 하여, 데이터를 파일이나 다른 명령어로 전달한다.
- >는 표준 출력을 파일에 저장, >>는 파일에 추가 저장한다.
- <는 파일을 표준 입력으로 사용하며, 명령어가 파일 내용을 읽도록 한다.
- 2> 는 표준 오류를 파일에 저장, &> 또는 2>&1은 출력과 오류를 함께 저장한다.
- /dev/null을 사용하면 출력이나 오류를 저장하지 않고 날릴 수 있다.
'보안 > Linux' 카테고리의 다른 글
Kali Linux 기초 Part. 19 PIPE(파이프) (0) | 2025.03.19 |
---|---|
Kali Linux 기초 Part. 17 데이터 스트림 (Data Stream) (0) | 2025.03.19 |
Kali Linux 기초 Part. 16 특수 권한 (0) | 2025.03.19 |
Kali Linux 기초 Part. 15 UID (User ID) & GID (Group ID) (0) | 2025.03.18 |
Kali Linux 기초 Part. 14 MOVE 이동 (0) | 2025.03.18 |