리눅스에서 스트림은 데이터 스트림을 의미하는데, 이는 특정 순서로 읽혀진 데이터의 문자열이므로 데이터 흐름의 방향은 데이터 스트림의 읽기 순서가 됩니다. Linux 시스템이 데이터를 다른 파일로 읽은 후 출력 결과를 가져오는 프로세스를 리디렉션된 데이터 흐름이라고 합니다. Linux에서 명령을 입력하고 실행하면 화면에 두 가지 결과가 표시됩니다. 성공적인 작업 결과는 표준 출력이고, 실패한 작업 결과는 처리되지 않은 경우 표준 오류 출력입니다. 화면에 표시되고 데이터 흐름을 통해 리디렉션될 수 있습니다. 이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터. Linux에서 스트림은 데이터 흐름을 의미합니다. 스트림(데이터 스트림)은 무엇을 의미하나요? 스트림(데이터 스트림)은 특정 순서로 읽혀지는 데이터의 문자열이므로 데이터 흐름의 방향은 데이터 스트림의 읽기 순서입니다. 데이터 스트림은 원래 통신 분야에서 사용되는 개념으로, 정보 전송에 사용되는 디지털로 인코딩된 신호 시퀀스를 나타냅니다. 이 개념은 1998년 문서 87에서 Henzinger에 의해 처음 제안되었습니다. 그는 데이터 스트림을 "미리 결정된 순서로 한 번만 읽을 수 있는 데이터 시퀀스"로 정의했습니다. Linux 시스템 리디렉션 데이터 흐름은 데이터를 다른 파일로 읽은 후 출력 결과를 가져오는 것입니다. Linux 데이터 흐름 리디렉션 데이터 흐름 리디렉션은 단순히 특정 명령의 입력 데이터 소스 또는 출력 데이터를 다른 파일로 찾는 것입니다. Linux에서는 모든 것이 파일입니다. 여기에 있는 파일은 장치 파일, 일반 파일 등이 될 수 있습니다. 1.stdin stdout stderr stdin:标准输入。指的是为命令运行所提供的一些信息。stdout:标准输出。指的是命令执行所返回的正确信息。stderr: 표준 오류 출력. 명령 실행이 실패한 후 반환되는 오류 메시지를 나타냅니다. 이 세 가지와 명령의 관계는 일반적으로 다음과 같습니다. #mermaid-svg-43Q0mtxvjga7WpCa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .error-icon{ 채우기:#552222;}#mermaid-svg-43Q0mtxvjga7WpCa .error-text{fill:#552222;스트로크:#552222;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-thickness-normal{스트로크 너비:2px;}#mermaid -svg-43Q0mtxvjga7WpCa .edge-thickness-thick{스트로크 폭:3.5px;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-solid{스트로크-dasharray:0;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern- 점선{뇌졸중:3;}#mermaid-svg-43Q0mtxvjga7WpCa .edge-pattern-dotted{뇌졸중-dasharray:2;}#mermaid-svg-43Q0mtxvjga7WpCa .marker{채우기:#333333;뇌졸중:#333333;}# mermaid-svg-43Q0mtxvjga7WpCa .marker.cross{스트로크:#333333;}#mermaid-svg-43Q0mtxvjga7WpCa svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid -svg-43Q0mtxvjga7WpCa .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster-label text{fill:#333;}#mermaid -svg-43Q0mtxvjga7WpCa .cluster-label 범위{color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa .label text,#mermaid-svg-43Q0mtxvjga7WpCa 범위{fill:#333;color:#333;}#mermaid-svg- 43Q0mtxvjga7WpCa .노드 직사각형,#mermaid-svg-43Q0mtxvjga7WpCa .노드 원,#mermaid-svg-43Q0mtxvjga7WpCa .노드 타원,#mermaid-svg-43Q0mtxvjga7WpCa .노드 다각형,#mermaid-svg-43Q0mt xvjga7WpCa .node 경로{fill:#ECECFF; 스트로크:#9370DB;스트로크 폭:1px;}#mermaid-svg-43Q0mtxvjga7WpCa .node .label{text-align:center;}#mermaid-svg-43Q0mtxvjga7WpCa .node.clickable{cursor:pointer;}#mermaid-svg -43Q0MTXVJGA7WPCA .Arrowheadpath {Fill :#333333;}#Mermaid-SVG-43Q0MTXVJGA7WPCA .Edgepath .Path :#333333; Stroke-width : 2.0px;}}#Mermaid-S-gga7WARC OFCOC OFCOC# 3333 ;fill:none;}#mermaid-svg-43Q0mtxvjga7WpCa .edgeLabel{배경-색상:#e8e8e8;text-align:center;}#mermaid-svg-43Q0mtxvjga7WpCa .edgeLabel ret{불투명도:0.5;배경색상:#e8e8e8; 채우기:#e8e8e8;}#mermaid-svg-43Q0mtxvjga7WpCa .클러스터 직사각형{채우기:#ffffde;스트로크:#aaaa33;스트로크 폭:1px;}#mermaid-svg-43Q0mtxvjga7WpCa .cluster 텍스트{채우기:#333;}# mermaid-svg-43Q0mtxvjga7WpCa .cluster 범위{color:#333;}#mermaid-svg-43Q0mtxvjga7WpCa div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:" trebuchet ms",verdana,arial,sans-serif;글꼴 크기:12px;배경:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none; z-index:100;}#mermaid-svg-43Q0mtxvjga7WpCa :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ stdin stderr stdout File명령 화면/파일 화면/파일 Linux 환경에서는 명령을 입력하고 실행하면 두 가지 결과가 화면에 표시됩니다. 성공적인 작업 결과는 표준 출력이고, 다른 하나는 실패한 작업 결과입니다. 표준 오류 출력입니다. 표준 출력(STDOUT): 표준 출력은 명령 실행으로 반환된 올바른 정보를 나타냅니다. 표준 오류 출력(STDERR): 표준 오류 출력은 명령 실행으로 반환된 오류 정보를 나타냅니다. STDOUT 및 STDERR이 처리되지 않으면 화면에 표시됩니다. 데이터 흐름 리디렉션을 통해 다른 파일에 저장할 수 있습니다. 파일에 저장되는 특수 문자는 다음과 같습니다. 표준 입력 stin: 코드 0이면 7890bd8acad2b370cb75b252a5966aac或>> 标准错误输出stderr:代码为2,使用2>或2>> 2、数据流重定向的使用 stdout:标准输出重定向。这里重定向的是正确输出。 find / -name '.bashrc' > ~/out_right 该命令将正确输出定向输入到文件~/out_right。如果~/out_right不存在,则自动创建。因为没对错误信息处理,错误输出默认输出到屏幕终端上,此时终端只会显示错误输出。 stderr:标准错误输出重定向。这里重定向的是错误输出。 find / -name '.bashrc' 2> ~/out_error 该命令将错误输出定向输入到文件~/out_error。如果~/out_error不存在,则自动创建。因为没对正确信息处理,正确输出默认输出到屏幕终端上,此时终端只会显示正确输出(如果没找到指定文件,屏幕没有输出)。 stdin:一般使用标准输入来替换键盘输入。 cat > catfile db859c00cbb0db739748977c06204a68将标准输出定位到catfile文件。cat是查看文件的命令,这里直接读取文件~/.bashrc然后将其输出到catfile。3、>>,2>>,7db579a2d2a97423584af40d04c1346b>(累加):附加标准输出。cmd > file1,命令cmd将stdout输出到file1中,如果fiel1此前存在,且有数据,那么file1会事先被清空,然后写入stdout。而使用命令cmd >> file1,不会预先清空file1文件,而是直接在文件末尾加上输入的数据。 2>>(累加):附加标准错误输出。与>>相似。 3c7a0d2c602566bdef41fd9f5a160660 list 2>&1。这段代码中的2>&1可以理解为,将标准错误输出(代码为2)重定向为标准输出(代码为1)。然后> list将标准输出重定向到文件list。因为标准错误输出被定向为标准输出,所以最后所有输出都被定向到文件list 를 사용하세요. 표준 출력 stout: 코드가 1이면 > 또는 >>🎜🎜표준 오류 출력 stderr: 코드는 2입니다. 2> 또는 2>>를 사용하세요. 🎜🎜🎜🎜🎜2. 데이터 흐름 리디렉션 사용🎜 🎜 stdout code>: 표준 출력 리디렉션. 여기서 리디렉션되는 내용은 올바른 출력입니다. 🎜🎜rrreee🎜이 명령은 올바른 출력을 ~/out_right 파일로 보냅니다. ~/out_right가 없으면 자동으로 생성됩니다. 오류 메시지가 처리되지 않기 때문에 기본적으로 오류 출력이 화면 터미널에 출력됩니다. 이때 터미널에는 오류 출력만 표시됩니다. 🎜🎜stderr: 표준 오류 출력 리디렉션. 여기서 리디렉션되는 것은 오류 출력입니다. 🎜🎜rrreee🎜이 명령은 오류 출력을 ~/out_error 파일로 지정합니다. ~/out_error가 없으면 자동으로 생성됩니다. 올바른 정보가 처리되지 않기 때문에 기본적으로 올바른 출력이 화면 터미널에 출력됩니다. 이때 터미널은 올바른 출력만 표시합니다(지정된 파일을 찾을 수 없는 경우 화면에 출력되지 않습니다). . 🎜🎜stdin: 일반적으로 키보드 입력을 대체하기 위해 표준 입력을 사용합니다. 🎜🎜rrreee🎜cat 명령 뒤에 매개변수가 없으면 cat은 키보드에서 데이터를 읽습니다. 표준 입력을 사용하여 입력 소스를 ~/.bashrc 파일로 지정합니다. 그런 다음 >를 통해 catfile 파일에 대한 표준 출력을 찾으세요. cat는 파일을 보기 위한 명령입니다. 여기서는 ~/.bashrc 파일을 직접 읽어 catfile로 출력합니다. 🎜🎜🎜3、>>,2>>,< ;056eac96cce4b95cb84adc31a789fdf2>(누적): 표준 출력을 추가합니다. cmd > file1, cmd 명령은 fiel1인 경우 stdout을 file1로 출력합니다. >이전에 존재하고 데이터가 있는 경우 file1은 미리 지워진 다음 stdout에 기록됩니다. cmd >> file1 명령을 사용하면 file1 파일이 미리 삭제되지 않지만 입력 데이터가 파일 끝에 직접 추가됩니다. 🎜🎜2>> (누적): 표준 오류 출력을 추가합니다. >>와 유사합니다. 🎜🎜580d50265a9ae99462ea27215a865e7f list 2>&1을 사용합니다. 이 코드의 2>&1은 표준 오류 출력(코드 2)을 표준 출력(코드 1)으로 리디렉션하는 것으로 이해될 수 있습니다. 그런 다음 > list는 표준 출력을 list 파일로 리디렉션합니다. 표준 오류 출력은 표준 출력으로 지정되므로 모든 출력은 궁극적으로 list 파일로 지정됩니다. 🎜🎜관련 추천: "🎜Linux 비디오 튜토리얼🎜"🎜