Apakah ada cara di Bash untuk mengingat argumen dari perintah sebelumnya?
Saya biasanya vi file.c
diikuti 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.c
diikuti 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
,, !!:2
dll. ( !!:0
Adalah 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 tiger
pada 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.txt
baris 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 n
darihistory
!pattern
- pencocokan perintah terbaru pattern
!!:s/find/replace
- perintah terakhir, gantikan find
denganreplace
!!: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.