Beberapa contoh bash mengubah histori perintah ketika Anda menggunakan kembali dan mengedit perintah sebelumnya, yang lain tampaknya tidak. Saya telah mencari dan mencari tetapi tidak dapat menemukan apa pun yang mengatakan bagaimana mencegah perintah dalam sejarah agar tidak dimodifikasi ketika mereka digunakan kembali dan diedit.
Ada pertanyaan seperti ini , tetapi yang sepertinya mengatakan bagaimana mengatasi sejarah yang sedang diedit. Saya baru-baru ini menemukan sebuah instance dari bash yang mengedit riwayat ketika Anda menggunakan kembali perintah - semua shell bash sebelumnya yang saya gunakan telah (sejauh yang saya perhatikan) telah dikonfigurasi untuk tidak mengubah riwayat ketika Anda menggunakan kembali dan edit sebuah perintah. (Mungkin aku hanya belum memperhatikan sejarah cangkangku selama 15 tahun terakhir atau lebih ...)
Jadi itu mungkin pertanyaan terbaik: BISAKAH saya bisa mengatakan kepada bash TIDAK PERNAH untuk memodifikasi sejarah - dan jika demikian, bagaimana?
set revert-all-at-newline on
dalam pertanyaan yang Anda tautkan menyelesaikan masalah Anda? Bisakah Anda menunjukkan cara mereproduksi masalah? Perhatikan bahwa Anda juga dapat menggunakan zsh
perilaku yang lebih sesuai dengan yang Anda inginkan.
history -p
adalah sesuatu yang harus saya lakukan untuk setiap perintah yang ingin saya gunakan kembali - apakah itu benar? Jika demikian, itu tidak cukup yang saya cari. Seperti yang saya sebutkan, saya telah menggunakan contoh bash yang tidak pernah memodifikasi histori ketika sebuah perintah digunakan kembali dan diedit.
revert-all-at-newline
cukup yang saya butuhkan. Jika saya mengedit perintah dan menekan CTRL-C untuk membatalkannya, saya juga tidak ingin itu mempengaruhi sejarah. Saya belum pernah sebelumnya mengkonfigurasi bash untuk tidak mengubah sejarah, yang merupakan bagian dari alasan saya bingung mengapa kadang-kadang instalasi baru berperilaku dalam satu cara dan kadang-kadang di lain. Ngomong-ngomong, pada sebuah instance yang tidak mengedit histori pada reuse perintah, sebuah bind -V | grep revert
mengindikasikan yang revert-all-at-newline
diatur ke 'off'.
bash
. Ini semua tentang readline. Ada implementasi readline
perpustakaan yang berbeda , dan juga memiliki set pengaturan sendiri (BANYAK dari mereka) dan file konfigurasinya sendiri. Saya tidak yakin persis apakah ini merupakan pengaturan atau hanya perbedaan implementasi, tetapi Anda harus mencari dalam dokumentasi yang berhubungan dengan readline, bukan bash.
history -p
untuk melakukan ekspansi riwayat tanpa memengaruhi file riwayat. Anda dapat melakukannyahistory -s
untuk melakukan hal yang sama dan menambahkan ke riwayat tanpa eksekusi. Anda bisa lakukanHISTIGNORE='start of a command I never want in history.*:command2.*'
untuk menjaga perintah tertentu dari sejarah.