Sihirli Parantezler:
Dosya uzantısını değiştirmek için iki süslü parantez kullanabilirsiniz:
mv ./file.{html,md}
# file.html -->> file.md
Bir sayı kümesi oluşturup bunu iterate edebilirsiniz:
echo {1..3}
# {START..END..INCREMENT} pattern
for i in {0..7..2}
do;
echo "for loop n: $i";
done
Semboller:
'$( )' sembolleri arasına yazdığınız karakterler bash’de değişken olarak yorumlanır.
touch foo-$(date -I)
Komutunuzun sonuna '&' işareti ekleyerek işlemin arka planda çalışmasını sağlayabilirsiniz.
curl --upload-file ./hello.txt https://transfer.sh/hello.txt &
'$!' en son yürüttüğünüz arka plan işleminin ID’sini gösterecektir.
sleep 60 &
kill $!
Son yazdığınız komutu tekrar yazmak istiyorsanız '!!' kullanabilirsiniz.
Kullanıcı eksik veya hatalı bir indirme yaparsa, sadece ana fonksiyon çalışmayacak ve kurulum gerçekleşmeyecektir. Böylece işler daha düzgün ve sorunsuz ilerleyecektir.
main() {
# your codes
}
main "$@"
Klavye Kısayolları
İşinize yarıyacak bazı popüler terminal kısayolları:
Ctrl + R
: Komut geçmişinizde arama yaparCtrl + E
: İmleci en başa götürürCtrl + A
: İmleci en sona götürürCtrl + U
: İmlecin solundaki kısmı silerCtrl + K
: İmlecin sağındaki kısmı silerCtrl + P
: Komut geçmişinizde geri giderCtrl + L
: Terminal ekranınızı temizlerCtrl + D
: Eğer aktif bir process’in içerisinde iseniz onu kapatır, değilseniz ve terminal’de herhangi bir şey yazılıysa imleçten sonraki karakteri siler, eğer hiçbişe yazılı değilse kullanıcıdan veya bulunduğun terminal’den çıkış yapar
Bazı İpuçlar:
- $$ is the PID of the current process.
- $? is the return code of the last executed command.
- $# is the number of arguments in $*
- $* is the list of arguments passed to the current process
- $@ holds a space delimited string of all arguments passed to the script
Resources
Project Ideas:
Bug Bounties With Bash https://www.dunebook.com/the-20-best-shell-scripting-project-ideas-to-improve-your-linux-skills/
Cheet Sheet:
Tutorial with examples:
https://linuxhint.com/3hr_bash_tutorial/