Perintah yang dijalankan di terminal yang diawali dengan ruang kosong tidak direkam dalam file riwayat perintah. Tetapi apakah ada cara untuk mendapatkan kebalikannya yaitu sejarah seharusnya hanya mencatat yang diawali dengan ruang?
Anda dapat membalikkan pengaturan default Ubuntu dengan menetapkan dua variabel (HISTIGNORE dan HISTCONTROL), gunakan perintah seperti di bawah ini:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
mengubah perilaku riwayat menjadi hanya mengabaikan garis duplikat, dan tidak mengabaikan garis yang dimulai dengan spasi. (Anda juga dapat mengatur HISTCONTROL ke string kosong (dengan HISTCONTROL=
) jika Anda ingin menyimpan duplikat, tetapi itu biasanya tidak diinginkan.)
HISTIGNORE='!( *)'
membuat sejarah mengabaikan setiap baris yang tidak dimulai dengan spasi: ( *)
akan cocok dengan setiap baris yang dimulai dengan spasi, tetapi pemimpin !
meniadakan pertandingan, sehingga cocok dengan semua yang tidak dimulai dengan spasi. Dan segala sesuatu yang cocok dengan pola HISTIGNORE akan diabaikan oleh sejarah. (Opsi terakhir ini mengharuskan bash dijalankan dengan extglob
dihidupkan, dengan shopt -s extglob
, tetapi itu adalah pengaturan default pada Ubuntu.)
Jika Anda ingin menjadikan ini permanen, jangan lupa untuk memasukkan kedua perintah di atas ke dalam ~/.bashrc
.
.bashrc
.. Saya membutuhkan itu untuk mencegah bash dari merekam setiap perintahcd
,ls
s dan sehari-hari lainnya yang saya gunakan; dan untuk beberapa perintah yang saya butuhkan dalam sejarah, sekarang saya dapat menggunakan awalan ..HISTIGNORE='ls*:cd*'
, yang akan membuat riwayat mengabaikan setiap baris yang dimulai denganls
ataucd
, Anda dapat memperluas daftar itu dengan perintah lain, cukup masukkan:
perintah di antara . Tapi jangan lupa bahwa fitur perintah ingat yang dapat Anda akses dengan "tombol panah ke atas" juga menggunakan riwayat ini, jadi jika Anda mengatur sesuatu untuk diabaikan, Anda tidak akan dapat mengingat perintah yang diabaikan itu dengan " panah atas ".ssh-copy-id
ataussh-keygen
. DiHISTIGNORE
, saya memasukkan "ssh\ *
" perintah saya yang diabaikan lainnya. Melarikan diri dari char space tampaknya wajib." Perintah yang dijalankan di terminal yang diawali dengan ruang kosong tidak direkam dalam file riwayat perintah "
Ya begitulah.
sumber