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, !!:2vb ( !!:0Bkz önceki komut kendisi olduğunu.) Gnu.org/software/bash/manual/bashref.html#History-Interaction
!$, !^ilk argüman için kullanın .
echo tiger rabbit, tigeraş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.txtline 2ll !:1-2
!:^-$için kullanılabilir veya elbette sayılarla birlikte benzer kod.
!!:nnistediğ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ı ndanhistory!pattern - en son komut eşleştirmesi pattern!!:s/find/replace- son komut, yerine findkoymakreplace!!: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 .