Dengan menekan ke atas, saya bisa melalui perintah yang dimasukkan sebelumnya. Saya perhatikan bahwa jika saya memodifikasi salah satunya, itu mengubah sejarah. Misalnya, jika saya mengetik:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
sejarah sekarang menunjukkan bahwa perintah kedua adalah echo d
, bukan echo b
. Bagaimana saya menyimpan yang pertama echo b
dalam sejarah?
Misalnya, saya menjalankan perintah yang sangat panjang, dengan banyak opsi. maka saya ingin menjalankannya lagi, dengan perubahan kecil, jadi saya kembali melalui sejarah untuk menemukannya, membuat perubahan, tetapi kemudian menyadari bahwa sebenarnya saya tidak perlu menjalankannya kembali, setelah hanya memikirkan pilihan lain lakukan sebagai gantinya. lalu nanti, saya ingin kembali dan mengingatkan diri sendiri apa perintah yang saya jalankan - tapi tunggu, sejarah sekarang menunjukkan hal yang salah!
Ini muncul sangat jarang, tetapi ketika itu saya merasa sangat menjengkelkan. Apakah ada cara untuk secara otomatis menyimpan sejarah asli?
sumber
history
Anda dapat melihat semua perintah. Setelah itu Anda dapat memilih apa yang Anda butuhkan. Cangkang mana yang Anda gunakan sekarang?echo c
.Jawaban:
Cobalah untuk memasukkan
~/.inputrc
Dalam beberapa kasus, Anda dapat menemukannya di nilai default (Mati).
Itu harus memaksa
readline
untuk membatalkan semua perubahan pada garis sejarah sebelum kembali ketikaaccept-line
dieksekusi (info lebih lanjutman bash
).Edit:
CTRL+c
danset revert-all-at-newline on
berfungsi dengan baik sejakbash-4.3.30
.Tapi:
sumber
nano
juga :-)Biasanya:
akan melakukannya.
Perintah asli akan diingat jika Anda menjalankan perintah yang dimodifikasi. Tentu saja, Anda tidak ingin benar-benar mengeksekusi, sehingga Anda dapat berkomentar di luar garis
#
.Dalam contoh Anda, Anda kemudian akan memiliki dalam sejarah Anda:
echo a
,echo b
,echo c
,# echo d
.sumber
alt-shift-3
untuk mengomentari baris perintah saat ini jika bash Anda menggunakanreadline
./insert-comment
diman 3 readline
(atauman bash
) untuk informasi lebih lanjut.