Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux에서 터미널 출력을 파일에 저장하는 방법

Linux에서 터미널 출력을 파일에 저장하는 방법

터미널은 Linux 시스템의 핵심입니다. Linux에서 실행되는 모든 프로그램은 터미널 명령줄 아래에서 실행됩니다. 여기에는 웹 브라우저와 같은 대규모 프로그램과 텍스트 편집기와 같은 간단한 프로그램이 포함됩니다. 따라서 운영 체제가 어떻게 작동하는지 이해하려면 터미널을 올바르게 사용할 수 있는 것이 중요한 단계입니다.

이를 통해 Linux 터미널에서 작업하는 동안 명령의 터미널 출력을 파일에 저장할 수 있습니다. 이 파일은 다른 작업에 대한 정보로 사용하거나 단순히 터미널 활동을 기록하는 데 사용할 수 있습니다. 이 기사에서는 터미널 출력을 파일에 저장하는 5가지 방법을 설명합니다.

1. 특정 터미널 사용

이를 처리하는 첫 번째 방법은 출력을 파일로 저장하는 것을 지원하는 터미널을 사용하는 것입니다. 예를 들어, 표준 KDE 설치와 함께 제공되는 Konsole 터미널에는 출력을 파일에 쓰는 옵션이 포함되어 있습니다.

그렇게 하려면 메뉴 표시줄에서 "파일" 버튼을 누르고 "다른 이름으로 출력 저장 ..."을 클릭하십시오. "

Linux에서 터미널 출력을 파일에 저장하는 방법

그러면 터미널 출력을 저장할 수 있는 창 대화 상자가 열립니다. 여기에서 파일을 저장할 위치를 선택할 수 있습니다.

명령의 출력을 GNOME 터미널에 저장할 수도 있습니다. 터미널을 마우스 오른쪽 버튼으로 클릭하고 "출력을 HTML로 복사"를 누르기만 하면 됩니다. 그러면 터미널 텍스트가 클립보드에 로드됩니다. 여기에서 텍스트 편집기에 붙여넣을 수 있습니다.

Linux에서 터미널 출력을 파일에 저장하는 방법

2. 출력 리디렉션

이를 처리하는 또 다른 방법은 UNIX 셸의 내장 연산자를 사용하는 것입니다. 이것은 Linux의 기본 기능이며 프로그램의 텍스트 출력을 파일로 리디렉션할 수 있습니다. 이를 수행할 수 있는 세 가지 연산자가 있습니다.

  • > 연산자는 파일의 내용을 만들거나 프로그램의 출력으로 바꿉니다. 이것은 프로그램의 현재 결과를 동일한 파일에 덤프하고 보려면 유용합니다.
  • >> 연산자는 또한 프로그램의 출력으로 파일을 생성합니다. 그러나 이 연산자는 출력을 대체하는 대신 출력만 추가합니다. 이것은 프로그램의 결과를 단일 파일에 계속해서 덤프하려는 경우에 유용합니다.
  • 마지막으로 2> operator는 다시 보고될 오류를 인쇄하는 특별한 유형의 연산자입니다. 이것은 프로그램이 충돌하기 전에 발생한 문제를 보여주기 때문에 디버깅하는 동안 매우 유용합니다.
Linux에서 터미널 출력을 파일에 저장하는 방법

이러한 연산자를 사용하는 방법은 프로그램 끝에 추가하는 것입니다. 다음 예를 고려하십시오.

echo "maketecheasier" > hello.txt

echo에 지시했습니다. "maketecheasier"라는 단어를 출력하도록 프로그램을 만든 다음 >를 추가했습니다. 연산자 및 파일 이름. 이것은 UNIX 쉘이 화면에 출력하는 대신 "hello.txt" 파일에 출력을 쓰도록 지시했습니다.

Linux에서 터미널 출력을 파일에 저장하는 방법

3. 티

출력 리디렉션 외에도 tee라는 프로그램을 사용하여 터미널 명령의 출력을 저장할 수도 있습니다. . 이것은 표준 입력에서 읽고 쓸 수 있는 GNU 프로그램입니다. UNIX 파이프와 함께 이 프로그램을 사용하여 명령의 출력을 파일에 씁니다.

