RHCSA 시리즈: 파일 및 디렉터리 관리 수행 방법 - 2부
RHCSA 파트 2: 파일 및 디렉토리 관리 기사에서는 시스템 관리자의 일상적인 작업에 필요한 몇 가지 필수 기술을 검토합니다.
파일 및 디렉터리 생성, 삭제, 복사 및 이동
파일 및 디렉터리 관리는 모든 시스템 관리자가 보유해야 하는 중요한 역량입니다. 여기에는 텍스트 파일(각 프로그램 구성의 핵심)과 디렉터리(파일 및 기타 디렉터리를 구성할 위치)를 처음부터 생성/삭제하고 기존 파일의 유형을 알아내는 기능이 포함됩니다.
touch 명령은 빈 파일을 생성하는 것뿐만 아니라 기존 파일의 액세스 및 수정 시간을 업데이트하는 데에도 사용할 수 있습니다.
file [파일 이름]
을 사용하여 파일 유형을 확인할 수 있습니다. 이는 편집하기 위해 선호하는 텍스트 편집기를 실행하기 전에 유용합니다.
rm [파일 이름]
을 눌러 삭제하세요.
디렉터리의 경우 mkdir [디렉터리]
를 사용하여 기존 경로 내에 디렉터리를 생성하거나 mkdir -p [/full/path/to/directory]
를 사용하여 전체 경로를 생성할 수 있습니다.
디렉터리를 제거하려면 rmdir [directory]
명령을 실행하기 전에 해당 디렉터리가 비어 있는지 확인하거나 더 강력한(조심해서 처리하세요!) rm -rf 명령을 사용해야 합니다. [디렉토리]
. 이 마지막 옵션은 [디렉터리]
와 그 내용을 모두 강제로 제거하므로 이에 대한 책임은 사용자에게 있습니다.
입력 및 출력 리디렉션과 파이프라이닝
명령줄 환경은 명령의 입력 및 출력을 파일에서 파일로 리디렉션하고 명령 출력을 다른 파일로 보낼 수 있는 두 가지 매우 유용한 기능을 제공합니다. 리디렉션과 파이프라이닝이 각각 가능합니다.
이 두 가지 중요한 개념을 이해하려면 먼저 *nix라는 단어 의미에서 실제로 특수 파일인 문자의 I/O(입력 및 출력) 스트림(또는 시퀀스)의 가장 중요한 세 가지 유형을 이해해야 합니다.
- 표준 입력(일명 stdin)은 기본적으로 키보드에 연결되어 있습니다. 즉, 키보드는 명령줄에 명령을 입력하는 표준 입력 장치입니다.
- 표준 출력(또는 stdout)은 기본적으로 명령 출력을 "수신"하여 화면에 표시하는 장치인 화면에 연결됩니다.
- 표준 오류(일명 stderr)는 기본적으로 명령의 상태 메시지가 화면으로 전송되는 곳입니다.
다음 예에서는 ls /var
의 출력이 stdout(화면)으로 전송되고 ls /tecmint의 결과도 전송됩니다. . 그러나 후자의 경우 stderr가 표시됩니다.
이러한 특수 파일을 보다 쉽게 식별하기 위해 해당 파일에 액세스하는 데 사용되는 추상 표현인 파일 설명자가 각각 할당됩니다. 이해해야 할 중요한 점은 다른 파일과 마찬가지로 이러한 파일도 리디렉션될 수 있다는 것입니다. 이것이 의미하는 바는 파일이나 스크립트의 출력을 캡처하여 다른 파일, 명령 또는 스크립트에 입력으로 보낼 수 있다는 것입니다. 이를 통해 나중에 처리하거나 분석하기 위한 명령 출력 등을 디스크에 저장할 수 있습니다.
stdin(fd 0), stdout(fd 1) 또는 stderr(fd 2)를 리디렉션하려면 다음 연산자를 사용할 수 있습니다.
- Redirection Operator
효과
- >
표준 출력을 포함하는 파일로 표준 출력을 리디렉션합니다. 대상 파일이 있으면 덮어쓰게 됩니다.
- >>
표준 출력을 파일에 추가합니다.
- 2>
표준 오류를 표준 출력이 포함된 파일로 리디렉션합니다. 대상 파일이 있으면 덮어쓰게 됩니다.
- 2>>
기존 파일에 표준 오류를 추가합니다.
- &>
표준 출력과 표준 오류를 모두 파일로 리디렉션합니다. 지정된 파일이 있으면 덮어쓰게 됩니다.
- <
지정된 파일을 표준 입력으로 사용합니다.
- <>
-
지정된 파일은 표준 입력과 표준 출력 모두에 사용됩니다.
리디렉션과 달리 파이프라인은 명령 뒤와 다른 명령 앞에 수직 막대 (|)
를 추가하여 수행됩니다.
기억하다:
- 리디렉션은 명령의 출력을 파일로 보내거나 파일을 명령의 입력으로 보내는 데 사용됩니다.
- 파이프라이닝은 명령의 출력을 다른 명령에 입력으로 보내는 데 사용됩니다.
리디렉션 및 파이프라이닝의 예
예제 1: 명령 출력을 파일로 리디렉션
파일 목록을 반복해야 하는 경우가 있습니다. 그렇게 하려면 먼저 해당 목록을 파일에 저장한 다음 해당 파일을 한 줄씩 읽을 수 있습니다. ls의 출력을 직접 반복할 수 있다는 것은 사실이지만 이 예는 리디렉션을 설명하는 데 사용됩니다.
ls -1 /var/mail > mail.txt
예 2: stdout 및 stderr을 모두 /dev/null로 리디렉션
stdout과 stderr이 모두 화면에 표시되는 것을 방지하려면 두 파일 설명자를 /dev/null
로 리디렉션할 수 있습니다. 동일한 명령에 대해 리디렉션이 구현되면 출력이 어떻게 변경되는지 확인하세요.
ls /var /tecmint
ls /var/ /tecmint &> /dev/null
예제 3: 파일을 명령에 대한 입력으로 사용
cat 명령의 고전적인 구문은 다음과 같습니다.
cat [file(s)]
올바른 리디렉션 연산자를 사용하여 파일을 입력으로 보낼 수도 있습니다.
cat < mail.txt
예 4: 명령의 출력을 다른 명령의 입력으로 보내기
큰 디렉터리나 프로세스 목록이 있고 특정 파일이나 프로세스를 한눈에 찾을 수 있도록 하려면 목록을 grep으로 파이프라인하는 것이 좋습니다.
다음 예에서는 파이프라인을 사용합니다. 첫 번째는 필수 키워드를 찾는 반면, 두 번째는 결과에서 실제 grep 명령
을 제거합니다. 이 예에서는 Apache 사용자와 관련된 모든 프로세스를 나열합니다.
ps -ef | grep apache | grep -v grep