26 Ağustos 2019 Pazartesi

bash history expansion

Giriş
Otutum (session) kapandıktan sonra komutlar şu dosyaya yazılır.
~/.bash_history
!!
En son girilen komut ile yer değiştirir.
Örnek
Açıklaması şöyle
!! is a history command of bash, it gets replaced by the last command you‘ve executed. You can try ls followed by echo !!
Şöyle yaparız.
some command
echo !!
!komutu ismi yani event designator
Örnek
Şöyle yaparız
cp company-sso /usr/local/bin/company-sso ; sudo chmod +x !cp:$
Açıklaması şöyle
This is history expansion, introduced by !; the $ must be intepreted in that context. !cp:$ has two parts, separated by :. !cp is the event designator, it means “find the most recent command starting with cp”. $ is a word designator, it means “take the last word (argument) in the selected command”.

So, assuming the last command in the history (of previously-run commands) is also cp company-sso /usr/local/bin/company-sso, !cp:$ is replaced with /usr/local/bin/company-sso, and the command run is sudo chmod +x /usr/local/bin/company-sso.

!#:number
En çok kullanılan şeylerden birisi bu. history komutu ile tarihçe listelenir Her satırın yanında bir sayı vardır. "!Sayı" şeklinde kullanarak o komutu tekrar edebiliriz. Sayı olarak sondan geriye doğru gitmek için eksi bir sayı verilebilir.

Örnek
Açıklaması şöyle
!-n    Refer to the current command minus n
Sondan bir önceki komutu çalıştırmak için şöyle yaparız
!-2
Örnek
Şöyle yaparız.
echo "echo 'Hello World'" >script.sh&&chmod +x !#:3
Açıklaması şöyle.
History Expansion replaces !#:3 with the fourth word from the current command line, which in your case is the filename script.sh.

Hiç yorum yok:

Yorum Gönder