Saya telah mencari, tetapi tidak menemukan apa pun di sini. Saya mencari fungsi dalam bash, menggunakan terminal.
Jauh ketika, saya memiliki pengguna di sistem debian, dan seorang teman mengatur saya dengan fitur pencarian riwayat yang nyaman (saya percaya saya menggunakan tcsh saat itu), di mana saya akan mengetikkan awal dari perintah sebelumnya, tekan panah atas, dan itu akan melakukan pencarian, berdasarkan string parsial.
Misal jika sejarah saya adalah:
./script.pl
./script.pl arg1
cat output
cat output | grep yada
Dan saya ketik .
, dan tekan panah-, itu akan menunjukkan: ./script.pl arg1
. Tekan lagi dan itu akan ditampilkan ./script.pl
, dll.
Sangat mirip itu akan tampil grep
di .bash_history. Apakah ada cara untuk mendapatkan fungsi ini?
Jawaban:
Masukkan baris berikut di
~/.inputrc
:Baris yang dimulai dengan
#
adalah komentar. Saya tidak ingat apa yang terbelakang dan apa yang maju. Percobaan dengan itu. Mungkin Anda harus beralih mundur dan maju.Informasi latar belakang sedikit:
Bash menggunakan readline untuk menangani prompt.
~/.inputrc
adalah file konfigurasi untuk readline. Perhatikan bahwa ini juga akan berlaku di perangkat lunak lain menggunakan pustaka readline, misalnya IPython .Baca manual bash untuk informasi lebih lanjut tentang readline. Di sana Anda juga dapat menemukan lebih banyak perintah readline terkait riwayat .
Untuk mendapatkan kode pelarian untuk tombol panah, Anda dapat melakukan hal berikut:
cat
di terminal (hanyacat
, tidak ada argumen lebih lanjut).^[[A
panah atas dan^[[B
panah bawah.^[
dengan\e
.sumber
$include /etc/inputrc
, sebaiknya di baris pertama.Buat file bernama setup_readline.sh dengan mode 644 di /etc/profile.d/ dengan konten berikut, masuk dan periksa kunci pilihan Anda:
Saya pikir adalah cara terbaik untuk melakukan ini. Terutama jika Anda menggunakan sistem manajemen konfigurasi seperti koki, boneka, dll
Dan konfigurasi sistem masih belum tersentuh!
sumber
screen
. Anehnya, cara pintas .inputrc lainnya berfungsi, tetapi tidak. Jadi saya menggunakan kedua solusi sekarang.Ctrl + R akan memberi Anda fungsionalitas semacam ini. Mulailah mengetik perintah parsial dan akan muncul dengan yang lama yang dapat Anda navigasikan dengan panah atas dan bawah. Info lebih lanjut: http://www.nuxified.org/blog/ctrl_r_in_the_bash_shell
sumber
Ctrl+r
Untuk melengkapi jawaban lesmana tentang "~ / .inputrc" yang harus saya buat di bawah Trusty 14.04 saya, verifikasi / tambahkan "~ / .bashrc" (baris pertama sudah ada di "~ / .bashrc") saya:
Ini sudah dijelaskan dalam bahasa Perancis di https://doc.ubuntu-fr.org/terminal?&#pour_completer_les_commandes_a_partir_de_l_historique .
sumber
Mungkin Anda mungkin ingin mencoba https://github.com/dvorka/hstr yang menyediakan penyaringan sederhana dan multi-baris dari riwayat Bash yang didasarkan pada metrik (kapan, seberapa sering dan berapa lama perintah penting) - Anda dapat menggunakan tombol panah untuk dengan mudah menavigasi riwayat:
Itu dapat dengan mudah terikat pada Ctrl-rdan / atauCtrl-s
sumber
Solusi berikut menggabungkan & memperluas beberapa pendekatan yang disebutkan di atas: tambahkan baris berikut ke
~/.bash_aliases
file Anda (tidak perlu~/.inputrc
) untuk mencapai perilaku berikut:Login ulang ke shell (atau jalankan
source ./bash_aliases
) untuk menerapkan perubahan.sumber