Konteks
Ketik di bash:bagus
Saat bash shell sibuk (menginisialisasi, menjalankan perintah), seseorang dapat mengetik sebelum prompt berikutnya muncul .
Jika shell telah meluncurkan sebuah program, program itu akan menangkap kuncinya, tetapi jika tidak ada program yang dijalankan atau jika program tidak menangkap input, jenis apa yang akan dimasukkan ke dalam shell setelah prompt muncul.
Contoh :ketik sleep 5
, tekan Enter, lalu ketik ls
dan tekan Enter. ls
akan dijalankan setelah tidur selesai. Dalam kehidupan nyata, ls
akan diganti dengan cp
, rsync
atau banyak program lainnya.
Ini adalah fitur tipikal Typeahead dan sangat menghemat waktu jika Anda tahu sebelumnya apa yang harus diketik.
Ini juga sangat bagus karena memungkinkan untuk menyalin-menempelkan beberapa perintah dan menjalankannya secara berurutan.
Kasus penggunaan dunia nyata termasuk ketika shell membutuhkan waktu untuk menginisialisasi. Bisa jadi komputer melambat karena alasan apa pun, atau shell berada di tautan jaringan yang lambat, dll.
Pencarian riwayat di bash:bagus
Pada prompt bash, seseorang dapat mengetik Ctrl-R
untuk menelusuri sejarah.
Ini adalah penghemat waktu yang sangat berharga ketika menggunakan kembali beberapa baris perintah lama, atau bahkan urutan baris perintah. Tekan Ctrl-R
, ketik beberapa karakter khas dari perintah untuk mencari, tekan Ctrl-O
sebanyak yang diperlukan untuk memutar ulang perintah yang direkam dari sana.
Ketik di penelusuran riwayat:bagaimana caranya?
Namun, ada satu batasan. Seringkali saya menggunakan urutan di atas dan menemukan bahwa jika saya mengetik mis. Ctrl-R ls
sebelum prompt shell benar-benar muncul, Ctrl-R
bagian diabaikan tetapi ls
bagian ditampilkan.
Efek bersihnya adalah kita harus menunggu prompt shell muncul sebelum mengetik Ctrl-R
, mengalahkan sebagian waktu yang dihemat.
Pertanyaan
Apakah ada cara untuk memiliki Ctrl-R
dihormati bahkan dalam situasi typeahead?
Jawaban yang Diterima:
Ctrl . Anda –r sedang dicegat oleh mesin pemrosesan baris cookie terminal berbasis kernel.
Saat sleep
sedang berjalan, terminal dalam mode dimasak, yang berarti bahwa editor baris tty berbasis kernel berfungsi. Editor baris tty mendukung pengeditan baris perintah dasar. Tombol hapus (biasanya disetel ke Ctrl –h (spasi mundur) atau Del ) dan tombol pemutus (biasanya Ctrl-U ) adalah tombol pengeditan khusus yang paling terkenal yang dapat digunakan dalam mode ini. Editor baris ini berguna:yang memungkinkan utilitas interaktif yang tidak menggunakan readline atau pun kutukan untuk membaca baris input lengkap dari terminal sambil memungkinkan pengguna melakukan koreksi pengetikan.
Tetapi ada kunci khusus lain yang aktif dalam mode ini. Anda dapat melihatnya bersama dengan pengaturan kunci lainnya di output stty -a
dengan nama rprnt
dan pengaturan defaultnya adalah ... Anda dapat menebaknya ... Ctrl –r . Fungsi tombol ini adalah untuk mengecat ulang baris perintah saat ini, untuk berjaga-jaga jika baris tersebut rusak atau tidak sejajar karena keluaran terminal lainnya.
Untuk menghindarinya, Anda dapat menonaktifkan fungsi tersebut dengan stty rprnt undef
.
Secara pribadi saya sudah terbiasa dengan Ctrl –r ditafsirkan sebagai perintah pengecatan ulang dan saya terkejut setiap kali saya mencoba melakukannya di bash
dan melakukan sesuatu yang berbeda!