Linux에서 tee 명령을 사용하는 방법
주요 시사점
- Linux의 “tee” 명령은 명령 출력을 파일에 저장하는 동시에 터미널에도 표시합니다.
- 또한 여러 파일에 동시에 출력을 쓸 수 있으므로 시스템 로그를 쉽게 백업하고 추적할 수 있습니다.
- “tee” 명령은 파이핑을 통해 다른 명령과 함께 사용할 수도 있습니다. 이를 통해 출력을 파일에 저장하는 동안 추가 처리가 가능해집니다. 예를 들어 다음 명령에서 “ls”와 함께 사용할 수 있습니다. “ls ~ | 티리스트.txt”
이 tee
명령은 나중에 검토할 수 있도록 명령 출력을 저장할 수 있습니다. 이 명령은 출력을 화면에 표시할 뿐만 아니라 별도의 로그 파일 에도 기록합니다 . 시간 경과에 따른 디스크 공간 사용량을 추적할 수 있도록 df 명령 의 출력을 파일에 저장한다고 가정해 보겠습니다 . 이 명령은 프로세스 기록을 유지 관리하므로 프로세스 문제를 해결하는 데 도움이 됩니다.
Linux에서 tee 명령은 무엇입니까?
Linux tee
명령은 Linux에서 시간을 절약하고 효율성을 향상시키는 데 유용한 도구입니다. 표준 입력(stdin)을 읽고 표준 출력(stdout) 과 사용자가 지정한 파일 에 쓸 수 있습니다. 이 tee
명령은 물을 두 방향으로 나누는 T자형 파이프처럼 작동합니다. 이를 통해 프로그램의 출력을 보고 동시에 파일에 저장할 수 있습니다.
이 tee
명령은 두 가지 작업을 함께 수행합니다. 선택한 파일이나 변수에 출력을 복사하여 표시할 수 있습니다. 이 명령은 출력을 다른 위치로 보내기 위해 쉘 스크립트 및 터미널 명령 에도 사용됩니다 . tee
명령을 사용하여 백업을 만들고 , 스크립트에서 오류를 찾고, 시스템 로그를 추적할 수 있습니다.
이 명령을 사용하면 다른 명령과 함께 파이프tee
할 수도 있습니다 . 이렇게 하면 출력을 파일에 저장할 수 있고 다른 명령을 사용하여 추가로 처리할 수도 있습니다.
거의 모든 Linux 배포판에는 tee
Coreutils 패키지의 일부인 명령이 사전 설치되어 있습니다.
이 tee
명령은 다른 Linux 명령과 유사한 구문을 따릅니다. 여기에는 –OPTIONS 및 FILES라는 두 가지 인수가 있습니다.
tee [OPTION]... [FILE]...
사용 중인 명령 의 버전을 확인하려면 tee
다음 명령을 실행하면 됩니다.
tee --version
명령의 구문 및 사용 가능한 인수에 대한 도움이 필요한 경우 tee
다음을 입력하십시오.
tee --help
tee 명령 옵션
이 tee
명령에는 기능을 수정할 수 있는 몇 가지 옵션이 있습니다. 아래 표에는 tee
명령을 효율적으로 사용하는 데 도움이 되는 몇 가지 옵션이 나와 있습니다.
옵션 |
설명 |
---|---|
|
파일을 덮어쓰는 대신 파일 끝에 출력을 추가합니다. |
|
Ctrl+C와 같은 인터럽트 신호를 무시합니다. |
|
파일에 쓸 때 발생하는 각 오류에 대해 표준 오류에 대한 오류 메시지를 인쇄합니다. |
|
명령 옵션과 관련된 기본 도움말을 표시합니다. |
|
명령 버전을 표시합니다 |
tee를 사용하여 Linux에서 파일에 출력 저장
이 tee
명령은 명령 출력을 파일에 저장하는 동시에 터미널에도 표시합니다. 예를 들어, 이 명령을 사용하면 홈 디렉터리의 파일과 디렉터리를tee
볼 수 있고 별도의 파일에 저장할 수도 있습니다. 이렇게 하려면 다음과 같이 ls 명령을 사용하여 명령을 파이프하십시오.tee
ls ~ | tee list.txt
그러면 홈 디렉터리의 모든 파일과 디렉터리가 표시되고 “list.txt”에 기록됩니다. “list.txt”의 내용을 보려면 cat , less 또는 more
command와 같은 텍스트 편집기나 명령을 사용하십시오.
cat list.txt
출력을 저장하고 보려면 echo 명령을 사용하여 또 다른 예를 수행해 보겠습니다 . 먼저 echo
명령을 사용하여 터미널에 텍스트를 인쇄합니다. 그런 다음 “output.txt”라는 파일에 동일한 텍스트를 쓰라는 명령 tee
과 함께 명령을 파이프했습니다.echo
echo "Welcome to Ubuntu"| tee output.txt
마지막으로 cat 명령을 사용하여 “output.txt” 파일의 내용을 확인합니다.
cat output.txt
tee를 사용하여 Linux에서 여러 파일에 출력 쓰기
이 tee
명령은 동시에 여러 파일에 출력을 쓸 수도 있습니다. tee
작성하려는 명령 뒤에 파일 이름을 정의하기만 하면 됩니다 . 공백으로 구분하면 됩니다.
예를 들어 명령 출력을 echo
세 개의 다른 파일에 저장하려면 다음 구문을 사용합니다.
echo "Welcome to Ubuntu"| tee file1.txt file2.txt file3.txt
그러면 file1.txt, file2.txt, file3.txt라는 세 개의 파일에 “Welcome to Ubuntu”라는 문자열이 기록됩니다. 터미널에도 표시됩니다. 이러한 파일의 내용을 보려면 다음 cat
명령 을 사용하십시오 head
.
head -v file1.txt file2.txt file3.txt
마찬가지로 cat
명령을 실행해도 동일한 출력이 표시됩니다.
cat -v file1.txt file2.txt file3.txt
명령 을 사용하여 원하는 수의 파일에 출력을 쓸 수 있습니다 tee
. tee
명령 뒤에 공백을 두고 파일 이름을 입력하면 됩니다 .
tee를 사용하여 파일에 출력 추가
Linux의 명령 tee
은 기본적으로 파일 내용을 덮어씁니다. 명령에 or 옵션을 사용하면 -a
내용 을 바꾸는 대신 파일 끝에 출력을 추가할 수 있습니다.--append
tee
파일에 데이터를 추가하기 전에 아래 명령을 사용하여 파일에 있는 현재 데이터를 확인해 보겠습니다.
cat output.txt
이제 다음을 입력하여 덮어쓰지 않고 새 데이터를 추가할 수 있습니다.
echo "tee Command on Linux"| tee -a output.txt
이렇게 하면 이전 내용을 삭제하지 않고 출력.txt 끝에 명령 출력이 추가됩니다. 확인하려면 다음 cat
명령을 실행하십시오.
cat output.txt
tee를 사용하여 출력 숨기기
때로는 명령 출력을 터미널에 표시하지 않고 파일에 저장하고 싶을 수도 있습니다. 이는 불필요한 출력으로 터미널을 어지럽히지 않고 자동으로 명령을 실행하려는 경우 유용할 수 있습니다. 이러한 경우 명령 출력을 장치로 보내야 합니다 /dev/null
. 는 /dev/null
종종 “널 장치” 또는 “널 파일”이라고도 합니다. 이는 데이터 싱크 역할을 합니다. 즉, 여기에 기록된 모든 데이터가 삭제되고 실제로 어디에도 저장되지 않습니다.
명령의 출력을 숨기는 방법은 다음과 같습니다 echo
.
echo "Welcome to Ubuntu"| tee output.txt > /dev/null
이렇게 하면 명령의 출력이 output.txt에 기록되고 로 보내지므로 /dev/null
화면에서 효과적으로 숨겨집니다. 그러나 이 cat
명령을 사용하면 파일 내용을 보고 출력을 확인할 수 있습니다.
cat output.txt
tee를 사용하여 한 명령의 출력을 다른 명령으로 리디렉션
이 tee
명령은 한 명령의 출력을 파일이나 다른 명령으로 리디렉션할 수도 있습니다. 파이프(|)가 포함된 명령 tee
을 사용하면 첫 번째 명령의 출력을 표준 출력과 두 번째 명령 또는 파일 모두로 보낼 수 있습니다. 다음 예를 고려하십시오.
echo "This is Ubuntu"| tee output.txt | wc -c
“Welcome to Ubuntu” 명령 echo
출력이 output.txt 파일에 기록됩니다. 그런 다음 파이프라인 연산자가 tee
명령과 함께 사용됩니다. 그러면 파일 내용이 wc 명령 으로 전달됩니다 . 이 wc
명령은 계산된 총 문자 수를 출력하고 정수 값을 표시합니다.
tee
명령이 파일에 출력도 기록했는지 확인하려면 cat
명령을 사용하여 파일 내용을 표시합니다.
cat output.txt
sudo와 함께 tee 명령 사용
명령을 사용하면 tee
명령 출력이 일반 파일에 기록됩니다. 그러나 시스템 디렉터리나 보호된 파일과 같은 일부 파일 및 디렉터리를 수정하려면 수퍼유저 권한이 필요합니다. 이러한 파일이나 다른 사용자가 소유한 파일에 쓰려면 와 tee
함께 사용하세요 sudo
.
아래 예에서는 sudo를 사용하지 않고 루트 소유의 “file.conf” 파일을 작성하려고 하면 권한 거부 오류가 발생합니다.
echo "This is Ubuntu"| tee -a /etc/file.conf
sudo
그러나 명령 과 함께 사용하면 tee
오류 없이 실행됩니다. 명령을 사용하여 루트 사용자 또는 파일 소유자로 명령을 sudo
실행할 수 있습니다. 다음 명령을 앞에 tee
추가하기만 하면 됩니다 .sudo
tee
echo "This is Ubuntu"| sudo tee -a /etc/file.conf
먼저, tee
명령은 명령 출력을 사용합니다 echo
. 그런 다음 권한이 상승 sudo
하고 텍스트를 파일에 씁니다.
Bash 스크립트에서 tee를 사용하는 예
이 tee
명령은 다양한 스크립팅 시나리오에서 유용할 수 있습니다. 추가 처리 또는 디버깅을 위해 명령 출력을 기록하거나 캡처하는 데 도움이 됩니다. 이 tee
명령은 출력을 표시할 뿐만 아니라 나중에 사용할 수 있도록 파일에 저장합니다.
예를 들어, 터미널에서 날짜와 시간을 확인하고 log.txt라는 파일에 기록하려면 다음 bash 스크립트를 사용하세요 .
#!/bin/bashdate | tee log.txt
이 경우 표준 입력은 현재 날짜와 시간을 표시하는 date 명령의 출력입니다. 이 tee
명령은 이 출력을 터미널과 log.txt 파일에 기록합니다. log.txt 파일이 없으면 생성됩니다. -a
존재하는 경우 파일에 추가하는 옵션을 사용하지 않는 한 덮어쓰게 됩니다 .
cat log.txt
#!/bin/bashdate | tee log1.txt log2.txt
이 스크립트는 날짜와 시간을 터미널과 log1.txt 및 log2.txt라는 두 파일에 인쇄합니다. 명령을 사용하여 두 파일 내용을 모두 읽습니다 cat
.
cat log1.txt log2.txt
명령 을 사용하여 입력을 받아 로그 파일에 저장하는 또 다른 간단한 bash 스크립트를 고려해 보겠습니다 tee
.
#!/bin/bashlog_file="user_input.log"echo "Please enter some text:"read user_inputecho "$user_input" | tee -a "$log_file"echo "User input has been logged to $log_file"
주어진 bash 스크립트에서 “log_file”이라는 변수를 정의하고 “user_input.log”와 같이 사용하려는 로그 파일의 이름을 할당합니다. 그런 다음 echo
명령과 read
명령을 사용하여 텍스트를 입력하고 변수에 저장하라는 메시지를 표시합니다. 그런 다음 터미널에 Enter 입력을 표시하고 로그 파일에 추가하는 옵션 tee
과 함께 명령을 사용합니다.-a
마지막으로 echo
명령을 다시 사용하여 피드백을 제공합니다. 그러면 입력 내용이 파일에 기록되었음을 알 수 있습니다. 이렇게 하면 입력 내용을 로그 파일에 저장하고 화면에 표시하는 bash 스크립트를 만들 수 있습니다.
명령을 사용하여 bash 스크립트를 실행하십시오 bash
.
bash test.sh
Linux 시스템의 프로세스 모니터링
Linux 시스템이 얼마나 잘 실행되고 있는지 확인하려면 해당 프로세스의 활동을 관찰해야 합니다. 여기에는 CPU 및 메모리 사용량, 디스크 I/O, 네트워크 활동이 포함됩니다.
명령 과 마찬가지로 tee
Linux에는 프로세스를 쉽게 모니터링하는 데 도움이 되는 여러 다른 명령이 있습니다. 주요 명령 중 일부에는 ps , top 및 pgrep 명령이 포함됩니다. Linux 시스템은 종종 여러 프로세스를 동시에 실행합니다. 이러한 명령을 사용하면 중요한 작업의 우선 순위를 지정하고 리소스를 적절하게 할당하며 리소스 경합을 방지할 수 있습니다.
답글 남기기