Menekan tombol atas itu membosankan dan saya mungkin kehilangan perintah yang saya cari. Jadi ketika mengetik history
di terminal memberi saya semua perintah yang saya masukkan sebelumnya, diindeks ke nomor. Apakah ada cara saya bisa memanggil nomor yang terkait dengan perintah?
20
Jawaban:
Sejarah bash dapat melakukan banyak hal bermanfaat, dan pencarian dengan
Strg-r
yang disebutkan oleh Terry Wang adalah penting di antara mereka. Tetapi juga mungkin untuk melakukan persis apa yang Anda minta.Anda dapat melakukan kembali perintah sebelumnya dengan
!!
. Dengan ini, Anda juga dapat mengedit perintah sebelumnya. Jika misalnya Anda lupa untuk mendapatkan hak akses root untuk perintahAnda tidak perlu mengetik ulang semua itu lagi. Alih-alih hanya menelepon
Jika Anda ingin menjalankan kembali perintah pada posisi tertentu dari riwayat Anda, Anda juga dapat menggunakan
!
, misalnyauntuk menjalankan kembali perintah di posisi 3. Sadarilah bahwa ini diperhitungkan dari atas. Jadi jika Anda menyimpan 500 perintah dalam riwayat Anda,
!1
akan menjadi "500 perintah yang lalu". Anda juga dapat menggunakan angka negatif. Sebagai contohakan menjalankan kembali perintah terakhir kedua.
Anda juga dapat menjalankan kembali perintah terakhir yang dimulai dengan string seperti
yang akan melakukan ulang baris terakhir yang dimulai dengan "apt-". Jika Anda ingin perintah terakhir di mana string muncul di mana saja di baris, Anda dapat menggunakan sesuatu seperti
Ada banyak hal menarik yang bisa dilakukan oleh bash history. Hanya untuk memberi kesan berbagai kemungkinan, Anda dapat secara khusus mengakses parameter perintah dari riwayat. Begitu
akan mencetak parameter ketiga ke kelima dari perintah terakhir.
EDIT: Mengenai komentar Rudie di bawah ini, dengan pengaturan standar ekspansi bash history ini memang dieksekusi secara langsung. Ini mungkin terbaik digambarkan seperti ini: Sebuah panggilan seperti
!-3
ini digantikan oleh shell dengan perintah sepertiga terakhir dari riwayat dan kemudian masukan Anda (dengan penggantian) dieksekusi. Jadi jika Anda mengetik!-3
dan menekanENTER
dan perintah terakhir ketiga Anda adalahls ~
, itu berlaku sama seperti jika Anda mengetikls ~
lagi dan menekanENTER
"Anda sendiri".Jika Anda tidak menginginkannya, Anda dapat mengatur opsi shell
histverify
. Untuk mengatur dan menghapus opsi shell, Anda mungkin ingin membacashopt
perintah. Denganhistverify
set, panggilan seperti!-3
hanya menulis penggantian dari histori Anda ke baris perintah Anda, tetapi tidak langsung melakukannya. Anda punya, jadi untuk speek, tekan yang pentingENTER
sendiri - atau menahan diri dari itu, jika Anda mau.sumber
!
sangat berbahaya ... Saya ingin tahu apa yang!-4
dilakukan sebelum menjalankannya. Atau apakah itu menunjukkan Anda pertama kali? Ringkasan keren!!-238
. Seharusnya tidak terlalu sulit untuk mengingat perintah terakhir kedua, ketiga terakhir, mungkin terakhir;) Seperti yang sering terjadi pada Linux (dan, sebenarnya, dengan komputasi secara umum), diharapkan Anda tahu apa yang Anda lakukan. Dan jika Anda benar-benar menginginkan jaring pengaman tambahan, satushopt
lagi;)Ya ada. Jika, misalnya, Anda ingin menjalankan perintah yang memiliki nomor 1234 di sebelahnya, lakukan:
!1234
Hal berguna lainnya:
Jika Anda ingin menjalankan perintah terakhir yang Anda jalankan, lakukan:
Jika Anda ingin menjalankan
ls
perintah terakhir yang Anda jalankan, lakukan:Jika Anda hanya berlari
ls /some/long/path
, dan ingincd
melakukannya, lakukan:Untuk informasi lebih lanjut:
sumber
Gunakan kombinasi Kunci
Ctrl
-r
, Anda akan dapat menggunakan kata kunci untuk mencari riwayat pesta.Referensi penjilidan kunci bash cepat: http://ss64.com/bash/syntax-keyboard.html
sumber
Jika Anda telah menemukan nomor riwayat suatu perintah dan Anda ingin menjalankannya lagi, ketik
!
diikuti dengan nomor itu, mis.!1234
Dan tekan Enter. Ini adalah bagian dari ekspansi sejarah ; Anda bisa memasang pengubah ke dalamnya.Jika Anda ingin mengedit perintah sebelum menjalankannya,
fc 1234
panggil editor eksternal.Tetapi seperti yang telah disebutkan oleh Wang Wang biasanya ada cara yang lebih cepat untuk menemukan perintah dalam sejarah daripada menentukan nomor sejarahnya, termasuk Ctrl+ Runtuk memanggil pencarian tambahan (tekan Enterketika Anda telah menemukan perintah yang ingin Anda jalankan), atau
fc PREFIX
untuk mengeksekusi sebelumnya perintah dimulai denganPREFIX
.sumber
The
history
perintah akan menampilkan semua perintah dan jumlah mereka terkait. Jika Anda ingin melakukan pemeriksaan cepat sebelum mengeksekusi baris perintah # 135 Anda dapat mengetik:Ini akan menunjukkan kepada Anda apa yang akan dieksekusi.
sumber