일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 데이터통신
- 북클럽
- 노개북
- 리스트
- 라우팅
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- 파이썬 연산자
- 기억장치
- GIT
- 이것이 취업을 위한 코딩 테스트다
- 파이썬 정렬
- IT5분잡학사전
- sort()
- DP
- OSI7계층모델
- 컴퓨터 동작방식
- RARP
- 이것이 취업을 위한 코딩테스트다
- 쿠키
- CS
- icmp
- data type
- 파이썬 자료형
- 컴퓨터네트워크
- 데이터 통신과 컴퓨터 네트워크
- 자료형
- 이코테
- 노마드코더
- 시스템 소프트웨어
- ARP
- Today
- Total
뚝딱햄 탈출기
[CS][Linux] 리다이렉션 본문
EliceAcademy - <실전 압축 컴퓨터 개론> 03. 리눅스 다루기 강의 내용 정리
리다이렉션
1. 표준 스트림
컴퓨터 프로그램과 그 외부에 연결된 입출력 통로.
외부 입력 → 키보드로 입력받은 값, 외부 출력 → 터미널에서 출력되는 값.
표준스트림의 종류
입력(0), 출력(1), 에러(2)
2. 리다이렉션
표준 입출력 스트림의 흐름을 바꿔줌.
2-1. 출력 리다이렉션
'>' 을 이용.
ls-al > file-list.txt # 파일 목록을 새로운 파일에 저장
cat file-list.txt # cat 명령어를 통해 파일 내용 출력
echo apple > fruit.txt # fruit.txt 는 문자열이 저장되어 있는 파일.
# 'echo apple'은 "apple"이라는 문자를 출력하는 명령어.
# "apple" 문자를 "fruit.txt" 파일에 새롭게 저장함.
# 따라서, "fruit.txt" 파일을 새로 생성해 "apple"이라는 텍스트를 입력하고 저장함.
'>>' 을 이용한 리다이렉션도 가능.
기존의 파일 내용을 유지한 채 이어붙일 수 있음.
echo add line >> file-list.txt # echo는 텍스트를 출력하는 명령어.
cat file-list.txt
# 문자열이 저장되어 있는 파일인 "file-list.txt"의 맨 마지막 줄에 add line이 이어붙여져서 출력됨.
# 파일 새로 생성 X. 기존의 파일 내용 유지.
2-2. 입력 리다이렉션
'<' 을 이용.
Here Document : 여러 줄의 텍스트를 입력해 특정 명령어에 인자로 전달하는 방법.
cat << EOF > test.txt
cat > test.txt << EOF
# 둘 다 결과는 같음.
# cat << EOF 를 통해 사용자에게 입력을 받고(사용자가 'EOF'를 입력할 때까지) cat로 출력.
# 출력한 내용을 test.txt로 리다이렉션.
# text.txt 파일엔 입력받은 내용들이 저장됨.
# EOF란 End Of File의 약자.
3. 리다이렉션 예제
3-1.
'echo hello' 명령어를 통해 문자열 "hello" 출력되고, 이를 리다이렉션으로 "hello.txt" 파일에 저장.
이 때, "hello.txt" 파일이 새롭게 생성되고 문자열 "hello" 가 저장된다. 따라서 'cat hello.txt' 명령어를 입력하면 hello 라는 문자열만 출력된다.
'ls -al > file-list.txt' 명령어를 통해 ls 명령어를 통한 출력 결과를 "file-list.txt" 파일에 저장.
'cat file-list.txt' 명령어를 통해 "file-list.txt" 파일이 새롭게 생성되고 출력 결과가 이 파일에 저장되었음을 알 수 있다.
'echo add line >> file-list.txt' 명령어에 쓰인 '>>' 는 기존의 파일 내용을 유지한 상태로 이어붙일 수 있는 리다이렉션이다. 따라서 'cat file-list.txt' 명령어 실행시 새로운 파일이 생성되고 "add line" 만이 출력되는 것이 아니라, 위의 출력 결과가 출력되고 맨 마지막 줄에 "add line" 문자열이 추가되어 출력되었음을 알 수 있다.
'ls file-list.txt' 명령어는 "file-list.txt" 파일만 보여주지만,
'ls < file-list.txt' 명령어는 위에서 'cat file-list.txt' 명령어를 통해 확인 가능했던 "file-list.txt" 파일 안의 파일들의 txt 값이 ls에 전달(입력)되어 출력된다.
3-2.
'cat << EOF > redirection.txt' 명령어는 명령어에서 지정한 "EOF"가 입력되기 전까지 txt를 입력받고, "EOF"가 입력되면 입력이 종료됨.
입력받은 값들은 'cat' 명령어에 전달(입력)되어 출력되는데, '<<' 이기 때문에 입력받은 값들이 모두 출력된다. (EOF 제외)
출력된 값은 "redirection.txt" 라는 새로운 파일에 저장된다.
3-3.
"elice"라는 단어가 입력되기 전까지 txt를 입력받고, "elice"가 입력되면 입력이 종료된다.
2번 예제와 같은 유형의 문제.
'CS + OS' 카테고리의 다른 글
[CS][Linux] 리눅스 다루기 : 파이프, 프로세스, 마운트 (0) | 2023.07.26 |
---|---|
[CS] 운영체제 : 프로세스, 스레드, 커널, 셸 (0) | 2023.07.25 |
[CS] 컴퓨터 구조 : 기계어/어셈블리어/고급언어, 기억장치, CPU, 동작 흐름, 시스템 버스 (0) | 2023.07.25 |
[CS] 소프트웨어 : 시스템/프로그래밍/응용 소프트웨어, 소프트웨어 생명주기, 데이터, 트랜지스터, 데이터 단위 (5) | 2023.07.25 |
[CS] 컴퓨터 시스템 구조 : 동작 방식, 하드웨어, CPU/HDD/RAM/그래픽카드/GPU (0) | 2023.07.24 |