Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxでターミナル出力をファイルに保存する方法

Linuxでターミナル出力をファイルに保存する方法

ターミナルはLinuxシステムの心臓部です。 Linuxで実行されるすべてのプログラムは、ターミナルコマンドラインの下で実行されます。これには、Webブラウザなどの大規模なプログラムや、テキストエディタなどの単純なプログラムも含まれます。そのため、オペレーティングシステムがどのように機能するかを理解したい場合は、端末を適切に使用できるようにすることが重要なステップです。

これにより、Linuxターミナルでの作業中に、コマンドのターミナル出力をファイルに保存したい場合があります。このファイルは、別の操作の情報として、または単に端末のアクティビティをログに記録するために使用できます。この記事では、端末の出力をファイルに保存する5つの方法について説明します。

1。特定の端末を使用する

これに対処する最初の方法は、出力をファイルに保存することをサポートするターミナルを使用することです。たとえば、標準のKDEインストールに付属しているKonsoleターミナルには、出力をファイルに書き込むオプションが含まれています。

これを行うには、メニューバーの[ファイル]ボタンを押して、[出力を名前を付けて保存...]をクリックします。

Linuxでターミナル出力をファイルに保存する方法

これにより、ターミナル出力を保存できるウィンドウダイアログが開きます。そこから、ファイルを保存する場所を選択できます。

コマンドの出力をGNOMEターミナルに保存することもできます。ターミナルを右クリックして、「出力をHTMLとしてコピー」を押すだけです。これにより、ターミナルテキストがクリップボードに読み込まれます。そこから、任意のテキストエディタに貼り付けることができます。

Linuxでターミナル出力をファイルに保存する方法

2。出力リダイレクト

これに対処する別の方法は、UNIXシェルの組み込み演算子を使用することです。これらはLinuxのデフォルト機能であり、プログラムのテキスト出力をファイルにリダイレクトできます。それを行うことができる3つの演算子があります:

  • > オペレーターは、ファイルの内容を作成するか、プログラムの出力に置き換えます。これは、プログラムの現在の結果を同じファイルにダンプして表示する場合に便利です。
  • >> オペレーターは、プログラムの出力を含むファイルも作成します。ただし、この演算子は、出力を置き換えるのではなく、出力を追加するだけです。これは、プログラムの結果を1つのファイルに継続的にダンプする場合に役立ちます。
  • 最後に、 2> 演算子は、報告されるエラーを出力する特殊なタイプの演算子です。これは、プログラムがクラッシュする前に発生した問題を示しているため、デバッグ中に非常に役立ちます。
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でターミナル出力をファイルに保存する方法

これにより、コマンドの実行を開始できるスクリプト環境が開始されます。ただし、注意すべき重要な点の1つは、スクリプトがそのセッションで行うすべてのことをキャプチャすることです。次の例を考えてみましょう:

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 を含め、押したすべての「非表示」キーが含まれていました。 およびBackspace キーを押します。

セッションが終了したら、 exitと入力します 。これにより、スクリプトプログラムが終了し、ログ全体が指定したファイルに書き込まれます。

Linuxでターミナル出力をファイルに保存する方法

5。フレームバッファターミナルキャプチャ

最後に、Linuxフレームバッファからプルすることで端末の出力を取得することもできます。これは、テレタイプで直接作業していて、プログラムの出力をキャプチャしたい場合に便利です。

フレームバッファデバイスをキャプチャするには、テレタイプ中に次のコマンドを実行します。

cat /dev/fb0 > capture.raw
Linuxでターミナル出力をファイルに保存する方法

注意すべき重要な点の1つは、この方法でフレームバッファデバイスをキャプチャするということは、フレームバッファの生のバイトをファイルにダンプすることを意味するということです。そのファイルを表示するには、画像エディタにファイルをロードし、色とビット深度を手動で調整する必要があります。このプロセスには時間がかかるだけでなく、間違って行うのも簡単です。

そのため、これに対処する1つの方法は、fbgrabなどのサードパーティプログラムを使用することです。これにより、フレームバッファデバイスから現在のテレタイプ画面が取得され、PPMまたはPNGファイルにダンプされます。

fbgrabのインストールも比較的簡単です。 DebianおよびUbuntuベースのディストリビューションでは、aptを使用できます:

sudo apt install fbgrab

Arch Linuxの場合、pacmanを実行します:

sudo pacman -S fbgrab
Linuxでターミナル出力をファイルに保存する方法

fbgrabを使用したターミナル出力のキャプチャ

インストールしたら、 Controlを押してテレタイプにドロップします +シフト + Alt + F3 、次にいずれかの fbcatを実行します またはfbgrab

