Stupid Short: Bash의 |, >, >>, <, 2>>, 2> 연산자
>
, 1>
, >>
, 1>>
, <
, 2>>
, 2>>
와 같은 Bash 연산자를 빠르게 이해하기 위한 어리석고 짧은 소개 및 참조 가이드입니다. 이것은 주로 한 문장과 예제로 수행됩니다.이 가이드는 다음과 같이 가정합니다.
내용물
Note: For this blog, we will assume we are only writing and reading files.
대부분 짧은 기초
Admittedly, I never bothered to look up what the |
>
>>
and <
operators do in Linux until well into my programming career. If you've ever followed GitHub's instructions for adding an SSH key to your account, then you've already used are called Redirect Operators!
프로그램의 기초
프로그램에는 해당 번호가 있는 세 개의 입력 및 출력 스트림이 있습니다. 표준 입력(STDIN)(0), 표준 출력(STDOUT)(1) 및 표준 오류(STDERR)(2)가 있습니다.
Note: My beautiful picture is only showing convention. If you build your own program, you can effectively name streams whatever you'd like and stream to whatever output. You don't know that though. If you do, act like you don't and read on.
예: 좋은 일을 하자'ls
. 오류가 없는 경우ls
입력은 ./
이고(Bash는 현재 디렉터리가 비어 있다고 가정함) stdout은 표시되는 디렉터리 목록이고 stderr은 아무것도 아닙니다(잡아야 할 오류가 없기 때문).
프로그램은 stdout과 stderr을 모두 스트리밍합니다. 이것은 "stdout 또는 stderr"이 아니라 "stdout 및 stderr"이기 때문입니다. ls presentDir notPresentDir
를 실행하면 stdout과 stderr이 모두 표시됩니다.
기본적으로 stdout, stderr 및 stdin은 모두 터미널에 있습니다. 이러한 리디렉션 연산자를 사용하면 단순히 해당 스트림을 다른 곳으로 리디렉션할 수 있습니다.
어휘
"program": This is what executables are called in terminal. Every time you cd
or ls
, you're running a program.
cat
: Program that prints the contents of a given file.
wc -w
: Program that outputs the count of words in a file.
pbc
: My alias for xclip -selection clipboard
. For Mac folks, this is the exact same thing as pbcopy
.
pbp
: My alias for pasting clipboard.
Stupid-Short List
⭐️ The redirect operators have three numbers correlating with the output: 0 = input, 1 = output, 2 = error. If no number is given, this defaults to 1.
⭐️ If the file does not exist, these operators create the file.
> 주어진 파일에 stdout을 씁니다.
터미널에서 인쇄하는 대신 stdout을 지정된 파일로 보냅니다.
$ ls -1 > list.txt
$ cat list.txt
lubbock.txt
odessa.txt
baird.txt
>> 주어진 파일에 stdout을 추가합니다.
파일 내용을 바꾸지 않고 파일 내용에 stdout을 추가합니다.
$ echo "Flamingo" >> favorite-birds.txt
$ cat favorite-birds.txt
Cardinal
Penguin
Flamingo
< stdin으로 파일 리디렉션
파일의 내용을 stdin으로 전달합니다.
예: wc -w book.txt
를 사용하면 프로그램은 단어 수와 book.txt 파일 이름을 출력합니다(예: 2394 book.txt
).wc -w < book.txt
를 사용하면 book.txt의 내용을 입력으로 "전달"하므로 wc -w < book.txt
는 마치 터미널에 전체를 입력한 것처럼 숫자( 2394
)만 반환합니다.
$ wc -w book.txt
2394 book.txt
$ wc -w < book.txt
2394
2> : stderr을 지정된 파일로 리디렉션합니다.
오류가 있으면 터미널에서 인쇄하는 대신 표준 오류를 파일로 리디렉션하십시오.
$ ls cuteDogPics 2> example.txt
$ cat example.txt
ls: cuteDogPics: No such file or directory
2>> : 주어진 파일에 stderr을 추가합니다.
>>
및 >
와 똑같습니다. 단, stderr은 예외입니다.
$ cp ~/Documents/Reports/June2019.xlsx ~/Desktop 2>> ~/error.log
$ cat ~/error.log
cp: /Users/bananabrann/Reports/January2019.xlsx: No such file or directory
cp: /Users/bananabrann/Reports/March2019.xlsx: No such file or directory
cp: /Users/bananabrann/Reports/June2019.xlsx: No such file or directory
| : 다음 프로그램을 위해 stdout을 stdin으로 사용하십시오.
|
의 왼쪽 프로그램의 stdout을 오른쪽 프로그램의 stdin으로 사용하십시오.
$ ls -1
buffalo-gap.txt
abilene.txt
clyde.txt
lubbock.txt
$ ls -1 | head -2
buffalo-gap.txt
abilene.txt
데이지 체인 가능
|
를 사용하면 궁극적으로 원하는 결과를 얻고자 하는 만큼 많은 프로그램을 연결할 수 있습니다.
아래 그림에서 grep
프로그램의 stdout을 가져와 head
의 stdin과 해당 인수로 보냅니다. 그런 다음 해당 stdout을 tail
의 stdin으로 보낸 다음 마지막으로 stdout을 guestlist.txt로 리디렉션합니다.
이것이 누군가에게 도움이 되었거나, 누군가가 이 오퍼레이터와 함께 놀고 스스로 더 연구하는 데 관심을 갖게 되기를 바랍니다!
행복한 코딩! 🍻
Reference
이 문제에 관하여(Stupid Short: Bash의 |, >, >>, <, 2>>, 2> 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/bananabrann/stupid-short-bash-s-2-2-4n1m
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
|
>
>>
and <
operators do in Linux until well into my programming career. If you've ever followed GitHub's instructions for adding an SSH key to your account, then you've already used are called Redirect Operators!Note: My beautiful picture is only showing convention. If you build your own program, you can effectively name streams whatever you'd like and stream to whatever output. You don't know that though. If you do, act like you don't and read on.
"program": This is what executables are called in terminal. Every time you cd
or ls
, you're running a program.
cat
: Program that prints the contents of a given file.
wc -w
: Program that outputs the count of words in a file.
pbc
: My alias for xclip -selection clipboard
. For Mac folks, this is the exact same thing as pbcopy
.
pbp
: My alias for pasting clipboard.
Stupid-Short List
⭐️ The redirect operators have three numbers correlating with the output: 0 = input, 1 = output, 2 = error. If no number is given, this defaults to 1.
⭐️ If the file does not exist, these operators create the file.
> 주어진 파일에 stdout을 씁니다.
터미널에서 인쇄하는 대신 stdout을 지정된 파일로 보냅니다.
$ ls -1 > list.txt
$ cat list.txt
lubbock.txt
odessa.txt
baird.txt
>> 주어진 파일에 stdout을 추가합니다.
파일 내용을 바꾸지 않고 파일 내용에 stdout을 추가합니다.
$ echo "Flamingo" >> favorite-birds.txt
$ cat favorite-birds.txt
Cardinal
Penguin
Flamingo
< stdin으로 파일 리디렉션
파일의 내용을 stdin으로 전달합니다.
예: wc -w book.txt
를 사용하면 프로그램은 단어 수와 book.txt 파일 이름을 출력합니다(예: 2394 book.txt
).wc -w < book.txt
를 사용하면 book.txt의 내용을 입력으로 "전달"하므로 wc -w < book.txt
는 마치 터미널에 전체를 입력한 것처럼 숫자( 2394
)만 반환합니다.
$ wc -w book.txt
2394 book.txt
$ wc -w < book.txt
2394
2> : stderr을 지정된 파일로 리디렉션합니다.
오류가 있으면 터미널에서 인쇄하는 대신 표준 오류를 파일로 리디렉션하십시오.
$ ls cuteDogPics 2> example.txt
$ cat example.txt
ls: cuteDogPics: No such file or directory
2>> : 주어진 파일에 stderr을 추가합니다.
>>
및 >
와 똑같습니다. 단, stderr은 예외입니다.
$ cp ~/Documents/Reports/June2019.xlsx ~/Desktop 2>> ~/error.log
$ cat ~/error.log
cp: /Users/bananabrann/Reports/January2019.xlsx: No such file or directory
cp: /Users/bananabrann/Reports/March2019.xlsx: No such file or directory
cp: /Users/bananabrann/Reports/June2019.xlsx: No such file or directory
| : 다음 프로그램을 위해 stdout을 stdin으로 사용하십시오.
|
의 왼쪽 프로그램의 stdout을 오른쪽 프로그램의 stdin으로 사용하십시오.
$ ls -1
buffalo-gap.txt
abilene.txt
clyde.txt
lubbock.txt
$ ls -1 | head -2
buffalo-gap.txt
abilene.txt
데이지 체인 가능
|
를 사용하면 궁극적으로 원하는 결과를 얻고자 하는 만큼 많은 프로그램을 연결할 수 있습니다.
아래 그림에서 grep
프로그램의 stdout을 가져와 head
의 stdin과 해당 인수로 보냅니다. 그런 다음 해당 stdout을 tail
의 stdin으로 보낸 다음 마지막으로 stdout을 guestlist.txt로 리디렉션합니다.
이것이 누군가에게 도움이 되었거나, 누군가가 이 오퍼레이터와 함께 놀고 스스로 더 연구하는 데 관심을 갖게 되기를 바랍니다!
행복한 코딩! 🍻
Reference
이 문제에 관하여(Stupid Short: Bash의 |, >, >>, <, 2>>, 2> 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/bananabrann/stupid-short-bash-s-2-2-4n1m
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
⭐️ If the file does not exist, these operators create the file.
$ ls -1 > list.txt
$ cat list.txt
lubbock.txt
odessa.txt
baird.txt
$ echo "Flamingo" >> favorite-birds.txt
$ cat favorite-birds.txt
Cardinal
Penguin
Flamingo
$ wc -w book.txt
2394 book.txt
$ wc -w < book.txt
2394
$ ls cuteDogPics 2> example.txt
$ cat example.txt
ls: cuteDogPics: No such file or directory
$ cp ~/Documents/Reports/June2019.xlsx ~/Desktop 2>> ~/error.log
$ cat ~/error.log
cp: /Users/bananabrann/Reports/January2019.xlsx: No such file or directory
cp: /Users/bananabrann/Reports/March2019.xlsx: No such file or directory
cp: /Users/bananabrann/Reports/June2019.xlsx: No such file or directory
$ ls -1
buffalo-gap.txt
abilene.txt
clyde.txt
lubbock.txt
$ ls -1 | head -2
buffalo-gap.txt
abilene.txt
Reference
이 문제에 관하여(Stupid Short: Bash의 |, >, >>, <, 2>>, 2> 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bananabrann/stupid-short-bash-s-2-2-4n1m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)