다음 예를 고려하십시오.

echo "maketecheasier" | tee hello.txt
Linux에서 터미널 출력을 파일에 저장하는 방법

여기서 출력 리디렉션을 사용하는 대신 파이프(| ) tee에 대한 출력 .

참고 :파이프는 한 프로그램의 출력을 가져와 다른 프로그램의 입력으로 공급합니다. 이를 통해 모두 표준 입력 및 출력을 사용하는 한 여러 프로그램을 함께 붙일 수 있습니다.

4. 스크립트

터미널에서 출력을 가져오는 또 다른 방법은 script를 사용하는 것입니다. , 터미널에 입력한 모든 내용과 출력을 기록하는 내장 Linux 프로그램입니다.

스크립트를 사용하여 터미널 세션의 로그를 구문 분석 가능한 텍스트 형식으로 기록할 수 있습니다. 이것은 다른 사람들의 지원을 받기 위해 온라인으로 오류 로그를 보내려는 경우에 매우 유용합니다.

사용하려면 다음 명령을 실행하십시오.

script filename.txt
Linux에서 터미널 출력을 파일에 저장하는 방법

이렇게 하면 명령 실행을 시작할 수 있는 스크립트 환경이 시작됩니다. 그러나 주목해야 할 한 가지 중요한 점은 스크립트가 해당 세션에서 수행하는 모든 작업을 캡처한다는 것입니다. 다음 예를 고려하십시오.

