Bash shell의 Rules(2)
1. Redirection
(1) Communication Channels
프로그램이 키보드를 통해 입력을 받고 터미널을 통해 출력하여 사용자에게 보여줌.
- 표준 입력 : Keyboard - 0번은 키보드로 연결
- 표준 출력 : Terminal - 1번이 키보드로 연결
- 표준 에러 : Terminal - 2번이 키보드로 연결
배쉬 셸은 번호를 붙여서 관리 함.
이것의 방향을 바꿔버린 다는 것이 Redirection 의 개념.
(2) Redirection
보통 입력은 키보드를 통해서 이루어진다. 하지만, 파일을 이용해서 입력을 받을 때, 이것을 "파일 리다이렉션" 이라 한다.
$ echo "This is TEST" > test.txt
$ mailx -s "Test Mail" centos@localhost 0< test.txt
// 키보드를 통해서 입력 받았던 상태가 test.txt 파일을 통해서 입력받는 형태로 바뀐다.
// 0< 대신 < 으로 0을 생략해도 된다.
$ mailx -s "Test Mail" centos@localhost < test.txt
명령어를 입력하면 일반적으로 결과를 터미널을 통해 사용자에게 출력한다.
이것을 터미널이 아닌 파일을 통해 출력할 수 있다.
$ date 1> date.out
$ date > date.out
그러나, 이전의 것을 그대로 둔 채, 기존 내용에 추가를 하고 싶다면 '>>' 를 이용하면 된다.
$ date >> date.out
다음으로, 에러 메시지의 방향을 바꿔보자.
$ ls a.txt
// 해당 파일이 없으므로 에러 메시지가 터미널에 출력된다.
$ ls a.txt 2> error.txt
에러 메시지가 파일에 출력된다.
2. Pipeline
여러 개의 명령어를 조합해서 사용할 수 있는 기능. 명령어1의 실행 결과를 명령어2에 넣어주는 것.
- 명령의 실행 결과를 다음 명령의 입력으로 전달.
- 리눅스의 명령어를 조합하여 사용
- 기호 : command1 | command2 | command3
$ ls -l | wc -l
// ls -l 명령어의 결과를 wc -l 에 전달.
// 즉, 현재 디렉토리의 파일의 개수를 Count 한다.
$ ls -l | more
// ls -l 의 결과를 한 페이지 씩 출력.
$ cat /etc/passwd | cut -d: -f 1 | sort | wc -l
// /etc/passwd 파일 내용을 출력
// 그 결과를 cut -d: (':'을 분리 문자) -f 1 (-f 첫 번째 필드를) 출력
// 그 결과를 sort
// 그 결과를 count
$ alias usercount='cat /etc/passwd | cut -d: -f 1 | sort | wc -l
$ usercount
// 위의 내용을 alias에 저장하여 사용해도 편리함.
● Reference
https://www.youtube.com/watch?v=lhtdmcYllfA&list=PLApuRlvrZKog2XlvGJQh9KY8ePCvUG7Je&index=5
'OS > Linux Server' 카테고리의 다른 글
[Shell Programming] 6. Positional Parameters (0) | 2022.03.07 |
---|---|
[Shell Programming] 5. Bash shell Script (0) | 2022.03.02 |
[Linux] Disk 추가 (0) | 2022.02.17 |
[Linux] CentOS 7 부팅 시 자동 시작 명령어 혹은 스크립트 적용 (0) | 2022.02.16 |
[Shell Programming] 3. Bash shell의 Rules (0) | 2022.02.15 |