Fbcatは、現在のフレームバッファ画面を取得してPPMイメージに保存するより単純なプログラムです。これは、画像エディタに読み込んでPNGに変換できる低レベルのRAW画像形式です。 Fbcatは、適切にキャプチャするために生の画像形式を必要とする、より低いビット深度のディスプレイをキャプチャしようとしている場合に主に役立ちます。

fbcatプログラムを使用してキャプチャするには、次のコマンドを実行します。

fbcat > capture.ppm
Linuxでターミナル出力をファイルに保存する方法

これにより、現在表示されている画面が取得され、コンテンツがcapture.ppmファイルにダンプされます。

一方、Fbgrabは、より高いビット深度のディスプレイをキャプチャするように設計された、より複雑なプログラムです。ほとんどの場合、テレタイプ画面をキャプチャするために使用します。デフォルトでPNGへの保存をサポートし、キャプチャする別のテレタイプを選択するオプションがあります。

fbgrabプログラムを使用してキャプチャするには、次のコマンドを実行します。

sudo fbgrab -c 3 capture.png
Linuxでターミナル出力をファイルに保存する方法

これにより、3番目のテレタイプ画面が取得され、capture.pngファイルに保存されます。

Linuxターミナルのガイドをさらに探している場合は、コマンドラインからの電子メールの送信について説明しているガイドを確認してください。

よくある質問

1。ヘルプ! Fbgrabは機能しません。写真は黒または空白です。

これはおそらく、fbgrabが端末出力をキャプチャするために別のフレームバッファデバイスを使用しているためです。 「/dev」フォルダを一覧表示して、システムが使用している現在のフレームバッファデバイスを確認します。

ls /dev

そこから、「/ dev/fbX」デバイスを探します。通常、Linuxはフレームバッファに「/ dev/fb0」を使用します。ただし、システムが「/ dev / fb1」などの別のフレームバッファを使用している場合は、次のコマンドを渡して、代わりにそのフレームバッファからプルするようにfbgrabに指示できます。

fbgrab -d 1 capture.png

2。プログラムへの入力として書き込んだファイルの内容を取得することはできますか?

はい!上記の3つの演算子の他に、<を使用することもできます。 ファイルからデータをプルする演算子。シェルは、これがプログラムの入力であることを処理します。

このようにすることで、テキストを印刷するために他のプログラムに依存する必要もなくなります。次の例を検討してください。

[1] cat test.txt | program
[2] program < test.txt
  • 最初の例では、catプログラムを呼び出してテキストをロードしてから、パイプ演算子にcatの出力をロードし、それをプログラムにパイプします。
  • 一方、2番目の例では、すぐにプログラムを呼び出してから、<を選択します。 演算子。次の引数を入力として扱います。

3。コマンドの出力のみをキャプチャするようにスクリプトを強制する方法はありますか?

はい、単一のコマンドに対してのみスクリプトを作成することができます。これは、単一のプログラムの出力をキャプチャしたいだけのトラブルシューティング時に非常に役立ちます。これを行うには、次のコマンドを実行します。

script -c "your-command" test.txt

-c flagは、スクリプトプログラムにプログラムyour-commandのみを実行するように指示します。そこから、出力をtest.txtというテキストファイルに書き込みます。


  1. LinuxターミナルからFFMPEGを使用してビデオファイルサイズを縮小する方法

    スペースが限られている場合、個人用ストレージドライブ、クラウドサービス、またはディスクにビデオを保存するのは難しい場合があります。ファイルサイズを小さくすると、より大きなファイルを保持し、コレクションを増やすことが容易になりますが、これを行う方法の中には、他の方法よりも効果的なものがあります。 ビデオ処理の分野では、ファイルサイズを最適化できるツールがたくさんあります。ただし、VLC、Cinelerra、Blenderなど、これらの多くはUIの下で同じエンジンを共有しています。これはFFMPEGというタイトルのコマンドラインユーティリティです。ここでは、LinuxターミナルからFFMPEGを

  2. Linuxターミナルを電卓として使用する方法

    派手なGUIよりもLinuxターミナルのシンプルさを好みますか?すばやく計算する必要がある場合は、電卓アプリを使用する必要はありません。 (おそらく)すでにインストールされているツールを使用して、ターミナルを使用して計算を実行できます。 ディストリビューションに関係なく、Linuxターミナルを電卓として使用する方法を見ていきましょう。 GNUbcを使用した計算 bc GNU bcの要素は、「基本的な計算機」の略です。 bcプログラム自体は、1970年代に基づいたUnixをベースにしています。 GNU bcは、より近代的で拡張されたバージョンであり、Linuxシステムにすでにあるはずです。