Setiap kali saya membuka instance baru terminal, histori kosong. Mengapa demikian? Apakah saya perlu mengatur sesuatu? Dalam bash, tidak perlu untuk ini.
zsh
command-history
Gilles 'SANGAT berhenti menjadi jahat'
sumber
sumber
zsh
, tetapi secara defaultbash
menulis ke file histori saat keluar , yang berarti jika Anda belum pernah menggunakannya dan membuka beberapa shell, mereka semua akan menunjukkan histori sekarang sampai setidaknya satu log keluar, dengan demikian menulis file histori nya.Jawaban:
Bash dan zsh memiliki standar yang berbeda. Zsh tidak menyimpan riwayat ke file secara default.
Ketika Anda menjalankan zsh tanpa file konfigurasi, ini akan menampilkan antarmuka konfigurasi. Di antarmuka konfigurasi ini, pilih
kemudian tinjau pengaturan yang diusulkan dan pilih
Ulangi untuk submenu lainnya untuk (2) selesai, (3) ikatan tombol dan (4) opsi, lalu pilih
dari menu utama.
Pengaturan terkait riwayat yang disarankan adalah
Saya akan menggunakan nama yang berbeda untuk file histori, untuk menunjukkan itu adalah file histori zsh. Dan 1000 baris dapat ditingkatkan pada sistem modern.
Omong
~/.zshrc
-omong, garis-garis ini masuk .sumber
Meskipun jawaban yang ada benar, saya pikir mungkin ada baiknya menambahkan bahwa mungkin ada opsi yang lebih baik daripada
appendhistory
menyimpan riwayat Anda dan iniSHARE_HISTORY
.Dari dokumen
SHARE_HISTORY
"keduanya mengimpor perintah baru dari file riwayat, dan juga menyebabkan perintah yang Anda ketik ditambahkan ke file riwayat". Ini berarti bahwa kerang juga mengetahui sejarah masing-masing tanpa harus menutup yang sekarang atau membuka yang baru.Jadi, secara keseluruhan Anda akan mengaturnya seperti ini:
sumber
INC_APPEND_HISTORY_TIME
, yang menulis sejarah dari semua terminal seperti di atas, tetapi sejarah itu "tidak akan segera tersedia dari contoh lain dari shell yang menggunakan file histori yang sama". Ini lebih masuk akal bagi saya, karena dengan begitu saya dapat menelusuri sejarah masing-masing terminal secara mandiri, tetapi semuanya masih dicatat.INC_APPEND_HISTORY_TIME
mungkin lebih masuk akal. Saya mungkin seharusnya tidak mengatakan "lebih baik", saya kira itu hanya masalah preferensi pribadi pada saat ini!ketika Anda pertama kali beralih dari bash ke zsh, riwayat bash Anda tidak akan terbawa. Jadi semua riwayat yang Anda miliki di bash masih ada dalam file riwayat bash. zsh mulai merekam riwayat sejak Anda menggunakannya sebagai shell.
Jika Anda tidak mengaturnya untuk mengambil histori, Anda dapat menjalankan kembali wizard konfigurasi dan memberi tahu berapa banyak histori yang akan disimpan. Ubah nama ~ / .zshrc atau hapus untuk mendapatkan kesempatan baru di wisaya.
sumber
Jika tidak berfungsi, dan semua ini sudah ada, coba:
Itu menulis sejarah saat ini ke file riwayat. Dan jika Anda mendapatkan:
maka sudah waktunya untuk memeriksa izin pada file dan direktori induk.
sumber