GNU/Linux >> Belajar Linux >  >> Linux

Memahami Tanda Seru (!) Di Bash?

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 .


Linux
  1. Cara menonaktifkan pengeditan riwayat saya di bash

  2. '&&' vs. '&' dengan perintah 'test' di Bash

  3. Apa perintah ekspor yang seharusnya dilakukan di Linux?

  1. Cara menggunakan perintah history di Linux

  2. Kiat bash untuk sehari-hari di baris perintah

  3. Apa yang dilakukan -e dalam bash shebang?

  1. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  2. Cara Menghapus Riwayat Bash di Linux

  3. Perbedaan Antara Operator Bash [[ Vs [ Vs ( Vs ((?