Script started on 2022-03-27 18:02:29+08:00 [TERM="rxvt-unicode-256color" TTY="/dev/pts/2" COLUMNS="77" LINES="22"]
[?2004h[ balaraw:~ ]$ ls
[?2004l
Desktop    Downloads  mail  News  pods  [01;34mdocuments  hello.txt  Mail  pics  tmp   vids
[?2004h[ balaraw:~ ]$ exit
[?2004l
exit
 
Script done on 2022-03-27 18:03:19+08:00 [COMMAND_EXIT_CODE="0"]

스크립트에는 사용자가 누르는 모든 키 누르기와 제어 문자가 포함됩니다. 제 경우에는 Tab를 포함하여 내가 누른 모든 "보이지 않는" 키가 포함되었습니다. 및 백스페이스 키 누름.

세션이 끝나면 exit를 입력합니다. . 이렇게 하면 스크립트 프로그램이 종료되고 지정한 파일에 전체 로그가 기록됩니다.

Linux에서 터미널 출력을 파일에 저장하는 방법

5. 프레임 버퍼 터미널 캡처

마지막으로 Linux 프레임 버퍼에서 풀링하여 터미널의 출력을 얻을 수도 있습니다. 이것은 텔레타이프에서 직접 작업하고 프로그램의 출력을 캡처하려는 경우에 유용합니다.

프레임 버퍼 장치를 캡처하려면 텔레타이프에 있는 동안 다음 명령을 실행하십시오.

cat /dev/fb0 > capture.raw
Linux에서 터미널 출력을 파일에 저장하는 방법

주목해야 할 한 가지 중요한 점은 이러한 방식으로 프레임 버퍼 장치를 캡처한다는 것은 프레임 버퍼의 원시 바이트를 파일에 덤프한다는 것을 의미한다는 것입니다. 해당 파일을 보려면 이미지 편집기에서 파일을 로드하고 색상과 비트 심도를 수동으로 조정해야 합니다. 이 프로세스는 시간이 많이 소요될 뿐만 아니라 잘못하기 쉽습니다.

따라서 이를 처리하는 한 가지 방법은 fbgrab과 같은 타사 프로그램을 사용하는 것입니다. 이렇게 하면 프레임 버퍼 장치에서 현재 텔레타이프 화면을 가져와 PPM 또는 PNG 파일로 덤프합니다.

fbgrab 설치도 비교적 간단합니다. Debian 및 Ubuntu 기반 배포판에서는 apt를 사용할 수 있습니다.

sudo apt install fbgrab

Arch Linux의 경우 pacman을 실행하십시오.

sudo pacman -S fbgrab
Linux에서 터미널 출력을 파일에 저장하는 방법

fbgrab을 사용하여 터미널 출력 캡처

설치가 완료되면 Control를 눌러 텔레타이프에 드롭합니다. + 시프트 + 대체 + F3 , 다음 중 하나를 실행하십시오. fbcat 또는 fbgrab .

Fbcat은 현재 프레임 버퍼 화면을 가져와서 PPM 이미지에 저장하는 더 간단한 프로그램입니다. 이것은 PNG로 변환하기 위해 이미지 편집기에서 로드할 수 있는 저수준 원시 이미지 형식입니다. Fbcat은 원시 이미지 형식을 올바르게 캡처해야 하는 낮은 비트 심도 디스플레이를 캡처하려는 경우 주로 유용합니다.

fbcat 프로그램을 사용하여 캡처하려면 다음 명령을 실행하십시오.

fbcat > capture.ppm
Linux에서 터미널 출력을 파일에 저장하는 방법

이것은 현재 표시된 화면을 잡고 capture.ppm 파일에 내용을 덤프합니다.

반면에 Fbgrab은 더 높은 비트 심도 디스플레이를 캡처하도록 설계된 보다 복잡한 프로그램입니다. 대부분의 경우 텔레타이프 화면을 캡처하는 데 사용합니다. 기본적으로 PNG로 저장을 지원하며 캡처할 다른 텔레타이프를 선택할 수 있는 옵션이 있습니다.

fbgrab 프로그램을 사용하여 캡처하려면 다음 명령을 실행하십시오.

sudo fbgrab -c 3 capture.png
Linux에서 터미널 출력을 파일에 저장하는 방법

이렇게 하면 세 번째 텔레타이프 화면이 캡처되어 capture.png 파일에 저장됩니다.

Linux 터미널에 대한 더 많은 가이드를 찾고 있다면 명령줄에서 이메일 보내기에 대한 설명을 확인하세요.

자주 묻는 질문(FAQ)

1. 돕다! Fbgrab이 작동하지 않습니다. 사진이 검은색이거나 비어 있습니다.

이는 fbgrab이 터미널 출력을 캡처하기 위해 다른 프레임 버퍼 장치를 사용하고 있기 때문일 수 있습니다. "/dev" 폴더를 나열하여 시스템이 사용 중인 현재 프레임 버퍼 장치를 확인하십시오.

ls /dev

거기에서 "/dev/fbX" 장치를 찾으십시오. 일반적으로 Linux는 프레임 버퍼로 "/dev/fb0"을 사용합니다. 그러나 시스템이 "/dev/fb1"과 같은 다른 프레임 버퍼를 사용하는 경우 다음 명령을 전달하여 fbgrab이 대신 해당 프레임 버퍼에서 가져오도록 지시할 수 있습니다.

fbgrab -d 1 capture.png

2. 프로그램의 입력으로 작성한 파일의 내용을 가져올 수 있습니까?

예! 위에서 설명한 세 가지 연산자 외에도 <를 사용할 수도 있습니다. 파일에서 데이터를 가져오는 연산자입니다. 그러면 쉘은 이것을 프로그램에 대한 입력으로 취급합니다.

이 방법을 사용하면 텍스트를 인쇄하기 위해 다른 프로그램에 의존할 필요도 없습니다. 다음 예를 고려하십시오.

[1] cat test.txt | program
[2] program < test.txt
  • 첫 번째 예는 cat 프로그램을 호출하여 텍스트를 로드한 다음 cat 출력과 함께 파이프 연산자를 로드하고 이를 프로그램에 파이프합니다.
  • 반면 두 번째 예제는 즉시 프로그램을 호출한 다음 <를 선택합니다. 다음 인수를 입력으로 처리하는 연산자입니다.

3. 스크립트가 명령의 출력만 캡처하도록 하는 방법이 있습니까?

예, 단일 명령에 대해서만 스크립팅이 가능합니다. 이것은 단일 프로그램의 출력을 캡처하려는 경우 문제 해결 중에 매우 유용합니다. 다음 명령을 실행하여 이 작업을 수행합니다.

script -c "your-command" test.txt

-c 플래그는 스크립트 프로그램이 your-command라는 프로그램만 실행하도록 지시합니다. 그런 다음 test.txt라는 텍스트 파일에 출력을 씁니다.