Apakah ada cara di Bash untuk mengingat argumen dari perintah sebelumnya?
Saya biasanya vi file.cdiikuti oleh gcc file.c.
Apakah ada cara di Bash untuk mengingat argumen dari perintah sebelumnya?
Apakah ada cara di Bash untuk mengingat argumen dari perintah sebelumnya?
Saya biasanya vi file.cdiikuti oleh gcc file.c.
Apakah ada cara di Bash untuk mengingat argumen dari perintah sebelumnya?
Jawaban:
Anda bisa menggunakan $_atau!$ untuk mengingat argumen terakhir dari perintah sebelumnya.
Juga Alt + .dapat digunakan untuk mengingat argumen terakhir dari salah satu perintah sebelumnya.
!!:1,, !!:2dll. ( !!:0Adalah perintah sebelumnya sendiri.) Lihat gnu.org/software/bash/manual/bashref.html#History-Interaction
!$, Anda gunakan !^untuk argumen pertama.
echo tiger rabbit, bagaimana saya bisa merujuk tigerpada perintah berikut?
Alt + .tidak bekerja dalam mode vi. Hanya FYI, untuk orang lain yang bingung di sini.
Jika perintah sebelumnya memiliki dua argumen, seperti ini
ls a.txt b.txt
dan Anda ingin yang pertama, Anda bisa mengetik
!:1
memberi
a.txt
Atau jika Anda menginginkan keduanya, Anda bisa mengetik
!:1-2
memberi
a.txt b.txt
Anda dapat memperluas ini ke sejumlah argumen, misalnya:
!:10-12
-bash: :1-2: bad word specifier
ls a.txtbaris 2ll !:1-2
!:^-$dapat digunakan atau tentu saja kode yang mirip dalam kombinasi dengan angka.
!!:n dimana n posisi 0 berdasarkan argumen yang Anda inginkan.
Sebagai contoh:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
Itu ! prefix digunakan untuk perintah sebelumnya akses.
Perintah lain yang bermanfaat:
!$ - argumen terakhir dari perintah sebelumnya!^ - Argumen pertama (setelah program / built-in / script) dari perintah sebelumnya!! - perintah sebelumnya (sering diucapkan "bang bang")!n- nomor perintah ndarihistory!pattern - pencocokan perintah terbaru pattern!!:s/find/replace- perintah terakhir, gantikan finddenganreplace!!:s/find/replace, Anda juga bisa ^find^replace.
!* - semua argumen dari perintah sebelumnya (setelah skrip program / built-in /). misalnya: ls *.tmp *.cache rm !*
Di baris perintah Anda dapat menekan esc- .atau alt+.
Itu siklus melalui argumen terakhir dari perintah Anda sebelumnya.
↑dan ↓kunci untuk bekerja juga.
Jika Anda tahu nomor yang diberikan dalam riwayat untuk perintah tertentu, Anda bisa mengambil argumen apa pun dalam perintah itu menggunakan istilah berikut.
Gunakan berikut untuk mengambil argumen kedua dari perintah ketiga dalam sejarah,
!3:2
Gunakan berikut untuk mengambil argumen ketiga dari perintah terakhir kelima dalam sejarah,
!-5:3
Menggunakan tanda minus, Anda memintanya untuk menelusuri dari perintah terakhir dari sejarah.
! * menjalankan perintah baru dengan semua argumen sebelumnya.
ls /tmp
cd !*
#you are now in /tmp
$_sebagai gantinya.
Ya, Anda bisa menggunakan !$untuk mengingat argumen terakhir dari perintah sebelumnya.