現在の端末のスクロールバックをファイルに保存しますか?


24

私はこれに対する答えを探していて、それが不可能だと思うようなものを見つけていませんでしたが...

現在のGnomeターミナルのスクロールバックバッファーをファイルに保存することはできますか?

私は、私のような何かを行うことができますことを知っているcommand > output.txtファイルにすべての出力をリダイレクトするか、command | tee output.txtだけでなく、ファイルのように、端末への出力を分割します。私がやろうとしているのは、事後にこれを捉えることです。現在のターミナルタブのスクロールバックコンテンツをファイルに保存したいのですが。


kittyこれを実行できる端末プログラムの1つです。残念ながら、フォントはひどく見えます(サブピクセルレンダリングなし)
jberryman

ありがとう、@ jberryman。知っておくといい。
カールウィルバー

回答:


37

少し遊んでみたところ、次のことができることがわかりました。

  • triple-click 最後の行
  • ヒット shift + home
  • shift + click 一行目
  • コピーctrl + shift + c(またはright-click>「コピー」)

それをテキストファイルに貼り付けます...または、xsel新しいタブを開いて次の操作を行うだけで、クリップボードを新しいファイルに押し込むことができます:

xsel -o > out.txt

(インストールするにxselはdo sudo apt-get install xsel


5
ハイライトはより簡単に行うことができます:Edit-> Select All
エグモント

3
それはあなたが使用することができます実現します原因これは素晴らしい答えですtriple-click the last lineし、shift + home or the scrollbarあなたは出力の開始をしたい正確な場所に行くことに。
シェフファラオ

2
警告:Xがハングアップする可能性があるため(これは私に起こりました)、大きなスコールバック(数メガバイト)でこれを試さないでください。
ケビンコックス

メガバイトが多いと、処理が遅くなることが予想されます。我慢して、コンピューターを動かしてください。「ちょっと待って!宇宙に行こう!ちょっと待って宇宙から戻ってくれない?」
カールウィルバー

Edit-> Select Allメソッドを使用して出力をキャプチャすることで、大きなスクロールバック(一晩に2 TBのドライブをバックアップしてからのrsync出力)をコピーしようとしました。25分から30分が経過し、Gnomeターミナルはまだロックされています。Byobuを使用topして、Gnomeターミナルがまだ実行中であることを確認することができました(CPU時間の増加)。現在4.176g以上のRAMを使用しており、ゆっくりと登っています。そのため、非常に大きなスクロールバックで、しばらく時間がかかります。Xはまだ動作しています(Chrome、YouTube、Nautilus、Byobuなど)が、Gnomeターミナルには少し時間がかかります。もっと良く計画すべきだった。
カールウィルバー

2

scriptコマンドは、ターミナルセッションをファイルに保存して後で表示する場合に適しています。呼び出すscriptとシェルが起動し、完了したらexitと入力するだけです。typescript特に指定しない限り、すべてがファイルに格納されます。

例えば、

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit
Script done, file is typescript
xieerqi@eagle:~$ cat typescript 
Script started on 2015年10月27日 星期二 11时37分55秒

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit

Script done on 2015年10月27日 星期二 11时38分18秒

typescriptファイルには、コマンドなどから制御文字が含まれている可能性があるlsため、cat typescript | col -b > outputfile.txtコマンドを使用してクリーンな出力をファイルにリダイレクトします


5
感謝しますが、これは端末で貴重な情報を収集するに行う必要があることです。事後解決策が必要でした。
カールウィルバー

1
しかし、これは知っておくと良いことです。将来的に試してみます。
カールウィルバー

@KarlWilbur :)きっと役に立つと思います。プログラミングの宿題によく使います。そこTTYコンソールの画面に何ダンプする方法は、実際にですが、gnome-terminalのは少しトリッキーです
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy私はPythonスクリプトにこれを実装しようが、私は「os.systemに(」終了」)をやってスクリプトを終了カントしかし、それは、端末からの出口を行い、出力をファイルに保存します。。
mtkilic

@mtkilicこのscriptコマンドは別のプロセスを起動するため、サブプロセスの親であるpythonスクリプトは、子が終了するのを待っています。対話型セッションではより多くのことを意味しますが、Pythonインタープリターでセッションを記録する場合は、最初にscriptコマンドを開始し、2番目にインタープリターを起動します。また、このコマンドには-cフラグが必要ですので、で呼び出すことができますscript -c pythonが、でダブルチェックしてくださいman script
セルギーKolodyazhnyy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.