Yanıtlar:
Önceki komutun son argümanını geri çağırmak için $_
veya !$
tuşlarını kullanabilirsiniz .
Ayrıca Alt + .
önceki komutları herhangi birinin son argüman hatırlamak için kullanılabilir.
!!:1
, !!:2
vb ( !!:0
Bkz önceki komut kendisi olduğunu.) Gnu.org/software/bash/manual/bashref.html#History-Interaction
!$
, !^
ilk argüman için kullanın .
echo tiger rabbit
, tiger
aşağıdaki komuta nasıl başvurabilirim ?
Alt + .
vi modunda çalışmaz. Burada kafayı karıştıranlar için sadece FYI.
Önceki komutun iki bağımsız değişkeni varsa, bunun gibi
ls a.txt b.txt
ve ilkini istedin, yazabilirsin
!:1
vererek
a.txt
Veya her ikisini de istiyorsanız,
!:1-2
vererek
a.txt b.txt
Bunu istediğiniz sayıda bağımsız değişkene genişletebilirsiniz, örneğin:
!:10-12
-bash: :1-2: bad word specifier
ls a.txt
line 2ll !:1-2
!:^-$
için kullanılabilir veya elbette sayılarla birlikte benzer kod.
!!:n
n
istediğiniz bağımsız değişkenin 0 tabanlı konumu nerede .
Örneğin:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
Ön !
ek, önceki komutlara erişmek için kullanılır.
Diğer faydalı komutlar:
!$
- önceki komuttan son argüman!^
- önceki komuttan ilk argüman (program / yerleşik / koddan sonra)!!
- önceki komut (genellikle "bang bang" olarak telaffuz edilir)!n
- Komut numarası n
danhistory
!pattern
- en son komut eşleştirmesi pattern
!!:s/find/replace
- son komut, yerine find
koymakreplace
!!:s/find/replace
, bunu da yapabilirsiniz ^find^replace
.
!*
- önceki komuttaki tüm argümanlar (program / yerleşik / komut dosyasından sonra). örneğin: ls *.tmp *.cache rm !*
Komut satırında esc- .veya alt+.
Bu yoluyla döngüleri son argüman önceki komutların.
↑
ve ↓
çalışmak için anahtarları buldum .
Belirli bir komut için geçmişte verilen sayıyı biliyorsanız, aşağıdaki komutları kullanarak hemen hemen bu komutta herhangi bir argüman alabilirsiniz.
Geçmişteki üçüncü komuttan ikinci argümanı almak için aşağıdakini kullanın,
!3:2
Tarihteki son beşinci komuttan üçüncü argümanı almak için aşağıdakini kullanın,
!-5:3
Eksi işareti kullanarak, tarihin son komutundan geçmesini istersiniz.
! * önceki tüm bağımsız değişkenlerle yeni bir komut çalıştırır.
ls /tmp
cd !*
#you are now in /tmp
$_
bunun yerine kullanmak zorunda kaldı .
Evet, !$
önceki komutun son argümanını çağırmak için kullanabilirsiniz .