Saya baru menyadari bahwa alur kerja yang telah saya gunakan selama bertahun-tahun, tidak melakukan apa yang seharusnya dilakukan. Karena saya belum menyadari bahwa untuk waktu yang lama, Anda mungkin berpikir itu tidak layak untuk dilakukan, tetapi ternyata sekarang, itu menjadi agak penting.
Apa yang saya bicarakan? Oke, saya punya tmux
berjalan dengan beberapa sesi dan setiap sesi memiliki jendela yang berbeda dan seterusnya. Bekerja seperti itu luar biasa. Namun, ada satu kelemahannya. Ketika server di-restart, untuk alasan apa pun, itu menutup semua sesi saya. Cukup adil, tidak bisa dihindari dan tidak sering terjadi. Namun, bagian yang mengganggu adalah, bahwa semua zsh
saya atau bash
history
hilang juga. Ini adalah sebuah masalah. Saya mengandalkan sejarah saya, mungkin terlalu banyak.
Saya menghindari masalah ini dengan menekan fc -W
(dalam zsh
) sesekali. Saya pikir ini akan menambahkan riwayat yang ada di memori dan saya kemudian hanya akan kehilangan bagian antara doa terakhir saya fc -W
dan restart server. Tapi bukan itu yang dilakukannya. Jika saya menggunakan fc -W
dalam satu jendela, lalu fc -W
di satu lagi, sejarah dari jendela pertama akan ditimpa oleh sejarah dari jendela kedua. Saya perlu menggunakan fc -R
pertama, tapi ini akan menduplikasi seluruh sejarah… pada dasarnya saya menyalahgunakan fc
perintah sepanjang waktu.
Inilah pertanyaannya:Bagaimana saya bisa memastikan untuk tidak kehilangan riwayat saya ketika saya berada di tmux
dan tiba-tiba listrik padam? Catatan:
- Saya menggunakan riwayat tak terbatas, jika itu penting.
- Kehilangan sebagian histori tidak masalah, yaitu jika saya harus menjalankan perintah dengan tangan (atau dalam cronjob) dan saya kehilangan sebagian histori sejak perintah terakhir dijalankan, tidak apa-apa.
- Keluar dari terminal dan membuka yang baru bukanlah solusi.
- Saya tidak ingin menyimpan perintah saya langsung ke histori, karena ini mencampur histori yang berbeda.
- Solusi untuk keduanya
bash
danzsh
dipersilakan.zsh
lebih disukai.
Sunting:Sorot bagian yang tampaknya salah paham oleh semua orang.
Jawaban yang Diterima:
Di zsh, gunakan fc -AI
untuk menyimpan riwayat Anda, bukan fc -W
. Gunakan -A
, bukan -W
, jika tidak, riwayat dari instance Shell lainnya akan ditimpa. Dan -I
hanya menyimpan entri riwayat baru sejak penyimpanan terakhir.
Mengingat alur kerja Anda, daripada menyimpan secara manual, Anda mungkin harus menyimpan riwayat secara otomatis. Aktifkan inc_append_history
opsi untuk menyimpan setiap perintah ke file riwayat segera sebelum dieksekusi.
Meskipun dimungkinkan untuk mencapai efek yang sama di bash, berbagi riwayat dengan benar antara instance bash lebih sulit. Lihat Pertahankan riwayat bash di beberapa jendela terminal