Terminal * keluaran * sejarah?


19

Saya menggunakan banyak fungsi untuk menavigasi melalui sejarah perintah di terminal saya; Saya bertanya-tanya apakah ada beberapa cara untuk menavigasi sejarah output perintah juga? (Selain menyimpan histsize besar dan bersandar pada kunci pgup)

Saya tidak bisa begitu saja 'jalankan kembali perintah', karena dalam situasi khusus saya sumber perubahan perintah; Saya sering perlu melihat kembali output dari perubahan sebelumnya.

Hacks menyambut.

Terima kasih!

Edit 2010:

Saya telah memberikan 'tee' penghargaan; di antara semua metode untuk mencatat sesi Anda di tempat lain, ini adalah yang paling luas berlaku (yaitu bagian dari gnu coreutils, dan tidak memerlukan shell atau utilitas khusus untuk bekerja). Sebenarnya bukan apa yang saya cari, tetapi saya menyadari bahwa hal seperti itu tidak benar-benar ada.

Perkiraan terdekat yang dapat saya pikirkan adalah dengan menggunakan sesuatu seperti screen(byobu / tmux) yang mencatat file, dan menulis (dan keybind) perintah kustom untuk halaman / mencari melalui file log itu (berpikir lesspaging dengan cepat daripada layar). Terimakasih semuanya.

Edit 2012:

Jawaban @Dustin Kirkland jelas terbaik, setidaknya secara umum; buffer scrollback terminal adalah cara yang paling tidak mengganggu untuk menavigasi riwayat output perintah. Byobu tampaknya memiliki sejumlah besar garis sejarah yang tersimpan (10K; tmux memiliki 2K, layar GNU 100), dan itu memungkinkan pencarian regex (tampilan sepintas menunjukkan bahwa layar GNU tidak memiliki pencarian scrollback, dan tmux hanya memiliki pencarian teks biasa).

Jawaban:


4

Anda menyebutkan menggunakan byobu ...

Itu tentu salah satu cara melakukannya. Byobu menyimpan 10 ribu baris riwayat scrollback per jendela atau per split (panel).

Anda dapat memasukkan scrollback dengan mudah dengan menekan Alt- PageUp, Alt- PageDown, atau F7. Setelah Anda berada dalam mode scrollback, Anda dapat mencari maju dan mundur menggunakan perintah vi-like. Gunakan /regexuntuk mencari maju, dan ?regexuntuk mencari mundur.


Di mana riwayat scrollback disimpan, dan apakah ada cara untuk membuatnya bertahan di antara sesi? Yaitu: Buka terminal dengan Byobu, jalankan beberapa perintah, panggilan exit, tutup terminal, buka terminal baru dengan Byobu dan masih memiliki sesi sebelumnya.
Darrel Holt

11

Anda dapat menggunakan teeuntuk mengirim output perintah Anda ke file dan ke terminal secara bersamaan.


8

Anda dapat menggunakan scriptuntuk mencatat sesi terminal Anda ke file. Jika Anda selalu ingin ini terjadi maka tambahkan scriptperintah yang sesuai ke .login.

$ man script


5

menggunakan screen -L

setelah keluar dari shell session ( exitcommand) Anda mendapatkan logfile di direktori yang sama dengan yang Anda mulaiscreen

maka Anda dapat melihat output dengan moreatauless -R


5

screen dapat diatur untuk mencatat keluaran.

Salah satu cara untuk memulainya, dalam screensesi lari , adalah dengan menekan Ctrl- a, lalu :, lalu masuk log.

Dari man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.

@SQB: Saya telah memperluas jawaban saya.
Dijeda sampai pemberitahuan lebih lanjut.

3

bash tidak menyimpan sejarah dari apa yang Anda lakukan, tetapi bukan output dari perintah. Ini bisa berpotensi besar dan seringkali tidak berguna.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.