공부/Shell

[따배쉘] 4. Bash shell과 Rules(2)

열두시공삼분 2024. 9. 10. 00:40

※ 본 내용은 따배런님의 영상을 기반으로 하였습니다.

개인적인 정리이기 떄문에 명령어 관련해서 오류가 있을 수 있음

 

 

1. Redirection

2. Pipeline

 

 

 

- Communication Channels

 

- Redirection

Communication channels Redirection characters 의미
STDIN      0< 0<< 입력을 키보드가 아닌 파일을 통해 받음
STDOUT 1> 1>> 표준 출력을 터미널이 아닌 파일로 출력
STDERR    2> 2>> 표준 에러 출력을 터미널이 아닌 파일로 출력

 

 

mailx [계정명]

계정에게 메일 보내기

mailx가 없어서 

sudo apt install mailutils 

먼저 다운

 

다 쓰고 난 뒤

Ctrl + D

 

 

키보드 입력을 파일로 저장 (1> or >)

 

 

키보드의 입력이 아닌 파일을 통한 입력 (0< or <)

 

계정 변경 su - [계정이름]

 

mailx -> 받은 메일  확인

 

 

넘버링을 이용해서 지정된 메일 확인할 수 있음

 

q로 종료

 

※ 파일 입력(0)과 파일 출력(1)은 생략할 수 있음!

 

 

1과 2는 파일형태로 출력

 

기존의 파일이 없으면 생성, 있으면 덮어쓰기가 됨.

 

덮어쓰기가 아닌 지속적으로 내용이 누적되어 생성 (>>)

 

 

 

동시에 정상적으로 존재하는 파일은 정상적으로 표시, 존재하지 않는 파일은 에러메시지 출력 

 

일반적으로 에러메시지는 아래와 같이 처리함.

 

/dev/null 

소각장같은 파일임 <- 들어가면 다 없어짐

에러메시지 지우기 위함

 

이런 형태로 Redirection 사용

 

 

 

2. Pipeline

 - 명령의 실행결과를 다음 명령의 입력으로 전달

 - 리눅스의 명령어를 조합하여 사용

 - 기호 : command1 | command2 | command3 ...

| -> (버티컬 바)

 

 

wc -l 명령어 : 총 라인 수 출력

 

버티컬 바를 기준으로 왼쪽의 명령 실행결과가 오른쪽 명령어 입력으로 들어감

 

버티컬 바를 이용하면 명령어를 묶어서 사용

 

more 명령어 : 한페이지씩 출력 - (이동) 스페이스 바 -

 

sort 명령어 : 정렬

uniq 명령어 : 중복제거

 

Pipeline의 제한된 길이는 없음. 일반적으로 자주 쓰이는 형태의 묶음 형태의 명령어를 alias로 만들어 놓으면 용이하게 사용할 수 있음.