Saya menggunakan Terminator, dan biasanya dibuka dengan 3 terminal windows terpisah. Saya juga menggunakan terminal Gnome karena berbagai alasan.
Saya bertanya-tanya bagaimana bash history ditangani dalam kasus ini karena saya kadang-kadang kehilangan perintah yang dikeluarkan sebelumnya ketika saya menjalankanhistory
Sebagai contoh, prompt saya menunjukkan baris bash history saat ini ( \!
) dan jika saya meluncurkan Terminator dengan 3 terminal windows terpisah saya mendapatkan baris histori yang sama (misalkan 100) pada semua terminal. Sejarah mana yang akan disimpan?
Juga meluncurkan Terminal Gnome setelah menggunakan Terminator Saya mendapatkan jalur 100 saat startup terlepas dari semua perintah yang dikeluarkan sebelumnya di Terminator
sumber
Jawaban:
Sesi bash yang disimpan adalah yang untuk terminal yang ditutup terbaru. Jika Anda ingin menyimpan perintah untuk setiap sesi, Anda bisa menggunakan trik yang dijelaskan di sini .
Bagaimanapun, Anda harus mempertimbangkan bahwa perintah dari sesi yang berbeda akan dicampur dalam file riwayat Anda sehingga tidak akan begitu mudah untuk membacanya nanti.
Lihat juga:
sumber
export PROMPT_COMMAND='history -a; history -r'
dan saya mendapat beberapa nomor garis sejarah yang aneh di terminal - setelah mengeluarkan beberapa nomor baris sejarah perintah melompat pada tahun 2000 bukan oleh 1, yang aneh tapi berperilaku seperti yang dikatakan - semua terminal sejarah disimpan.export
tidak dibutuhkan.Setelah beberapa bacaan
man bash
, saya menggunakan file histori terpisah untuk setiap shell. Sayamkdir -m 0700 ~/.history
kemudian menambahkanuntuk saya
~/.bashrc
. Sesekali, saya ingatdu -sk .history
dan bersihkan. Sangat menyenangkan memiliki setiap perintah yang saya ketikkan disimpan untuk saya.Saya hanya menggunakan hal di atas untuk melihat apa yang telah saya lakukan, akhir-akhir ini:
cut -f1 "-d " .history/* | sort | uniq -c |sort -n -r |less
atau
cut -f1-2 "-d " .history/* | sort | uniq -c |sort -n -r |less
(untuk memasukkan argumen 1 misalnya
sudo mount
dalam rantai pengurutan).sumber
HISTFILESIZE
dua kali?man bash
.Ctrl+r
berfungsi kembali?egrep 'whatever' .history/*
(ataucat .history/* | egrep 'whatever'
) sebagai gantinya, dan menggunakan Ctrl-r untuk mencari riwayat sesi individu. Bacaman bash-builtins
tentang perintah sejarah.sort .history/* | uniq -c | sort -n | wc -l
Acara saya menunjukkan 16033 perintah unik,cut '-d ' -f1 .history/* | sort | uniq -c | sort -n
menunjukkan perintah unik 2004, sebagian besar kesalahan ketik. Memuat semua itu ke "daftar riwayat" bash tidak akan membantu.Untuk ditampilkan
history
dari semua terminal:Tambahkan
export PROMPT_COMMAND='history -a; history -r'
ke file .bashrc Anda.Sumber: http://northernmost.org/blog/flush-bash_history-after-each-command
sumber
history --merge
. Saya telah menggunakan ini selama satu tahun atau lebih sekarang dan itu memecahkan masalah. Ketika saya ingin riwayat terbaru dari sesi lain, saya hanya menjalankan perintah itu dan tersedia untuk saya secara instan.Lihat juga " menyimpan riwayat persisten di bash " untuk alternatif lain. Rigs prompt Anda untuk mengirim semua perintah yang pernah diketik ke terminal apa pun ke file "persistent history" (di samping apa yang biasanya dilakukan untuk reguler
.history
).sumber
echo $$ $date_part "$command_part" >> ~/.persistent_history
Ini mengawali entri dengan PID dari proses bash mereka, sehingga kami dapat mengurai banyak riwayat.