Temel olarak önceki (komut) argümanlarını sormada bir yararı vardır .
Örneğin, aşağıdaki komut verilirse:
echo Hello, world how are you today?
Daha sonra, Hello,
ilk argüman ve olacak altıncı sonuncu; yani buna yazarak başvurulabilir:today?
Alt+6 bunu takiben Ctrl-Alt-6
Ctrlgeleneksel olarak şapka karakteri olarak gösterilir ^
tuşları İsimler başına ilave ve Altsıra M-
olmasıdır M eta öneki.
Böylece yukarıdaki kısayol, ^My
yank olarak yeniden tanımlanabilir .
Ayrıca, komut satırında şapka değiştirme kısayolu vardır:
echo Hello, world!
^Hello^Bye
Bye, world!
önceki komutun ilk eşleşen dizesini değiştirmek , yani:
Hello, world! Hello, people!
^Hello^Bye
sonuç:
Bye, world! Hello, people!
ikinci maçı ( hello
) değiştirmeden bırakır .
Not: Şapkalar arasında boşluk bırakmayın , aksi takdirde işlem çalışmaz.
Yukarıdaki sadece bir kısayoldur:
!:s/Hello/Bye
önceki komutta bulunan ilk bulunan (eşleşen) dize için olay düzeyinde (*) ikamesi kullanılırken, ilk parçanın g
anahtarla önek eklenmesi , tüm satıra g için lobal olarak uygulanır :
echo Hello, world! Hello, people!
!:gs/Hello/Bye
Bye, world! Bye, people!
olarak genellikle gibi diğer ilgili komutlar yapılıyor sed
, vi
ve de regex
(normal ifade) - (aramak için standart bir yol eşleşme dizesini ).
Hayır, yapamazsınız !:sg/Hello/Bye
ya da !:s/Hello/Bye/g
burada, bu sözdizimi !
- ! olaylar içindir; olay, komut çıktısı veya komut geçmişinde yapılan işlem olarak anlaşılabilir.
Bunu kendim kullanarak ve manuel sayfalar, bloglar ve forumlar da dahil olmak üzere çeşitli kaynaklardan okuduğum şeyleri kendi başıma deneyerek anladım.
Umarım gizemli yollara ışık tutacaktır bash
, Bourne-Again kabuğunun ( sh
mucidinin soyadından sonra Bourne kabuğu olarak adlandırılan kabukta bir oyun ), sunucular da dahil olmak üzere birçok dağıtımda varsayılan kabuk olan sunucu ( sunucu işletim sistemleri ).
bind -lp
ararken, mevcut bağlamaları çalıştırmayı ve bakmayı seviyorum .