Saya menggunakan
history | less
untuk mendapatkan baris perintah sebelumnya dan dari angka di sebelah kiri saya menemukan baris yang ingin saya ulangi (mis. 22) dan berhasil
!22
pada prompt perintah dan itu berhasil — menjalankan serangkaian perintah pada baris yang saya lakukan saat itu. Saya tidak tahu di mana tanda seru digunakan, apa yang diwakilinya dalam hal tindakan yang diambil oleh bash, dan di mana menggunakannya. Dari dokumentasi saya tidak melihat penjelasan yang 'nyata'.
Jawaban yang Diterima:
!
memanggil ekspansi riwayat, fitur yang awalnya muncul di shell C, pada hari-hari sebelum Anda dapat mengandalkan terminal untuk memiliki tombol panah. Ini sangat berguna jika Anda menambahkan nomor perintah saat ini ke prompt (PS1="!$ "
) sehingga Anda dapat dengan cepat melihat layar untuk mendapatkan nomor untuk perintah sebelumnya.
Sekarang Anda dapat menggunakan tombol panah dan hal-hal seperti Ctrl-R untuk mencari riwayat perintah, saya tidak melihat banyak kegunaan fitur tersebut.
Salah satu variannya yang mungkin masih berguna bagi Anda adalah !!
, yang menjalankan kembali perintah sebelumnya. Sendiri, saya tidak menemukan ! ! Masukkan lebih cepat dari hanya ↑ Masukkan , tetapi dapat membantu jika digabungkan menjadi perintah yang lebih besar.
Contoh: Kesalahan pilot umum pada sudo
sistem berbasis adalah untuk melupakan sudo
awalan pada perintah yang membutuhkan hak ekstra. Seorang pemula mengetik ulang seluruh perintah. Siswa yang rajin mengedit perintah dari riwayat perintah shell. Yang tercerahkan mengetik sudo !!
.
Memproses !
dengan cara ini diaktifkan di Bash secara default di shell interaktif dan dapat dinonaktifkan dengan set +o histexpand
atau set +H
. Anda dapat menonaktifkannya di Zsh dengan set -K
.