가장 중요한 것 중 하나와 Linux 관리의 흥미로운 주제 I/O 리디렉션입니다. 명령줄의 이 기능을 사용하면 파일에서 및/또는 파일로 명령의 입력 및/또는 출력을 리디렉션하거나 파이프를 사용하여 여러 명령을 결합하여 "명령 파이프라인”.
우리가 실행하는 모든 명령은 기본적으로 두 가지 종류의 출력을 생성합니다.
Linux 및 기타 유닉스 계열 시스템에는 파일 설명자 번호를 사용하여 셸에서 식별되는 아래에 세 개의 기본 파일이 있습니다.
따라서 I/O 리디렉션을 사용하면 명령의 입력 소스와 출력 및 오류 메시지가 전송되는 위치를 변경할 수 있습니다. 그리고 이것은 “ 그리고
“>”
리디렉션 연산자.
아래 예와 같이 표준 출력을 리디렉션할 수 있습니다. 여기에는 최고 명령 추후 검사를 위해:
$ top -bn 5 >top.log.
플래그:
-NS
– 활성화 맨 위 출력을 파일이나 다른 명령으로 리디렉션할 수 있도록 일괄 처리 모드에서 실행합니다.-NS
– 명령이 종료되기 전의 반복 횟수를 지정합니다.의 내용을 볼 수 있습니다. top.log
파일을 사용하여 고양이 명령 다음과 같이:
$ 고양이 top.log.
명령의 출력을 추가하려면 다음을 사용하십시오. “>>”
운영자.
예를 들어 출력을 추가하려면 최고 명령 위의 top.log 특히 스크립트 내에서(또는 명령줄에서) 파일에 아래 줄을 입력합니다.
$ top -bn 5 >>top.log.
메모: 파일 설명자 번호를 사용하여 위의 출력 리디렉션 명령은 다음과 같습니다.
$ top -bn 5 1>top.log.
명령의 표준 오류를 리디렉션하려면 파일 설명자 번호를 명시적으로 지정해야 합니다. 2
쉘이 수행하려는 작업을 이해하도록 합니다.
예를 들어 ls 명령 아래는 루트 권한이 없는 일반 시스템 사용자가 실행할 때 오류를 생성합니다.
$ ls -l /루트/
다음과 같이 표준 오류를 파일로 리디렉션할 수 있습니다.
$ ls -l /root/ 2>ls-error.log. $ 고양이 ls-error.log
표준 오류를 추가하려면 아래 명령을 사용하십시오.
$ ls -l /root/ 2>>ls-error.log.
명령의 모든 출력(표준 출력 및 표준 오류 모두)을 단일 파일로 캡처하는 것도 가능합니다. 이것은 파일 설명자 번호를 지정하여 두 가지 가능한 방법으로 수행할 수 있습니다.
1. 첫 번째는 다음과 같이 작동하는 비교적 오래된 방법입니다.
$ ls -l /root/ >ls-error.log 2>&1.
위의 명령은 쉘이 먼저 출력을 보낼 것임을 의미합니다. ls 명령 파일에 ls-error.log (사용 >ls-error.log
), 모든 오류 메시지를 파일 설명자에 씁니다. 2 파일로 리디렉션된 (표준 출력) ls-error.log (사용 2>&1
). 표준 오류도 표준 출력과 동일한 파일로 전송된다는 의미입니다.
2. 두 번째이자 직접적인 방법은 다음과 같습니다.
$ ls -l /root/ &>ls-error.log.
다음과 같이 단일 파일에 표준 출력 및 표준 오류를 추가할 수도 있습니다.
$ ls -l /root/ &>>ls-error.log.
모든 명령은 아니지만 대부분의 명령은 표준 입력에서 입력을 받으며 기본적으로 표준 입력은 키보드에 연결됩니다.
키보드 이외의 파일에서 표준 입력을 리디렉션하려면 다음을 사용하십시오. “ 아래와 같이 연산자:
$ 고양이표준 입력/출력을 파일로 리디렉션하는 방법
다음을 사용하여 표준 입력, 표준 출력 리디렉션을 동시에 수행할 수 있습니다. 정렬 명령 아래:
$ 정렬정렬.출력. 파이프를 사용하여 I/O 리디렉션을 사용하는 방법
한 명령의 출력을 다른 명령의 입력으로 리디렉션하기 위해 파이프를 사용할 수 있습니다. 이는 복잡한 작업에 유용한 명령줄을 구축하는 강력한 수단입니다.
예를 들어 아래 명령은 최근에 수정된 상위 5개 파일 나열.
$ ls -lt | 머리 -n 5여기에서 옵션:
-엘
– 긴 목록 형식 가능-NS
– 최신 파일로 수정 시간별로 정렬 먼저 보여진다-NS
– 표시할 헤더 행의 수를 지정합니다.파이프라인 구축을 위한 중요 명령
여기에서 명령 파이프라인을 구축하기 위한 두 가지 중요한 명령을 간략하게 검토할 것입니다.
xargs 표준 입력에서 명령줄을 빌드하고 실행하는 데 사용됩니다. 다음은 다음을 사용하는 파이프라인의 예입니다. xargs, 이 명령은 Linux의 여러 디렉토리에 파일 복사:
$ echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh.그리고 옵션:
-n 1
– xargs가 명령줄당 최대 하나의 인수를 사용하도록 지시하고 cp 명령cp
– 파일을 복사합니다.-V
– 복사 명령의 진행률을 표시합니다..더 많은 사용 옵션 및 정보는 xargs 매뉴얼 페이지:
$ 남자 xargsNS 티 명령은 표준 입력에서 읽고 표준 출력 및 파일에 씁니다. 우리는 방법을 보여줄 수 있습니다 티 다음과 같이 작동합니다:
$ echo "tee 명령이 어떻게 작동하는지 테스트 중" | 티 파일1파일 또는 텍스트 필터 일반적으로 파이프와 함께 사용됩니다. 효과적인 Linux 파일 작업, 명령의 출력을 재구성하는 것과 같은 강력한 방법으로 정보를 처리하기 위해(이는 유용한 Linux 보고서 생성), 파일의 텍스트 및 기타 여러 수정 Linux 시스템 관리 작업.
Linux 필터 및 파이프에 대해 자세히 알아보려면 이 기사를 읽으십시오. Apache 서버에 액세스하는 상위 10개 IP 주소 찾기는 필터와 파이프를 사용하는 유용한 예를 보여줍니다.
이 기사에서는 Linux에서 I/O 리디렉션의 기본 사항을 설명했습니다. 아래 피드백 섹션을 통해 생각을 공유하는 것을 잊지 마십시오.