Bash hanya menyimpan histori dari perintah yang Anda jalankan (yang dapat Anda ambil dengan mengetik history
). Kecuali Anda telah mengatur scroll-back ke angka yang sangat tinggi, tidak ada cara untuk melihat output yang lebih tua dari nilai yang ditetapkan scroll-back. Menetapkan nilai ini ke angka yang sangat tinggi akan membuat gulungan Anda lamban karena garis disimpan dalam memori .
Untuk menyimpan perintah masa depan Anda dan hasilnya, ada beberapa opsi:
Menggunakan screen
Mulai sesi layar dengan memasukkan screen
. Setelah Anda berada di dalam layar, tekan Ctrl- a, lalu :, lalu masukkan log
. Semua I / O akan ditangkap dalam screenlog
file di direktori tempat Anda memulai screen
perintah.
Menggunakan script
Anda bisa mulai dengan mengetik script
. Sebuah naskah sesi akan mulai yang akan menangkap semua I / O untuk sebuah file bernama typescript
. Anda dapat keluar dari script
sesi dengan Ctrl- d dan melihat log dalam typescript
file.
Menggunakan tee
tee adalah alat yang berguna. Anda dapat melakukan sesuatu seperti ini:
$ bash | tee log.txt
Ini akan membuka bash shell baru di dalam yang sudah Anda jalankan. Ketika Anda exit
keluar dari ini, Anda dapat melihat output dalam file yang disebutlog.txt
Cara lain
Seperti yang disarankan Dustin Kirkland di pos ini , Anda juga dapat menggunakan byobu . Meskipun, saya belum pernah menggunakan, alat screencasting terminal seperti Shelr juga terdengar seperti opsi.
Ini tidak ada hubungannya dengan shell Anda (
bash
), ini bukan fitur emulator terminal yang Anda gunakan. Itu disimpan di "buffer scrollback" terminal Anda. Saya belum dapat menemukan penjelasan yang jelas tentang di mana tepatnya ini disimpan, tetapi pengalaman pribadi telah menunjukkan kepada saya bahwa itu disimpan di suatu tempat di/tmp
.Seperti yang disarankan oleh jawaban pertanyaan di atas, kemungkinan besar disimpan dalam file tanpa nama. Untuk melihat apa yang saya maksud, buka file baru dengan editor teks:
Tulis satu baris teks ke file dan simpan. Sekarang, ketika file itu masih terbuka, buka terminal dan hapus itu:
Karena file tersebut masih terbuka
gedit
, Anda dapat terus menulisnya. Anda bahkan dapat menulis beberapa gigabytes data ke dalamnya, terlepas dari kenyataan bahwa file tersebut telah dihapus. Itu karena menghapus file cukup menghilangkan tautan yang menunjuk ke inode -nya . Jika deskriptor file -nya dipegang terbuka oleh program lain, data dapat ditulis untuknya, terlepas dari kenyataan bahwa tidak ada lagi tautan (file) aktual yang sesuai dengan deskriptor file pada sistem file.Semua ini untuk mengatakan bahwa riwayat terminal Anda mungkin disimpan menggunakan trik seperti itu, di suatu tempat di file yang dihapus
/tmp
. Apa yang sebenarnya Anda inginkan adalah meningkatkan ukuran buffer scrollback terminal emulator Anda sehingga Anda dapat menggulir ke atas dan melihatnya. Rincian cara melakukan ini bergantung pada emulator terminal yang Anda gunakan. Sebagian besar memiliki saklar baris perintah yang memungkinkan Anda dan ini banyak juga yang memiliki cara GUI untuk mengaturnya. Misalnya, dalamgnome-terminal
(default pada Ubuntu) itu Edit -> Preferences -> Profil --- klik pada profil Anda -> Edit -> Scrolling -> Batasi scrollback ke NNN:sumber
script
seperti yang dijelaskan dalam jawaban yang diterima.Sesi terminal disimpan dalam
.bash_history
file. Masukkan ini di terminal Andaecho $HISTFILE
, ini akan memberi Anda path.bash_history
file.sumber