端末に表示される出力をtxtファイルとして保存する方法は?

端末に表示される出力をtxtファイルとして保存する方法は?

私はそれを試しましたが、script動作しません。

milenko@milenko-desktop:~/MTM$ script output.txt
Script started, file is output.txt

milenko@milenko-desktop:~/MTM$ wc -l output.txt
0 output.txt

Cコードを実行した後、画面に4000000行を超えました。それはそれの一部に過ぎません。

4194282 0.166666 2.35285e-06 -56.2841 -137.299 -129.386 4 0.974001
4194283 0.166666 2.2536e-06 -56.4712 -129.67 -131.872 4 0.577388
4194284 0.166666 2.33943e-06 -56.3089 -131.649 -132.051 4 0.693404
4194285 0.166666 2.40782e-06 -56.1838 -139.678 -129.377 4 0.702479
4194286 0.166666 2.61584e-06 -55.8239 -125.733 -128.783 4 0.585886
4194287 0.166666 2.60877e-06 -55.8356 -129.239 -127.815 4 0.773082
4194288 0.166666 2.71129e-06 -55.6682 -129.591 -127.553 4 0.796556
4194289 0.166666 2.89225e-06 -55.3876 -125.257 -127.627 4 0.815006
4194290 0.166666 2.84658e-06 -55.4568 -129.576 -127.566 4 0.557463
4194291 0.166666 2.71516e-06 -55.662 -129.31 -128.904 4 0.797976
4194292 0.166666 2.56104e-06 -55.9158 -127.996 -128.422 4 0.895766
4194293 0.166666 2.6007e-06 -55.8491 -128.079 -129.663 4 0.503785
4194294 0.166666 2.40808e-06 -56.1833 -140.025 -128.88 4 0.857429
4194295 0.166666 2.33237e-06 -56.322 -126.524 -130.575 4 0.410364
4194296 0.166666 2.46136e-06 -56.0883 -135.197 -130.224 4 0.833398
4194297 0.166666 2.48021e-06 -56.0551 -134.945 -131.935 4 0.856674
4194298 0.166666 2.43826e-06 -56.1292 -128.865 -128.875 4 0.490521
4194299 0.166666 2.45184e-06 -56.1051 -126.444 -129.16 4 0.935146
4194300 0.166667 2.51457e-06 -55.9954 -141.302 -130.337 4 0.745215
4194301 0.166667 2.47265e-06 -56.0684 -133.622 -131.74 4 0.541706
4194302 0.166667 2.45156e-06 -56.1056 -128.236 -128.832 4 0.503959
4194303 0.166667 2.54703e-06 -55.9397 -127.012 -127.581 4 1.10325
4194304 0.166667 2.55029e-06 -55.9341 -132.414 -127.012 4 0.475155

これを保存するには?

試してみると script > output.txt

Script started, file is typescript
]0;milenko@milenko-desktop: ~/MTM[01;32mmilenko@milenko-desktop[00m:[01;34m~/MTM[00m$ exit
Script done, file is typescript

私も試しました

command | tee ~/outputfile.txt

しかし、

 wc -l outputfile.txt 
0 outputfile.txt

したがって、これは正しい方法ではありません。

答え1

script次のコマンドを使用する場合:

script history_log.txt

その後、必要なことを行い、完了したら、次のように入力します。

exit

スクリプト出力を参照する場合は、標準出力をリダイレクトします。

script.sh > output.txt
  • >標準出力を希望するソフトウェアにリダイレクト
  • 2>標準エラーリダイレクト
  • &>stdoutとstderrリダイレクト

答え2

stdoutとstderrをキャプチャする必要があるときの私の小さな秘密は、次のものを使用することです。北面。これは、画面の対話ではなく出力にのみ興味がある場合に最適なソリューションです。

これ権威ある標準出力(専用)をキャプチャして画面に表示するには、次のコマンドを使用します。ティー

nohup script.sh | tee merged.out

標準出力のみが必要な場合

script.sh | tee script.out

以下は、lsscript.shの代わりにコマンドを使用する簡単な例です。

xx069:~ # nohup ls | tee merged.out
nohup: ignoring input and redirecting stderr to stdout
bin
inst-sys
merged.out
xx069:~ # cat merged.out
bin
inst-sys
merged.out

もちろん、stdoutとstderrを組み合わせた2>&1などのリダイレクトも可能です。

私は主にscript画面の入力と出力をキャプチャするために使用します。出力のみ必要な場合には>、、>>- のいずれかを適切に使用します。そして私が怠惰なとき。2>&1 >teetee -anohup

答え3

あなたは試すことができます国民健康保険。実行されたすべてのコマンド(およびその出力)について、潜在的に役立つすべての情報を自動的にキャプチャします。

nhiあなたの場合と同様に、シェルセッションまたは単一のコマンドを簡単に検索できます。

メモ:

私はこのツールの作成者です。ご不明な点がございましたら、お気軽にお問い合わせください。

関連情報