You are on page 1of 142

GNU Bash Basvuru Klavuzu

Bash iin Basvuru Belgeleri


Yazan: Yazan: eviren:

Chet Ramey
Case Western Reserve University

Brian Fox
Free Software Foundation

Nilgn Belma Bugner


<nilgun (at) belgelergentr>

1 Kasm 2006

zet Bu kitapta Bash kabugunda bulunan zellikler ksaca aklanm tr (srm 3.2, 28 Eyll 2006). s Bash diger kabuklarn zelliklerini iermekten ba ka onlarda bulunmayan pek ok zellik ierir. Bashin s kavramlarn alntladg kabuklardan bazlar Bourne Kabugu (sh), Korn Kabugu (ksh) ve C kabugudur (csh ile hale olan tcsh). Konu ba lklarnn daglm da, bu kabuklardan birinin konu s daglmndan rnek alnm tr. s Bu klavuz Bashde bulunan zelliklere ksa bir giri olarak ele alnmaldr. Kabuk davran na tanmsal s s ba vuru olarak Bash klavuz sayfas kullanlmaldr. s

indekiler I
I. Giris . . . . . . . . . . . . . . . . . . 1. Bash Nedir? . . . . . . . . . . . . 2. Kabuk Nedir . . . . . . . . . . . . II. Terimler . . . . . . . . . . . . . . . . III. Temel Kabuk zellikleri . . . . . . . 1. Kabukta Szdizimi . . . . . . . . 1.1. Kabuk Islemleri . . . . . . 1.2. Ayrmlama . . . . . . . . . 1.2.1. nceleme karakteri . 1.2.2. Tek Trnak . . . . . 1.2.3. ift Trnak . . . . . . 1.2.4. ANSIC Ayrmlamas 1.2.5. Yerele zel eviri . . 1.3. Betiklerde Aklamalar . . . 2. Kabuk Komutlar . . . . . . . . . 2.1. Basit Komutlar . . . . . . . 2.2. Boruhatlar . . . . . . . . . 2.3. Komut Listeleri . . . . . . . 2.4. Birle ik Komutlar . . . . . . s 2.4.1. Dngler . . . . . . 2.4.1.1. until . . . . . 2.4.1.2. while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 9 11 12 12 13 13 13 13 13 14 14 14 15 15 15 16 16 16 16

GNU Bash Basvuru Klavuzu

2.4.1.3. for . . . . . . . . . . . . . . . . . . . . . . 2.4.2. Ko ullu al trma . . . . . . . . . . . . . . . . . s s 2.4.2.1. if . . . . . . . . . . . . . . . . . . . . . . . 2.4.2.2. case . . . . . . . . . . . . . . . . . . . . . 2.4.2.3. select . . . . . . . . . . . . . . . . . . . . 2.4.2.4. (()) . . . . . . . . . . . . . . . . . . . . . 2.4.2.5. [[]] . . . . . . . . . . . . . . . . . . . . . 2.4.3. Komutlarn Gruplanmas . . . . . . . . . . . . . . 2.4.3.1. () ile gruplama . . . . . . . . . . . . . . . . 2.4.3.2. {} ile gruplama . . . . . . . . . . . . . . . . 3. Kabuk Islevleri . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Kabuk Parametreleri . . . . . . . . . . . . . . . . . . . . . . . 4.1. Konumsal Parametreler . . . . . . . . . . . . . . . . . . 4.2. zel Parametreler . . . . . . . . . . . . . . . . . . . . . 5. Kabuk Yorumlar . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. Ka l Ayralarn Yorumlanmas . . . . . . . . . . . . . . s 5.2. Yakla k () Yorumlamas . . . . . . . . . . . . . . . . . s 5.3. Kabuk Parametrelerinin Yorumlamas . . . . . . . . . . . 5.4. Komut Ikamesi . . . . . . . . . . . . . . . . . . . . . . . 5.5. Aritmetik Yorumlama . . . . . . . . . . . . . . . . . . . . 5.6. Sre Ikamesi . . . . . . . . . . . . . . . . . . . . . . . 5.7. Szcklere Ayrma . . . . . . . . . . . . . . . . . . . . . 5.8. Dosyaismi Yorumlamas . . . . . . . . . . . . . . . . . . 5.8.1. Kalp E leme . . . . . . . . . . . . . . . . . . . . s 5.9. Trnak kaldrma . . . . . . . . . . . . . . . . . . . . . . 6. Ynlendirmeler . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. Girdi Ynlendirmesi . . . . . . . . . . . . . . . . . . . . 6.2. kt Ynlendirmesi . . . . . . . . . . . . . . . . . . . . 6.3. Ynlendirilmi ktnn Eklenmesi . . . . . . . . . . . . . s 6.4. Standart kt ve Standart Hatann Ynlendirmesi . . . . 6.5. Uzun Metinlerin Ynlendirilmesi . . . . . . . . . . . . . . 6.6. Dizgelerin Ynlendirilmesi . . . . . . . . . . . . . . . . . 6.7. Dosya Tantclarnn Kopyalanmas . . . . . . . . . . . . 6.8. Dosya Tantclarn Ta nmas . . . . . . . . . . . . . . . s 6.9. Dosya Tantclarnn Okuma ve Yazma Amacyla Almas 7. Komutlarn al trlmas . . . . . . . . . . . . . . . . . . . . . s 7.1. Basit Komut Yorumlamas . . . . . . . . . . . . . . . . . 7.2. Komutun Bulunmas ve al trlmas . . . . . . . . . . . s 7.3. Komut al trma Ortam . . . . . . . . . . . . . . . . . s 7.4. Ortam . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5. k Durumu . . . . . . . . . . . . . . . . . . . . . . . s 7.6. Sinyaller . . . . . . . . . . . . . . . . . . . . . . . . . . 8. Kabuk Betikleri . . . . . . . . . . . . . . . . . . . . . . . . . . IV. Yerlesik Kabuk Komutlar . . . . . . . . . . . . . . . . . . . . . . 1. Bourne Kabugu Yerle ikleri . . . . . . . . . . . . . . . . . . . . s 1.1. : (iki nokta stste) . . . . . . . . . . . . . . . . . . . . . 1.2. . (nokta) . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. break Yerle igi . . . . . . . . . . . . . . . . . . . . . . . s 1.4. cd Yerle igi . . . . . . . . . . . . . . . . . . . . . . . . . s 1.5. continue Yerle igi . . . . . . . . . . . . . . . . . . . . . s

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17 17 17 17 18 18 18 19 19 19 20 21 21 21 22 23 23 24 26 27 27 27 27 28 29 29 30 30 31 31 31 31 31 32 32 32 32 33 33 34 35 35 35 37 38 38 38 38 38 39

http://belgeler.org

Linux Kitaplg

2 / 142

GNU Bash Basvuru Klavuzu

1.6. eval Yerle igi . . . . . . . . s 1.7. exec Yerle igi . . . . . . . s 1.8. exit Yerle igi . . . . . . . . s 1.9. export Yerle igi . . . . . . s 1.10. getopts Yerle igi . . . . . s 1.11. hash Yerle igi . . . . . . . s 1.12. pwd Yerle igi . . . . . . . s 1.13. readonly Yerle igi . . . . . s 1.14. return Yerle igi . . . . . . s 1.15. shift Yerle igi . . . . . . . s 1.16. test Yerle igi [ . . . . . s 1.17. times Yerle igi . . . . . . s 1.18. trap Yerle igi . . . . . . . s 1.19. umask Yerle igi . . . . . . s 1.20. unset Yerle igi . . . . . . s 2. Bash Yerle ik Komutlar . . . . . s 2.1. alias Yerle igi . . . . . . . s 2.2. bind Yerle igi . . . . . . . . s 2.3. builtin Yerle igi . . . . . . . s 2.4. caller Yerle igi . . . . . . . s 2.5. command Yerle igi . . . . . s 2.6. declare Yerle igi . . . . . . s 2.7. echo Yerle igi . . . . . . . s 2.8. enable Yerle igi . . . . . . s 2.9. help Yerle igi . . . . . . . . s 2.10. let Yerle igi . . . . . . . . s 2.11. local Yerle igi . . . . . . . s 2.12. logout Yerle igi . . . . . . s 2.13. printf Yerle igi . . . . . . s 2.14. read Yerle igi . . . . . . . s 2.15. set Yerle igi . . . . . . . . s 2.16. shopt Yerle igi . . . . . . s 2.17. source Yerle igi . . . . . . s 2.18. type Yerle igi . . . . . . . s 2.19. typeset Yerle igi . . . . . s 2.20. ulimit Yerle igi . . . . . . s 2.21. unalias Yerle igi . . . . . s 3. zel Yerle ikler . . . . . . . . . . s V. Kabuk Degiskenleri . . . . . . . . . . 1. Bourne Kabugu Degi kenleri . . . s 2. Bash Degi kenleri . . . . . . . . s VI. Bashin zellikleri . . . . . . . . . . 1. Bashin agrlmas . . . . . . . . 2. Bash Ba latma Dosyalar . . . . . s 3. Etkile imli Kabuklar . . . . . . . . s 3.1. Etkile imli Kabuk Nedir? . . s 3.2. Bu Kabuk Etkile imli mi? . s 3.3. Etkile imli Kabuk Davran s s fadeleri . . . . . . . 4. Bash Ko ullu I s 5. Kabuk Aritmetigi . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39 39 39 39 39 40 40 40 41 41 41 42 42 43 43 43 43 43 44 44 45 45 46 47 47 47 47 47 48 48 49 52 56 56 57 57 58 58 59 59 60 67 67 69 70 70 70 71 72 74

http://belgeler.org

Linux Kitaplg

3 / 142

GNU Bash Basvuru Klavuzu

6. Takma Adlar . . . . . . . . . . . . . . . . . . . . 7. Diziler . . . . . . . . . . . . . . . . . . . . . . . 8. Dizin Ygn Yerle ikleri . . . . . . . . . . . . . . s 8.1. Dirs Yerle igi . . . . . . . . . . . . . . . . s 8.2. Popd Yerle igi . . . . . . . . . . . . . . . s 8.3. Pushd Yerle igi . . . . . . . . . . . . . . s 9. Komut Isteminin Kontrol Edilmesi . . . . . . . . . 10. Snrl Kabuk . . . . . . . . . . . . . . . . . . . 11. Bash POSIX Kipi . . . . . . . . . . . . . . . . s Denetimi . . . . . . . . . . . . . . . . . . . . . . VII. I 1. Is Denetiminin Temelleri . . . . . . . . . . . . . 2. Is Denetim Yerle ikleri . . . . . . . . . . . . . . s 2.1. Bg Yerle igi . . . . . . . . . . . . . . . . s 2.2. Fg Yerle igi . . . . . . . . . . . . . . . . s 2.3. Jobs Yerle igi . . . . . . . . . . . . . . . s 2.4. Kill Yerle igi . . . . . . . . . . . . . . . . s 2.5. Wait Yerle igi . . . . . . . . . . . . . . . s 2.6. Disown Yerle igi . . . . . . . . . . . . . . s 2.7. Suspend Yerle igi . . . . . . . . . . . . . s s Denetim Degi kenleri . . . . . . . . . . . . . 3. I s VIII. Komut Satrnn Dzenlenmesi . . . . . . . . . . 1. Satr Dzenlemeye Giri . . . . . . . . . . . . . s 2. Readline Etkile imi . . . . . . . . . . . . . . . . s 2.1. Readlinen Yaln z . . . . . . . . . . . 2.2. Readline Hareket Tu lar . . . . . . . . . s 2.3. Readline Kes ve Yap tr Komutlar . . . . s 2.4. Readline Argmanlar . . . . . . . . . . . 2.5. Gemi iinde Komutlarn Aranmas . . . s lklendirme Dosyas . . . . . . . . . . . 3. Readline I 3.1. Readline Ilklendirme Dosyasnn Szdizimi 3.1.1. Degi ken Atamalar . . . . . . . . . s 3.1.2. Tu Ksayollar . . . . . . . . . . . s 3.2. Ko ullu Ilklendirme Yaplar . . . . . . . . s 3.3. rnek Ilklendirme Dosyas . . . . . . . . 4. Ksayollar iin Readline Komutlar . . . . . . . . 4.1. Hareket Komutlar . . . . . . . . . . . . . 4.2. Gemi i Yneten Komutlar . . . . . . . . s 4.3. Metni Degi tirmek iin Komutlar . . . . . . s 4.4. Kesme ve Yap trma Komutlar . . . . . . s 4.5. Saysal Argmanlarn Belirtilmesi . . . . . 4.6. Readline Sizin Yerinize Yazsn . . . . . . 4.7. Klavye Makrolar . . . . . . . . . . . . . . 4.8. e itli Komutlar . . . . . . . . . . . . . . s 5. Readline vi Kipi . . . . . . . . . . . . . . . . . . 6. Programlanabilir Tamamlama . . . . . . . . . . 7. Programlanabilir Tamamlama Yerle ikleri . . . . s 7.1. Compgen Yerle igi . . . . . . . . . . . . . s 7.2. Complete Yerle igi . . . . . . . . . . . . . s IX. Gemisin Etkilesimli Kullanm . . . . . . . . . . . 1. Bashin Gemi sel Yetenekleri . . . . . . . . . . s

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75 76 77 77 77 78 78 80 80 83 83 84 84 84 84 85 85 85 85 86 87 87 88 88 89 89 90 90 90 91 91 93 95 96 98 98 98 99 100 101 102 103 103 105 105 107 107 107 111 111

http://belgeler.org

Linux Kitaplg

4 / 142

GNU Bash Basvuru Klavuzu

2. Bash Gemi Yerle ikleri . . . . . . . . . . . . . . s s 2.1. Fc Yerle igi . . . . . . . . . . . . . . . . . . s 2.2. History Yerle igi . . . . . . . . . . . . . . . s 3. Gemi Yorumlamas . . . . . . . . . . . . . . . . s 3.1. Eylem Belirticiler . . . . . . . . . . . . . . . 3.2. Szck Belirticiler . . . . . . . . . . . . . . 3.3. Degi tiriciler . . . . . . . . . . . . . . . . . s X. Bash Kurulumu . . . . . . . . . . . . . . . . . . . . . 1. Temel Kurulum . . . . . . . . . . . . . . . . . . . 2. Derleyiciler ve Seenekler . . . . . . . . . . . . . 3. oklu Mimariler iin Derleme . . . . . . . . . . . . 4. Kurulum Isimleri . . . . . . . . . . . . . . . . . . . 5. Sistem Trnn Belirtilmesi . . . . . . . . . . . . . 6. ntanmllarn Payla m . . . . . . . . . . . . . . s 7. Islem Denetimi . . . . . . . . . . . . . . . . . . . 8. Istege Bagl zellikler . . . . . . . . . . . . . . . . A. Hatalar Raporlama . . . . . . . . . . . . . . . . . . . B. Bash ile Bourne Kabugu Arasndaki Baslca Farklar B.1. SVR4.2 Kabugunun Olu umsal Farklar . . . . . s C. Bu Klavuzun Kopyalanmas . . . . . . . . . . . . . Kabuk Yerlesik Komutlar Dizini . . . . . . . . . . . . . Kabuk Seenekleri Dizini . . . . . . . . . . . . . . . . . Kabuk Anahtar Szckleri Dizini . . . . . . . . . . . . . Parametreler ve Degiskenler Dizini . . . . . . . . . . . slev Dizini . . . . . . . . . . . . . . . . . . . . . . . . . I Kavramlar Dizini . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

111 111 112 113 113 114 115 116 116 117 117 117 117 118 118 118 122 122 125 126 133 134 135 136 138 140

http://belgeler.org

Linux Kitaplg

5 / 142

GNU Bash Basvuru Klavuzu

Legal Notice
Copyright 19882005 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the FrontCover texts being "A GNU Manual," and with the BackCover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License." (a) The FSFs BackCover Text is: "You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development."

Yasal Uyar
Telif hakk 19882005 Free Software Foundation, Inc. Bu klavuzun har harne kopyalanmasna ve dagtlmasna telif hakk uyarsnn ve bu izin uyarsnn tm kopyalarnda bulunmas sartyla izin verilmi tir. s Bu belgeyi; Free Software Foundation tarafndan yaynlanm olan GNU zgr Belgelendirme Lisansnn s 1.2 veya daha sonraki bir srmne sadk kalmak ko ulu ile kopyalayabilir, dagtabilir veya dzenleyes bilirsiniz: degi mez blmler yoktur, nkapak yazs olarak "A GNU Manual" ile a agdaki (a) skkndaki s s arkakapak yazs bulunmaldr. Bu Lisansn bir kopyasn GNU Free Documentation License (sayfa: 126) ba lkl blmde bulabilirsiniz. s (a) FSFnin ArkaKapak Metni: "You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development."

Feragatname
Belge ierigindeki bilgileri uygulama sorumlulugu uygulayana aittir. I I BU KTAP CRETSZ OLARAK RUHSATLANDIGI N, ERDG BLGLER N LGL KANUNI I I II I I I I I I I ZN VERDG LDE HERHANG BR GARANT VERLMEMEKTEDR. AKS YAZILI I LARINI I I I I I I I I I OLARAK BELRTLMEDG MDDETE TELF HAKKI SAHPLER VE/VEYA BASKA SAHISLAR I I II I I I KTABI "OLDUGU GB", ASKAR VEYA ZIMNEN, SATILABLRLG VEYA HERHANG BR AMACA I I I I I I II I I UYGUNLUGU DA DAHL OLMAK ZERE HBR GARANT VERMEKSZN DAGITMAKTADIRLAR. I I I I I I BLGNN KALTES LE LGL TM SORUNLAR SZE ATTR. HERHANG BR HATALI BLGDEN I I I I I I I I I I I I I I I I DOLAYI DOGABLECEK OLAN BTN SERVS, TAMR VEYA DZELTME MASRAFLARI SZE ATTR. I I I I I I LGL KANUNUN CBAR ETTG DURUMLAR VEYA YAZILI ANLASMA HARCNDE HERHANG BR I I I I II I I I I LDE TELF HAKKI SAHB VEYA YUKARIDA ZN VERLDG SEKLDE KTABI DEGSTREN I I I SEKI I I I I I I I I I VEYA YENDEN DAGITAN HERHANG BR KS, BLGNN KULLANIMI VEYA KULLANILAMAMASI I I I II I I I (VEYA VER KAYBI OLUSMASI, VERNN YANLIS HALE GELMES, SZN VEYA NC SAHISLARIN I I I I I I ZARARA UGRAMASI VEYA BLGLERN BASKA BLGLERLE UYUMSUZ OLMASI) YZNDEN I I I I I OLUSAN GENEL, ZEL, DOGRUDAN YA DA DOLAYLI HERHANG BR ZARARDAN, BYLE BR I I I TAZMNAT TALEB TELF HAKKI SAHB VEYA LGL KSYE BLDRLMS OLSA DAH, SORUMLU I I I I I I I I II I I I I I I I DEGLDR.

http://belgeler.org

Linux Kitaplg

6 / 142

GNU Bash Basvuru Klavuzu

I. Giris
indekiler I
1. Bash Nedir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Kabuk Nedir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1. Bash Nedir?
Bash GNU i letim sistemi iin bir kabuk ya da ba ka bir deyi le komut dili yorumlaycsdr. BourneAgain s s s SHell szcklerinde tretilmi bir ksaltmadr. Bell Ara trma Laboratuarnn Unixinin yedinci srmndeki, su s s anki Unix kabugu shn atasnn yazar Stephen Bournea atfen bu isim verilmi tir. s Bash, shn hemen hemen tm zelliklerini ve Korn kabugu olan ksh ile C kabugu olarak bilinen cshn kullan l s zelliklerini bir araya getirir. IEEE POSIX belirtiminin IEEE POSIX Kabuk ve Aralar blmne (IEEE Standard 1003.1) uygun bir rn olmas amalanm tr. shn hem etkile imli hem de programlama iin kullanmn i levsel s s s olarak arttran geli tirmeler ierir. s GNU i letim sistemi, cshn bir srm de dahil olmak zere ba ka kabuklarla da tehiz edilmi se de Bash s s s ntanml kabuktur. Diger GNU yazlmlar gibi Bashde bir ok i letim sistemine uyarlanabilir MSDOS, OS/2 s ve Windows platformlar iin bagmsz olarak desteklenen srmleri vardr.

2. Kabuk Nedir
Temelinde, bir kabuk, komutlar al trmaya yarayan basit bir makro i lemcisidir. Burada makro i lemcisi ters s s imi, metinlerin ve sembollerin daha geni ifadeler olu turmak zere geni letilmesi i levini yerine getiren ans s s s lamndadr. Bir Unix kabugu, hem bir komut yorumlaycs hem de bir programlama dilidir. Bir komut yorumlayc olarak, GNU aralarndan zengin bir demeti barndran bir arayzdr. Programlama dili zellikleri ise bu aralar birarada kullanabilmeyi mmkn klar. Komutlar ieren dosyalar olu turulabilir ve bu dosyalarn kendileri birer komut haline s gelebilir. Bu yeni komutlar /bin dizinindeki sistem komutlar gibi kullanclara ve gruplara ortak kullandklar i lemleri otomatikle tiren zelle tirilebilir ortamlar saglayabilir. s s s Kabuklar etkile imli ya da etkile imsiz kullanlabilirler. Etkile imli kipte, girdi klavyeden kabul edilirken, etks s s ile imsiz kipte bir dosyadan okunur. s Bir kabuk, GNU komutlarn hem e zamanl hem de e zamansz al trabilir. Kabuk, ba ka bir girdi kabul s s s s etmeden nce e zamanl komutlarn i lemlerini bitirmesini bekleyebilecegi gibi, e zamansz komutlara paralel s s s olarak kabugun ek komutlar okumasn ve al trmasn saglayabilir. Ynlendirme yaplar ile bu komutlarn s giri ve k larnn kolayca denetlenmesini mmkn klar. stelik, komutlarn al trldg ortam zerinde de s s s denetimi saglar. Kabuklar ayrca ayr aralar zerinden saglanmas sakncal olan ya da imkansz olan i levselligi saglamak s zere yerle ik komutlarn (yerle ikler builtins) kk bir demetini barndrr. rnegin, cd (sayfa: 38), break s s (sayfa: 38), continue (sayfa: 39) ve exec (sayfa: 39)) komutlar dogrudan kabugun kendisini etkilediginden kabuk d nda gereklenemezler. history (sayfa: 112), getopts (sayfa: 39), kill (sayfa: 85) veya pwd s (sayfa: 40) yerle ikleri ise, digerlerine kar n ayr aralar olarak gereklenebilirdi ama yerle ik komutlar olarak s s s kullanlmas daha faydaldr. Tm kabuk yerle ikleri klavuzun ileri blmlerinde anlatlm tr. s s Komutlar icra edilirken kabugun esas gc (ve karma klg) kabugun gml programlama dilinden gelir. Diger s yksek seviyeli programlama dilleri gibi kabuk da degi kenler, ak denetim yaplar, i levler ierir ve ayrmlama s s s yapabilir.

http://belgeler.org

Linux Kitaplg

7 / 142

GNU Bash Basvuru Klavuzu

Kabugun zellikleri programlama dilini glendirmekten ziyade zellikle etkile imli kullanm kuvvetlendirmeyi s ne karr. Bu etkile im zellikleri i denetimi, komut satr dzenlemesi, komut gemi i ve takma adlardr. Bu s s s zelliklerin herbiri klavuzun ileri blmlerinde aklanm tr. s

http://belgeler.org

Linux Kitaplg

8 / 142

GNU Bash Basvuru Klavuzu

II. Terimler
Klavuzun iinde kullanlan baz terimler. alan (eld) Kabuk yorumlarndan birinin sonucu olan bir metin birimidir. Yorumlama sonras, bir komut icra edilirken olu an alanlar komut ismi ve argmanlar olarak kullanlr. s anahtar szck (reserved word) Kabukta zel anlam olan bir szck. Anahtar szcklerin ogunlugu for ve while gibi kabuk ak s denetimi yaplarnda kullanlr. bosluk (blank) Bir bo luk ya da sekme (tab) karakteri. s ks durumu (exit status) Bir komutun kendini agrana dndrdg deger. Deger, sekiz bit geni likle snrldr ve dolaysyla en ok s 255 degerini alabilir. denetim isleci (control operator) Bir denetim i levi gerekle tiren bir szcktr. Bir satrsonu (LF) karakteri olabildigi gibi ||, &&, &, ;, ;;, s s |, ( veya ) dizgeciklerinden biri de olabilir. dizgecik (token) Kabuk tarafndan tek birim olarak ele alnan bir karakter dizisi. Bir szck olabildigi gibi bir i le de olabilir. s dosyaismi (lename) Bir dosyay tanmlayan bir karakter dizgesidir. dns durumu (return status) k durumu ile e anlamldr. s s isim (name) Bir harf veya altizgi karakteri ile ba layan ve altizgiler, harer ve rakamlardan olu an bir szck. simler, s s I kabuk degi kenleri ve i lev isimleri olarak kullanlr. Ayrca belirte olarak da bilinir. s s is (job) Bir boruhatt (|) ieren bir sre kmesi ve tamam ayn sre grubundan olarak onun alt sreci olan srelerin hepsi. isle (operator) Bir denetim ya da bir ynlendirme i leci. Ynlendirme i leleri hakknda daha ayrntl bilgi edinmek iin s s Ynlendirmeler (sayfa: 29) blmne baknz. is denetimi (job control) Kullanclarn sreleri durdurma ve yeniden ba latmay seebildikleri bir mekanizma. s metakarakter (metacharacter) Trnaklarla sarmalanmam , tek ba na bir anlam olan bir karakter. Bir metakarakter bir bo luk olabildigi s s s gibi |, &, ;, (, ), < veya > karakterlerinden biri de olabilir. zel yerlesik (special builtin)

http://belgeler.org

Linux Kitaplg

9 / 142

GNU Bash Basvuru Klavuzu

POSIX standard tarafndan zel olarak snanm bir yerle ik kabuk komutu. s s POSIX Unixi temel alan bir ak sistem standartlar ailesi. Bash, POSIX 1003.1 standardnn Kabuk ve Aralar blmn ile ilgilenir. sinyal (signal) Sistem iinde bir eylem olu turmak zere ekirdek tarafndan bir srecin uyarlmasn saglayan s mekanizma. szck (word) sle olmayan bir dizgecik. I sre grubu (process group) Ayn sre kimligine (PID) sahip birbiriyle ili kili srelerden olu an kme. s s sre grubu kimligi (process group ID) Bir sre grubunu ya am sresince tanmlayan bir e siz belirte. s s yerlesik (builtin) Dosya sisteminin iinde bir yerlerde bulunan bir al trlabilir program degil, kabugun kendi iinde gereks lenmi komutlar. s

http://belgeler.org

Linux Kitaplg

10 / 142

GNU Bash Basvuru Klavuzu

III. Temel Kabuk zellikleri


indekiler I
1. Kabukta Szdizimi . . . . . . . . . . . . 1.1. Kabuk Islemleri . . . . . . . . . . . 1.2. Ayrmlama . . . . . . . . . . . . . 1.2.1. nceleme karakteri . . . . . 1.2.2. Tek Trnak . . . . . . . . . . 1.2.3. ift Trnak . . . . . . . . . . 1.2.4. ANSIC Ayrmlamas . . . . 1.2.5. Yerele zel eviri . . . . . . 1.3. Betiklerde Aklamalar . . . . . . . 2. Kabuk Komutlar . . . . . . . . . . . . . 2.1. Basit Komutlar . . . . . . . . . . . 2.2. Boruhatlar . . . . . . . . . . . . . 2.3. Komut Listeleri . . . . . . . . . . . 2.4. Birle ik Komutlar . . . . . . . . . . s 2.4.1. Dngler . . . . . . . . . . . 2.4.1.1. until . . . . . . . . . . 2.4.1.2. while . . . . . . . . . 2.4.1.3. for . . . . . . . . . . . 2.4.2. Ko ullu al trma . . . . . . s s 2.4.2.1. if . . . . . . . . . . . . 2.4.2.2. case . . . . . . . . . . 2.4.2.3. select . . . . . . . . . 2.4.2.4. (()) . . . . . . . . . 2.4.2.5. [[]] . . . . . . . . . . 2.4.3. Komutlarn Gruplanmas . . . 2.4.3.1. () ile gruplama . . . . 2.4.3.2. {} ile gruplama . . . . slevleri . . . . . . . . . . . . . . 3. Kabuk I 4. Kabuk Parametreleri . . . . . . . . . . . 4.1. Konumsal Parametreler . . . . . . . 4.2. zel Parametreler . . . . . . . . . 5. Kabuk Yorumlar . . . . . . . . . . . . . 5.1. Ka l Ayralarn Yorumlanmas . . . s 5.2. Yakla k () Yorumlamas . . . . . . s 5.3. Kabuk Parametrelerinin Yorumlamas 5.4. Komut Ikamesi . . . . . . . . . . . 5.5. Aritmetik Yorumlama . . . . . . . . 5.6. Sre Ikamesi . . . . . . . . . . . . 5.7. Szcklere Ayrma . . . . . . . . . 5.8. Dosyaismi Yorumlamas . . . . . . 5.8.1. Kalp E leme . . . . . . . . . s 5.9. Trnak kaldrma . . . . . . . . . . . 6. Ynlendirmeler . . . . . . . . . . . . . . 6.1. Girdi Ynlendirmesi . . . . . . . . . 6.2. kt Ynlendirmesi . . . . . . . . . 6.3. Ynlendirilmi ktnn Eklenmesi . s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 13 13 13 13 13 14 14 14 15 15 15 16 16 16 16 17 17 17 17 18 18 18 19 19 19 20 21 21 21 22 23 23 24 26 27 27 27 27 28 29 29 30 30 31

http://belgeler.org

Linux Kitaplg

11 / 142

GNU Bash Basvuru Klavuzu

6.4. Standart kt ve Standart Hatann Ynlendirmesi . . . . . 6.5. Uzun Metinlerin Ynlendirilmesi . . . . . . . . . . . . . . 6.6. Dizgelerin Ynlendirilmesi . . . . . . . . . . . . . . . . . 6.7. Dosya Tantclarnn Kopyalanmas . . . . . . . . . . . . 6.8. Dosya Tantclarn Ta nmas . . . . . . . . . . . . . . . s 6.9. Dosya Tantclarnn Okuma ve Yazma Amacyla Almas 7. Komutlarn alstrlmas . . . . . . . . . . . . . . . . . . . . . 7.1. Basit Komut Yorumlamas . . . . . . . . . . . . . . . . . 7.2. Komutun Bulunmas ve al trlmas . . . . . . . . . . . s 7.3. Komut al trma Ortam . . . . . . . . . . . . . . . . . . s 7.4. Ortam . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5. k Durumu . . . . . . . . . . . . . . . . . . . . . . . . s 7.6. Sinyaller . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. Kabuk Betikleri . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

31 31 31 31 32 32 32 32 33 33 34 35 35 35

Bash, BourneAgain SHell szcklerinden olu turulmu bir ksaltmadr. Bourne kabugu, ilk olarak s s Stephen Bourne tarafndan yazlm olan geleneksel Unix kabugudur. Bourne kabugunun ierdigi tm yerle ik s s komutlar Bashde de bulunmaktadr. Degerleme ve ayrmlama kurallar standart Unix kabugu iin posix belirti minden alnm tr. s Bu ksmda, kabuk bloklarnn kurgulanmasna ksaca deginilmi tir: komutlar, denetim yaplar, kabuk i levleri, s s kabuk parametreleri, kabuk almlar, isimli dosyalarla dogrudan al labilmeyi saglayan ynlendirmeler ve s kabuk komutlarnn al trlmas. s

1. Kabukta Szdizimi
Kabuk bir girdiyi okuduktan sonra bir dizi i lem yrtr. Eger girdi bir aklama ba langc ieriyorsa, kabuk s s aklama semboln (#) ve satrn kalann yoksayar. Aksi takdirde kabuk, girdiyi okur ve onu szcklere ve i lelere ayrr, ayrmlama kurallarn kullanarak szckleri ve karakterleri anlamlandrr. s Bundan sonra bu dizgecikleri komutlar ve bagl yaplar olarak zmler, zel anlamlar olan szckleri ve karak terleri kaldrr, kalanlar yorumlar, gerekiyorsa girdi ya da kty ynlendirir, belirtilen komutlar al trr, komuts larn k durumu olu turmasn bekler ve bu k durumunu denetim veya i lem yaplabilmesi iin ktlar. s s s s

1.1. Kabuk slemleri I


A agdaki ksa aklamada bir komutun okunmas ve al trlmas srasndaki kabuk i lemleri anlatlm tr. Temel s s s s olarak, kabuk sunlar yapar: 1. Girdiyi bir dosyadan (sayfa: 35) veya c agr seeneginin (sayfa: 67) bir argman olarak saglanan bir dizgeden ya da kullancnn ubiriminden okur. 2. Ayrmlama (sayfa: 13) blmnde aklandg gibi ayrmlama kurallarna uygun olarak girdiyi szcklere ve i lelere ayrr. Bu dizgecikler metakarakterlerle ayrlr. Takma ad yorumlamas (sayfa: 75) da bu admda s uygulanr. 3. Dizgecikleri basit ve birle ik komutlar (sayfa: 14) olarak zmler. s 4. Yorumlanan dizgecikleri dosya listelerine (sayfa: 27), komutlara ve argmanlara ayrarak e itli s kabuk almlarn (sayfa: 22) uygular. 5. Varsa gerekli ynlendirmeleri (sayfa: 29) uyguladktan sonra ynlendirme i leleri ile terimlerini argman s listesinden kaldrr. 6. Komutu al trr (sayfa: 32). s

http://belgeler.org

Linux Kitaplg

12 / 142

GNU Bash Basvuru Klavuzu

7. stege bagl olarak komutun i ini bitirmesini ve k durumu (sayfa: 35) retmesini bekler. I s s

1.2. Ayrmlama
Ayrmlama i lemi kabukta, szckler ve karakterlerden zel anlamlandrmann kaldrlmas anlamnda kuls lanlm tr. Ayrmlama zel karakterlerin zel davran larn ortadan kaldrarak, onlarn anahtar szckler olarak s s tanmlanmasn ya da parametreler olarak alglanmasn engellemek iin kullanlr. Kabuk metakarakterlerinin (sayfa: 9) herbirinin kabuga zel anlam vardr ve bunlar sadece kendileri olarak ele s alnacaksa trnak iine alnmaldr. Komut gemi ine ili kin zellikler kullanlacaksa gemi yorumlama (sayfa: s s 90) karakteri olan ! i aretinin gemi yorumlamas yaplacak seklinde alglanmasn engellemek iin bu karakter s s trnak iine alnmaldr. Gemi yorumlamas ile ilgili daha ayrntl bilgi edinmek iin Bashin Gemi sel Yeteneks s leri (sayfa: 111) blmne baknz. tane ayrmlama mekanizmas vardr: nceleme karakteri, tek trnak ve ift trnak. 1.2.1. nceleme karakteri Trnak iine alnmam bir tersbl i areti \ Bash nceleme karakteri adn alr. Kendisinden sonra gelen bir s s karakterin ya da saysal bir karakter sabitinin degeri satrsonu karakteri hari korunur. Eger bir satrn so nunda tek ba na ve trnak iine alnmam bir \ karakterini izleyen bir satrsonu karakteri varsa yani, satrn s s sonunda bir \satrsonu ifti varsa, bu satr ve altndaki satr tek bir satr olarak yorumlanr (Bu durumda bu ift girdiden kaldrlr yani yoksaylr). 1.2.2. Tek Trnak Tek trnak () iine alnm karakterlerin degeri korunur. Ancak tek trnak karakteri, nceleme karakteri ile s ncelenmi olsa bile, tek trnak karakterleri arasnda bulunamaz. s 1.2.3. ift Trnak ift trnak (") iine alnm karakterlerin $, , \ ve gemi yorumlamas etkinse ! karakterleri hari degerleri s s korunur. ift trnak iine alnm $ ve karakterleri zel anlamlarn korurlar (Kabuk Yorumlar (sayfa: 22) s blmne baknz). \ karakteri ise $, , ", \ veya satrsonu karakterlerini ncelemek iin kullanlm sa s zel anlamn korur. ift trnak iindeki nceleme karakterlerinden bu karakterleri ncelemekte kullanlanlar kaldrlr. zel anlam olmayan karakterleri ncelemekte kullanlan nceleme karakteri degi meden kalr. Bir ift s trnak, nceleme karakteri ile ncelenerek ift trnaklar arasnda kullanlabilir. Gemi yorumlamas etkinse, ift s trnaklar iinde bir ! varsa ve nceleme karakteri ile ncelenmi degilse gemi yorumlamas uygulanr. s s zel karakterler olan * ve @ ift trnaklar arasnda zel anlama sahiptir (Kabuk Parametrelerinin Yorumlamas (sayfa: 24) blmne baknz). 1.2.4. ANSIC Ayrmlamas

$dizge biimindeki szckler zel olarak ele alnr. Szck, iindeki ANSI C standardnda belirtilen tersbl
ncelemeli karakterler yorumlanarak dizgeye dn trlr. Varsa tersbl ncelemeli karakterler a agdaki gibi s s yorumlanr:

\a
uyar (zil)

\b
gerisilme

\e http://belgeler.org
Linux Kitaplg 13 / 142

GNU Bash Basvuru Klavuzu

nceleme karakteri (ANSI C degil)

\f
sayfa ileri

\n
satrsonu

\r
satrba s

\t
yatay sekme

\v
d ey sekme s

\\
tersbl

\
tek trnak

\nnn
Sekizlik tabanda nnn (3 rakaml bir say) olarak degeri verilen sekiz bitlik karakter

\xHH
Onaltlk tabanda HH (iki onaltlk rakam) olarak degeri verilen sekiz bitlik karakter

\cx
Bir <Ctrl><x> karakteri Sonu, dolar i areti yokmu asna tek trnaklar iine alnr. s s 1.2.5. Yerele zel eviri

$ i areti ile ncelenmi ift trnakl bir dizge ($"dizge") yerel dile evrilir. Eger yerel ayarlar C ya da POSIX s s ise $ i areti yoksaylr. Yerel dile evrilen dizgeden ift trnaklar kaldrlmaz. s
Baz sistemler LC_MESSAGES ortam degi keni ile belirtilen yerelin ileti kataloglarn kullanrken bazlar s da TEXTDOMAIN ortam degi kenindeki, genellikle .mo sonekli dosya ismi ile belirtilen ileti kats alogunu kullanr. TEXTDOMAIN degi keni kullanldgnda, dosyann bulundugu yerin TEXTDOMAINDIR s ortam degi keni ile belirtilmesi gerekir. Bazlar da bu her iki degi keni birlikte kullanabilir: TEXTDOs s MAINDIR/LC_MESSAGES/LC_MESSAGES/TEXTDOMAIN.mo.

1.3. Betiklerde Aklamalar


shopt (sayfa: 52) yerle ik komutunun etkin oldugu etkile imli veya etkile imsiz tm kabuklarda # karakteri ile s s s ba layan bir szck ve satr sonuna kadar devamndaki tm karakterler yoksaylr. interactive_comments s seenegi etkinle tirilmemi bir etkile imli kabukta aklamalara izin verilmez. Bu seenek etkile imli kabuklarda s s s s ntanml olarak etkindir. Bir kabugu etkile imli hale getirmek iin ne yaplmas gerektigi Etkile imli Kabuklar s s (sayfa: 70) blmnde anlatlm tr. s

2. Kabuk Komutlar
http://belgeler.org
Linux Kitaplg 14 / 142

GNU Bash Basvuru Klavuzu

echo a b c gibi basit bir kabuk komutu, komutun kendisi ile kendisinden sonra gelen ve bo luklarla ayrlm s s
argmanlardan olu ur. s Basit komutlarn e itli yollarla birarada kullanlmasyla daha karma k kabuk komutlar elde edilebilir: bir s s boruhatt ile birinci basit komutun kts ikinci basit komuta girdi olarak aktarlabilir, bir dng, bir ko ullu ifade s ya da ba ka gruplamalar altnda birarada kullanlabilir. s

2.1. Basit Komutlar


Bir basit komut en ok rastlanan komut e itidir. Bo luklarla ayrlm szcklerden olu ur ve kabuk denes s s s lk szck genelde al trlmas istenen komuttur, kalanlar ise bu tim i leleri (sayfa: 9)nden biri ile sonlanr. I s s komutun argmanlardr. Bir basit komutun dn durumu (sayfa: 9), POSIX 1003.1 waitpid i levi ile saglanan bir k durumu (sayfa: s s s 35) ya da komut bir n sinyali ile sonlandrlm sa 128+ndir. s

2.2. Boruhatlar
Bir boruhatt, | karakteri ile ayrlm basit komutlar dizisidir. s Bir boruhattnn szdizimi:
[time [p]] [!] komut1 [| komut2 ...]

Bir boruhattndaki her komut bir kanal ile sonrakine bagldr. Bylece her komut bir nceki komutun ktsn okur.

time anahtar szcg, boruhattndaki i sonulandka istatistiklerin baslmasn saglar. statistikler geen s I zaman, kullanc ve komutun al trlmas srasnda kullanlan sistem zamanndan olu ur. p seenegi POSIX s s kt biemini degi tirmekte kullanlr. TIMEFORMAT (sayfa: 66) degi keninde belirtilen biemleme dizgesi ile s s
zamanlama bilgilerinin gsterim biimi ayarlanabilir. Bu biemler hakknda bilgi Bash Degi kenleri (sayfa: 60) s blmnde bulunabilir. time anahtar szcg ile kabuk yerle ikleri, kabuk i levleri ve boruhatlarnn zamanlama s s bilgileri alnabilir. Harici bir time komutu ile bu i lem bu kadar kolay olamyor. s Bir boruhatt e zamanlamasz (Komut Listeleri (sayfa: 15) blmne baknz) al trlmadgnda kabuk, s s boruhattndaki tm komutlarn i lerini bitirmesini bekleyecektir. s Bir boruhattndaki her komut kendi altkabugunda (Komut al trma Ortam (sayfa: 33) blmne baknz) s al trlr. Bir boruhattnn k durumu pipefail seenegi etkin olmadka son komutun k durumudur s s s (set Yerle igi (sayfa: 49) blmne baknz). pipefail etkinse, borutattnn dn durumu sfrdan farkl bir s s degerle kan son (en sagdaki) komutun degeridir, degilse ve tm komutlar ba ar ile sonlanm sa dn du s s s rumu sfrdr. Bir boruhatt anahtar szcklerden biri olan ! karakteri ile ba lyorsa, k durumu, aklanan k s s s durumunun mantksal tersidir. Kabuk bir deger dndrmeden nce boruhattndaki tm komutlar sonlanncaya kadar bekler.

2.3. Komut Listeleri


Bir liste; ;, &, &&, veya || karakteri ile ayrlm ve istege bagl olarak ;, &, veya newline karakterlerinden s biri ile sonlandrlm bir ya da daha fazla saydaki boruhattndan olu ur. s s s Bu listelerin i leleri, && ile || ayn ncelikte ve kendi aralarnda ayn ncelikte olan ; ile & i lelerinden daha s nceliklidir. Komutlar ayrmak iin kullanlan satrsonu karakterleri bir liste iinde iki nokta stste karakterlerinin e degerleri s kabul edilir.

http://belgeler.org

Linux Kitaplg

15 / 142

GNU Bash Basvuru Klavuzu

Bir komut & denetim i leci ile sonlandrlm sa, kabuk komutu e zamanlamakszn bir altkabukta al trr. s s s s Bu artalanda al ma olarak bilinir. Kabuk, komutun i ini bitirmesini beklemez ve 0 (dogru) k durumu s s s ile dner. Is denetimi (sayfa: 83) etkin degilse ve herhangi bir dolayl ynlendirmenin bulunmamas halinde e zamanlamasz komutun girdisi /dev/nulldaki girdi olur. s

; ile ayrlm komutlar srayla al trlr ve kabuk her komutun sonlanmasn bekler. Dn durumu son komutun s s s
k durumudur. s

&& ve || denetim i leleri srasyla VE ve VEYA listeleri olu turur. VE listesinin szdizimi: s s komut1 && komut2

komut2 sadece ve sadece komut1 sfr k durumu ile dnm se al trlr. s s s


VEYA listesinin szdizimi

komut1 || komut2

komut2 sadece ve sadece komut1 sfrdan farkl bir k durumu ile dnm se al trlr. s s s
VE ve VEYA listelerinin k durumu daima son komutun k durumudur. s s

2.4. Birlesik Komutlar


Birle ik komutlar kabuk programlama olu umlardr. Her olu um bir anahtar szckle veya denetim i leci ba lar s s s s s ve sonlandrc bir anahar szck veya i le ile sonlanr. Bir birle ik komut ile ili kili bir ynlendirme (bkz, Yns s s lendirmeler (sayfa: 29)) aksi belirtilmedike birle ik komut iindeki tm komutlara uygulanr. s Bash komutlar gruplamak ve onlar tek bir birim olarak al trmak iin dngleri, ko ullu komutlar ve gruplama s s mekanizmalarn saglar. 2.4.1. Dngler Bash a agdaki dngleri destekler. s Bilgi Komutlarn szdizimi iinde herhangi bir yerde ; karakterine rastlanrsa bu karakter bir ya da daha fazla sayda satrsonu karakteri ile degi tirilir. s 2.4.1.1. until

until deyiminin szdizimi:


until snamakomutlar; do artbile enkomutlar; done s

artbileenkomutlar, snama komutlarnn k durumlar sfrdan farkl oldugu srece al trlr. Deyimin s s s k durumu ise ya artbile enkomutlar iindeki son al trlan komutun k durumudur ya da hi komut s s s s
al trlmam sa sfrdr. s s 2.4.1.2. while

while deyiminin sz dizimi:


while snamakomutlar; do artbile enkomutlar; done s

http://belgeler.org

Linux Kitaplg

16 / 142

GNU Bash Basvuru Klavuzu

artbileenkomutlar, snama komutlarnn k durumlar sfr oldugu srece al trlr. Deyimin k durumu s s s s ise ya artbile enkomutlar iindeki son al trlan komutun k durumudur ya da hi komut al trlmam sa s s s s s
sfrdr. 2.4.1.3. for

for deyiminin szdizimi:


for isim [in szck ...]; do komutlar; done

Szckler yorumlanr ve sonulanan listenin isim ile baglantl her yesi iin komutlar al trlr. Deyimin in s szck paras yoksa, in "$@" belirtilmi gibi kmeyi olu turan her parametre iin komutlar birer kere al trlr s s s (zel Parametreler (sayfa: 21) blmne baknz). Deyimin dn durumu al trlan son komutun k durus s s mudur. Szcklerin yorumlanmasndan bir ye elde edilememi se bir komut al trlmaz ve sfr k durumu s s s olu ur. s

for deyimi iin a agdaki szdizimi de desteklenmektedir: s


for (( ifade1 ; ifade2 ; ifade3 )) ; do komutlar ; done

nce, ifade1 aritmetik ifadesi a agda aklanan kurallara bagl olarak degerlendirilir (Kabuk Aritmetigi (sayfa: s 74) blmne baknz). ifade2 artimetik ifadesinin degeri sfr oluncaya kadar tekrar tekrar degerlendirilir. ifade2 aritmetik ifadesinin sfrdan farkl oldugu durumlarda komutlar al trlr ve ifade3 aritmetik ifadesi degerlendirilir. s Verilmeyen ifade iin 1 varm gibi i lem yaplr. Dn degeri listedeki son al trlan komutun k durumudur. s s s s s Geersiz bir ifadenin varlg halinde ise k durumu yanl olacaktr. s s

break (sayfa: 38) ve continue (sayfa: 39) deyimleri dng denetiminde kullanlabilir.
2.4.2. Kosullu alstrma 2.4.2.1. if

if deyiminin szdizimi:
if snamakomutlar; then artbileenkomutlar; s [elif di ersnamakomutlar; then g di eraltbileenler;] g s [else karaltbileenler;] s s fi

snamakomutlar listesi yorumlandgnda dn durumu sfrsa, artbileenkomutlar al trlr; sfrdan s s s farkl ise eliflerin di ersnamakomutlar listesi yorumlanr ve bunlarn dn durumuna gre ya di er g s g altbileenler ya da karaltbileenler al trlr. Deyimin tamamnn dn durumu al trlm olan son s s s s s s s
komutun k durumudur. Bir komut al trlmam sa ve hibir ko ul dogru sonu vermemi se sfr dner. s s s s s 2.4.2.2. case

case deyiminin szdizimi:


case szck in [ [(] kalp [| kalp]...) komutlar ;;]... esac

case deyimi szck ile e le en ilk kalpa kar d en komutlar al trr. Kabuk seenegi nocasematch s s s s s
etkinse e le me alfabetik karakterlerin byklklerine baklmakszn uygulanr (bkz, shopt Yerle igi (sayfa: 52)). s s s

http://belgeler.org

Linux Kitaplg

17 / 142

GNU Bash Basvuru Klavuzu

ok sayda kalp kullanlm sa kalplar ayrmak iin | i leci, kalp listesini sonlandrmak iin ise ) i leci kuls s s lanlr. Her case deyimi bir ;; i leci ile sonlandrlmaldr. szck bir kalp ile e le tirmeye al lmadan nce, s s s s ayrmlama uygulanr ve yakla k (), parametre, komut ve aritmetik yorumlamalarna tabi tutulur. s Herbiri ;; i leci ile sonlandrlm ok sayda case deyimi ardarda kullanlabilir. Ancak bunlarn iinden sadece s s ilk szckkalp e le mesine bagl komutlar al trlr. s s s s A agdaki rnek betikte case deyimi hayvanlarn baz zellikleri iin kullanlm tr: s
echo n "Bir hayvan ismi yaznz: " read HAYVAN echo n "$HAYVAN " case $HAYVAN in at | kedi | maymun) echo n "drt bacakldr" ;; kanarya | kanguru) echo n "iki bacakldr" ;; *) echo n "iin bir veri yok" ;; esac

Hibir kalp e le mezse dn durumu sfrdr. Aksi takdirde son al trlan komutun k durumu dndrlr. s s s s s 2.4.2.3. select The select men retiminde kolaylk saglar. for deyimine benzer bir szdizimi vardr:
select isim [in szck ...]; do komutlar; done

szck ... listesi yorumlanarak ge listesi retilir. ge listesindeki her ge ba na bir numara eklenerek standart s s hataya ktlanr. Eger in szck ... ifti verilmezse, in "$@" verilmi gibi konuma bagl parametreler baslr ve
standart girdide PS3 istemi ile girdi beklenir. Listede belirtilen numaralardan biri girdi olarak verilirse, o konuma bagl szck ile isim e le tirilir. Girdi satr bo verilirse, EOF verilinceye kadar komut istemi tekrarlanr. Listede s s s belirtilenler d nda verilen her deger iin isim null ile e le tirilir. Okunan satr REPLY degi keninde tutulur. s s s s Her seimden sonra bir break komutu ile select sonlandrlncaya kadar seime bagl olarak komutlar al trlr. s A agdaki betik rneginde, bulunulan dizin iindeki dosyalar listelenir ve kullancdan birini semesi istenir. s Seilen dosyann ismi ve parantez iinde verdiginiz girdi gsterilir:
select fname in *; do echo $fname \($REPLY\) setiniz. break; done

2.4.2.4. (())
(( ifade ))

Verilen aritmetik ifade Kabuk Aritmetigi (sayfa: 74) blmnde aklandg gibi yorumlanr. Eger ifadenin degeri sfrdan farkl ise dn durumu sfrdr; aksi takdirde 1 dir. Bu gsterim, s
let "ifade"

ile e degerdedir. s 2.4.2.5. [[]]


[[ ifade ]]

http://belgeler.org

Linux Kitaplg

18 / 142

GNU Bash Basvuru Klavuzu

Ko ullu ifadenin yorumuna bagl olarak 0 ya da 1 ile dner. fadeler Bash Ko ullu Ifadeleri (sayfa: 72) blmnde s I s aklanan nceliklere gre yorumlanr. [[ ile ]] arasndaki szcklere szck ve dosyaismi yorumlamas uygulanmaz, sadece yakla k (), parametre ve degi ken yorumlamalaryla aritmetik, komut ve sre yorumlamalar s s ve ayrmlama uygulanr.

f gibi mantksal i leler ncelikliler arasnda saylabilmeleri iin trnak iine alnmam olmaldrlar. s s == ve != i leleri kullanldgnda, i lecin sagndaki dizge bir kalp olarak ele alnr ve Kalp E leme (sayfa: s s s 28) blmnde aklanan kurallara gre e le tirme yaplr. Kabuk seenegi nocasematch etkinse e le me s s s s
alfabetik karakterlerin byklklerine baklmakszn uygulanr (bkz, shopt Yerle igi (sayfa: 52)). Dizge kalpla s e le irse (==) 0, e le mezse (!=) 1 ile dner. Kalbn bir blmnn zellikle dizge olarak yorumlanmas s s s s isteniyorsa o blm trnak iine alnabilir.

== ve != i leleriyle ayn ncelik srasna sahip bir iki terimli daha vardr: = i leci. Kullanldgnda, i lecin s s s sagndaki dizge bir geli kin dzenli ifade olarak ele alnr ve buna uygun e le tirilir (regex3teki gibi). Dizge s s s
kalpla e le irse dn degeri 0, aksi takdirde 1dir. Eger dzenli ifade szdizimsel olarak hatalysa ko ullu s s s s ifade 2 degeri ile dner. Kabuk seenegi nocasematch etkinse e le me alfabetik karakterlerin byklklerine s s baklmakszn uygulanr (bkz, shopt Yerle igi (sayfa: 52)). Dzenli ifade iindeki parantezli altifadelerle e le en s s s altdizgeler dizi degi keni BASH_REMATCHde saklanr. BASH_REMATCHin 0 indisli eleman dzenli ifadenin s tamam ile e le en dizgeyi ierer. BASH_REMATCHin n indisli eleman ise dzenli ifadenin ninci parantezli s s altifadesi ile e le en dizgeyi ierir. s s fadeler a agdaki i le ncelik srasna gre yorumlanr: I s s
( ifade )

ifadenin degeri ile dner. nceligi arttrmak iin kullanlr.


! ifade

ifadenin degeri yanl sa dogru dner. s

ifade1 && ifade2

ifade1 ve ifade2, her ikisi de dogru ise sonu dogrudur.


ifade1 || ifade2

ifade1 ya da ifade2, her ikisinden biri dogru ise sonu dogrudur.


&& ve || i leleri ile sonucu elde etmek iin ifade1 ifadesinin degeri yeterliyse ifade2 yorumlanmaz. s
2.4.3. Komutlarn Gruplanmas Bash komutlar gruplayarak tek bir birim gibi al trmay saglayan iki yntem ierir. Gruplanan komutlara sadece s komut listesi iindeki ynlendirmeler uygulanabilir. rnegin liste iindeki tm komutlarn kts tek bir veri ak na s ynlendirilebilir. 2.4.3.1. () ile gruplama
( liste )

Parantez iinde gruplama bir altkabuk ortamnn olu turulmas ile sonulanr (bkz, Komut al trma Ortam s s (sayfa: 33)) ve liste iindeki her komut bu altkabukta al trlr. Degi ken atamalar da sadece bu altkabuk iin s s geerli olur. 2.4.3.2. {} ile gruplama

http://belgeler.org

Linux Kitaplg

19 / 142

GNU Bash Basvuru Klavuzu

{ liste; }

Bu tr gruplamada ise bir altkabuk olu turulmaz, listedeki komutlar dogrudan kabukta al trlr. liste bir ; veya s s bir satrsonu karakteri ile sonlandrlmaldr. Altkabuk olu turmaya ek olarak iki gruplama arasnda tarihsel sebeplere bagl olarak kk bir fark daha vardr. s Ka l ayralar anahtar szcktr, dolaysyla listeden birer bo luk ile ayrlmaldr. Parantezler ise i letir ve s s s listeden bo luklarla ayrlmam bile olsalar kabuk tarafndan ayr olarak ele alnrlar. s s Her iki gruplama iin de dn durumu listenin k durumudur. s s

3. Kabuk slevleri I
Kabuk i levleri, komutlar isimli bir grup altnda toplayp gerektiginde basit bir komut olarak grubu ismiyle s agrarak iindeki komutlarn al trlmasn saglar. Kabuk i levleri iin bir altkabuk ya da yeni bir sre s s olu turulmaz, iindeki komutlar dogrudan mevcut kabukta yorumlanr. s slevler iin a agdaki szdizimi uygulanr: I s
[ function ] isim () birle ikkomut [ ynlendirmeler ] s

Bu, isim isminde bir kabuk i levi olu turur. function anahtar szcg istege bagldr. function kuls s lanlm sa parantezler istege bagldr. birle ikkomut i levin gvdesini olu turur (bkz, Birle ik Komutlar (sayfa: s s s s s 16)). Bu komut normal olarak { ile } arasndaki bir komutlistesinden olu ur, fakat evvelce aklanan birle ik s s slev al trlrken s s s komutlardan biri olabilir. isim bir komut ismi olarak verildiginde birle ikkomut al trlr. I i levle ili kilendirilmi ynlendirmeler de uygulanr (sayfa: 29). s s s Bir i lev tanm unset yerle iginin f seeneginde kullanlarak silinebilir (bkz, unset Yerle igi (sayfa: 43)). s s s slev tanmnn dn durumu bir szdizimi hatas veya ayn isimde bir i lev olmadka sfrdr. slev I s s I al trldgnda, i levin dn durumu gvdesindeki komutlardan sonuncusunun dn durumu olur. s s s s Tarihsel sebeplerle, ka l ayralar anahtar szck olduklarndan dolay ka l ayra olarak i lenebilmeleri iin diger s s s szcklerden bo luklarla ya da satrsonu karakterleri ile ayrlmalar gerekir. Ayrca, ka l ayra kullanmnda, s s komutlistesi bir noktal virgl, bir & ya da bir satrsonu karakteri ile sonlandrlmaldr. Bir i lev al trlrken, argmanlar Konumsal Parametreler (sayfa: 21) olarak i lenir. zel parametre olan s s s # kullanlarak konumsal parametrenin konumu degi tirilebilir. Ancak, 0. konumsal parametre degi tirilemez. s s slevin al trlmas srasnda i levin ismi FUNCNAME degi keninin ilk elemannda tutulur. declare I s s s yerle igi kullanlarak i levin trace zelligi belirtilmedike veya set yerle igi ile o functrace seenegi s s s s s etkinle tirilmedike DEBUG ve RETURN tuzaklarnn miras alnmas d nda komut al trma ortamnn tm s diger ynleri bir i lev ile agrcs arasnda ayndr. Ayrca trap Yerle igi (sayfa: 42)ne de baknz. s s Eger komut listesinde return yerle ik komutu varsa, i lev tamamlandktan sonra icra i lev agrsndan sonraki s s s komuta geerek devam eder. RETURN tuzag ile ili kilendirilmi bir komut icra kaldg yerden devam etmeden s s nce al trlr. slev tamamlandgnda, konumsal parametrelerin ve # zel parametresinin degerleri i lev s I s agrsndan nceki degerlerine dndrlr. return ile birlikte bir say verilmi se, bu i levin dn durumudur; s s s s s s s verilmemi se return komutundan nceki son al trlan komutun k durumu i levin dn durumudur. s sleve zel degi kenler local yerle igi ile belirtilebilir. Bu degi kenler sadece i lev ve onun komut listesindeki I s s s s komutlar iin geerlidir. slev isimleri ve tanmlar declare (sayfa: 45) veya typeset (sayfa: 57) yerle ik komutlarnn f seenegi I s s ile listelenebilir. declare veya typeset komutunun F seenegi sadece i lev isimlerini listeleyecektir (eger extdebug kabuk seenegi etkinse istege bagl olarak kaynak dosyas ismi ve satr numarasn da). Bu yolla i levler, export (sayfa: 39) yerle igine f seenegi belirtilerek altkabuklara otomatik olarak ihra edilebilir. s s

http://belgeler.org

Linux Kitaplg

20 / 142

GNU Bash Basvuru Klavuzu

Ayn isimli kabuk i levleri ve degi kenleri kabugun ocuklarna ok sayda e deger isimli girdinin ortam iinde s s s aktarlmasna sebep olacagna dikkat ediniz. Bunun sorunlara yol aabilecegi durumlar dikkate alnz. slevler bir digerinin iinden agrlabilir. Bu sekilde i ie agrlara bir snrlama getirilmemi tir. I s

4. Kabuk Parametreleri
Bir parametre degerlerin saklandg bir gedir. Bir isim, bir say ya da a agda listelenmi zel karakterlerden s s biri olabilir. Bir degi ken bir isim ile donatlm bir parametredir. Bir degi kenin bir degeri vardr, istege bagl s s s olarak znitelikleri de olabilir. znitelikler, declare (sayfa: 45) yerle ik komutu kullanlarak atanabilir. s Bir parametre bir deger atanarak belirtilir. Bo dizge geerli bir degerdir. Bir degi ken belirtildikten sonra sadece s s unset (sayfa: 43) yerle ik komutu ile kaldrlabilir. s Bir degi kenin belirtilmesi a agdaki szdizimi ile yaplabilir: s s

isim=[de er] g
Eger de er verilmezse, degi kene deger olarak bo dizge verilmi kabul edilir. Tm de erlere yakla k (), g s s s g s parametre ve degi ken yorumlamalar ile komut, aritmetik yorumlamalar ve ayrmlama (ayrntlar a agda) uygus s lanr. Bir degi ken tamsaylardan olu mu zelliklere sahipse, $((...)) yorumlamas kullanlmam bile olsa s s s s deger bir aritmetik ifade olarak degerlendirilir (bkz, Aritmetik Yorumlama (sayfa: 27)). "$@" kullanm d nda s (a agda aklanm tr), szck zmlemesi uygulanmaz. Dosya ismi zmlemesi uygulanmaz. Atama deys s imleri alias, declare, typeset, export, readonly ve local yerle ik komutlarnn argmanlar olarak s verilebilir. s Atama deyiminin bir kabuk degi kenine veya dizi (sayfa: 76) indisine bir deger atadg baglamda += i leci s sona ya da degi kenin nceki degerine ekleme yapmakta kullanlabilir. += i lecinin bir degi kene uygulandg s s s g s durumda degi kenin tamsay zniteligi etkinse de er bir aritmetik ifade olarak degerlendirilir ve degi kenin o anki s degerine eklenir. += i lecinin bir dizi (sayfa: 76) degi kenine birle ik atama kullanlarak uygulandg durumda s s s s ise degi kenin degeri degi tirilmez (= kullanlm gibi) ve yeni deger dizinin en byk indisinden bir byk indiste s s ba layan diziye eklenir. Dizge degerli bir degi kene uygulandgnda, de er yorumlandktan sonra degi kenin s s g s degerinin ardna eklenir.

4.1. Konumsal Parametreler


Bir konumsal parametre tek hane olarak 0 d nda bir ya da daha fazla haneli bir say ile belirlenen bir parames tredir. Konumsal parametreler, kabuk argmanlarndan agr srasnda ya da zel olarak set yerle ik komutu s kullanlarak olu turulur. N. konumsal parametreye ${N} olarak ya da eger N tek haneli bir say ise $N olarak s eri ilebilir. Konumsal parametreler set (sayfa: 49) yerle ik komutu ile atanabilir ve shift (sayfa: 41) yerle ik s s s komutu ile kaldrlabilir. Konumsal parametreler, bir kabuk i levinin (sayfa: 20) al trlmas srasnda geici s s olarak degi tirilebilir. s Birden fazla rakamdan olu an konumsal parametrelerin agrlmas srasnda say ka l ayralar iine alnmaldr. s s

4.2. zel Parametreler


Kabugun baz zel parametreleri vardr, bu parametreler atanamaz sadece gerektiginde kullanlabilir:

*
Birden ba layan konumsal parametreler olarak yorumlanr. ift trnak iine alnarak kullanldgnda, her s s parametresi IFS degi keninin ilk karakterinin ayra oldugu tek szcklk bir dizgedir. Yani "$*" szcg "$1c$2c..." szcgne e degerdir. Buradaki c karakteri IFS degi keninin degerinin ilk karakteridir. s s Eger IFS degi keni belirlenmemi se bo bir dizgedir. Bu durumda parametreler bir ayra karakteri ol s s s makszn yanyana dizilir.

http://belgeler.org

Linux Kitaplg

21 / 142

GNU Bash Basvuru Klavuzu

@
Birden ba layan konumsal parametreler olarak yorumlanr. ift trnak iine alnarak kullanldgnda, her s parametresi ayr bir szck olarak yorumlanr. Yani "$@" szcg "$1" "$2" ... szcklerine e degerdir. Eger ift trnak yorumlamas bir szck iinde vuku bulursa ilk parametrenin yorumu zgn s szcgn ba lang parasyle ve son parametrenin yorumu da zgn szcgn son parasyla bagldr. s Konumsal parametrelerin bulunmamas halinde "$@" ve $@ hilik olarak yorumlanr, yani parametreler silinmi gibi olur. s

#
Konumsal parametrelerin numaralar onluk saylar olarak yorumlanr.

?
En son al trlan nalandaki boruhattnn k durumudur. s s

(Kabugun kendisi tarafndan (rnegin i seenegi olarak) ya da set yerle ik komutu ile agr srasnda s belirtilmi komut satr seenekleri olarak yorumlanr. s

$
Kabugun sre kimligidir (PID). Bir () altkabugunun varlg halinde sre kimligi olarak altkabugun degil ana kabugun sre kimligi dner.

!
Artalanda (e zamanlamasz) en son al trlan komutun sre kimligidir. s s

0
Kabugun ya da kabuk betiginin ismidir. Bu kabugun ilklendirilmesi srasnda belirlenir. Bash bir komut dosyas al tryorsa, $0 bu dosyann ismidir (Kabuk Betikleri (sayfa: 35) blmne baknz). s Bash c seenegi ile ba latlm sa (Bashin agrlmas (sayfa: 67) blmne baknz), $0 varsa seenekle s s verilen argmandr; yoksa Bash agran dosyann ismidir.

_
Kabuk ilk ba latldgnda, kabugu agrmakta kullanlan mutlak dosya ismi ya da argman listesinde belirs tilmi olarak al trlan kabuk betiginin ismidir. Mteakip olarak, yorumlama sonras, nceki komuta son s s argman olarak yorumlanr. Ayrca, al trlan her komutu agrmakta kullanlacak tam dosyayolunu tutar s ve ilgili komutun ayarladg ortam degi kenine yerle tirilir. rnegin, eposta denetlenirken, bu parametre s s eposta dosyasnn ismini tutar.

5. Kabuk Yorumlar
Yorumlama, komut satr dizgeciklere ayrldktan sonra uygulanr:

ka l ayralarn yorumlanmas s yakla k () yorumlamas s parametre ve degi kenlerin yorumlanmas s komut ikamesi aritmetik yorumlama szcklere ayrma dosyaisminin yorumlanmas Linux Kitaplg 22 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

Yorumlama i lemi yukarda verilen srada uygulanr. s Destekleniyorsa baz sistemlerde, bir ek yorumlama daha vardr: sre ikamesi. Bu; parametre, degi ken, ve s aritmetik yorumlama ile komut ikamesi olarak ayn zamanda uygulanr. Sadece, ka l ayralarn yorumlanmas, szcklere ayrma ve dosyaisminin yorumlanmasnda yorumlanan s szck says degi ebilir. Diger yorumlamalarda her szck tek szck olarak yorumlanr. Burada sadece "$@" s ve "${isim[@]}" yorumlamas ayrcalkldr (zel Parametreler (sayfa: 21) ve Diziler (sayfa: 76) blmlerine baknz). Tm yorumlamalardan sonra trnaklarn kaldrlmas uygulanr (Trnak kaldrma (sayfa: 29) blmne baknz).

5.1. Kasl Ayralarn Yorumlanmas


Ka l ayra yorumlamas, key dizgeler retmek amacyla kullanlan bir mekanizma saglar. Bu mekanizma s Dosyaismi Yorumlamas (sayfa: 27)na benzer, ancak retilen dizgeler mevcut dosya isimleri olmak zorunda degildir. Ka l ayra yorumlamasna esas alnacak kalplar, istege bagl bir ndizge ile ba lar, ka l ayralar s s s iine alnm virgl ayral dizgelerden veya bir dizilim ifadesinden sonra gelen yine istege bagl bir sondizge ile s biter. Yorumlama daima soldan saga dogru yaplr. Ka l ayra yorumlamas i ie olabilir. Dizgelerin yorumlanmas soldan saga yaplmas d nda bir sraya bagl s s degildir. rnegin:
bash$ echo a{d,c,b}e ade ace abe

Bir dizilim ifadesi


{x..y}

biimindedir, burada x ve y ya tamsaylardr ya da tek karakterlik dizgelerdir. Tamsay olarak verildiklerinde, ifade x ve y (dahil) arasndaki saylara geni letilir. Karakter olarak verildiklerinde ise ifade x ve y (dahil) arasndaki s alfabetik srada harere geni letilir. x ve y degerlerinin ayn trde olmas gerektigine dikkat ediniz. s Ka l ayra yorumlamas diger btn yorumlamalardan nce yaplr ve diger yorumlamalara zel karakterlerin s hepsi korunur. Yorumlama tamamen metinseldir. Bash yorumlanan kalba ya da parantezler iindeki metne herhangi bir szdizimsel yorumlama uygulamaz. Parametre yorumlamas ile kar mamas iin ${ dizgesi ka l s s ayra yorumlamasnda i lenmez. s Kurallara uygun olu turulmu bir ka l ayra yorumlamasnda, ka l ayralar trnaklar arasnda olmamal ve en s s s s azndan bir trnaksz virgl veya geerli bir dizilim ifadesi bulunmaldr. Aksi takdirde yorumlama uygulanmaz, verilen kalp degi meden kalr. s s Bir { veya , bir ka l ayra ifadesinin paras olarak yorumlanmamalar iin bir tersbl karakteri ile ncelenebilir. Parametre yorumlamas ile eli mekten kanmak iin ${ dizgesi ka l ayra yorumlamas iin seilebilir s s varsaylmaz. Bu yap genellikle yukardaki rnektekinden daha uzun ve ayn neke sahip ok sayda dizge oldugunda benzer seyleri defalarca yazmamak iin bir ksayol olarak kullanlr:
mkdir /usr/local/src/bash/{old,new,dist,bugs}

veya
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

5.2. Yaklask () Yorumlamas


http://belgeler.org
Linux Kitaplg 23 / 142

GNU Bash Basvuru Klavuzu

Bir szck bir trnaksz yakla k () karakteri ile ba lyorsa ve trnaksz ilk / karakterine kadar olan tm karakterler s s (veya trnaksz bir / yoksa tm karakterler) bir yakla kneki kabul edilir. Yakla kneki iindeki karakterlerin s s hibiri trnakl degilse, yakla kneki iindeki karakterlerin olas bir kullanc ismi olu turdugu varsaylr. Eger s s bu kullanc ismi bo sa yakla k i areti HOME kabuk degi keninin degeri ile degi tirilir. Eger HOME degi keni s s s s s s belirlenmemi se, yerine kabugu al tran kullancnn ev dizini kullanlr. Aksi takdirde yakla kneki, belirtilen s s s kullancnn ev dizini ile degi tirilir. s Yakla kneki + ise, yakla kneki PWD kabuk degi keninin degeri ile degi tirilir. Yakla kneki ise, s s s s s varsa OLDPWD kabuk degi keninin degeri kullanlr. s Yakla knekinden sonra istemlik olarak bir + veya i areti konmu bir say geliyorsa, yakla kneki, dirs s s s s (sayfa: 77) yerle igine bu i aret ve say verilerek agrldg durumda dnen dizin ygnndaki ilgili eleman ile s s degi tirilir. Eger yakla kneki ile birlikte verilen say bir + veya i areti iermiyorsa + i areti verilmi kabul s s s s s edilir. Kullanc ismi geersizse ya da yakla k yorumlamas ba arsz olursa szck degi meden kalr. s s s s s s Her degi ken atamas bir : veya ilk = i aretinden nce yakla k i aretinin gelebilecegi varsaymyla kontrol s edilir. Bu gibi durumlarda, yakla k yorumlamas ayrca uygulanr. Sonu olarak, PATH, MAILPATH ve CDPATH s degi kenlerine atamalarda yakla k i aretli dosya isimleri kullanlabilir ve kabuk deger olarak yorumlanan degeri s s s atar. A agda trnaksz yakla kneklerinin nasl yorumlandg gsterilmi tir. s s s

$HOME degi keninin degeri s /foo $HOME/foo fred/foo fred isimli kullancnn ev dizininin foo alt dizini +/foo $PWD/foo /foo ${OLDPWD}/foo N dirs +N komutundan elde edilen dizge +N dirs +N komutundan elde edilen dizge N dirs N komutundan elde edilen dizge

5.3. Kabuk Parametrelerinin Yorumlamas


Parametre ve aritmetik yorumlamalar (sayfa: 27) ile komut ikameleri (sayfa: 26)ni $ karakteri ba latr. Yorums lanacak sembol ya da parametre ismi istege bagl olarak, ismin paras olarak yorumlanacak karakterlerden olu an degi keni korumak zere ka l ayralar iine alnabilir. s s s Ka l ayralar kullanldgnda, parantezi kapatan ilk } bir trnakl dizge iinde ya da tersbl ncelemeli olmamal s ve bir gml aritmetik yorumlama (sayfa: 27), parametre yorumlamas (sayfa: 24) veya komut ikamesi (sayfa: 26) iinde olmamaldr.

http://belgeler.org

Linux Kitaplg

24 / 142

GNU Bash Basvuru Klavuzu

Parametre yorumlamas uygulanacak temel kalp ${parametre} seklindedir. parametre yerine degeri kullanlr. parametre, tek haneden geni bir say ieren bir konumsal parametre ise ya da parametreden sonraki karakter, s parametre isminin bir paras olarak yorumlanmayacaksa ka l ayralar zorunludur. s

parametrenin ilk karakteri bir nlem ise, bir seviyelik dolayl degi ken ynlendirmesi yaplr. Bash, degi ken ismi s s olarak parametrenin kalanndan sekillendirilen degi kenin degerini kullanr; bu degi ken sonradan yorumlanr s s ve degeri, yorumlamann geri kalannda parametrenin degeri olarak kullanlr. Bu i lem dolayl yorumlama s olarak bilinir. Bunun istisnas a agda aklanan ${!nek*} ve ${!isim[@]} yorumlamasdr. nlem i areti s s
sol ka l ayratan hemen sonra gelmelidir ki dolayllktan bahsedilebilsin. s A agdaki durumlarn herbiri iin szck, aritmetik yorumlama (sayfa: 27), yakla k yorumlamas (sayfa: 23) ve s s komut ikamesi (sayfa: 26)ne konu olur. Altdizge yorumlamas uygulanamadgnda, Bash bir parametrenin bo olmas ya da atanmam olmas du s s rumlarnn varlgna bakar; bu durumda iki noktann olmamas bir parametrenin sadece atanmam olmasna s ki noktann olmas durumunda i le her iki durumun mevcudiyeti yannda degerin bo baklmas ile sonulanr. I s s olmamasna da bakar; iki nokta olmadgnda i le sadece mevcudiyete bakar. s

${parametre:szck}

parametre atanmam sa ya da bo sa, szck alm kullanlr. Aksi takdirde, parametre degeri kullanlr. s s
${parametre:=szck}

parametre atanmam sa ya da bo sa, nce parametre ye szck alm atanr sonra da parametre nin s s
degeri kullanlr. Konumsal parametreler ve zel parametreler bu yolla atanamayabilir.

${parametre:?szck}

parametre atanmam sa ya da bo sa, szck alm (ya da szck verilmemi se olmadgn belirten bir s s s ileti) standart hataya yazlr ve kabuk, etkile imsizse kar. Aksi takdirde, parametre degeri kullanlr. s
${parametre:+szck}

parametre atanmam sa ya da bo sa, hibir sey kullanlmaz, aksi takdirde yerine szck alm kullanlr. s s
${parametre:konum} ${parametre:konum:uzunluk}

parametre ierisinde konum dan ba layan uzunluk karakterlik altdizge alr. uzunluk verilmemi se, s s konum dan ba layan ve sona kadar giden altdizge alr. konum ve uzunluk aritmetik ifadelerdir (Kabuk Ars
itmetigi (sayfa: 74) blmne baknz). Bu Altdizge Alm olarak bilinir.

uzunluk sfr ya da pozitif bir sayya kar lk olmaldr. konum negatif bir sayya kar lksa degeri, parames s tre degerinin sonundan itibaren saylr. parametre @ ise, sonu, konum dan ba layan uzunluk konumsal s parametredir. parametre @ veya * ile indislenmi bir dizi ismi ise, sonu, ${parametre[konum]} ile s ba layan uzunluk yeli bir dizidir. Bir negatif konum belirtilen dizinin en byk indisinden bir byk ins dise gre ele alnr. : yorumlamas ile kar mamas iin bir negatif konum : karakterinden en az bir s
bo luk ile ayrlmaldr.Altdizge indislemesi konumsal parametreler kullanlmadka sfrdan ba lar, konums s sal parametrelerin varlg halinde ise birden ba lar. s

${!nek*} ${!nek@}

nek ile ba layan isimler, IFS zel degi keninin ilk karakteri ile ayrlan degi ken isimleri olarak yorumlanr. s s s
${!isim[*]} ${!isim[@]}

isim bir dizi degi keni ise dizi indislerinin bir listesi isime atanr. isim bir dizi degilse, isim tanmlysa 0a s
degilse nulla geni letilir. @ kullanlm sa ve yorumlama ift trnaklar iinde grnyorsa her indis ayr bir s s szcge geni letilir. s

http://belgeler.org

Linux Kitaplg

25 / 142

GNU Bash Basvuru Klavuzu

${#parametre}

parametre nin alm degerindeki karakter saysn verir. parametre * veya @ ise deger, konumsal parame trelerin saysdr. parametre, @ veya * ile indislenmi bir dizi ismi ise, deger, dizideki ye saysdr. s
${parametre#szck} ${parametre##szck}

szck dosyaismi alm (sayfa: 27)ndaki gibi bir kalp retecek sekilde yorumlanr. Eger kalp, parametre nin yorum degerinin ba langc ile e le irse, yorumlama sonucu olarak, parametrenin yorum sonucundan s s s
en ksa e le me kalb (# durumu) veya en uzun e le me kalb (## durumu) silinerek kalan deger atanr. s s s s Eger parametre @ ya da * ise kalp silme i lemi sra ile konumsal parametrelerin her birine uygulanr ve s yorumlama degeri sonulanan liste olur. Eger parametre, @ ya da * ile indislenmi bir dizi degi keni ise, s s kalp silme i lemi sra ile dizi yelerinin her birine uygulanr ve yorumlama degeri sonulanan liste olur. s

${parametre%szck} ${parametre%%szck}

szck dosyaismi yorumlamasndaki gibi bir kalp retecek sekilde yorumlanr. Eger kalp, parametre nin
yorum degerinin son blm ile e le irse, yorumlama sonucu, silinen en ksa e le me kalpl (# durumu) s s s s ya da en uzun e le me kalpl (## durumu) parametre nin yorum degeridir. Eger parametre @ ya da * ise s s kalp silme i lemi sra ile konumsal parametrelerin her birine uygulanr ve yorumlama degeri sonulanan s s s s liste olur. Eger parametre, @ ya da * ile indislenmi bir dizi degi keni ise, kalp silme i lemi sra ile dizi yelerinin her birine uygulanr ve yorumlama degeri sonulanan liste olur.

${parametre/kalp/dizge}

kalp dosyaismi yorumlamasndaki gibi bir kalp retmek zere yorumlanr. parametre yorumlanr ve onun s s s s degerine kar lk olan en uzun kalp e le mesi dizge ile degi tirilir. Eger kalp bir / imi ile ba lyorsa s tm kalp e le meleri dizge ile degi tirilir. Normalde sadece ilk e le me degi tirilir. Eger kalp, # ile s s s s s s ba lyorsa parametrenin yorumlanan degerinin ba langcnda e le tirilmelidir. Eger kalp, % ile ba lyorsa s s s s s parametrenin yorumlanan degerinin sonunda e le tirilmelidir. Eger dizge bo sakalp e le meleri silinir s s s s s s s ve kalptan sonraki / i areti atlanabilir. Eger parametre, @ veya * ise ikame i lemi sra ile her konumsal parametreye uygulanr ve sonu bir liste olur. Eger parametre, @ veya * ile indislenmi bir dizi degi keni s s
ise ikame i lemi srayla dizinin her yesine uygulanr ve sonu bir liste olur. s

5.4. Komut kamesi I


Komut ikamesi ile bir komutun ktsnn komutun kendisi ile degi tirilmesi saglanr. Komut ikamesi a agdaki s s dizilimlerle kar la ldgnda uygulanr: s s
$(komut)

or

komut
Bash bu dizilimlerin sonundaki satrsonu karakterini silip, iindeki komutu nce standart ktda al trr ve kos mutun ktsn onu argman olarak kullanan komutun standart girdisine yerletirir. Gml satrsonlar silinmez, ancak szck ayrmlamas srasnda silinmi olabilirler. $(cat le) komut ikamesi daha hzl olan e degeri, s s $(< le) ile degi tirilebilir. rnegin echo cat dosya komutunu kabukta al trrsanz dosyann ierigi s s standart ktya dkmlenir. Eski tarz olan sola yatk tektrnakl biem kullanldgnda tersbl i areti $, veya \ karakterlerini ncele s mek d nda anlamn korur. Bir tersbl ile ncelenmemi ilk sola yatk tek trnak komut ikamesini sonlandrr. s s $(komut) biemi kullanldgnda parantezler arasndaki her ey komut olarak ele alnr ve hibir sey zel olarak s anlamlandrlmaz.

http://belgeler.org

Linux Kitaplg

26 / 142

GNU Bash Basvuru Klavuzu

ie komut ikameleri kullanlabilir. Sola yatk tektrnakl i ieliklerde iteki trnaklar tersbl ile ncelenmelidir. I Yorumlanan alandaki karakterler ift trnaklar arasna alnm sa szck ayrmlamas ve dosyaismi yorumlamas s uygulanmaz.

5.5. Aritmetik Yorumlama


Aritmetik yorumlama, aritmetik ifadelerin sonularnn kullanlmasn saglar. Aritmetik yorumlamaya konu szdiz imi a agdaki gibidir: s
$(( ifade ))

ifade ift trnaklar iine alnm gibi yorumlanr, ancak parantezleriinde yer alan bir ift trnak zel bir sekilde s ele alnmaz. ifade iindeki tm dizgeciklere parametre yorumlamas (sayfa: 24) ve komut ikamesi (sayfa: 26) ile
szcklere ayrma (sayfa: 27) uygulanr. Aritmetik yorumlar i ie olabilir. fadenin degerlendirilmesi Kabuk Aritmetigi (sayfa: 74) blmnde listelenen kurallar erevesinde yaplr. fade I I geersizse, Bash standart ktya ba arszlk ile ilgili bir ileti gnderir ve ikame gerekle mez. s s

5.6. Sre kamesi I


Sre ikamesi, isimli veri hatlar (FIFOlar) ya da ak dosyalar isimlendirme yntemi olan /dev/fd ynteminin desteklendigi sistemlerde kullanlr. Yoruma konu olacak szdizimi a agdaki gibidir: s
<(liste)

veya
>(liste)

liste iindeki sreler girdi ya da ktlar bir FIFO ya da /dev/fd iindeki bir dosyaya baglanarak al trlr. s al trlan komuta, bu dosyann ismi, alm sonucunda argman olarak aktarlr. >(liste) biemi kuls lanldgnda, liste iin girdi, ilgili dosyaya yazldg zaman verilir. <(liste) biemi kullanldgnda ise, liste nin
s s s kts, ilgili dosya okunarak elde edilir. < veya > i areti ile parantez arasnda bo luk braklmamaldr. Bo luk braklrsa yap, bir sre ikamesi degil bir ynlendirme olarak yorumlanacaktr. Mmkn oldugunca sre ikamesi; aritmetik yorumlama (sayfa: 27), parametre ve degi ken yorumlamas (sayfa: s 24) ve aritmetik yorumlama (sayfa: 27) ile ayn anda uygulanr.

5.7. Szcklere Ayrma


Kabuk, szcklere ayrmak iin ift trnaklar arasnda olmayan parametre yorumlamas (sayfa: 24) ve aritmetik yorumlamalar (sayfa: 27) ile komut ikameleri (sayfa: 26)nin sonularn tarar. Kabuk $IFS degi kenindeki her karakteri bir ayra olarak ele alr ve diger yorumlamalarn sonularn s szcklere ayrmak iin bu karakterleri kullanr. IFS degi keni atanmam sa, onun degeri yerine ntanml s s s s olarak <space><tab><newline> dizgesi kullanlr. IFS degi keni bu ntanml deger d nda bir degerle atanm sa, szcgn ba ndaki ve sonundaki boluk ve sekme karakterleri bu bo luk karakterlerinden biri s s s s IFS degeri iinde oldugu srece yoksaylr. IFS bo luk karakterlerinden biri ile birlikte verilen IFS bo luk s s karakteri olmayan herhangi bir karakter bir alan ayrmakta kullanlabilir. IFS bo luk karakterlerinden olu an bir s s s s s s dizi de bir ayra olarak kullanlabilir. IFS degi keni bo olarak atanm sa szcklere ayrma i lemi yaplmaz. Apak bo argmanlar ("" veya ) degi meden kalr. Deger retmeyen parametre yorumlamalarnn sonucu olan s s trnaksz bo argmanlar kaldrlr. Degeri olamayan bir parametrenin yorumunun sonucundaki ift trnakl bir s bo argman degi meden kalr. s s Yorumlama yaplamam sa szck ayrmlama da uygulanmaz. s

http://belgeler.org

Linux Kitaplg

27 / 142

GNU Bash Basvuru Klavuzu

5.8. Dosyaismi Yorumlamas


Szck ayrmlamas yapldktan sonra f seenegi verilmedike (set Yerle igi (sayfa: 49) blmne baknz.), s Bash her szckte *, ? ve [ karakterlerini arar. Bunlardan biri varsa, szck bir kalp olarak ele alnr ve szck, kalp ile e le en dosya isimlerinin alfabetik sral bir listesi ile degi tirilir. Bir e le me bulunamam sa s s s s s s ve nullglob kabuk seenegi iptal edilmi se, szck degi meden kalr. nullglob seenegi etkin ise ve bir s s e le me bulunamam sa szck silinir. failglob kabuk seenegi etkin ise ve bir e le me bulunamam sa bir s s s s s s s s hata iletisi baslr ve komut al trlmaz. nocaseglob kabuk seenegi etkin ise e le me alfabetik karakterlerin s harf byklklerine baklmakszn uygulanr. Bir kalp dosya ismi retimi iin kullanlm sa ve dotglob kabuk seenegi etkin degilse, bir dosya isminin s ba ndaki . karakteri veya hemen ardndan gelen bir / dogrudan e le tirilmelidir. Bir dosya ismi e le mesinde s s s s s / karakteri daima dogrudan e le mi olmaldr. Diger durumlarda . karakterine bir zellik atfedilmez. s s s

nocaseglob, nullglob, failglob ve dotglob seeneklerinin aklamalar iin shopt yerle ik komus
tunun aklamalarna baknz (sayfa: 52).

GLOBIGNORE kabuk degi keni bir kalpla e le en dosya isimleri kmesini snrlamakta kullanlabilir. s s s GLOBIGNORE ile bir kalp atanm sa, dosya isimleri kmesi iindeki dosya isimlerinden biri ayn zamanda s bu kalpla da e le iyorsa o dosya ismi listeden karlr. GLOBIGNORE atandgnda ve null olmadgnda . ve s s .. dosya isimleri daima yoksaylr. Bununla birlikte GLOBIGNORE degi kenine null olmayan bir degerin atans s s mas, dotglob kabuk seenegini etkinle tirilmesi gibi bir etkiye de sahiptir, bu bakmdan . ile ba layan tm dosya isimleri e lenecektir. . ile ba layan dosya isimlerinim yoksaylmasn saglayan eski davran a dnmek s s s s s iin GLOBIGNORE degi kenine atanan kalplardan birini .* yapn. GLOBIGNORE degi keni kaldrldgnda, dotglob seenegi de etkin olmaktan karlr.
5.8.1. Kalp Esleme A agda anlamlar aklanan zel kalp karakterleri d ndaki tm kalp karakterleri kendisi ile e le ir. Bir kalp s s s s iinde bo karakter (\0) bulunmamaldr. Bir karakterin ncesine bir tersbl gelmi se e le me srasnda s s s s nceleyen yoksaylr. zel kalp karakterlerinin normal karakterler olarak davranmas istenirse trnak iine alnmaldrlar. zel kalp karakterlerinin anlamlar: * Bo dizge dahil herhangi bir dizge e le ir. s s s ? Herhangi bir tek karakter e le ir. s s [...] Parantez iindeki karakterlerden herhangi biri e le ir. Aralarnda bir tire i areti ile belirtilen bir karakter s s s iftinin olu turdugu aralk ifadesindeki aralga d en karakterlerin herbiri e le ir. Bu aralk, yerele zg s s s s karakter kodlamasna uyan bir aralktaki karakterlerden olu ur. lk [ parantezinden hemen sonra bir ! s I veya karakteri geliyorsa bu karakterden sonraki karakterlerin d nda kalan karakterler e le ir. karaks s s teri sadece enba ta ya da en sonda ise kendisi ile e le ir. ] karakteri ise ilk karakter olursa kendisi s s s s ile e le ebilir. Aralk ifadesindeki karakterlerin sras LC_COLLATE kabuk degi kenindeki yerele gre s s olu turulur. s rnegin, ntanml C yerelinde, [advz] ifadesi [abcdvwxyz] ifadesine e gegerdir. Birok yerel, s karakterleri szlk sralamasnda sralar ve bu yerellerde [abcdvwxyz] ifadesi yerine rnegin [aBbCcDdvVwWxXyYz] ifadesi e deger olabilir. Trke iin bu ifade [abcdvyz] ile e degerdir. s s

http://belgeler.org

Linux Kitaplg

28 / 142

GNU Bash Basvuru Klavuzu

[ ile ] arasnda karakter snar [:snf:] szdizimi ile belirtilir. Buradaki snf POSIX standardnda
tanmlanan a agdaki snardan biri olabilir: s
alnum print alpha punct ascii space blank upper cntrl word digit xdigit graph lower

E le me karakter snfndaki herhangi bir karakter iin olu ur. word karakter snf harerle, rakamlarla s s s ve _ karakteri ile e le ir. s s

[ ile ] arasnda bir e deger snf [=c=] szdizimi ile belirtilebilir. Buradaki e le me yerele gre c karakteri s s s ile ayn kar la trma agrlgndaki karakterlere uygulanr. s s [ ile ] arasnda [.sembol.] szdizimi ile sembol kar la trma sembol e le tirilebilir. s s s s extglob kabuk seenegi shopt yerle igini kullanarak etkinle tirilirse baz ek kalp e le me i leleri kul s s s s s lanlabilir. A agdaki aklamalarda geen kalplistesi, | karakteri ayra olarak kullanlm bir ya da daha s s
fazla kalptan olu mu bir listeyi ifade etmektedir. Birle ik kalplar a agdaki alt kalplardan biri ya da bir ka ile s s s s olu turulabilir: s

?(kalplistesi)
Belirtilen kalplarn sfr ya da biri e lenir. s

*(kalplistesi)
Belirtilen kalplarn sfr ya da daha fazlas e lenir. s

+(kalplistesi)
Belirtilen kalplarn bir ya da daha fazlas e lenir. s

@(kalplistesi)
Belirtilen kalplarn biri e lenir. s

!(kalplistesi)
Belirtilen kalplarn biri d ndaki her ey e lenir. s s s

5.9. Trnak kaldrma


Yorumlamalar uygulandktan sonra, yukardaki yorumlamalarn sonucu olmayan ve trnak iine alnmam tm s \, ve " karakterleri kaldrlr.

6. Ynlendirmeler
Bir komut al trlmadan nce, kabuk tarafndan yorumlanacak zel bir yazm sekli kullanlarak girdisi ve s kts ynlendirilebilir. Ynlendirme, kabugun al trma ortamnda kullanlmak zere dosyalarn almas ve s kapatlmas iin de kullanlabilir. A agdaki ynlendirme i leleri basit bir komutun ncesinde veya sonrasnda s s ya da iinde kullanlabilir. Ynlendirmeler yazldklar srada yani soldan saga yorumlanr. A agdaki aklamalarda, dosya tantc numara verilmemi se ve ynlendirme i lecinin ilk karakteri < ise yns s s lendirme standart girdiden (dosya tanm numaras 0), i le > ise standart ktya yaplr (dosya tanm numaras s 1). A agdaki aklamalarda ynlendirme i lecinin bir szckten sonra geldigi durumlarda, aksi belirtilmedike, s s s s szcge ka l ayra yorumlamas (sayfa: 23), yakla k yorumlamas (sayfa: 23), parametre yorumlamas (sayfa: 24), komut ikamesi (sayfa: 26), aritmetik yorumlama (sayfa: 27), trnak kaldrma (sayfa: 29), szcklere ayrma (sayfa: 27) ve dosyaismi yorumlamas (sayfa: 27) uygulanr. Szcgn yorumlama sonucu bir szckten fazlas ile sonulanrsa, Bash bir hata retir. Ynlendirmelerin sras nemlidir. rnegin,

http://belgeler.org

Linux Kitaplg

29 / 142

GNU Bash Basvuru Klavuzu

ls > dizin.liste 2>&1

komutunda standart girdi (dosya tantc 1) ve standart hata (dosya tantc 2) birlikte dizin.liste dosyasna ynlendirilirken,
ls 2>&1 > dizin.liste

komutunda standart kt dizin.liste dosyasna ynlendirilir, nk standart hata, dizin.liste dosyasna ynlendirilmeden nce standart ktya kopyalanm tr. s Bash a agda aklandg gibi e itli dosya isimlerini ynlendirmelerin iinde zel olarak ele alr: s s

/dev/fd/fd

fd bir tamsay ise dosya tantc fd kopyalanr.


/dev/stdin
Dosya tantc 0 kopyalanr. (Standart girdi)

/dev/stdout
Dosya tantc 1 kopyalanr. (Standart kt)

/dev/stderr
Dosya tantc 2 kopyalanr. (Standart hata)

/dev/tcp/konak/port

konak geerli bir konak ismi ya da Internet adresi ise ve port bir tamsay port numaras ya da servis ismi
ise Bash, ilgili sokete bir TCP baglants amaya al r. s

/dev/udp/konak/port

konak geerli bir konak ismi ya da Internet adresi ise ve port bir tamsay port numaras ya da servis ismi ise Bash, ilgili sokete bir UDP baglants amaya al r. s
Bir dosyann almas veya olu turulmas srasnda bir hata olu ursa, ynlendirme gerekle mez. s s s 9dan byk dosya tantclar kullanlarak yaplan ynlendirmelerde dosya tantclarn kabugun dahili olarak kullandklar ile ak abilecegi dikkate alnmaldr. s

6.1. Girdi Ynlendirmesi


Girdi ynlendirmesinde, verilen szckn yorumlanmas ile elde edilen isme sahip dosya, verilmi se dosya s tantc n stnde, aksi takdirde standart girdide (dosya tantc 0) alr. Girdi ynlendirmesi olarak degerlendirilecek szdizimi:
[n]<szck

6.2. kt Ynlendirmesi
kt ynlendirmesinde, verilmi se dosya tantc n, aksi takdirde standart kt (dosya tantc 1), verilen s szckn yorumlanmas ile elde edilen isme sahip dosyaya yazlr. Dosya yoksa olu turulur, varsa nce s dosyann ierigi silinir. kt ynlendirmesi olarak degerlendirilecek szdizimi:
[n]>[|]szck

http://belgeler.org

Linux Kitaplg

30 / 142

GNU Bash Basvuru Klavuzu

Ynlendirme i leci > ise, noclobber seenegi set yerle igi ile etkinle tirilmi se ve szckn yorumlanmas s s s s ile elde edilen isme sahip dosya varsa ve bir normal dosya ise ynlendirme gerekle mez. Ynlendirme i leci s s > ya da >| ise ve noclobber seenegi etkin degilse dosya varsa bile ynlendirme yaplmaya al lr. s

6.3. Ynlendirilmis ktnn Eklenmesi


Ynlendirilmi ktnn eklenmesi i leminde, verilmi se dosya tantc n, aksi takdirde standart kt (dosya tantc s s s 1), verilen szckn yorumlanmas ise elde edilen isme sahip dosyaya eklenir. Dosya yoksa olu turulur. s ktnn eklenmesi olarak degerlendirilecek szdizimi:
[n]>>szck

6.4. Standart kt ve Standart Hatann Ynlendirmesi


Bash, hem standart kt (dosya tantc 1) hem de standart hatay (dosya tantc 2), szckn yorumlanmas ile elde edilen isme sahip dosyaya ynlendirebilir. Standart kt ve standart hatann ynlendirilmesine konu iki szdizimi vardr:
&>szck

ve
>&szck

Bu iki biemden birincisinin kullanlmas nerilir. Her ikisi de a agdakine e degerdir: s s


>szck 2>&1

6.5. Uzun Metinlerin Ynlendirilmesi


Bu tr ynlendirmede kabuk, sadece szckn bulundugu satra gelene kadar olan tm satrlar okur. Uzun Metinlerin Ynlendirilmesine konu szdizimi:
<<[]szck

ok satrl metin sonlandrc

szck zerinde parametre, komut, aritmetik ve dosyaismi yorumlamalar uygulanmaz. szck trnak iine alnm sa, sonlandrc, szckn trnaklar kaldrlm halidir ve ok satrl metin zerinde s s
herhangi bir yorumlama i lemi uygulanmaz. s

szck trnak iine alnmam sa, ok satrl metin zerinde parametre, komut ve aritmetik yorumlar uygulanr, s
yani metin iindeki \, $ ve karakterleri \ ile ncelenmi olmaldr, ayrca \satrsonu iftleri de yoksaylr s (yani bu satrlardan sonraki satrlar satrn devam olarak ele alnr). Ynlendirme i leci << ise, ok satrl metin ve sonlandrc iindeki sekme karakterleri ayrlr, bylece kabuk s betikleri iindeki kullanmlarda metnin oldugu gibi ele alnmas mmkn olur.

6.6. Dizgelerin Ynlendirilmesi


Metin ynlendirmenin bir ba ka biimi: s
<<< szck

szck yorumlanr ve standart girdideki komuta arzedilir.


Linux Kitaplg 31 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

6.7. Dosya Tantclarnn Kopyalanmas


Ynlendirme i leci s
[n]<&szck

girdi dosya tantclarn kopyalamakta kullanlr. n ile belirtilen dosya tantc, szckn yorumlanmas ile elde edilen say numaral dosya tantcya kopyalanr. szck ile belirtilen say bir dosya tantcsna kar lk degilse s ynlendirme hatas olu ur. szck, olarak yorumlanm sa, n dosya tantcs kapatlr. n verilmezse standart s s girdi (dosya tantcs 0) kullanlr. Ynlendirme i leci s
[n]>&szck

kt dosya tantclarn kopyalamak anlamnda kullanlr. n verilmezse standart kt (dosya tantcs 1) kullanlr. szck ile belirtilen say bir dosya tantcsna kar lk degilse ynlendirme hatas olu ur. zel bir durum olarak, s s n verilmezse ve szck bir say degilse standart kt ve standart hata nceden aklandg gibi ynlendirilir.

6.8. Dosya Tantclarn Tasnmas


Ynlendirme i leci s
[n]<&rakam

dosya tantc rakam dosya tantcne, n belirtilmemi se standart girdiye (dosya tantc 0) ta r. rakam ne s s kopyalandktan sonra kapatlr. Benzer sekilde, ynlendirme i leci s
[n]>&rakam

dosya tantc rakam dosya tantcne, n belirtilmemi se standart ktya (dosya tantc 1) ta r. s s

6.9. Dosya Tantclarnn Okuma ve Yazma Amacyla Almas


Ynlendirme i leci s
[n]<>szck

szckn yorumlanmas ile elde edilen isme sahip dosyann hem okuma hem de yazma amacyla n dosya
tantcs stnde almasn saglar. Eger dosya yoksa olu turulur. s

7. Komutlarn alstrlmas
7.1. Basit Komut Yorumlamas
Bir basit komut al trldg zaman, kabuk a agdaki yorumlar, atamalar ve yorumlamalar soldan saga uygular. s s 1. zmleyicinin ynlendirme ve degi ken atamalar (bunlar komut isminden ncedir) olarak i aretledigi s s szckler daha sonra i lenmek zere saklanr. s 2. Ynlendirme ve degi ken atamas olmayan szckler yorumlanr (Kabuk Yorumlar (sayfa: 22) blmne s baknz). Yorumlamadan sonra kalan szckler varsa, ilk szck komut ismi olarak, kalanlar ise argmanlar olarak ele alnr. 3. Ynlendirmeler, Ynlendirmeler (sayfa: 29) blmnde aklandg sekilde uygulanr.

http://belgeler.org

Linux Kitaplg

32 / 142

GNU Bash Basvuru Klavuzu

4. Degi ken atamalarndaki = i aretlerinden sonra gelen metine yakla k yorumlamas (sayfa: 23), parames s s tre yorumlamas (sayfa: 24), komut ikamesi (sayfa: 26), aritmetik yorumlama (sayfa: 27) ve trnak kaldrma (sayfa: 29) uygulandktan sonra sonu degi kene atanr. s Sonulanan bir komut ismi yoksa, degi ken atamalar, kullanlan kabukta ortam degi keni olarak yorumlanr. s s Aksi takdirde degi kenler sadece al trlan komutun ortamna eklenir ve kabuk ortamna etkisi olmaz. Bir s s degi kenin saltokunur degerine atama yaplmaya al lrsa bir hata olu ur ve komut sfrdan farkl bir k s s s s durumu ile sonlanr. Sonulanan bir komut ismi yoksa, ynlendirmeler uygulanr, fakat kullanlan kabuk ortam etkilenmez. Bir ynlendirme hatas olu ur ve komut sfrdan farkl bir k durumu ile sonlanr. s s Yorumlamadan sonra bir dosya ismi kalrsa, sonraki blmde anlatldg gibi al trma gerekle tirilir, aksi s s takdirde komut i lemsiz sonlanr. Yorumlamann sonucu bir komut ikamesi ise komutun k durumu son s s al trlan komutun k durumudur. Komut ikamesi yoksa, komut sfr k durumu ile tamamlanr. s s s

7.2. Komutun Bulunmas ve alstrlmas


Bir komut, szcklere ayrldktan sonra, sonulananlar bir basit komut ve bir istemlik argman listesi ise a agdaki s eylemler olu ur: s 1. Komutun isminde / i aretleri yoksa kabuk komutun yerini bulmaya al r. Bu isimde bir kabuk i levi varsa, s s s slevleri (sayfa: 20) blmnde aklandg gibi i lev agrlr. Kabuk I s 2. sim bir i lev ismi degilse, kabuk bu kez de onu kabuk yerle ikleri arasnda arar, varsa yerle ik komut I s s s al trlr. s I s s s 3. sim bir i lev ya da yerle ik komut degilse ve / i aretleri de iermiyorsa, Bash bu isimde bir dosya ieren dizini bulmak zere $PATH ile verilmi her dizine bakar. Bash, oklu PATH aramalar yapmamak iin s al trlabilir dosyalarn tam dosya yollarn bir tabloda tutar (hash Yerle igi (sayfa: 40) blmne baknz). s s $PATH dizinlerinde arama i lemi, dosya, arama tablosunda yoksa uygulanr. Arama ba arsz olursa, s s kabuk bir hata iletisi gsterir ve 127 k durumu ile dner. s 4. Arama ba arl ise veya komut ismi bir ya da daha fazla / ieriyorsa, kabuk bu uygulamay ayr bir al trma s s ortamnda al trr. Verilen isme argman numaras olarak 0 ve varsa komutun argmanlarna 1 den s ba layan argman numaralar atanr. s 5. Bu al trma i lemi, dosyann al trlabilir ve bir dizin olmamas sebebiyle gerekle mezse, dosya bir s s s s s kabuk betigi olarak kabul edilir ve Kabuk Betikleri (sayfa: 35) blmnde aklandg gibi al trlr. 6. Komut e zamanlamasz olarak ba latlamazsa, kabuk komutun i ini bitirmesini bekler ve bittiginde komus s s tun k durumu ile dner. s

7.3. Komut alstrma Ortam


Kabugun a agdaki zelliklere saglayan bir al trma ortam vardr: s s

exec (sayfa: 39) yerle igine yaplan ynlendirmelerle degi tirilmi olarak, agr srasnda kabuktan alnan s s s
dosyalar aar. al ma dizini, cd (sayfa: 38), pushd (sayfa: 78) veya popd (sayfa: 77) yerle ikleri tarafndan geilen ya s s da agr srasnda kabuktan alnan dizine ayarlanr. Dosya olu turma kipi maskesi, ya umask (sayfa: 43) ile belirlenen ya da kabugun kendini ba latan kabuks s tan aldg degere ayaranr. Linux Kitaplg 33 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

Sinyal kapanlar trap (sayfa: 42) tarafndan belirlenir. Kabuk parametreleri, degi ken atamalarna gre veya set ile ya da kabugun kendini ba latan kabuktan s s aldg parametrelere gre ayarlanr. Kabuk i levlerini al trma srasnda veya kabugun kendini ba latan kabuktan aldklar ile tanmlar. s s s Seenekleri agr srasnda (ya ntanml olarak ya da komut satr argmanlar olarak) veya set (sayfa: 49) yerle igi ile belirler. s Seenekleri shopt (sayfa: 52) yerle igi ile etkinle tirir. s s Kabuk takma adlarn alias (sayfa: 43) yerle igini kullanarak tanmlar (Takma Adlar (sayfa: 75) blmne s baknz). e itli sre kimlikleri, bunlarn artalan i leri dahil (Komut Listeleri (sayfa: 15) blmne baknz), $$ degeri s s ve $PPID degeri

Bir kabuk i levi ya da kabuk yerle igi olmayan bir basit komut al trldgnda, a agdaki zellikleri saglayan s s s s ayr bir al trma ortamnda agrlr. Aksi belirtilmedike, degerler kabuktan alnr. s

kabuklarn ak dosyalar art komuta ynlendirilmi eklemeler ve degi iklikler s s al ma dizini s dosya olu turma kipi maskesi s ihra edilmek zere i aretli kabuk degi kenleri ve i levler, komut iin ihra edilmi degi kenler ile ortamda s s s s s atanm degi kenler (Ortam (sayfa: 34) blmne baknz) s s kabuk tarafndan yakalanan sinyaller, kabugun kendini al tran kabuktan alnan degerlere sfrlanr ve s kabuk tarafndan yoksaylan sinyaller yoksaylr.

Bu ayr ortamda agrlan bir komut kabugun al trma ortamn etkileyemez. s Komut ikamesi, parantezlerle gruplanm komutlar ve e zamansz komutlar mevcut kabuk ortamnn bir kopyas s s olan bir altkabuk ortamnda ba latlr, fakat kabuk tarafndan yakalanan sinyaller kabugun ba lang esnasnda s s kendini ba latan kabuktan aldg degerlere atanr. Bir boruhattnn paras olarak agrlan yerle ik komutlar s s ayrca bir altkabuk ortamnda al trlr. Altkabuk ortamnda yaplan degi iklikler kabugun al trma ortamn s s s etkileyemez. Bir komuttan sonra bir & geliyorsa ve i denetimi etkin degilse, komut iin ntanml standart girdi /dev/null, s yani bo dosyadr. Aksi takdirde, agrlan komut, agr kabugunun ynlendirmelerle degi tirilen dosya s s tantclarn miras alr.

7.4. Ortam
Bir komut agrldgnda, ona ortam ad verilen bir dizgeler dizisi verilir. Bu, isim=deer seklindeki isimdeger g iftlerinden olu an bir listedir. s Bash, ortam degi tirmek iin e itli yollar saglar. agr durumunda, kabuk kendi ortamn tarar ve buldugu s s her isim iin ocuk srelere aktarlmak zere otomatik olarak i aretleyerek bir parametre olu turur. al trlan s s s komutlar ortam miras alr. export (sayfa: 39) ve declare (sayfa: 45) x komutlar, parametrelerin ve i levlerin s ortama eklenmesini ve ortamdan silinmesini saglar. Ortamdaki bir parametrenin degeri degi irse, yeni deger s eskisiyle yer degi tirerek ortamn paras haline gelir. al trlan komut tarafndan miras alnan ortam kabugun s s ba lang ortamndan olu ur. Bu ortam, kabukta degi tirilebilen degerler, eksi export n ve unset (sayfa: 43) s s s s komutlar tarafndan kaldrlan iftler, art export ve declare x komutlar zerinden eklemelerden olu ur.

http://belgeler.org

Linux Kitaplg

34 / 142

GNU Bash Basvuru Klavuzu

Bir basit komut veya i levin ortam, Kabuk Parametreleri (sayfa: 21) blmnde aklandg gibi parametre s atamalar ile ncelenerek geici olarak bytlebilir. Bu atama deyimleri sadece komut tarafndan grlen ortam etkiler.

k seenegi etkinse (set Yerle igi (sayfa: 49) blmne baknz), tm parametre atamalar komut ismini ncele s
mek yerine dogrudan komut ortamna yerle tirilir. s s Bash bir harici komutu agrrsa, $_ degi keni komutun tam dosyayolunu ierir ve ortam iindeki komuta aktarlr.

7.5. ks Durumu
Kabugun amalarna uygun olarak, sfr k durumu ile kan bir komut ba arldr. Sfrdan farkl bir k s s s durumu ise ba arszlk gstergesidir. Bylece saylardan olu an hem ba ar durumunu hem de ba arszlk s s s s nedenlerinin ifade edilebildigi bir yap saglanr. Bir komut, numaras N olan bir lmcl sinyal ile sonlandrlrsa, Bash, k durumu olarak 128+N degerini kullanr. s Bir komut bulunamam sa, bir ocuk sre olu turulur ve bu sre 127 k durumu ile dner. Bir komut bus s s lunmu ancak al trlabilir degilse, 126 dn durumu dner. s s s Ynlendirme ya da yorumlama srasnda bir hatadan dolay komutun al trlmas ba arsz olursa, sfrdan s s byk bir k durumu dner. s s s k durumu, Ko ullu al trma (sayfa: 17) deyimleri ve Komut Listeleri (sayfa: 15) tarafndan kullanlr. s Bash yerle iklerinin de ba ar durumunda sfr ve ba arszlk durumunda sfrdan farkl bir k durumu ile s s s s dnerek, k durumlarnn ko ul ve liste yaplarnda kullanlabilmesi saglanm tr. Tm yerle ikler yanl kullanm s s s s s halinde 2 k durumu ile dner. s

7.6. Sinyaller
Bash etkile imli ise, bir sinyal kapannn (sayfa: 42) yoklugunda, SIGTERM sinyalini yoksayarken SIGINT s sinyalini yakalar ve elde eder (yani wait yerle igine kesme uygulanabilir). SIGTERM sinyalinin yoksaylmas s kill 0 komutu ile bir etkile imli kabugun ldrlememesi demektir. Bash bir SIGINT sinyali aldgnda, al an s s s dnglerden klr. Tm durumlarda, SIGQUIT sinyalini yoksayar. Eger i denetimi (sayfa: 83) etkinse, Bash SIGTTIN, SIGTTOU ve SIGTSTP sinyallerini yoksayar. Bash tarafndan ba latlan yerle ik olmayan komutlar, komutun ba latldg kabugu ba latan kabuktan miras s s s s s denetimi etkin degilse, e zamansz komutlar bu alnan degerleri kullanabilen sinyal yakalayclara sahiptir. I s miras alnan sinyal yakalayclara ek olarak SIGINT ve SIGQUIT sinyallerini de yoksayar. Komut ikamesinin sonucu olarak al trlan komutlar klavyeden verilen SIGTTIN, SIGTTOU ve SIGTSTP i denetim sinyallerini s s yoksayar. Kabuk ntanml olarak bir SIGHUP sinyali aldgnda kar. kmadan nce, bir etkile imli kabuk altnda al an s s ya da durmu tm i lere SIGHUP sinyali gnderir. Durmu i ler aldklar SIGHUP sinyalini uygulayabilmek iin s s s s nce bir SIGCONT sinyali gnderir. Kabuk bir i e tekrardan bir SIGHUP sinyali gndermemek iin ya disown s (sayfa: 85) yerle igini kullanarak onlar i tablosundan kaldrr ya da disown h komutunu kullanarak SIGHUP s s sinyalini bir daha almamasn saglar. Eger huponexit kabuk seenegi shopt (sayfa: 85) yerle igi ile etkinle tirilmi se ve bir etkile imli giri kabugu s s s s s karsa, Bash btn i lere bir SIGHUP sinyali gnderir. s Bash bir komutun sona ermesini beklerken bir sinyal kapannn al trlmas iin bir sinyal alrsa, komut i ini s s s s s tamamlayana kadar sinyal kapan (sayfa: 42) al trlmaz. Bash wait yerle igi zerinden bir e zamansz komut iin beklerken bir sinyal kapannn al trlmas iin bir sinyal alrsa, wait yerle igi 128 den byk bir s s k durumu ile dner ve ardndan sinyal kapan al trlr. s s

http://belgeler.org

Linux Kitaplg

35 / 142

GNU Bash Basvuru Klavuzu

8. Kabuk Betikleri
Bir kabuk betigi kabuk komutlarn ieren bir metin dosyasdr. Bash agrlrken byle bir dosya seenek olmayan ilk argman olarak verilmi se ve seenekler arasnda c ve s seenekleri yoksa (Bashin agrlmas (sayfa: s 67) blmne bakn), Bash dosyadan okudugu komutlar al trr ve kar. Bu tr bir i lemde kullanlan kabuk s s etkile imsiz kabuktur. Kabuk dosyay nce al trldg dizinin iinde arar, bulamazsa $PATH iindeki dizinlere s s bakar. Bash bir kabuk betigini al trrken, zel parametre 0 kabugun ismine degil dosya ismine atar ve diger konumsal s parametreler de varsa argmanlara atanr. Olmayan argmanlarn konumsal parametreleri kaldrlr. Bir kabuk betigi, chmod komutu ile al trma biti 1 yaplarak al trlabilir yaplabilir. Bash betigin iindeki s s komutlar $PATH dizinlerinde arar ve buldugunda bir altkabuk olu turup onu orada al trr. Ba ka bir deyi le, s s s s dosyaismi bir al trlabilir kabuk betigi ise s
dosyaismi argumanlar

ile
bash dosyaismi argumanlar

komutlar birbirine e degerdir. Bu altkabuk kendi kendini ilklendirir, yani etkisi, betigi yorumlayan ve komuts larnn yerlerini bilen bir kabuktan onun ocugu olarak yeni bir kabuk agrmaya benzer. (hash yerle igi iin s Bourne Kabugu Yerle ikleri (sayfa: 38) blmne baknz.) s Unixin ogu srmleri bunu i letim sisteminin komut al trma mekanizmasnn bir paras yapar. Eger bir s s betigin ilk satr #! ifti ile ba larsa, satrn kalan dosya iindeki programn yorumlaycsdr. Burada Bash, awk, s perl ya da betik dosyasnn yazldg dile ait bir yorumlayc belirtebilirsiniz. Yorumlayc iin yorumlayc satrnda yorumlayc isminden sonra, ya da betigi agrrken betik isminden hemen sonra tek bir seenek belirtilebilir, bu son durumda betige verilebilecek diger argmanlar da ondan sonra verilir. Bash bu eylemi i letim sisteminden bir ey beklemeden yerine getirir. s s Bilgi Unixin baz eski srmlerinde yorumlayc ismi ve tek seenegi iin toplam 32 karakterlik bir snrlama vardr. Bash betikleri ogunlukla #! /bin/bash satr ile ba lar (Bashn /bin iinde bulundugu varsaymyla). Bu s satr, betik ba ka bir kabuk altnda al trlsa bile betigin Bash tarafndan yorumlanmasn saglar. s s

http://belgeler.org

Linux Kitaplg

36 / 142

GNU Bash Basvuru Klavuzu

IV. Yerlesik Kabuk Komutlar


indekiler I
1. Bourne Kabugu Yerlesikleri 1.1. : (iki nokta stste) . . 1.2. . (nokta) . . . . . . . . 1.3. break Yerle igi . . . . s 1.4. cd Yerle igi . . . . . . s 1.5. continue Yerle igi . . . s 1.6. eval Yerle igi . . . . . s 1.7. exec Yerle igi . . . . . s 1.8. exit Yerle igi . . . . . . s 1.9. export Yerle igi . . . . s 1.10. getopts Yerle igi . . . s 1.11. hash Yerle igi . . . . s 1.12. pwd Yerle igi . . . . s 1.13. readonly Yerle igi . . s 1.14. return Yerle igi . . . . s 1.15. shift Yerle igi . . . . s 1.16. test Yerle igi [ . . s 1.17. times Yerle igi . . . . s 1.18. trap Yerle igi . . . . . s 1.19. umask Yerle igi . . . s 1.20. unset Yerle igi . . . . s 2. Bash Yerlesik Komutlar . . 2.1. alias Yerle igi . . . . . s 2.2. bind Yerle igi . . . . . s 2.3. builtin Yerle igi . . . . s 2.4. caller Yerle igi . . . . s 2.5. command Yerle igi . . s 2.6. declare Yerle igi . . . s 2.7. echo Yerle igi . . . . . s 2.8. enable Yerle igi . . . . s 2.9. help Yerle igi . . . . . s 2.10. let Yerle igi . . . . . s 2.11. local Yerle igi . . . . s 2.12. logout Yerle igi . . . s 2.13. printf Yerle igi . . . . s 2.14. read Yerle igi . . . . s 2.15. set Yerle igi . . . . . s 2.16. shopt Yerle igi . . . . s 2.17. source Yerle igi . . . s 2.18. type Yerle igi . . . . s 2.19. typeset Yerle igi . . . s 2.20. ulimit Yerle igi . . . . s 2.21. unalias Yerle igi . . . s 3. zel Yerlesikler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 38 38 38 38 39 39 39 39 39 39 40 40 40 41 41 41 42 42 43 43 43 43 43 44 44 45 45 46 47 47 47 47 47 48 48 49 52 56 56 57 57 58 58

http://belgeler.org

Linux Kitaplg

37 / 142

GNU Bash Basvuru Klavuzu

Yerle ik komutlar kabugun kendi iinde bulunur. Bir yerle ik komutun ismi bir basit komutun (sayfa: 15) ilk s s szcg olarak kullanlm sa, kabuk ba ka bir uygulamay ba latmakszn komutu dogrudan dogruya al trr. s s s s Yerle ik komutlar ayr uygulamalar olarak al trlmalar halinde sorunlar karabilecek ya da ayr bir uygulama s s olarak al trlmas imkansz i levselligi saglamak iin gereklidir. s s Bu oylumda Bourne Kabugundan alntlanan yerle ikler ile Bashn kendisine zg ya da sonradan eklenmi s s yerle ik komutlarndan ksaca bahsedilecektir. s Bu oylumda yer verilmemi yerle ik komutlar ba ka blmlerde ele alnm tr: s denetimine Bash arayz s s s s I s Denetim Yerle ikleri (sayfa: 84) blmnde, dizin ygn Dizin Ygn Yerle ikleri (sayfa: 77) saglayanlar I s s blmnde, komut gemi i Bash Gemi Yerle ikleri (sayfa: 111) blmnde, ve programlanabilir tamamlama s s s Programlanabilir Tamamlama Yerle ikleri (sayfa: 107) blmnde anlatlm tr. s s Yerle iklerin ogu POSIX ya da Bash tarafndan eklenmi tir. s s Aksi belirtilmedike, ile ncelenmi seenekler kabul eden belgelenmi her yerle ik komut seeneklerin sos s s nunu i aretlemek iin kabul eder. rnegin, :, true, false ve test yerle ikleri seenek kabul etmezler. s s

1. Bourne Kabugu Yerlesikleri


A agdaki kabuk yerle ik komutlar Bourne Kabugundan miras alnm tr. Bu komutlar POSIX standardnda s s s belirtildigi gibi gereklenmi tir. s

1.1. : (iki nokta stste)


: [argmanlar]

Ynlendirmelerin uygulanmas ve argmanlarn yorumlanmas d nda hibir sey yaplmaz. Dn durumu s s sfrdr.

1.2. . (nokta)
. dosyaismi [argmanlar]

Kullanlan kabuk kapsamnda dosyaisminden komutlar okunur ve al trlr. dosyaismi / iermiyorsa s dosyaisminin yerini bulmak iin PATH degi keni kullanlr. Bash POSIX kipinde degilse ve $PATH iinde s dosyaismi yoksa bulunulan dizine baklr. Verilmi argmanlar varsa, dosyaismi al trlrken bunlar konums s sal parametreler haline gelir. Aksi takdirde, konumsal parametreler degi tirilmez. Dn durumu son al trlan s s s komutun k durumudur. Hi komut al trlmazsa sfr durumu ile dner. dosyaismi bulunamazsa ya da s s okunamazsa, dn durumu sfrdan fakl olur. Bu yerle ik source (sayfa: 56) yerle igine e degerdir. s s s s

1.3. break Yerlesigi


break [n]

for, while, until veya select dnglerinden klmasn saglar. n verilmi se, d a dogru n. dngden s s klr. n >= 1 olmaldr, bu ko ul saglanyorsa dn durumu sfrdr. s s

1.4. cd Yerlesigi
cd [L|P] [dizin]

Bulunulan dizinden dizine geilmesini saglar. dizin verilmezse HOME kabuk degi keni ile belirtilen dizine geilir. s CDPATH kabuk degi keni mevcutsa bu, arama yolu olarak kullanlr. dizin bir / ile ba lyorsa CDPATH kuls s lanlmaz.

http://belgeler.org

Linux Kitaplg

38 / 142

GNU Bash Basvuru Klavuzu

P seenegi verilmi se sembolik baglar izlenmez. Sembolik baglarn izlenmesi ntanmldr ve L seenegine s atanm tr. dizin olarak verilirse, $OLDPWD kullanlr. s CDPATH degi kenindeki bo olmayan deger ya da ilk argman olarak kullanlm sa ve dizin degi ikligi s s s s
gerekle mi se yeni al ma dizininin mutlak dosyayolu standart ktya yazlr. s s s Dizin degi tirme gerekle irse dn durumu sfrdr, gerekle mezse sfrdan farkldr. s s s s

1.5. continue Yerlesigi


continue [n]

for, while, until veya select dnglerinin sonraki yinelemesinden devam edilir. n verilirse d a dogru s n. dngden devam edilir. n >= 1 olmaldr, bu ko ul saglanyorsa dn durumu sfrdr. s s

1.6. eval Yerlesigi


eval [argmanlar]

argmanlar tek bir komut olu turacak sekilde birle tirilip okunur ve al trlr, k durumu evaln k s s s s s durumu olarak dner. Hi argman verilmezse veya argmanlar bo sa sfr durumu dner. s
1.7. exec Yerlesigi
exec [cl] [a isim] [komut [argmanlar]]

komut verilirse, yeni bir sre olu turulmadan kabuga yerle tirilir. l seenegi verilmi se, komuta aktarlan 0. s s s argmann ba na kabuk bir tire i areti koyar. Bu login uygulamasnn yaptgdr. c seenegi komutun bo s s s bir ortamda al trlmasna sebep olur. a seenegi verilirse kabuk, komuta isimi 0. argman olarak aktarr. s Bir komut verilmezse, kullanmdaki kabuk ortamn etkilemekte ynlendirmeler kullanlabilir. Ynlendirme hatas
yoksa, dn durumu sfrdr; aksi takdirde sfrdan farkldr. s

1.8. exit Yerlesigi


exit [n]

n durumu ile dnerek kabuk kar. n verilmezse son al trlan komutun k durumu dner. EXIT zerindeki s s
herhangi bir sinyal kapan kabuk sonlanmadan nce al trlr. s

1.9. export Yerlesigi


export [fn] [p] [isim[=de er]] g

Ortamdaki ocuk srece aktarlacak her isimi imler. f seenegi verilmi se isimler kabuk i levleridir, aksi s s takdirde kabuk degi kenleridir. n seenegi verilirse aktarlacak isimler artk imlenmez. isim verilmemi se veya s s p seenegi verilmi se aktarlan isimlerin listesi gsterilir. p seenegi ktnn girdi olarak tekrar kullanlabilir s biimde gsterilmesini saglar. Bir degi ken isminden sonra =de er geliyorsa de er degi kenin degeri yaplr. s g g s simler geersiz bir degi ken ismi degilse veya f seenegi verilmi se ve isimlerin hepsi kabuk i levi ise ya da I s s s geersiz bir seenek verilmemi se k durumu sfrdr. s s

1.10. getopts Yerlesigi


getopts seenekdizgesi [argmanlar]

http://belgeler.org

Linux Kitaplg

39 / 142

GNU Bash Basvuru Klavuzu

getopts kabuk betikleri tarafndan konumsal parametreleri zmlemekte kullanlr. seenekdizgesi tannan
seenek karakterlerini ierir; bir karakterden sonra bir iki nokta stste karakteri geliyorsa seenegin ondan bir bo lukla ayrlm bir argmana sahip oldugu umulur. : ve ? karakterleri seenek karakterleri olarak kullanlamaz. s s Her agrl nda getopts i lenecek sonraki argmann indisini OPTIND degi kenine ve isim degi kenini s s s s de mevcut degilse ilklendirerek sonraki seenegi isim kabuk degi kenine yerle tirir. OPTIND kabugun ya da s s bir kabuk betiginin her agrl nda 1 ile ilklendirilir. Bir seenek bir argman gerektirdiginde getopts arg s man OPTARG degi kenine yerle tirir. Kabuk, OPTIND degi kenini otomatik olarak sfrlamaz; eger kullanlacak s s s parametrelerin yeni bir kmesi varsa ayn kabuk agrs iinde getoptsa yaplan oklu agrlar arasnda elle sfrlanmaldr. Seeneklerin sonuna gelindiginde, getopts sfrdan byk bir k durumu ile kar. OPTIND ilk seenek s olmayan argmann indisine ayarlanr ve ? karakteri isime yerle tirilir. s

getopts normalde konumsal parametreleri zmlese de argmanlar verilmi se bunlar zmler. s getopts hatalar iki yolla raporlayabilir. Eger seenekdizgesinin ilk karakteri bir : ise sessiz hata raporlamas kullanlr. Geersiz seenekler veya eksik seenekler saptandgnda normal i lem tan iletileri baslr. OPTERR s degi keninin degeri 0 ise seenekdizgesinin ilk karakteri bir : olmasa bile hata iletileri gsterilmez. s
Geersiz bir seenek grldgnde, getopts ? karakterini isime yerle tirir ve hata raporlamas sessiz degilse s bir hata iletisi basar ve OPTARG degi kenini kaldrr. getopts sessiz hata raporlama kipinde ise bulunan s seenek karakterleri OPTARG degi kenine yerle tirilir ve hibir tan iletisi baslmaz. s s s Eger bir gerekli argman bulunamazsa ve getopts sessiz kipte degilse isime ? karakteri yerle tirilir, OPTARG kaldrlr ve bir tan iletisi baslr. getopts sessiz kipte ise isime : karakteri yerle tirilir ve OPTARGa bulunan s seenek karakteri yerle tirilir. s

1.11. hash Yerlesigi


hash [lr] [p dosyaismi] [dt] [isim]

isim argmanlar olarak belirtilen komutlarn tam dosya yollarn hatrlar, bylece mteakip agrlarda aran
malarna gerek kalmaz. Komutlar $PATH iinde listelenmi dizinler aranarak bulunur. p seenegi dosyayolu s aramalarn engeller ve isimin konumu olarak dosyaismi kullanlr. r seenegi hatrlanan tm konumlar kabugun unutmasna sebep olur. d seenegi her isim iin hatrlanan konumu kabugun unutmasna sebep s olur. t seenegi verildiginde her isme kar lk gelen dosya konumlar baslr. t seenegi ile ok sayda isim verilirse, isim hatrlanan tam dosyayolundan nce baslr. l seenegi ktnn girdi olarak tekrar kul lanlmasn saglayacak biimde baslmasn saglar. Hi argman belirtilmezse ya da sadece l seenegi be lirtilirse hatrlanan komutlar hakknda bilgi baslr. Bulunamayan bir isim yoksa veya geersiz bir seenek verilmemi se dn durumu sfrdr. s s

1.12. pwd Yerlesigi


pwd [LP]

Bulunulan dizinin mutlak dosyayolunu basar. P seenegi verilirse baslan dosyayolu sembolik baglar iermez. L seenegi verilirse, baslan dosyayolu sembolik baglar ierebilir. Bulunulan dizinin ismi saptanrken bir hata olu mam sa ya da geersiz bir seenek verilmemi se dn durumu sfrdr. s s s s

1.13. readonly Yerlesigi


readonly [apf] [isim[=de er]] g

Her isimi saltokunur olarak imler. Bu isimlerin degerleri mteakip agrlarda degi tirilemez. f seenegi s s s verilirse, her isim bir kabuk i levidir. a seenegi verilirse, her isim bir dizi degi kenidir. Argman olarak hi

http://belgeler.org

Linux Kitaplg

40 / 142

GNU Bash Basvuru Klavuzu

isim verilmezse veya p seenegi verilirse saltokunur isimlerin hepsi baslr. p seenegi gsterilen ktnn girdi olarak yeniden kullanlabilecek biimde gsterilmesini saglar. Bir degi ken isminden sonra bir =de er s g geliyorsa de er degi kenin degeri yaplr. Geersiz bir seenek verilmedike, isim argmanlar bir geersiz g s
degi ken ya da i lev ismi olmadka veya f seenegi ile verilen bir isim geersiz bir kabuk i levi degilse dn s s s s durumu sfrdr.

1.14. return Yerlesigi


return [n]

Bir kabuk i levinden n dn durumu ile klmasna sebep olur. n verilmezse i lev iinde son al trlan komutun s s s s s s s k durumu, dn durumu olur. Bu yerle ik ayrca . (veya source) yerle igi ile al trlan bir betigin dn s s s durumu olarak ya n ya da son al trlan komutun k durumuyla sonlandrlmasnda da kullanlabilir. RETURN s s sinyal kapan ile ili kilendirilmi bir komut, icra betik veya i levden sonra kaldg yerden devam etmeden nce s s s al trlr. return bir i levin d nda kullanlm sa ve return kullanlan betigin al trlmas . veya source s s s s s yerle ikleri ile yaplmam sa dn durumu sfrdan farkldr. s s s

1.15. shift Yerlesigi


shift [n]

Konumsal parametreleri n kadar sola kaydrr. slem sonunda $n>+1 ... $# konumsal parametreleri $1 I ... $#n+1 haline gelir. $#dan n+1e kadar olan parametreler kaldrlr. n >= 0 ve n =< $# olmaldr. n sfr ya da $# den bykse konumsal parametreler degi mez. n verilmezse, ntanml olarak 1 kabul edilir. n> s $# ve n< 0 degilse dn durumu sfrdr, aksi takdirde sfrdan farkldr. s

1.16. test Yerlesigi [


test [ifade] [ [ifade] ]

Ko ullu ifade degerlendirilir. Her i le ve terim ayr bir argman olmaldr. fadeler Bash Ko ullu Ifadeleri (sayfa: s s I s 72) blmnde aklanan nceliklerin birle iminden olu ur. test seeneklerin sonunu imleyen argmann s s kabul etmeyip yoksaydg gibi bir seenek de kabul etmez.

[ kullanmnda komutun son argman bir ] olmaldr.


fadeler a agdaki i leler kullanlarak birle tirilebilir. slelerin ncelikleri verildikleri sradadr. I s s s I

! ifade

ifade yanl sa sonu dogrudur. s


( ifade )
Sonu ifadenin degeridir. Bu kullanm i lecin normal nceligini arttrmak iindir. s

ifade1 a ifade2 Hem ifade1 hem de ifade2 dogru ise sonu dogrudur. ifade1 o ifade2 ifade1 veya ifade2 dogru ise sonu dogrudur.
test ve [ yerle ikleri ko ullu ifadeleri argmanlarnn saysna bagl baz kurallara gre degerlendirir. s s
0 argman

http://belgeler.org

Linux Kitaplg

41 / 142

GNU Bash Basvuru Klavuzu

fade yanl tr. I s 1 argman Sadece ve sadece argman bo degilse ifade dogrudur. s 2 argman lk argman ! ise ve ikinci argman sadece ve sadece bo ise ifade dogrudur. lk argman tek terimli I s I ko ul i lelerinden biri ise (Bash Ko ullu Ifadeleri (sayfa: 72) blmne baknz) ve tek terimlinin sonucu s s s lk argman geerli bir tek terimli i le degilse, ifade yanl tr. dogru ise ifadenin sonucu dogrudur. I s s 3 argman kinci argman iki terimli ko ul i lelerinden biri ise (Bash Ko ullu Ifadeleri (sayfa: 72) blne baknz), s I s s ifadenin sonucu ilk ve nc argmanlarn terimleri oldugu iki terimlinin sonucudur. lk argman ! ise I sonu, ikinci ve nc argmann kullanldg iki argmanl snamann zdddr. lk argman tek ba na I s ( ve nc argman tek ba na ) ise sonu, ikinci argmann tek terimli snamasnn sonucudur. Aksi s takdirde, ifade yanl tr. a ve o i lelerinin bu durumda iki terimli i leleri oldugu varsaylr. s s s 4 argman lk argman ! ise sonu, kalan argmanlarn olu turdugu terimli ifadenin sonucudur. Aksi takdirde, I s ifade yukardaki kurallar kullanlarak nceliklere gre zmlenir ve degerlendirilir. 5 argman ve fazlas fade yukardaki kurallar kullanlarak nceliklere gre zmlenir ve degerlendirilir. I

1.17. times Yerlesigi


times

Kabuk ve altkabuklar tarafnda kullanlan kullanc ve sistem srelerini gsterir. Dn durumu sfrdr. s

1.18. trap Yerlesigi


trap [lp] [argman] [sinyal ]

argman iindeki komutlar, kabuk sinyal sinyalini aldgnda okunur ve al trlr(1). argman bir bo dizge s s (2) ise her sinyal sinyali kabuk ve onu agran komutlar tarafndan yoksaylr . argman verilmezse (ve tek bir sinyal varsa) ya da verilirse, belirtilen tm sinyallere kabuk ba latldgndaki degerleri yerle tirilir. (3). s s
Sadece p seenegi verilmi se trap, her sinyal numaras ile ili kili komutlarn listesini kabuk girdisi olarak kul s s lanlabilecek biimde gsterir. l seenegi kabugun sinyal isimlerini numaralar ile birlikte listelemesini saglar. Her sinyal ya bir sinyal ismi ya da bir sinyal numaras olarak verilmelidir. Sinyal isimleri harf byklgne duyarldr ve SIG neki istege bagldr. Eger sinyal 0 ya da EXIT ise argman kabuk karken al trlr. s Eger sinyal olarak DEBUG verilmi se, argman komutu her basit komuttan nce, for komutundan, case s komutundan, select komutundan, her aritmetik for komutundan ve bir kabuk i levinde al trlacak ilk s s komuttan nce al trlr. DEBUG kapannn etkisi ile ilgili daha ayrntl aklama iin shopt yerle iginin s s extglob seeneginin aklamasna (sayfa: 54) baknz. Eger bir sinyal ERR ise argman komutu, a agdaki s ko ullara konu olan sfrdan farkl k durumuna sahip her komut iin al trlr. Ba arsz komut, hemen s s s s ardndan until veya while gelen bir komut listesinin parasysa ya da if deyiminde snamann bir parasysa veya bir && veya || listesinin bir parasysa veya komutun dn durumu ! ile zddna ayarlanm sa, s s ERR sinyal kapan al trlmaz. Bunlar errexit seenegi tarafndan uyulan ko ullarla ayndr. sinyal RETURN s s ise argman ile belirtilen komut al trlr. s Kabuk girdilerinde yoksaylan sinyaller yakalanamaz ve sfrlanamaz. Yoksaylmayp yakalanan sinyallere alt sre iinde olu turulduklar zamanki zgn degerleri atanr. s

http://belgeler.org

Linux Kitaplg

42 / 142

GNU Bash Basvuru Klavuzu

Bir sinyal geersiz bir sinyal belirtmedike yerle igin dn durumu sfrdr. s s

1.19. umask Yerlesigi


umask [p] [S] [kip]

Kabuk srecinin dosya olu turma maskesini kip olarak ayarlar. kip bir rakam ile ba lyorsa sekizlik bir say olarak s s yorumlanr; rakamla ba lamyorsa, chmod komutundaki gibi bir sembolik kip maskesi olarak yorumlanr. Eger s kip verilmezse, maskenin mevcut degeri gsterilir. S seenegi bir kip olmakszn verilirse, maske sembolik kipte gsterilir. p seenegi bir kip olmakszn verilirse, maske, kabuga girdi olarak verilebilecek biemde gsterilir. kip degi tirilebilmi se veya kip argman verilmemi se dn durumu sfrdr, aksi takdirde sfrdan farkldr. s s s s Bilgi

kip bir sekizlik say olarak yorumlandgnda, maske iindeki her numara 7 den karlr. Yani, 022 olarak
verilen maske, 755 izinlerine kar lktr. s

1.20. unset Yerlesigi


unset [fv] [isim]

isimi belirtilen her i lev ya da degi ken kaldrlr. Hibir seenek verilmemi se ya da v seenegi verilmi se, s s s s s s s s her isim bir kabuk degi kenidir. f seenegi verilmi se, her isim bir kabuk i levidir ve i lev tanm kaldrlr. Saltokunur degi kenler ve i levler kaldrlamaz. Belirtilen isim saltokunur olmadka dn durumu sfrdr. s s s

2. Bash Yerlesik Komutlar


Bu ksmda e siz veya Bashe sonradan eklenmi yerle ik komutlardan bahsedilmi tir. Buradaki komutlardan s s s s bazlar POSIX standardnda belirtilmi tir. s

2.1. alias Yerlesigi


alias [p] [isim[=de er] ...] g

Argmansz veya p seenegi ile alias, kabukta girdi olarak yeniden kullanlabilecek biemde takma ad g larn listesini gsterir. Argmanlar verilmi se, her isim takma ad olarak alnr ve de er bu takma ada atanr. s Eger de er verilmemi se, takma adn isim ve de eri baslr. Takma adlar Takma Adlar (sayfa: 75) blmnde g s g anlatlm tr. s

2.2. bind Yerlesigi


bind bind bind bind bind bind

tuelem] [lpsvPSV] s s tuelem] [q ilev] [u ilev] [r tudizisi] s s s s s tuelem] f dosyaismi s s tuelem] x tudizisi:kabukkomutu s s s tuelem] tudizisi:ilevismi s s s s readlinekomutu]
[m [m [m [m [m

Kullanmdaki Readline (Komut Satrnn Dzenlenmesi (sayfa: 87) blmne baknz) tu ve i lev ksayollarn s s gsterir, bir Readline i levi ya da makrosunu bir tu dizisine baglar veya bir Readline degi kenini atar. Seenek s s s olmayan her argman bir Readline ilklendirme dosyas (sayfa: 90)ndaki gibi bir komuttur, fakat her ksayol veya komut ayr bir argman olarak verilmilidir; rn. "\Cx\Cr":rereadinitfile. Seenekler verildiginde a agdaki anlamlara gelir: s

http://belgeler.org

Linux Kitaplg

43 / 142

GNU Bash Basvuru Klavuzu

m tu e lemi s s
Mteakip baglantlarn etkilenecegi tu e lemi olarak tu e lemi kullanlr. Burada geerli tu e lemi isim s s s s s s leri,emacs, emacsstandard, emacsmeta, emacsctlx, vi, vimove, vicommand ve viinsertdir. vi ile vicommand ve emacs ile emacsstandard e degerdir. s

l
Tm Readline i levlerini listeler. s

p
Readline i lev isimlerini ve ksayollarn, girdi olarak ya da bir Readline ilklendirme dosyasnda kullanlabilir s biemde gsterir.

P
Kullanmdaki Readline i lev isimlerini ve ksayollarn listeler. s

v
Readline degi ken isimlerini ve degerlerini, girdi olarak ya da bir Readline ilklendirme dosyasnda kuls lanlabilir biemde gsterir.

V
Kullanmdaki Readline degi ken isimlerini ve degerlerini listeler. s

s
Makrolara ve dizgelere bagl Readline tu dizilerini, girdi olarak ya da bir Readline ilklendirme dosyasnda s kullanlabilir biemde gsterir.

S
Makrolara ve dizgelere bagl Readline tu dizilerini gsterir. s

f dosyaismi
Tu ksayollarn dosyaisminden okur. s

q i lev s
smi belirtilen i levi agran tu lar hakknda sorgu. I s s

u i lev s
smi belirtilen i levi agran tm tu ksayollarn kaldrr. I s s

r tu dizisi s

tudizisi iin mevcut baglantlar kaldrr. s


x tu dizisi:kabukkomutu s

tudizisinin her girili inde kabukkomutunun al trlmasn saglar. s s s


Geersiz bir seenek verilmedike veya bir hata olu madka dn durumu sfrdr. s s

2.3. builtin Yerlesigi


builtin [kabukyerle i i [argmanlar]] sg

Bir kabukyerle i ine argmanlar aktararak al trr. Bu bir kabuk i levinin bir kabul yerle igi ile ayn isimde sg s s s

sg s s atanmas durumunda faydaldr. kabukyerle i i geerli bir kabuk yerle igi degilse dn durumu sfrdan farkldr.
2.4. caller Yerlesigi
http://belgeler.org
Linux Kitaplg 44 / 142

GNU Bash Basvuru Klavuzu

caller [ifade]

Etkin altyordam agrsnn (. veya source ile al trlan bir betik) baglam ile dner. s

ifade olmakszn, caller o anki altyordam agrsnn kaynak dosya ismini ve satr numarasn gsterir. Eger ifade olarak negatiften farkl bir tamsay belirtilmi se caller o anki icra agrs ygtndaki o konuma kar lk s s
gelen kaynak dosyas, satr numaras ve altyordam ismini gsterir. Bu ek bilgi rnegin bir ygt izini basmakta kullanlabilir. Anlk ereve 0. erevedir. Kabuk bir altyordam agrsn al trmyor olmadka dn durumu 0dr, aksi takdirde ifade agr ygtnda s s geerli bir konuma kar lk degildir. s

2.5. command Yerlesigi


command [pVv] komut [argmanlar ...]

komut komutunu komut isimli kabuk i levini yoksayarak argmanlar ile al trr. Sadece kabuk yerle iklerini s s s
s s s ve PATH aramas ile bulunan komutlar al trr. ls isimli bir kabuk i levi varsa ve i levin iinde command ls varsa, i lev agrsnda i lev ard k olarak agrlmak yerine ls komutu al trlacaktr. p seenegi, tm s s s s standart uygulamalarn bulunmasn garanti eden PATH iin bir ntanml degerle kullanlacag anlamna gelir. Bu durumda komut bulunamazsa veya bir hata olu ursa 127 durumu ile aksi takdirde komutun k durumu s s ile dner.

V ya da v seenegi verilmi se, bir komut aklamas baslr. v seenegi komutu agrmada kullanlan s dosya ismini ya da komutu belirten tek bir szck gsterilmesini saglar. V seenegi ise daha ayrntl aklama
gsterilmesini saglar. Bu durumda dn durumu komut bulunursa sfr, aksi takdirde sfrdan farkl olur. s

2.6. declare Yerlesigi


declare [afFirtx] [p] [isim[=de er] ] g

Degi kenlerin zellikleri ile bildirilmesini saglar. Hibir isim belirtilmezse degi kenleri ve degerlerini listeler. s s

p seenegi ile her isim iin degerini ve zellikleri gsterecektir. p seenegi ile birlikte verilen diger seenek ler yoksaylr. F seenegi i lev tanmlarnn baslmasn engeller; sadece i lev isimleri ve zellikleri gsterilir. s s extdebug kabuk seenegi shopt kullanarak etkinle tirilmi se ek olarak i levin tanmlandg kaynak dosya s s s ismi ve satr numaras gsterilir. F seenegi f seenegini uygular. A agdaki seenekler degi kenlere belir s s
tilen zelliklerle ktlanmasn veya degi ken zelliklerinin verilmesini snrlamakta kullanlabilir: s

a
Her isim bir dizi (sayfa: 76) degi kenidir. s

f
Sadece i lev isimleri kullanlr. s

i
Degi ken bir tamsay olarak ele alnr ve degi kene bir deger atandgnda aritmetik degerlendirme (sayfa: s s 74) uygulanr.

r
simleri saltokunur yapar. Bu isimlere sonradan deger atanamaz, degi tirilemez ve kaldrlamaz. I s

t
Her isime trace zniteligi verir. zlenen i levler DEBUG ve RETURN tuzaklarn agran kabuktan miras I s s alrlar. trace zniteliginin degi kenler iin zel bir anlam yoktur.

http://belgeler.org

Linux Kitaplg

45 / 142

GNU Bash Basvuru Klavuzu

x
Her ismi mteakip komutlara ortam zerinden aktarlmas iin imler.

yerine + kullanlarak zellik kapatlabilir. Bir i levde kullanldgnda declare her isimi local komutu kuls lanlm gibi yerel yapar. Eger degi ken isminden hemen sonra bir =de er varsa de er degi kene atanr. s s g g s
Su hallerin gerekle memesi sartyla k durumu sfrdr: bir geersiz seenek saptanrsa, f foo=bar s s kullanarak bir i leve atama yapmaya al ldgnda, bir saltokunur degi kene bir deger atanmaya al ldgnda, s s s s bir dizi degi kenine birle ik atama szdizimi (Diziler (sayfa: 76) blmne baknz) kullanmakszn bir deger s s s s atanmaya al ldgnda, isimlerden biri geersiz bir kabuk degi keni ismi ise, bir saltokunur degi kenin salt s okunurlugu kaldrlmak istendiginde, bir dizi degi keninden dizi olmasn ortadan kaldracak bir atama yaplmaya s al ldgnda veya mevcut olmayan bir i levin f seenegi ile gsterilmesi istendiginde. s s

2.7. echo Yerlesigi


echo [neE] [argmanlar ...]

Bo luklarla ayrlm , bir satrsonu ile sonlandrlm argmanlar ktlanr. Dn durumu daima sfrdr. n s s s s seenegi ile satrsonu karakteri basklanr. e seenegi ile a agdaki tersbl ncelemeli karakterlerin yorum s lanmas etkinle tirilir. E seenegi bu ncelenmi karakterlerinin yorumlanmasnn ntanml olarak etkin oldugu s s s sistemlerde bile yorumlamay kapatr. xpg_echo kabuk seenegi ntanml olarak bu ncelenmi karakterlerin yorumlanp yorumlanmayacagnn dinamik olarak saptanmas iin kullanlabilir. echo yi seeneklerin sonu anlamnda yorumlamaz.

echo a agdaki ncelenmi dizilimleri yorumlar: s s \a


sesli uyar (bell)

\b
gerisilme

\c
kendisinden sonra gelen satrsonu karakterini kaldrr.

\e
escape

\f
sayfa ilerletme

\n
satrsonu

\r
satrba s

\t
yatay sekme

\v
d ey sekme s

\\
tersbl

http://belgeler.org

Linux Kitaplg

46 / 142

GNU Bash Basvuru Klavuzu

\0nnn
sekizlik degeri nnn olan sekiz bitlik karakter (0, 1, 2 ya da 3 haneli olabilir)

\xhh
onaltlk degeri hh olan sekiz bitlik karakter (1 ya da 2 haneli olabilir)

2.8. enable Yerlesigi


enable [n] [p] [f dosyaismi] [ads] [isim ...]

Yerle ik kabuk komutlarn etkinle tirir ve kaldrr. Bir yerle igin iptal edilmesi durumunda, kabuk, yerle ik kos s s s mutlara diger komutlardan nce bakmasna ragmen bir tam dosyayolu belirtilmeksizin ayn isimdeki bir uygula mann kabuk komutu olarak kullanlmas saglanr. Bu, n seenegi ile isimleri belirtilen yerle ikler iin uygulanr, s seenek verilmezse yerle ikler etkinle tirilir. rnegin test yerle igi yerine test uygulamasnn yerle ik komut s s s s olarak kullanlmasn saglamak iin enable n test yazmalsnz.

p seenegi verilirse ya da isim argmanlar verilmezse kabuk yerle ikleri listelenir. Ba ka hibir argman s s verilmezse tm etkin kabuk yerle ikleri listelenir. a seenegi ile her yerle ik etkin olup olmadg belirtilerek s s
listelenir. Dinamik yklemenin desteklendigi sistemlerde, f seenegi ile yeni bir isim yerle ik komutunun dosyaismi ile s belirtilen payla ml nesneden yklenmesi saglanr. d seenegi f ile yklenen yerle igi silmek iin kullanlr. s s Hi seenek verilmezse kabuk yerle iklerinin bir listesi gsterilir. s seenegi POSIXe zel yerle iklerin s s etkinle tirilmesini snrlar. s seenegi f seenegi ile birlikte kullanlrsa yeni yerle ik bir zel yerle ik (sayfa: s s s 58) haline gelir. s s s Bir isim geersiz bir kabuk yerle igi olmadka ya da bir payla ml nesneden yeni bir yerle igi yklerken hata olmadka dn durumu sfrdr. s

2.9. help Yerlesigi


help [s] [kalp]

Yerle ik komutlar hakknda yardm bilgisi gsterir. kalp belirtilmi se, help kalp ile e le en tm komutlar iin s s s s yardm bilgisi gsterir, aksi takdirde yerle ikler listelenir. s seenegi ile yardm bilgisi yerine komutun kullanmn s gsteren szdizimini basar. kalp ile e le me olmamas d nda dn durumu sfrdr. s s s s

2.10. let Yerlesigi


let ifade [ifade]

Kabuk degi kenleri zerinde aritmetik i lemler uygulanmasn saglar. Her ifade Kabuk Aritmetigi (sayfa: 74) s s blmnde aklanan kurallara gre degerlendirilir. Son ifadenin sonucu 0 ise dn durumu 1 dir, aksi takdirde s 0 dr.

2.11. local Yerlesigi


local [seenek] isim[=de er] g

Her argman iin isim isimli bir yerel degi ken olu turulur ve de er atanr. seenek, declare tarafndan s s g kabul edilen seenekler olabilir. local sadece bir i lev iinde kullanlabilir; isim degi keninin sadece i lev s s s s s s ve ocuklarnn etki alannda grnr olmasn saglar. local bir i levin d nda kullanlm ya da isim bir saltokunur degi ken olmadka dn durumu sfrdr. s s

http://belgeler.org

Linux Kitaplg

47 / 142

GNU Bash Basvuru Klavuzu

2.12. logout Yerlesigi


logout [n]

Bir giri kabugundan klmasn saglar. Kabugun atasna n durumu dner. s

2.13. printf Yerlesigi


printf [v de i ken] biim [argmanlar] gs

biimin denetimi altnda argmanlar standart ktya biimleyerek yazar. biim tr nesne ieren bir
dizgedir: salt karakterler basite standart ktya kopyalanr, ncelenmi karakterler dn trlp standart ktya s s kopyalanr ve biim belirtimleri; belirtimlerin her biri srayla kar d en argmanlarn baslmasn saglar. Stans s dart printf(1) biimlerine ek olarak, %b printfin tersbl ncelemeli karakterlerin kar d en argmanda s s yorumlanmasn saglar, (kty sonlandran \c hari, \, \" ve \? iindeki tersbller kaldrlmaz ve \0 ile ba layan sekizlik ncelemeler drt rakama kadar olabilir) ve %q printfin kar d en argmann kabuk s s s girdisi olarak kullanlabilecek biimde ktlamasn saglar.

v seenegi ktnn standart ktya baslmas yerine de i kene atanmasn saglar. gs

biim tm argmanlar tketilinceye kadar yeniden kullanlr. argmanlarn says yetersizse, kalan biim
belirtimleri iin trne gre sfr ya da bo dizge kullanlr. Bir hata olu mazsa dn durumu sfrdr, aksi s s s takdirde sfrdan farkldr.

2.14. read Yerlesigi


read [ers] [a diziismi] [d sonlandrc] [n krktsays] [p istem] [t zamana m] [u dosyatantc] [isim ] s

Standart girdiden ya da u seenegi ile saglanan dosyatantcdan tek satr okur ve ilk szck ilk isime, ikinci szck ikinci isime ve byle giderek, aradaki szckler ve ayralar son isime kadar atanr. Girdi akmndan okus nan szckler isimlerden daha azsa kalan isimlere bo degerler atanr. IFS degi keninin degerindeki karakterler s satr szcklere ayrmakta kullanlr. Tersbl karakteri (\) satrn devam ettirilmesi iin ve kendinden sonra gelen zel karakterlerin yorumlanmas iin kullanlabilir. Hi isim verilmemi se, satrn tamam okunur ve REPLY s degi kenine atanr. Dosyasonu karakteri (CtrlD) saptanmadka, komut zamana mna d medike ya da s s s

u seenegi ile saglanan dosyatantc geersiz olmadka dn durumu sfrdr. Seenekler verildiklerinde s
a agdaki anlamlara gelirler: s

a diziismi
Szckler srayla diziismi dizisinin elemanlarna atanr. Dizinin ilk elemannn indisi 0 dr. Atama yaplmadan nce diziismi dizisinin tm elemanlar silinir. Diger isim argmanlar yoksaylr.

d sonlandrc

sonlandrcnn ilk karakteri girdi satrn sonlandrmak iin satrsonu karakteri yerine kullanlr.
e
Satr saglamakta Readline (Komut Satrnn Dzenlenmesi (sayfa: 87) blmne baknz) kullanlr.

n krktsays
Satrn okunmas krktsays karakterde sona erer. Satrn kalan yoksaylr.

p istem
Girdi beklendigini belirtecek istem dizgesi satrsonu karakteri olmakszn grntlenir. stem sadece girdi I bir ubirimden gelecekse gsterilir. Linux Kitaplg 48 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

r
Bu seenek verildiginde tersbl karakteri bir nceleme karakteri olarak ele alnmaz, dolaysyla tersbl satrsonu ifti satrn alt satrda devam edecegini belirtmekte kullanlamaz.

s
Sessiz kip. Girdi bir ubirimden geliyorsa karakterler yanslanmaz.

t zamana m s
Satr zamana m saniye sonra hala sonlandrlmam sa read zamana mna d er ve hata dner. Bu s s s s seenek, girdi bir ubirim ya da boruhattndan okunmuyorsa etkisizdir.

u dosyatantc
Girdidosyatantcdan okunur.

2.15. set Yerlesigi


set [abefhkmnptuvxBCHP] [o seenek] [argman ...]

Seeneksiz ve argmansz olarak set, tm kabuk degi kenlerinin ve i levlerinin isim ve degerlerini yerelin s s alfabetik sralamasna gre dizerek, girdi olarak yeniden kullanlabilir biimde gsterir. Saltokunur degi kenler s sfrlanamazlar. POSIX kipinde sadece kabuk degi kenleri listelenir. s Seenekler verildiginde kabuk zellikleri olarak atanr ya da kaldrlr. Seenekler belirtildiginde a agdaki an s lamlara gelir:

a
Mteakip komutlarn ortamna aktarlmak zere degi tirilen veya olu turulan i lev ve degi kenleri imler. s s s s

b
Sonlandrlan artalan i lerin durumunu sonraki birincil komut isteminde gsterilmesini yerine annda ras porlanmasn saglar.

e
Bir until veya while dngsnden hemen sonra gelen bir komut listesinin bir ksmnda, bir if deyiminin snama parasnda, bir && veya || listesinin bir parasnda hata olu madka veya komutun dn s s durumu ! kullanarak ters evrilmedike bir basit komut (sayfa: 15) sfrdan farkl bir k durumu ile karsa s annda kar. ERR iin bir sinyal kapan belirtilmi se, kabuk kmadan nce al trlr. s s

f
Dosya ismi retimini (globbing) iptal eder.

h
al trmak iin aranan komutlar bulur ve yerlerini hatrlar (hash) Bu seenek ntanml olarak etkindir. s

k
Atama deyimleri seklindeki tm argmanlar komut isminden nce belirtmek yerine ortama yerle tirir. s

m
s Is denetimi (sayfa: 83) etkinle tirilir.

n
Komutlar okur ama onlar al trmaz; bu bir betigi szdizimi hatalarna kar denetlemek iin yararldr. s s Bu seenek etkile imli kabuklarda yok saylr. s

o seenekismi http://belgeler.org
Linux Kitaplg 49 / 142

GNU Bash Basvuru Klavuzu

seenekismi olarak a agdakilerden biri verildiginde kar lg olan seenekler kullanlm olur: s s s
allexport a seenegi ile ayndr. braceexpand B seenegi ile ayndr. emacs
Bir emacs tarz satr dzenleme arayz kullanlr (Komut Satrnn Dzenlenmesi (sayfa: 87) blmne baknz).

errexit e seenegi ile ayndr. errtrace E seenegi ile ayndr. functrace T seenegi ile ayndr. hashall h seenegi ile ayndr. histexpand H seenegi ile ayndr. history
Bashin Gemi sel Yetenekleri (sayfa: 111) blmnde anlatldg gibi komut gemi ini etkinle tirir. s s s Bu seenek etkile imli kabuklarda ntanml olarak etkindir. s

ignoreeof
Bir etkile imli kabuk dosyasonu (EOF) karakterine rastlannca kmaz. s

keyword k seenegi ile ayndr. monitor m seenegi ile ayndr. noclobber C seenegi ile ayndr. noexec n seenegi ile ayndr. noglob f seenegi ile ayndr. nolog
Yoksaylr.

notify http://belgeler.org
Linux Kitaplg 50 / 142

GNU Bash Basvuru Klavuzu

b seenegi ile ayndr. nounset u seenegi ile ayndr. onecmd t seenegi ile ayndr. physical P seenegi ile ayndr. pipefail
Etkinse bir boruhattnn dn degeri ya sfrdan farkl bir durumla kan son (en sagdaki) komutun s degeridir ya da boruhattndaki tm komutlar ba arlysa sfrdr. Bu seenek ntanml olarak etkin s degildir.

posix
Standart uyumu iin POSIX standardndakinden farkl ntanml i lemde Bash davran n degi tirir s s s (Bash POSIX Kipi (sayfa: 80) blmne baknz). Bu, Bashn standarda tam uyumunu saglamak maksadyla yaplm tr. s

privileged p seenegi ile ayndr. verbose v seenegi ile ayndr. vi


Bir vi tarz satr dzenleme arayz kullanlr.

xtrace x seenegi ile ayndr. p


Ayrcalkl kipi etkinle tirir. Bu kipte, $BASH_ENV ve $ENV dosyalar i lenmez, kabuk i levleri ortamdan s s s s miras alnmaz ve SHELLOPTS degi keni ortamda grnyorsa yoksaylr. Kabuk, gerek kullanc (grup) kimligi ile ayn olmayan etkin kullanc (grup) kimligi ile ba latlm sa ve p seenegi verilmemi se, bu s s s eylemler alnr ve etkin kullanc (grup) kimligi, gerek kullanc (grup) kimligine ayarlanr. Ba latrken p s seenegi verilmi se, etkin kullanc (grup) kimligi sfrlanmaz. Bu seenegin kapatlmas etkin kullanc ve s grup kimliklerinin gerek kullanc ve grup kimliklerine ayarlanmasna sebep olur.

t
Tek bir komutu okuyup al trdktan sonra kar. s

u
Parametre yorumlamas uygulanrken bir hata sonucu degi kenlerin kaldrlmasna benzer bir davran s s gsterir. Standart hataya bir hata iletisi yazlr ve etkile imsiz kabuk kar. s

v
Kabuk girdi satrlarn okundu olarak basar.

http://belgeler.org

Linux Kitaplg

51 / 142

GNU Bash Basvuru Klavuzu

Basit komutlarn, forkomutlarnn, case komutlarnn, select komutlarnn ve aritmetik for komutlarnn ve bunlarn argmanlarnn veya ili kili szck listelerinin yorumlandktan sonra ve al trlmadan s s nce izleme listesini basar. PS4 degi keninin degeri yorumlanr ve sonulanan deger komuttan ve komus tun yorumlanan argmanlarndan nce baslr.

B
Kabuk ka l ayra yorumlamas (sayfa: 23) uygular. Bu seenek ntanml olarak etkindir. s

C
ktnn > kullanlarak ynlendirilmesini ve <> kullanlarak mevcut dosyalarn zerine yazlmasn engeller.

E
Etkinse ERR stndeki bir tuzak kabuk i levlerince miras alnr, komut ikameleri ve komutlar bir alt kabuk s ortamnda al trlr. ERR tuzag normalde byle durumlarda miras alnmaz. s

H ! tarz gemi ikamesini (sayfa: 113) etkinle tirir. Bu seenek etkile imli kabuklarda ntanml olarak s s s
etkindir.

P
Verildiginde, rnegin al lan dizini degi tirmek iin cd gibi bir komut uygulandgnda, sembolik baglar s s izlemez. Yerine ziksel dizin kullanlr. ntanml olarak, al lan dizini degi tiren komutlar uygulandgnda, s s Bash mantksal dizin zincirlerini izler. rnegin, /usr/sys dizini /usr/local/sys dizinine bir sembolik bag ise:
$ cd /usr/sys; echo $PWD /usr/sys $ cd ..; pwd /usr

set P verilirse:
$ cd /usr/sys; echo $PWD /usr/local/sys $ cd ..; pwd /usr/local

T
Etkinse DEBUG ve RETURN stndeki bir tuzak kabuk i levlerince miras alnr, komut ikameleri ve komutlar s bir alt kabuk ortamnda al trlr. DEBUG ve RETURN tuzaklar normalde byle durumlarda miras alnmaz. s

Bu seenekten sonra bir argman verilmezse konumsal parametreler kaldrlr. Aksi takdirde, konumsal parametreler bazlar ile ba lasa bile argmanlara ayarlanr. s

Seeneklerin sonunu belirtir. Kalan tm argmanlar konumsal parametrelere ayarlanr. x ve v seenekleri kapatlr. Argman yoksa konumsal parametreler degi meden kalr. s Seeneklerdeki i aretleri yerine + kullanldgnda bu seenekler kapatlr. Ayrca, seenekler kabugun s agrlmas srasnda da kullanlabilir. Seeneklerin mevcut listesi $ iinde bulunabilir. Kalan N argman konumsal parametrelerdir ve $1, $2, ... $N seklinde atanr. zel parametre # ise Ne ayarlanr. Geersiz seenek verilmedigi srece dn durumu daima sfrdr. s

http://belgeler.org

Linux Kitaplg

52 / 142

GNU Bash Basvuru Klavuzu

2.16. shopt Yerlesigi


shopt [pqsu] [o] [seenekismi ...]

stege bagl kabuk davran larn kontrol eden degi ken degerlerini ap kapar. Seeneksiz ya da p seenegi ile I s s tm denetim seeneklerini etkin olup olmadklarn belirterek listeler. p seeneginin fark listlenenlerin kabuga bir girdi olarak verilebilecek biemde olmasdr. Diger seeneklerin anlamlar:

s
Belirtilen her seenekismini etkinle tirir (setin ssi) s

u
Belirtilen her seenekismini iptal eder (unsetin usu).

q
Normal kty engeller; seenekisminin etkinle tirme sonucunu dn durumu belli eder. Belirtilen tm s s

seenekismileri etkinle tirilmi se dn durumu sfrdr, aksi takdirde sfrdan farkldr. s s s


o set (sayfa: 49) yerle iginin o seeneginde kullanlabilecek seenekismi degerlerini snrlar. s s ve u seenekleri birlikte verilemez, bir seenekismi ile birlikte verilmezlerse sadece kendilerine uyan
seenek isimlerini listelerler. Aksi belirtilmedike, ntanml olarak shopt seenekleri kapaldr (off). Seenek isimleri listelenirken tm seenekler etkinse (on) dn durumu sfrdr, aksi takdirde sfrdan fakldr. s Seeneklerin etkinle tirilmesi ve kaldrlmas srasnda bir seenekismi geersiz bir seenek ismi olmadka s dn durumu sfrdr. s

seenekismi olarak belirtilebilecek seenekler:


cdable_vars
Etkinle tirildiginde cd (sayfa: 38) yerle iginin argman olarak dizin olmayan bir isim verildiginde bunun s s geilecek dizinin isminin atandg bir degi kenin ismi olarak kabul edilmesini saglar. s

cdspell
Etkinle tirildiginde, cd komutunda bir dizin isminin yazl nda ufat tefek hatalar varsa dzeltilecektir. Bu s s hatalar; takdimtehir, eksik bir karakter ve bir karakterin birden fazla yazlmasdr. Bir dzeltme uygulanrsa dzeltilen dizin baslr ve komut al trlr. Bu seenek sadece etkile imli kabuklarda kullanlr. s s

checkhash
Etkinle tirildiginde, Bash, bir komutu al trmadan nce komut tablosuna bakar. Komut tablosunda komutu s s bulamazsa PATH dizinlerine bakar.

checkwinsize
Etkinle tirildiginde, Bash, her komuttan sonra pencere boyutunu ve lazmsa LINES ve COLUMNS s degerlerindeki degi iklikleri kontrol eder. s

cmdhist
Etkinle tirildiginde, Bash, ayn gemi girdisindeki ok satrl bir komutun tm satrlarn kaydetmeye al r. s s s Bylece ok satrl komutlarn yeniden dzenlenebilmesi kolayla r. s

dotglob http://belgeler.org
Linux Kitaplg 53 / 142

GNU Bash Basvuru Klavuzu

Etkinle tirildiginde, Bash, dosyaismi yorumlamas sonularna . ile ba layan dosyaisimlerini dahil eder. s s

execfail
Etkinle tirildiginde, exec yerle igine bir argman olarak verilen bir dosya al trlamadgnda bir etks s s ile imsiz kabuk kmaz. Bir etkile imli kabuk exec ba arsz oldugunda zaten kmaz. s s s

expand_aliases
Etkinle tirildiginde, takma adlar Takma Adlar (sayfa: 75) blmnde aklandg gibi yorumlanr. Bu s seenek etkile imli kabuklarda ntanml olarak etkindir. s

extdebug
Etkinse hata ayklayclar tarafndan kullanlmak zere tasarlanm davran etkinle tirilir: s s s 1. declare Yerle igi (sayfa: 45)nin F seenegi bir argman olarak saglanm her i leve kar lk d en s s s s s kaynak dosya isimlerini ve satr numaralarn gsterir. 2. Eger komut DEBUG tuzag tarafndan al trlm sa sfrdan farkl bir degerle dner, sonraki komut s s atlanr ve al trlmaz. s 3. Eger komut DEBUG tuzag tarafndan al trlm sa 2 degeri ile dner ve kabuk bir altyordam (. s s veya source yerle ikleri ile al trlan bir kabuk betigi ya da kabuk i levi) al trarak bir return s s s s agrsn taklit eder. 4. BASH_ARGC ve BASH_ARGV aklamalarnda belirtildigi gibi gncellenir (bkz, Kabuk Degi kenleri s (sayfa: 59)). I s 5. slev izleme etkinle tirilir:
( komut )

ile agrlan komut ikamesi, kabuk i levleri ve alt kabuklar DEBUG ve RETURN tuzaklarn miras alr. s 6. Hata izleme etkinle tirilir: s
( komut )

ile agrlan komut ikamesi, kabuk i levleri ve alt kabuklar ERROR tuzagn miras alr. s

extglob
Etkinle tirildiginde, Kalp E leme (sayfa: 28) blmnde aklanan zellikler etkinle tirilir. s s s

extquote
Etkinse, it trnak iine alnm ${parametre} geni letmesi iinde $dizge ve $"dizge" biimi trnak s s iine alma uygulanr. Bu seenek ntanml olarak etkindir.

failglob
Etkinse dosyayolu yorumlamas srasnda dosya isimleri kalplarla e le mezse sonu bir yorumlama s s hatasdr.

force_fignore Etkinse FIGNORE (sayfa: 62) kabuk degi keni tarafndan belirtilen sonekler szck tamamlama uygus
lanrken yoksaylan szckler tek olas tamamlamalar olsalar bile szcklerin yoksaylmalarna sebep olurlar. Bu seenek ntanml olarak etkindir.

gnu_errfmt
Etkinse kabuk hata iletileri standart GNU hata iletileri biiminde yazlr.

http://belgeler.org

Linux Kitaplg

54 / 142

GNU Bash Basvuru Klavuzu

histappend
Kabuk karken normalde gemi listesini, ismi HISTFILE degi keninin degerinden alnan dosyann s s zerine yazar. Seenek etkinle tirildiginde gemi listesi bu dosyaya eklenir. s s

histreedit
Etkinle tirildiginde, Readline kullanmda ise, bir ba arsz gemi ikamesini dzenlemesi iin kullancya s s s bir frsat tannr.

histverify
Etkinle tirildiginde, Readline kullanmda ise gemi ikamesi kabuk zmleyiciye hemen aktarlmaz. s s Bunun yerine, degi ikliklerin yaplabilmesi iin sonu satr Readline dzenleme tamponuna yklenir. s

hostcomplete
Etkinle tirildiginde, Readline kullanmda ise, Bash, @ ieren bir szcge konakismi tamamlamas uygulas maya al r (Readline Sizin Yerinize Yazsn (sayfa: 102) blmne baknz). Bu seenek ntanml olarak s etkindir.

huponexit
Etkinle tirildiginde, bir etkile imli giri kabugu ktgnda Bash, tm i lere SIGHUP sinyali gnderecektir s s s s (Sinyaller (sayfa: 35) blmne baknz).

interactive_comments Etkile imli kabuklarda # ile ba layan bir szck ve devamndaki karakterlerin yoksaylmas saglanr. Bu s s
seenek ntanml olarak etkindir.

lithist
Etkinle tirildiginde, cmdhist seenegi de etkinse, ok satrl komutlarn satrlar mmkn oldugunca ; s karakterleri ile ayrlarak degil gml satrsonlar korunarak kaydedilir.

login_shell
Kabuk, bir giri kabugu olarak ba latlrsa bu seenegi etkinle tirir (Bashin agrlmas (sayfa: 67) s s s blmne baknz). Ancak deger degi tirilmeyebilir. s

mailwarn
Etkinle tirildiginde, Bashin eposta denetimi iin kullandg bir dosyaya son denetlemeden sonra s eri ildiginde "epostadosyas iindeki eposta okundu" iletisini gsterir. s

no_empty_cmd_completion
Etkinle tirildiginde, Readline kullanmda ise, bir bo satr tamamlanmaya al ldgnda mmkn tamams s s s lamalar bulmak iin Bash, PATH dizinlerinde arama ba latmayacaktr.

nocaseglob
Etkinle tirildiginde, dosyaismi yorumlamas uygulanrken harf byklgne duyarsz dosyaismi e lemesi s s yaplr.

nocasematch Etkinse case veya [[ ko ullu komutlar al trlrken e le me uygulandgnda Bash kalplar harf s s s s
byklgne duyarsz kalarak e le tirir. s s

nullglob
Etkinle tirildiginde, Bash, kendisine hibir dosya uymayan dosyaismi kalplarnn kendileri yerine bo dizge s s dndrmelerine izin verir.

http://belgeler.org

Linux Kitaplg

55 / 142

GNU Bash Basvuru Klavuzu

progcomp
Etkinle tirildiginde, programlanabilir tamamlama yetenekleri (sayfa: 105) etkinle tirilir. Bu seenek ns s tanml olarak etkindir.

promptvars
Etkinle tirildiginde, komut istemi (sayfa: 78) dizgeleri yorumlandktan sonra bir de parametre yorumlamas, s komut ikamesi, aritmetik yorumlamas ve trnak kaldrmaya maruz kalr. Bu seenek ntanml olarak etkindir.

restricted_shell
Kabuk bu seenegi, snrl kipte (sayfa: 80) ba latldgnda etkinle tirir. Degeri degi meyebilir. Bash, s s s ba latma dosyalar al trlrken, ba lang dosyalarnn kabugun snrl kipte olup olmadgn ke fetmesini s s s s saglayarak sfrlanmamasn saglar.

shift_verbose
Etkinle tirildiginde, konumsal parametrelerin kaydrma miktar parametre saysn a arsa shift yerle igi s s s (sayfa: 41) bir hata iletisi basar.

sourcepath
Etkinle tirildiginde, source yerle igine (sayfa: 56) argman olarak verilen bir dosyann yerini bulmak iin s s PATH degeri kullanlr. Bu seenek ntanml olarak etkindir.

xpg_echo
Etkinle tirildiginde, echo yerle igi (sayfa: 46) ntanml olarak tersbl ncelemeli karakterleri yorumlar. s s Tm seenekismileri etkinse, seenekler listelendiginde dn durumu sfrdr, aksi takdirde sfrdan farkldr. s Seenekleri etkinle tirirken ya da kaldrrken bir seenekismi bir geersiz kabuk seenegi olmadka dn s s durumu sfrdr.

2.17. source Yerlesigi


source dosyaismi

. (nokta) yerle igi (sayfa: 38) ile e degerdir. s s

2.18. type Yerlesigi


type [afptP] [isim ]

Her isimin nasl yorumlanmas gerektigini belirtir. rnegin, type type komutu type is a shell builtin ktlar (anlam: "type bir kabuk yerle igidir"). s

t seenegi verildiginde, isim bir takma ad ise alias, bir i lev ise function, bir yerle ik komut ise builtin, s s bir disk dosyas ise file veya bir anahtar szck ise keyword szcgn basar. isim bulunamazsa, hibir s sey baslmaz ve type bir ba arszlk durumu ile dner. p seenegi verildiginde, isim t seenegi ile file ktsn vermiyorsa hibir sey dnmez, aksi takdirde
al trlacak disk dosyasnn ismi baslr. s

P seenegi her isim iin, t dosya dndrmese bile bir yol aramas yaplmasn zorlar.
Komut rplanm sa p ve P rpl degeri basar, dosyann ilk olarak $PATH iinde grnmesi gerekli degildir. s

a seenegi verildiginde, isim al trlabilir dosyasnn bulunabilecegi yerleri basar. Bu, sadece ve sadece p s
seenegi kullanlmam sa takma adlar ve i levleri de ierir. s s

http://belgeler.org

Linux Kitaplg

56 / 142

GNU Bash Basvuru Klavuzu

f seenegi belirtilmi se command yerle igindeki gibi type kabuk i levlerini bulmaya al maz. s s s s

isimlerden biri bulunursa dn durumu sfrdr, hibiri bulunamazsa sfrdan farkldr. s


2.19. typeset Yerlesigi
typeset [afFrxi] [p] [isim[=de er] ] g

typeset komutu Korn kabugu ile uyumluluk iin vardr. Yerine declare yerle iginin (sayfa: 45) kullanlmas s
nerilir.

2.20. ulimit Yerlesigi


ulimit [acdefilmnpqrstuvxSH] [snr]

ulimit kabuk tarafndan ba latlan srelerin kullanabildigi zkaynaklar zerinde, sistem buna izin veriyorsa, s
denetim saglar. Seenekler verildiginde su anlamlara gelir:

S
Bir zkaynakla ili kili yazlmsal snr (soft limit) raporlar ya da degi tirir. s s

H
Bir zkaynakla ili kili donanmsal snr (hard limit) raporlar ya da degi tirir. s s

a
Mevcut tm snrlamalar gsterilir.

c
Olu an core dosyalarnn azami boyu (core le size). s

d
Bir srecin veri segmannn azami boyu (data seg size).

e
Azami zamanlama nceligi (nice).

f
Kabuk ve ocuklar tarafndan yazlan dosyalarn azami boyu (le size).

i
Askdaki sinyallerin azami says.

l
Bellege kilitlenebilen azami uzunluk (max locked memory).

m
Azami bellek boyu (max memory size).

n
Ak dosya tantclarnn azami says (open les).

p
Boruhatt tamponunun boyu (pipe size).

q
POSIX ileti kuyrugunun azami bayt says.

r http://belgeler.org
Linux Kitaplg 57 / 142

GNU Bash Basvuru Klavuzu

Azami annda al trma zamanlamas nceligi. s

s
Ygnn azami boyu (stack size).

t
slemci zamannn saniye cinsinden azami miktar (cpu time). I

u
Tek bir kullancnn kullanabilecegi azami sre says (max user processes).

v
Bir srecin kullanabilecegi sanal bellegin azami miktar (virtual memory).

x
Dosya kilitlerinin azami says.

snr verilmi se, belirtilen zkaynagn yeni degeridir; zel snr degerleri mevcut donanmsal snr iin hard, s
mevcut yazlmsal snr iin soft ve snrsz iin unlimiteddir. Aksi takdirde, H seenegi belirtilmedike belirtilen zkaynak iin mevcut yazlmsal snr gsterilir. Yeni snrlar ayarlanrken ne H ne de S seenegi verilmi se hem yazlmsal hem de donanmsal snrlar ayarlanr. Hi seenek verilmezse f seenegi verilmi s s kabul edilir. Degerler t iin saniye cinsinden, p iin 512 baytlk bloklarn says olarak, n ve u iin birimsiz, kalan seenekleri iin 1024 baytlk bloklarn says olarak belirtilmelidir. Bir geersiz seenek ya da deger belirtilmedike veya yeni bir snr belirtilirken bir hata olu madka dn s s durumu sfrdr.

2.21. unalias Yerlesigi


unalias [a] [isim ... ]

Belirtilen her isim takma adlar listesinden kaldrlr. a seenegi verilirse, tm takma adlar kaldrlr. Takma adlar Takma Adlar (sayfa: 75) blmnde aklanm tr. s

3. zel Yerlesikler
Tarihsel sebeplerle, POSIX standardnda zel olarak snandrlm yerle ik komutlar vardr. Bash, POSIX s s kipinde al trlrken, zel yerle ikler diger yerle iklerden hususta ayrlr: s s s 1. Komut aranrken zel yerle iklere kabuk i levlerinden nce baklr. s s 2. Bir zel yerle ik bir hata durumu ile dnerse, bir etkile imsiz kabuk kar. s s 3. Komutttan nce verilen atama deyimleri komut i ini tamamladktan sonra da kabukta etkin olarak kalr. s Bashn POSIX kipinde al trlmamas durumunda, bu yerle ikler Bash yerle ik komutlarndan farkl davrans s s maz. Bash POSIX kipi Bash POSIX Kipi (sayfa: 80) blmnde anlatlm tr. s POSIXe zel yerle ikler: s
break : . continue eval exec exit export readonly return set shift trap unset

http://belgeler.org

Linux Kitaplg

58 / 142

GNU Bash Basvuru Klavuzu

V. Kabuk Degiskenleri
indekiler I
1. Bourne Kabugu Degiskenleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2. Bash Degiskenleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Bu oylumda Bash tarafndan kullanlan kabuk degi kenleri anlatlacaktr. Bash baz degi kenleri otomatikman s s ntanml degerlerle atar.

1. Bourne Kabugu Degiskenleri


Bash baz kabuk degi kenlerini Bourne kabugunun kullandg gibi kullanr. Baz durumlarda, Bash degi kenlere s s bir ntanml deger atar.

CDPATH cd yerle ik komutu iin dosya arama yolu olarak kullanlan dizinlerin : i aretleri ile ayrlm listesi. s s s HOME
Kullancnn ev dizini; cd yerle ik komutu iin ntanml dizindir. Bu degi kenin degeri ayrca yakla k yos s s rumlamas (sayfa: 23) tarafndan da kullanlr.

IFS
Alanlar ayrmakta kullanlan karakterlerin listesi; kabuk yorumlarnn paras olarak kabuk szckleri ayrrken kullanr.

MAIL
Bu parametreye bir dosyaismi atanm sa ve MAILPATH degi keni atanmam sa, bir eposta geldiginde s s s Bash epostann belirtilen dosyada olduguna dair kullancy bilgilendirir.

MAILPATH
Kabugun belirli aralklarla yeni postalar kontrol ettigi dosyalarn : i aretleri ile ayrlm listesi. Her liste s s girdisi, posta dosyasna yeni bir posta geldiginde, dosyaisimleri iletilerden bir ? i areti ile ayrlarak bir ileti s s belirtebilir. letinin metni iinde kullanldgnda $_ degi keni o anki posta dosyasnn ismi olarak yorumlanr. I

OPTARG getopts yerle igi tarafndan i lenen son seenek argmannn degeri. s s OPTIND getopts yerle igi tarafndan i lenen son seenek argmannn indisi. s s PATH
Kabugun komutlar aradg dizinlerin : i aretleri ile ayrlm listesi. Sfr uzunluklu (bo ) bir PATH degeri s s s iinde bulunulan dizini ifade eder. Byle bir dizin ismi arada :: biiminde grnecegi gibi ilk veya son : olarak da grnebilir.

PS1
Birincil komut istemi dizgesi. ntanml degeri \s\v\$ dr. PS1 gsterilmeden nce yorumlanan nce steminin Kontrol Edilmesi (sayfa: 78) blmnde bulabilirsiniz. lenmi karakterlerin tam listesini Komut I s

PS2
kincil komut istemi dizgesi. ntanml degeri > dr. I

http://belgeler.org

Linux Kitaplg

59 / 142

GNU Bash Basvuru Klavuzu

2. Bash Degiskenleri
Bu degi kenler Bash tarafndan atanr ve kullanlr, ancak diger kabuklar bu degi kenleri normalde kullanmaz. s s Bash tarafndan kullanlan bir ka degi ken bu klavuzun ba ka blmlerinde anlatlm tr. s denetim yeteneks s s I lerini kontrol eden degi kenleri Is Denetim Degi kenleri (sayfa: 86) blmnde bulabilirsiniz. s s

BASH
Bashin al an kopyasnn al trlmasnda kullanlan tam dosya yollu. s s

BASH_ARGC
Degerleri o anki bash al trma agr ygtnn her erevesindeki parametrelerin says olan bir s dizi degi keni. O anki altyordam parametrelerinin says ygtn tepesinde bulunur. Bir altyordam s al trldgnda aktarlan parametre says BASH_ARGCye stten baslr. Kabuk BASH_ARGCyi s sadece ek hata ayklama kipindeyken etkin klar. (shopt yerle iginin extdebug seeneginin s aklamasna baknz (sayfa: 54).)

BASH_ARGV
O anki bash al trma agr ygtndaki tm parametreleri ieren dizi degi keni. Son altyordamn son s s parametresi ygtn tepesinde bulunur; ilk agrnn ilk parametresi ise en altta bulunur. Bir altyordam al trldgnda parametreleri BASH_ARGVye baslr. Kabuk BASH_ARGVyi sadece ek hata ayklama s s kipindeyken etkin klar. (shopt yerle iginin extdebug seeneginin aklamasna baknz (sayfa: 54).)

BASH_COMMAND
Bir sinyal kapannn sonucu olarak al trlyor olmadka o an al makta olan ya da al maya hazr s s s olan komut.

BASH_ENV
Bash bir kabuk betigini al trmak iin agrldgnda bu degi ken atanm sa, degi kenin degeri betigi s s s s al trmadan nce okunacak ba latma dosyas (sayfa: 69)nn ismi olarak yorumlanr ve kullanlr. s s

BASH_EXECUTION_STRING c agr seenegine belirtilen komut argman. BASH_LINENO yeleri FUNCNAME dizisinin yelerinin kaynak dosyalarda bulundugu satr numaralar olan dizi degi keni. s ${BASH_LINENO[$i]}, ${FUNCNAME[$i]} agrldgnda i levin kaynak dosyasndaki satr nu s marasdr. Kaynak dosyasnn ismi ise ${BASH_SOURCE[$i]}dir. O anki satr numarasn elde etmek iin LINENO degi kenini kullann. s BASH_REMATCH yeleri [[ ko ullu komutuna = iki terimli i leci ile atanan dizi degi keni (bkz, Ko ullu al trma (sayfa: s s s s s
17)). 0 indisli eleman dzenli ifadenin tamam ile e le en dizge parasn ierir. n indisli eleman ise ninci s s parantezli alt ifadeyle e le en dizge parasn ierir. Bu degi ken saltokunurdur. s s s

BASH_SOURCE yeleri FUNCNAME dizisinin yelerinin kaynak dosyalarnn isimleri olan dizi degi keni. s BASH_SUBSHELL
Bir alt kabuk ya da bir alt kabuk ortamnn her atallan nda degeri bir s

BASH_VERSION
Bashin kullanlan kopyasnn srm numaras.

http://belgeler.org

Linux Kitaplg

60 / 142

GNU Bash Basvuru Klavuzu

BASH_VERSINFO
Bashin kullanlan kopyasnn srm bilgilerini saklamakta kullanlan saltokunur bir dizi degi keni (sayfa: s 76). Dizi elemanlarna atanan degerler:

BASH_VERSINFO[0]
Ana srm numaras (dagtm).

BASH_VERSINFO[1]
Alt srm numaras (srm).

BASH_VERSINFO[2]
Yama seviyesi.

BASH_VERSINFO[3]
Derlemenin srm.

BASH_VERSINFO[4]
Dagtmn durumu (rn., beta1).

BASH_VERSINFO[5] MACHTYPE degi keninin degeri. s COLUMNS select yerle igi tarafndan seim listelerini basarken ubirim geni ligini saptamakta kullanlr. Bir s s SIGWINCH sinyali alndgnda otomatik olarak atanr. COMP_WORDBREAKS
Szck tamamlama uygulanrken Readline ktphanesince szck ayrac olarak ele alnacak karakterler. COMP_WORDBREAKS unset ile kaldrldktan sonra hemen sfrlansa bile kendine zel niteliklerini yitirir.

COMP_CWORD
O anki imle konumunu ieren szcgn ${COMP_WORDS} iin bir indis. Bu degi ken sadece program s lanabilir tamamlama (sayfa: 105) aralar tarafndan agrlan kabuk i levlerinde kullanlr. s

COMP_LINE
O anki komut satr. Bu degi ken sadece programlanabilir tamamlama (sayfa: 105) aralar tarafndan s agrlan kabuk i levleri ve disk komutlar iin kullanlr. s

COMP_POINT
O anki komutun ba langcna gre o anki imle konumunun indisi. O andaki imle konumu o anki komutun s sonunda ise degi kenin degeri ${#COMP_LINE}a e ittir. Bu degi ken sadece programlanabilir tamams s s lama (sayfa: 105) aralar tarafndan agrlan kabuk i levleri ve disk komutlar iin kullanlr. s

COMP_WORDS
O andaki komut satrndaki tek tek szcklerin olu turdugu dizi degi keni. Szckler kabuk zmleyis s cisinin ayrmsayabilecegi sekilde kabuk tekarakterleri ile birbirlerinden ayrlrlar. Bu degi ken sadece s programlanabilir tamamlama (sayfa: 105) aralar tarafndan agrlan kabuk i levlerinde kullanlr. s

COMPREPLY
Bashin programlanabilir tamamlama (sayfa: 105) aralar tarafndan agrlan bir kabuk i levi tarafndan s retilen mmkn tamamlamalar okudugu dizi degi keni. s

DIRSTACK http://belgeler.org
Linux Kitaplg 61 / 142

GNU Bash Basvuru Klavuzu

Dizin ygnnn o anki ieriginin bulundugu dizi degi keni. Dizinler ygn iinde, dirs yerle igi s s tarafndan gsterildigi srada bulunur. Bu dizi degi keninin elemanlarna atama yoluyla ygndaki dizin s ler degi tirilebirse de, dizinleri eklemek ve kaldrmak iin pushd ve popd yerle ikleri kullanlmaldr. Bu s s degi kene atama yaplarak o anki dizin degi tirilemez. DIRSTACK kaldrlrsa, hemen ardndan sfrlansa s s bile kendine zg niteliklerini kaybeder.

EMACS
Kabuk t degeriyle ba larken Bash ortamda bu degi keni bulursa kabugun bir emacs kabuk tamponunda s s al tgn varsayar ve satr dzenlemeyi kapatr. s

EUID
O anki kullancnn etkin kullanc kimliginin numaras. Saltokunurdur.

FCEDIT fc yerle ik komutunun e seenegi tarafndan ntanml olarak kullanlan metin dzenleyici. s FIGNORE
Dosyaismi tamamlamas uygulanrken yoksaylacak soneklerin : ayral listesi. Soneki FIGNORE iindeki girdilerden biri ile e le en bir dosya, e le en dosya isimleri listesinden karlr. Bir rnek deger: .o:. s s s s

FUNCNAME
O an al an kabuk i levinin ismi. O anki al trma agr ygtndaki tm kabuk i levlerinin isimlerini s s s s ieren bir dizi degi keni. 0 indisli eleman o an al makta olan kabuk i levinin ismidir. En alttaki eleman s s s ise "main" i levidir. Bu degi ken sadece bir kabuk i levi al rken vardr. FUNCNAMEe yaplan deger s s s s atamalar etkisizdir ve bir hata durumu dner. FUNCNAME, unset komutu ile kaldrlrsa, ardndan tekrar atansa bile, sahip oldugu zel nitelikleri kaybeder.

GLOBIGNORE
Dosyaismi yorumlamas tarafndan yoksaylan dosyaisimleri kmesini tanmlayan kalplarn : ayral listesi. Bir dosya ismi, hem bir dosyaismi yorumlama kalb ile hem de GLOBIGNORE iindeki kalplardan biri ile e le iyorsa, e le enler listesinden kaldrlr. s s s s

GROUPS
O anki kullancnn yesi oldugu gruplarn listesini tutan bir dizi degi keni. Degi kene yaplan atamalar s s etkisizdir ve bir hata durumu dner. GROUPS, unset komutu ile kaldrlrsa, ardndan tekrar atansa bile, sahip oldugu zel nitelikleri kaybeder.

histchars
Gemi yorumlamas (sayfa: 113), hzl ikame ve sembolle tirmeyi kontrol eden en ok karakter. lk s s I karakter gemi yorumlamasnn ba latlmasn saglayan gemi yorumlama karakteridir ve normalde ! s s s i aretidir. kinci karakter, bir satrdaki ilk karakter oldugunda hzl ikameyi imleyen karakterdir ve normalde s I i aretidir. stemlik olan nc karakter ise, bir szcgn ilk karakteri olarak bulundugunda satrn s I kalannn aklama olmasn saglayan karakterdir ve normalde # i aretidir. Kabuk zmleyicisinin satrn s kalann bir aklama saymas iin bu karakterin burada atanmas gerekli degildir.

HISTCMD
O anki komutun gemi numaras ya da gemi listesindeki indisi. HISTCMD, unset komutu ile s s kaldrlrsa, ardndan tekrar atansa bile, sahip oldugu zel nitelikleri kaybeder.

HISTCONTROL

http://belgeler.org

Linux Kitaplg

62 / 142

GNU Bash Basvuru Klavuzu

Gemi listesinde kaytl ka komutun oldugunu denetleyen degerlerin : ayral listesi. Eger deger liss tesi ignorespace ieriyorsa bir bo luk karakteri ile ba layan satrlar gemi listesine kaydedilmez. Bir s s s ignoredups degeri varsa nceki gemi girdisi ile ayn olan satrlar kaydedilmez. Bir ignoreboth s degeri ignorespace ve ignoredups iin ksaltmadr. Bir erasedups degeri o anki satrla ayn olan tm nceki satrlar satr kaydedilmeden nce gemi listesinden silinmesine sebep olur. Buraya kadar s bahsedilenler d nda bir deger yoksaylr. HISTCONTROL egi keni unset ile ortamdan kaldrlrsa ya s s da geerli bir deger iermiyorsa kabuk zmleyici tarafndan okunan HISTIGNORE degerine konu tm satrlar gemi listesine kaydedilir. Bir oksatrl birle ik komutun ikinci ve sonraki satrlar denetlenmez s s ve HISTCONTROL degi keninin degerine baklmakszn gemi e eklenir. Degi ken kaldrlrsa ya da bu s s s nden farkl bir deger atanrsa btn satrlar gemi listesine eklenir. s

HISTFILE
Komut gemi inin kaydedildigi dosyann ismi. ntanml degeri /.bash_historydir. s

HISTFILESIZE
Gemi dosyasndaki satrlarn azami says. Bu degi kene bir deger atandgnda gemi dosyasnda s s s bu degerden fazla satrlar varsa silinir. Etkile imli bir kabuk karken kabugun gemi listesi dosyaya s s yazldktan sonra bu degerden fazla olan satrlar silinir. ntanml degeri 500dr.

HISTIGNORE
Gemi listesine hangi satrlarn kaydedilmesi gerektigine karar vermek iin kullanlan kalplarn : ayral s listesi. Her kalp bu listenin ba na yerle tirilir ve kalp satrn tamam ile uyumlu olmaldr. Her kalp, s s HISTIGNORE tarafndan belirtilen denetimler uygulandktan sonra satrda test edilir. Normal kabuk kalp e le tirme karakterine ek olarak & nceki gemi satrn ifade eder. & bir tersbl ile ncelenebilir; bir s s s e le tirme ncesi bu tersbl kaldrlr. Bir oksatrl birle ik komutun ikinci ve sonraki satrlar denetlens s s mez ve HISTIGNORE degi keninin degerine baklmakszn gemi e eklenir. s s

HISTIGNORE, HISTCONTROLn i levselligini de altnda toplar. Bir & kalb ignoredupsa s e degerken, bir [ ]* kalb ignorespacee e degerdir. Bu iki kalp bir : ile birle tirilerek s s s ignorebothun i levselligi de saglanr. s HISTSIZE
Gemi listesinde hatrlanan komutlarn azami says. ntanml degeri 500dr. s

HISTTIMEFORMAT
Bu degi ken ortamda mevcutsa ve bo degerli degilse degeri history yerle igi tarafndan gsterilen s s s her gemi girdisi ile ili kili zaman damgasn basacak strftime iin bir biim dizgesi olarak kullanlr. s s Bu degi ken tanmlysa zaman damgalar gemi dosyasna yazlr bylece kabuk oturumlarna kar s s s korunabilirler.

HOSTFILE
Kabuk bir konak isminin tamamlamaya al tgnda okumas gereken /etc/hosts ile ayn biemdeki s bir dosyann ismini ierir. Olas konak ismi tamamlamalar kabuk al rken degi ebilir; deger degi tikten s s s sonra yaplan bir ba ka konak ismi tamamlamasnda, Bash yeni dosyann ierigini mevcut listeye ekler. s HOSTFILE deger verilmeden atanm sa, Bash olas konak ismi tamamlamalarnn listesini /etc/hosts s dosyasndan okumaya al r. HOSTFILE kaldrlrsa konak ismi listesi temizlenir. s

HOSTNAME
O anki konak ismi.

HOSTTYPE
Bashin zerinde al tg makinay tanmlayan bir dizge. s

http://belgeler.org

Linux Kitaplg

63 / 142

GNU Bash Basvuru Klavuzu

IGNOREEOF
Tek girdi olarak EOF karakteri alndgnda kabugun eylemini kontrol eder. Atandgnda degeri, kabuk kmadan nce bir girdi satrndaki ilk karakter olarak okunabilen ard k EOF karakterlerinin saysn s gsterir. Degi ken bir saysal olmayan degere sahipse ya da bo sa ntanml deger 10 dur. Eger degi ken s s s mevcut degilse, EOF kabukta girdi sonunu belirtir. Bu sadece etkile imli kabuklarda etkilidir. s

INPUTRC
Readline ilklendirme dosyasnn ismi. Dosyann ntanml degeri, /.inputrcdir.

LANG LC_ ile ba layan bir degi kenle zellikle seilmemi bir bir kategori iin yerel kategoriyi saptamakta kuls s s
lanlr.

LC_ALL
Bu degi ken bir yerel kategori belirten LC_ ile ba layan degi kenler ile LANG degi keninin degeri yerine s s s s kendi degerini geerli yapar.

LC_COLLATE
Bu degi ken dosyaismi yorumlamasnn sonularn sralamada, aralk ifadelerinin davran larn saptas s mada, denklik snarnda, dosyaismi yorumlamas (sayfa: 27) ve kalp e le tirme iindeki alfabetik dizils s imlerde harf sralamasn saptamakta kullanlr.

LC_CTYPE
Bu degi ken dosyaismi yorumlamas (sayfa: 27) ve kalp e le tirme iindeki karakter snarnn s s s davran n ve karakterlerin yorumlanmasn belirler. s

LC_MESSAGES
Bu degi ken $ ile ncelenmi ift trnak iindeki dizgelerin evirilerinin kullanldg yereli belirler s s (Yerele zel eviri (sayfa: 14) blmne baknz).

LC_NUMERIC
Bu degi ken numara biemlemesi iin kullanlan yerel kategoriyi belirler. s

LINENO
O an al makta olan kabuk i levi ya da betik iindeki satrn numarasdr. s s

LINES select yerle igi tarafndan seim listelerini basarken stun uzunlugunu saptamakta kullanlr. Bir s SIGWINCH sinyali alndgnda otomatik olarak atanr. MACHTYPE
Bashin zerinde al tg sistem trn aklayan standart GNU i lemcirmasistem bieminde bir s s dizgedir.

MAILCHECK
Kabugun posta iin MAILPATH veya MAIL degi kenlerinde belirtilen dosyalar ne sklkta (saniye cinsin s den) kontrol edecegini belirler. ntanml 60 saniyedir. Postann kontrol zaman geldiginde kabuk komut istemini gstermeden nce bunu yapar. Bu degi ken kaldrlrsa ya da degeri sfrdan byk ya da e it s s olmayan bir say olarak atanrsa kabuk posta denetimini iptal eder.

OLDPWD cd yerle igi tarafndan atanan nceki dizin. s http://belgeler.org


Linux Kitaplg 64 / 142

GNU Bash Basvuru Klavuzu

OPTERR
1 degeri atandgnda Bash, getopts yerle ik komutu tarafndan retilen hata iletilerini gsterir. s

OSTYPE
Bashin zerinde al tg i letim sistemini aklayan bir dizge. s s

PIPESTATUS
nalan boruhattnda ensonal an srelerin k durumu degerlerinin bir listesini ieren bir s s dizi degi keni (sayfa: 76). s

POSIXLY_CORRECT
Bash ba latlrken bu degi ken ortamda ise, ba latma dosyalarn okumadan nce, posix agr s s s s seenegi verilmi esine, kabuk POSIX kipine (sayfa: 80) girer. Eger kabuk al rken atanrsa, s
set o posix

komutu al trlm asna POSIX kipi etkinle tirilir. s s s

PPID
Kabugu agran kabugun sre kimligi. Bu saltokunur bir degi kendir. s

PROMPT_COMMAND
Atanm sa, degeri her birincil komut isteminden ($PS1) nce al trlacak komut olarak yorumlanr. Daha s s steminin Kontrol Edilmesi (sayfa: 78) blmne baknz. ayrntl bilgi iin Komut I

PS3
Bu degi kenin degeri select komutu iin istem olarak kullanlr. Bu degi ken atanmam sa, select s s s komutu #? ile istemde bulunur.

PS4
Degi kenin degeri, set yerle iginin (sayfa: 49) x seenegi ile etkinle tirilen yanslamal komut satrndan s s s nce baslan istemdir. PS4n ilk karakteri, adreslemenin oklu seviyelerini belirtecek sekilde gerektike defalarca kopyalanr. ntanml degeri + tur.

PWD cd yerle igi ile geilen dizin. s RANDOM


Bu parametre her zaman 0 ile 32767 arasnda retilmi bir rasgele tamsaydr. Bu degi kene bir deger s s atanmas rasgele say retecini tohumlar (4).

REPLY read yerle igi iin ntanml degi ken. s s SECONDS


Bu degi ken kabuk ba latldgndan beri ka saniye getigini gsterir. Bu degi kene bir deger atanmas s s s sayac bu degere ayarlar ve yorumlanan deger, atanan deger art atamadan itibaren geen saniyelerdir.

SHELL
Kabuga tam dosya yolu bu ortam degi keninde tutulur. Kabuk ba latldgnda bu degi ken tanml degilse s s s Bash deger olarak o anki kullancnn giri kabugunun tam dosyayolunu atar. s

SHELLOPTS http://belgeler.org
Linux Kitaplg 65 / 142

GNU Bash Basvuru Klavuzu

Etkin kabuk seeneklerinin : ayral listesidir. Listedeki her szck set yerle iginin (sayfa: 49) o s seeneginin geerli bir argmandr. SHELLOPTS iinde grnen seenekler set o komutunun ktsnda on olarak raporlanr. Bash ba latldgnda, bu degi ken ortamda ise listedeki her kabuk seenegi s s ba latma dosyalar okunmadan nce ekinle tirilir. Bu saltokunur bir degi kendir. s s s

SHLVL
Bashin her yeni kopyas ba latldgnda degeri 1 artar. Bu deger, Bash kabuklarnzn ne kadar derinlikte s i ie oldugunu gsteren bir saya olarak d nlm tr. s s

TIMEFORMAT
Bu parametrenin degeri time anahtar szcg ile ba layan boruhatlar iin zamanlama bigisinin nasl s belirtilecegini gsteren bir biem dizgesi olarak kullanlr. % karakteri bir zaman degeri veya ba ka bir bilgi s olarak yorumlanan bir nceleme dizgesi girer. nceleme dizgelerinin anlamlar a agda aklanm tr; s s k eli parantezler istemlik ksmlar gsterir. s

%% % sabiti. %[p][l]R
Saniye cinsinden geen zaman.

%[p][l]U
Kullanc kipinde harcanan saniye cinsinden i lemci zaman. s

%[p][l]S
Sistem kipinde harcanan saniye cinsinden i lemci zaman. s

%P (%U + %S) / %R olarak hesaplanan i lemci yzdesi. s


stemlik bir p ondalk hanelerin saysn belirten bir rakamdr. 0 degeri ile bir ondalk nokta gsterilmez I ya da kt bir kesir olur. Ondalk noktadan itibaren en ok hane belirtilebilir. ten byk degerler olarak degi tirilir. p belirtilmezse 3 degeri kullanlr. s stemlik l dakikalar da iererek daha uzun biemde, ddmss.kk biiminde gsterir. pnin degeri kesir (kk) I ksmnn olup olmayacagn belirler. Bu degi ken atanmam sa, Bash a agdaki degerin varlgn kabul eder. s s s $\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS Deger bo sa, zamanlama bilgisi gsterilmez. Biem dizgesi gsterilirken sonuna bir satrsonu eklenir. s

TMOUT
Sfrdan byk bir deger atanm sa TMOUT, read yerle igi iin ntanml zamana m olarak ele alnr. s s s Girdi bir ubirimden beklendiginde TMOUT saniye sonra girdi hala grnmemi se select (sayfa: 18) s komutu sonlanr. Kabuk etkile imliyse, atanan deger birincil komut istemi gsterildikten sonra girdi iin beklenecek saniye s says olarak yorumlanr. Belirtilen sre bitimine dek bir girdi olmazsa Bash sonlanr.

TMPDIR
Tanmlysa degeri Bash tarafndan kabugun kullanm iin Bashin olu turdugu geici dosyalar ierecek s dizinin ismi olarak kullanlr.

UID
O anki kullancnn saysal gerek kullanc kimligi. Bu saltokunur bir degi kendir. s

http://belgeler.org

Linux Kitaplg

66 / 142

GNU Bash Basvuru Klavuzu

VI. Bashin zellikleri


indekiler I
1. Bashin agrlmas . . . . . . . . 2. Bash Baslatma Dosyalar . . . . 3. Etkilesimli Kabuklar . . . . . . . 3.1. Etkile imli Kabuk Nedir? . . s 3.2. Bu Kabuk Etkile imli mi? . . s 3.3. Etkile imli Kabuk Davran . s s fadeleri . . . . . . 4. Bash Kosullu I 5. Kabuk Aritmetigi . . . . . . . . . 6. Takma Adlar . . . . . . . . . . . . 7. Diziler . . . . . . . . . . . . . . . 8. Dizin Ygn Yerlesikleri . . . . . . 8.1. Dirs Yerle igi . . . . . . . . s 8.2. Popd Yerle igi . . . . . . . . s 8.3. Pushd Yerle igi . . . . . . . s 9. Komut Isteminin Kontrol Edilmesi 10. Snrl Kabuk . . . . . . . . . . . 11. Bash POSIX Kipi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 69 70 70 70 71 72 74 75 76 77 77 77 78 78 80 80

Bu oylumda sadece Bashde bulunan zellikler aklanm tr. s

1. Bashin agrlmas
bash [uzunsn] [ir] [abefhkmnptuvxdBCDHP] [o sn] [O shopt_sn] [argman ...] bash [uzunsn] [abefhkmnptuvxdBCDHP] [o sn] [O shopt_sn] c dizge [argman ...] bash [uzunsn] s [abefhkmnptuvxdBCDHP] [o sn] [O shopt_sn] [argman ...]

Tek karakterlik kabuk komut satr seenekleri (sayfa: 49) yannda kullanabileceginiz ok karakterli seenekler de vardr.Bu seenekler tannabilmeleri iin komut satrnda tek karakterli seeneklerden nce verilmelidir.

debugger
Kabuk ba latlmadan nce al trlacak hata ayklama proli iin dzenleme yapar. Ek hata ayklama kipini s s (sayfa: 54) ve kabuk i levi izlemeyi (sayfa: 50) etkinle tirir. s s

dumppostrings $ ile ncelenmi tm ift trnakl dizgelerin bir listesi GNU gettext PO (portable object uyarlanabilir s s nesne) dosya bieminde standart ktya baslr. kt biemi d nda D seenegine e degerdir. s dumpstrings D seenegine e degerdir. s help
Standart ktda bir kullanm iletisi gsterir ve ba aryla kar. s

initfile dosyaismi rcfile dosyaismi


Bir etkile imli kabukta dosyaismi dosyasndaki komutlar al trr (/.bashrc yerine). s s

login http://belgeler.org
Linux Kitaplg 67 / 142

GNU Bash Basvuru Klavuzu

l seenegine e degerdir. s noediting


Kabuk etkile imliyken komut satrlarn okuyacak GNU Readline ktphanesi kullanlmaz (Kos mut Satrnn Dzenlenmesi (sayfa: 87) blmne baknz).

noprofile
Bash bir giri kabugu olarak agrldgnda sistem apnda ba latma dosyas olan /etc/profile veya s s /.bash_profile, /.bash_login ve /.profile ki isel ilklendirme dosyalarndan herhangi s birini yklemez.

norc
Bir etkile imli kabukta /.bashrc ilklendirme dosyasn okumaz. Kabuk sh olarak agrlm sa bu s s seenek ntanml olarak etkindir.

posix
ntanml i lemin POSIX standardndan farkl oldugu yerde standarda uyum iin Bashin davran n s s degi tirir. Bash POSIX kipinin aklamas iin Bash POSIX Kipi (sayfa: 80) blmne baknz. s

restricted
Kabugu bir snrl kabuk (sayfa: 80) yapar.

verbose v seenegine e degerdir. Kabuk girdi satrlarn okundugu gibi basar. s version
Bashin bu kopyas iin srm bilgilerini gsterir ve kar.

set yerle igi ile kullanlamayan, agr srasnda verilebilen tek karakterlik seenekler de vardr. s c dizge
Seenekleri i ledikten sonra dizgeden komutlar okuyup al trr ve kar. Kalan argmanlar $0 ile s s ba layan konumsal parametrelere atanr. s

i
Kabuk etkile imli al maya zorlanr. Etkile imli kabuklar Etkile imli Kabuklar (sayfa: 70) blmnde s s s s aklanm tr. s

l
Bu kabugu login tarafndan dogrudan agrlm asna etkin yapar. Kabuk etkile imli ise bu, exec s s l bash komutu ile bir giri kabugu ba latmakla e degerdir. Kabuk etkile imsiz ise, giri kabugu s s s s s ba latma dosyalar al trlacaktr. exec bash login komutu o anki kabugu bir Bash giri kabugu s s s ile degi tirecektir. Bir giri kabugunun zel davran larnn aklamalar iin Bash Ba latma Dosyalar s s s s (sayfa: 69) blmne baknz.

r
Kabugu snrl kabuk (sayfa: 80) yapar.

s
Bu seenek verilmi se veya seenek i lemlerinden geriye argman kalmyorsa, komutlar standart girdiden s s okunur. Bu seenek bir etkile imli kabuk agrlrken konumsal parametrelerin atanmasna izin verir. s

D $ ile ncelenmi ift trnak iine alnm btn dizgelerin bir listesi standart ktya baslr. Bunlar yerel C ya s s
da POSIX degilken yerel dile eviriye konu dizgelerdir (Yerele zel eviri (sayfa: 14) blmne baknz). Bu seenek hibir komutun al trlmamasna sebep olan n seenegini uygular. s

http://belgeler.org

Linux Kitaplg

68 / 142

GNU Bash Basvuru Klavuzu

[+]O [shopt_seene i] g shopt_seene i, shopt (sayfa: 52) yerle igi tarafndan kabul edilen kabuk seeneklerinden biridir. g s shopt_seene i verilmi se, O seenegi etkinle tirir; +O ise seenegi kaldrr. shopt_seene i verg s s g ilmezse shopt tarafndan kabul edilen kabuk seeneklerinin isimleri ve degerlerinin tm standart ktya baslr. agr seenegi +O ise kt, girdi olarak yeniden kullanlabilmesini saglayacak biemde baslr. seeneklerin sonunu gsterir ve bundan sonra verilen seenekler yoksaylr. den sonraki argmanlar ise dosyaisimleri ve argmanlar olarak ele alnr. Bir giri kabugu, sfrnc argmannn ilk karakteri olan veya login seenegi ile agrlan bir kabuktur. s Bir etkile imli kabuk c seenegi belirtilmeksizin, s verilmedike seenek olmayan argmanlar olmakszn s ba latlan ve hem girdisi hem de kts ubirimlere bagl olan (isatty(3) ile saptanr) veya i seenegi ile s ba latlan bir kabuktur. Daha fazla bilgi iin Etkile imli Kabuklar (sayfa: 70) blmne baknz. s s Seeneklerin i lenmesinden sonra argmanlar kalyorsa ve ne c ne de s seenekleri verilmi se, ilk argman s s kabuk komutlarn ieren bir dosya ismi olarak kabul edilir (Kabuk Betikleri (sayfa: 35) blmne baknz). Bu durumda, $0 dosyann ismi ve kalan argmanlar da konumsal parametreleridir. Bash komutlar bu dosyadan okur, al trr ve kar. Bashin k durumu betikte son al trlan komutun k durumudur. Hibir komut s s s s al trlmam sa k durumu sfrdr. s s s

2. Bash Baslatma Dosyalar


Bu blmde Bashin kendi ba latma dosyalarn nasl al trdg aklanm tr. Herhangi bir dosya varsa ama s s s okunamyorsa Bash bir hata raporlar. Yakla k karakterleri dosya isimlerinde Yakla k () Yorumlamas (sayfa: s s 23) blmnde aklandg gibi yorumlanr. Etkile imli kabuklar Etkile imli Kabuklar (sayfa: 70) blmnde aklanm tr. s s s Bir etkilesimli giris kabugu olarak veya login seenegi ile agrldgnda Bash bir etkile imli giri kabugu olarak veya login seenegi ile bir etkile imsiz kabuk olarak s s s agrldgnda, /etc/profile dosyas varsa dosyay okur ve komutlarn al trr. Bu dosya okunduktan s sonra srayla /.bash_profile, /.bash_login, ve /.profile dosyalarnn varlgna bakar, var ve okunabilir olanlarn okur ve komutlarn al trr. noprofile seenegi ile ba latarak Bashin s s bu davran engellenebilir. s Bir giri kabugu karken, /.bash_logout dosyasna bakar, varsa ve okunabilirse dosyay okur ve s komutlarn al trr. s Etkilesimli ancak giris kabugu olmayan bir kabuk olarak agrldgnda Giri kabugu olmayan bir etkile imli kabuk ba latldgnda Bash, varsa /.bashrc dosyasn okur ve s s s komutlarn al trr. Bu i lem norc seenegi ile engellenebilir. rcfile dosyaismi seenegi ile s s /.bashrc dosyas yerine dosyaismi dosyasnn okunmas ve komutlarnn al trlmas saglanabilir. s yleyse, her giri e zel ilklendirme sonras (ya da ncesi) iin s
if [ f /.bashrc ]; then . /.bashrc; fi

satr /.bash_profile dosyanzda bulunmaldr. Etkilesimsiz olarak agrldgnda Bash, rnegin bir betigi al trmak iin etkile imsiz olarak ba latldgnda, ortamdaki BASH_ENV s s s degi kenine bakar, varsa degerini okunup al trlacak bir dosya ismi olarak yorumlar. Bash burada, s s
if [ n "$BASH_ENV" ]; then . "$BASH_ENV"; fi

http://belgeler.org

Linux Kitaplg

69 / 142

GNU Bash Basvuru Klavuzu

satr al trlm gibi davranr, ancak PATH degi keninin degeri dosyay aramak iin kullanlmaz. s s s Yukarda da bahsedildigi gibi, login seenegi ile ba latlan bir etkile imsiz kabuk, komutlar giri s s s kabugunun ba latma dosyalarndan okuyup al trmaya ugra r. s s s

sh ismiyle agrldgnda Bash, sh ismiyle agrlrsa, shn tarihsel srmlerinin ba latma davran larn POSIX standardna da s s
uydurmaya al arak mmkn oldugunca taklit etmeyi dener. s Bir etkile imli giri kabugu olarak veya login seenegi ile bir etkile imsiz kabuk olarak s s s agrldgnda, komutlar nce /etc/profile dosyasndan okumay ve al trmay dener ve srasyla s /.bash_profile, /.bash_login, ve /.profile dosyalarnn varlgna bakar, var ve okun abilir olanlarn okur ve komutlarn al trr. noprofile seenegi ile ba latarak bu davran engels s s lenebilir. Bir etkile imli kabuk olarak sh ismiyle agrldgnda Bash, ortamdaki ENV degi kenine bakar, s s varsa degerini okunup al trlacak bir dosya ismi olarak yorumlar. s

sh olarak agrlan bir kabuk ba ka bir ba latma dosyasn okuyup komutlarn al trmay denemez, zaten s s s rcfile seeneginin de bir etkisi yoktur. sh olarak agrldgnda, Bash ba lang dosyalarn okuduktan sonra POSIX kipine girer. s
POSIX kipinde agrldgnda Bash posix komut satr seenegi ile POSIX kipinde ba latldgnda, ba lang dosyalar iin POSIX s s standardn izler. Bu kipte etkile imli kabuklar ENV degi kenini yorumlayarak bir dosya ismi elde eder ve s s komutlar bu dosyadan okuyup al trr. Bundan ba ka ba latma dosyasna baklmaz. s s s Uzaktan erisilebilir kabuk sreci olarak agrldgnda Bash rshd gibi bir uzak kabuk sreci tarafndan m al trlmak istendigini saptamaya al r. Bash, s s rshd tarafndan al trlmak istendigini saptadgnda, komutlar /.bashrc dosyas var ve okuns abilirse oradan okuyup al trr. sh olarak agrldgnda bunu yapmaz. norc seenegi bu davran s s s s engellemekte kullanlabilir ve rcfile seenegi ile ba ka bir dosyadan komutlarn okunup al trlmas saglanabilir, ancak rshd genellikle kabugu bu seeneklerle agrmaz. Farkl Etkin ve Gerek UID/GID ile agrldgnda Bash ba latldgnda etkin kullanc (grup) kimligi ile gerek kullanc (grup) kimligi ayn degilse, hibir s ba latma dosyas okunmaz, kabuk i levleri ortamdan miras alnmaz, ortamda grnse bile SHELLOPTS s s degi keni yoksaylr ve etkin kullanc kimligine gerek kullanc kimligi atanr. agr srasnda p seenegi s verilmi se etkin kullanc kimliginin gerek kullanc kimligine ayarlanmas d nda ba latma davran s s s s ayndr.

3. Etkilesimli Kabuklar
3.1. Etkilesimli Kabuk Nedir?
Bir etkile imli kabuk c seenegi belirtilmeksizin, s verilmedike seenek olmayan argmanlar olmakszn s ba latlan ve hem girdisi hem de hata kts ubirimlere bagl olan (isatty(3) ile saptanr) veya i seenegi s ile ba latlan bir kabuktur. s Bir etkile imli kabuk genellikle kulancnn ubirimini okur ve oraya yazar. s Bir etkile imli kabuk ba latlrken, konumsal parametrelerin atanmas s agr seenegi kullanlarak saglanabilir. s s

3.2. Bu Kabuk Etkilesimli mi?


http://belgeler.org
Linux Kitaplg 70 / 142

GNU Bash Basvuru Klavuzu

Bashin etkile imli olup olmadgn bir ba latma betigi iinde saptamak iin zel parametresinin degerine s s baklr. $ i harni ieriyorsa kabuk etkile imlidir. rnegin: s
case "$" in *i*) echo Bu kabuk etkileimli ;; s *) echo Bu kabuk etkileimli deil ;; s g esac

Ayrca, ba latma betiklerinde PS1 degi keninin varlgna bakarak da bu saptama yaplabilir. PS1 atanmam sa s s s kabuk etkile imsizdir, atanm sa etkile imlidir. rnek: s s s
if [ z "$PS1" ]; then echo Bu kabuk etkileimli deil s g else echo Bu kabuk etkileimli s fi

3.3. Etkilesimli Kabuk Davrans


Bir kabuk etkile imli al yorsa davran n bir ka yolla degi tirir. s s s s 1. Ba latma dosyalar Bash Ba latma Dosyalar (sayfa: 69) blmnde aklandg gibi okunur ve al trlr. s s s 2. Is denetimi (sayfa: 83) ntanml olarak etkinle tirilir. s denetimi etkin oldugunda, Bash klavyeden retilen s I

SIGTTIN, SIGTTOU ve SIGTSTP sinyallerini yoksayar.


3. Bash bir komutun ilk satrn okumadan nce PS1 degi kenini yorumlar ve gsterir. ok satrl komutlarda, s ikinci ve mteakip satrlar okumadan nce PS2 degi kenini yorumlar ve gsterir. s 4. Bash birincil komut istemi $PS1 (sayfa: 59)i gstermeden nce PROMPT_COMMAND (sayfa: 65) degi kenini bir komut olarak yorumlar ve al trr. s s 5. Kullancnn ubiriminde komutlar okumak iin Readline (sayfa: 87) kullanlr. 6. Bash bir komutu okurken standart girdisinden bir EOF aldgnda, kmak yerine set (sayfa: 49) yerle iginin s o seenegi ile etkinle tirilen ignoreeof seeneginin degerine bakar. s 7. Komut gemi i (sayfa: 111) ve gemi yorumlamas (sayfa: 113) ntanml olarak etkindir. Bir etkile imli s s s kabuk karken, Bash komut gemi ini $HISTFILE degi kenindeki dosyaya kaydeder. s s 8. Takma ad yorumlamas (sayfa: 75) ntanml olarak uygulanr. 9. Bir sinyal kapannn (sayfa: 35) yoklugunda, Bash SIGTERM sinyalini yoksayar. 10. Bir sinyal kapannn (sayfa: 35) yoklugunda SIGINT yakalanr ve geregi yaplr. SIGINT baz kabuk yerle iklerine kesme uygular (sayfa: 142). s 11. hupoxexit kabuk seenegi etkinse, bir etkile imli kabuk karken tm i lere bir SIGHUP sinyali gn s s derir (sayfa: 35). 12. n agr seenegi yoksaylr yani set

n (sayfa: 49) etkisizdir.

13. Bash postay MAIL, MAILPATH (sayfa: 59) ve MAILCHECK (sayfa: 64) degi kenlerinin degerlerine bagl s olarak belli aralklarla kontrol eder. 14. set u (sayfa: 49) etkinle tirildikten sonra atanmam kabuk degi kenlerinden dolay olu an yorumlama s s s s hatalar kabugun kmasna sebep olmaz. 15. ${parametre:?szck} (sayfa: 24) yorumlamas iindeki parametrenin atanmam ya da bo ols s masndan dolay olu an yorumlama hatalarnda kabuk kmayacaktr. s 16. Kabuk degi kenleri tarafndan saptanan ynlendirme (sayfa: 29) hatalar kabugun kmasna sebep olmaz. s 17. POSIX kipinde (sayfa: 80) al rken bir zel yerle igin (sayfa: 58) bir hata durumu dndrmesi kabugun s s kmasna sebep olmayacaktr. 18. Bir ba arsz exec (sayfa: 39) kabugun kmasna sebep olmayacaktr. s

http://belgeler.org

Linux Kitaplg

71 / 142

GNU Bash Basvuru Klavuzu

19. zmleyici szdizimi hatalar kabugun kmasna sebep olmayacaktr. 20. cd yerle igine verilen dizinler iin basit yazm dzeltmeleri (sayfa: 53) ntanml olarak etkindir. s 21. Kabuk $PS1 komut istemini bastktan sonra TMOUT (sayfa: 66) degi kenin degerinde belirtilen sre kadar s komut bekler, bu sre sonunda bir komut okunmam sa kar. s

4. Bash Kosullu fadeleri I


Ko ulu ifadeler [[ birle ik deyimi (sayfa: 18) ile test ve [ yerle ikleri (sayfa: 41) tarafndan kullanlr. s s s fadeler tek terimli ya da iki terimli olabilir. Tek terimli ifadeler ogunlukla bir dosyann durumunu saptamakta I kullanlr. Dizge i leleri ve saysal kar la trma i leleri de vardr. Dosya argman ilklerden birine /dev/fd/N s s s s bieminde verilmi se N dosya tantcs kontrol edilir, /dev/stdin, /dev/stdout veya /dev/stderr s olarak verilmi se dosya tantc olarak srayla 0, 1, 2 kontrol edilir. s Aksi belirtilmedike, dosyalar zerinde i lem yapan ilkler sembolik baglar izler ve bagn kendisinde degil hede s zerinde i lem yapar. s

a dosya

dosya varsa dogrudur.


b dosya

dosya varsa ve bloka zelse dogrudur.


c dosya

dosya varsa ve karaktere zelse dogrudur.


d dosya

dosya varsa ve bir dizinse dogrudur..


e dosya

dosya varsa dogrudur.


f dosya

dosya varsa ve normal bir dosyaysa dogrudur.


g dosya

dosya varsa ve grup kimligi biti 1 ise dogrudur.


h dosya

dosya varsa ve bir sembolik bag ise dogrudur.


k dosya

dosya varsa ve yap kan biti 1 ise dogrudur. s


p dosya

dosya varsa ve bir isimli boruhatt (FIFO) ise dogrudur.


r dosya

dosya varsa ve okunabilir ise dogrudur.


s dosya

dosya varsa ve uzunlugu sfrdan bykse dogrudur.


t fd

fd dosya tantcs ak ve bir ubirime kar lksa dogrudur. s


http://belgeler.org
Linux Kitaplg 72 / 142

GNU Bash Basvuru Klavuzu

u dosya

dosya varsa ve kullanc kimligi biti 1 ise dogrudur.


w dosya

dosya varsa ve yazlabilir ise dogrudur.


x dosya

dosya varsa ve al trlabilir ise dogrudur. s


O dosya

dosya varsa ve sahibi etkin kullanc kimlik ise dogrudur.


G dosya

dosya varsa ve sahibi etkin grup kimlik ise dogrudur.


L dosya

dosya varsa ve bir sembolik bag ise dogrudur.


S dosya

dosya varsa ve bir soket ise dogrudur.


N dosya

dosya varsa ve son okundugundan beri degi tirilmi se dogrudur. s s dosya1 nt dosya2 dosya1, dosya2 den degi iklik tarihine gre daha yeni ise ya da dosya1 mevcutken dosya2 yoksa s
dogrudur.

dosya1 ot dosya2 dosya1, dosya2 den daha eski ise ya da dosya2 mevcutken dosya1 yoksa dogrudur. dosya1 ef dosya2 dosya1 ile dosya2 ayn aygt ve ayn dosya dgmn gsteriyorsa dogrudur.
o snismi
Kabuk seenegi (sayfa: 49) snismi etkinse dogrudur.

z dizge

dizge uzunlugu sfrsa dogrudur.


n dizge

dizge dizge sfrdan farklysa dogrudur. dizge1 == dizge2 dizgeler e itse dogrudur. Kat POSIX uyumlulugu iin == yerine = kullanlabilir. s dizge1 != dizge2 dizgeler ayn degilse dogrudur. dizge1 < dizge2 dizge1 yerele gre sralamada dizge2 den nceyse dogrudur. dizge1 > dizge2 dizge1 yerele gre sralamada dizge2 den sonraysa dogrudur. arg1 eq arg2
http://belgeler.org
Linux Kitaplg 73 / 142

GNU Bash Basvuru Klavuzu

arg1 ile arg2 e itse dogrudur. Argmanlar tamsay olmaldr. s arg1 ne arg2 arg1 ile arg2 farklysa dogrudur. Argmanlar tamsay olmaldr. arg1 lt arg2 arg1, arg2 den kkse dogrudur. Argmanlar tamsay olmaldr. arg1 le arg2 arg1, arg2 den kk ya da ona e itse dogrudur. Argmanlar tamsay olmaldr. s arg1 gt arg2 arg1, arg2 den bykse dogrudur. Argmanlar tamsay olmaldr. arg1 ge arg2 arg1, arg2 den byk ya da ona e itse dogrudur. Argmanlar tamsay olmaldr. s

5. Kabuk Aritmetigi
Kabuk, kabuk yorumlarndan biri olarak (sayfa: 22) veya let (sayfa: 47) yerle iginde ve declare yerle iginin s s i seenegiyle aritmetik ifadelerin degerlendirilmesini mmkn klar. Degerlendirme sabit geni likli tamsaylarla, ta ma denetimi uygulanmakszn yaplr, sfrla blme bir hata olarak s s bayraklanr ve onun iin bir sinyal kapan vardr. sleler iin ncelikler ve agr msallk ve degerler C dilindeki I s ile ayndr. A agdaki i lelerin listesi e it ncelikli i le dzeylerine gre beklenmi tir. s s s s s

id++ id
degi ken sonarttrma ve soneksiltme s

++id id
degi ken narttrma ve neksiltme s

+
tek terimli eksi ve art

!
mantksal ve bitdzeyi ztlk

**
stel

* / %
arpma, blme, kalan

+
toplama, kartma

<< >>
sol ve sag bitdzeyi kaydrmalar

<= >= < >


kar la trma s s

== !=
e itlik ve farkllk s

& http://belgeler.org
Linux Kitaplg 74 / 142

GNU Bash Basvuru Klavuzu

bitdzeyi VE

bitdzeyi ayrcalkl VEYA (XOR)

|
bitdzeyi VEYA

&&
mantksal VE

||
mantksal VEYA

ifade ? ifade : ifade


ko ullu degerlendirme s

= *= /= %= += = <<= >>= &= = |=


atama

ifade1 , ifade2
virgl Kabuk degi kenlerinin terimler olarak kullanlmas saglanm tr. Parametre yorumlamas ifade s s degerlendirilmeden nce uygulanr. Bir ifade iinde, kabuk degi kenleri parametre yorumlamasnn szdizimini s kullanmakszn dogrudan ismiyle yer alabilir. bo degerli ya da unset ile kaldrlm bir kabuk degi kenine s s s parametre yorumlamasnn szdizimini kullanmakszn dogrudan ismiyle ba vuruldugunda degeri 0 olarak s degerlendirmeye sokulur. Ba vuruldugunda bir degi kenin degeri bir aritmetik ifade olarak degerlendirilir ya s s s da tamsay niteligi verilmi bir degi kene declare i kullanlarak bir deger atanr. Bo deger 0 olarak s s degerlendirilir. Bir kabuk degi keni ifade iinde kullanlrken tamsay niteliginin etkinle tirilmesini gerektirmez. s s 0 ile ba layan sabitler sekizlik saylar olarak, 0x veya 0X ile ba layanlar onaltlk saylar olarak ele alnr. Bunlar s s d nda kalan saylar tabanlar ile birlikte [taban#]n bieminde gsterilebilir. Burada taban 0 ile 64 arasnda s bir tamsay olabilir. n ise tabandaki saydr. 10 tabanndaki saylar iin base# ksm verilmeyebilir. 9 dan byk saylar iin srasyla kk harer, byk harer, @ ve _ kullanlr. Eger taban kk ya da e it 36 ise kk ve s byk harer 10 ile 35 arasndaki rakamlar iin birbirinin yerine kullanlabilir. sleler ncelik srasna gre degerlendirilir. Parantez iine alnm alt ifadeler ncelikle degerlendirilir. Bu neI s denle parantez iine alma i lelerin nceliklerini arttrmak amacyla kullanlabilir. s

6. Takma Adlar
Takma adlar bir basit komutun ilk szcg olarak kullanldgnda, bir szcgn yerini bir dizgenin almasn s mmkn klar. Kabuk, alias (sayfa: 43) ve unalias (sayfa: 58) yerle ikleri ile atanan ve kaldrlan takma adlar bir listede tutar. Her basit komutun ilk szcg, trnak iine alnmam sa, bir takma ada sahip mi diye baklr. Sahipse, bu szck s takma adn degeri ile degi tirilir. /, $, , =, kabuk meta karakterleri veya trnak karakterleri, nceleme karakteri s bir takma adn isim parasnda bulunamaz. Deger parasnda ise kabuk meta karakterleri dahil kabuk girdisi olarak geerli tm karakterler bulunabilir. Degerin ilk szcg takma adlar iin denenir, ama yorumlanacak bir takma isimle ayn olan bir szck ikinci kez yorumlanmaz. Bunu bir rnekle aklayacak olursak,
ls=ls F

ls hem bir takma ad ismi hem de takma adn degerindeki ilk szcktr. Degerin ilk szcg ikinci kez bir takma
ad ismi olarak tekrar yorumlanmaz, yani takma adlar i ie olamazlar. Takma ad degerinin son karakteri bir

http://belgeler.org

Linux Kitaplg

75 / 142

GNU Bash Basvuru Klavuzu

bo luk ya da sekme karakteri ise, sonraki komut szcgn izleyen takma ad ayrca takma ad yorumlamas iin s kontrol edilir. Takma adlar alias komutu ile olu turulur ve listelenir; unalias komutu ile kaldrlr. s

cshdaki gibi takma ad degerinde argmanlar kullanmak iin bir mekanizma yoktur. Argmanlar gerekliyse bir
kabuk i levi (sayfa: 20) kullanlmaldr. s Kabuk etkile imsizken expand_aliases (sayfa: 54) kabuk seenegi etkin olmadka takma adlar yorumlans maz. Takma adlarn tanmlanmas ve kullanm ile ilgili kurallar bir para kafa kar trcdr. Bash komut satrndaki s bir komutu al trmadan nce daima en azndan bir tam satr okur. Takma adlar bir komut al trldg zaman s s degil, okundugu zaman yorumlanr. te yandan, diger komut olarak ayn satrda grnen bir takma ad tanm girdinin sonraki satr okunana kadar etkisizdir. Bu satrdaki komutlardan sonraki takma ad tanmlar yeni takma addan etkilenmez. Bu davran ayrca i levler al trlrken de grlr. Takma adlar bir i lev al trldg zaman s s s s s degil, okundugu zaman yorumlanr, nk bir i lev tanmnn kendisi bir birle ik komuttur. Bir sonu olarak, bir s s i lev iinde tanmlanm olan takma adlar i levin al trlmasnn sonrasna kadar kullan szdr. Emin olmak s s s s s iin, daima takma ad tanmlarn ayr bir satra koyun ve alias birle ik komut iinde kullanmayn. s Hemen her maksat iin, kabuk i levleri takma adlara tercih edilir. s

7. Diziler
Bash tek boyutlu dizi degi kenleri saglar. Her degi ken dizi olarak kullanlabilir; declare (sayfa: 45) yerle igi s s s bir diziyi dogrudan bildirecektir. Bir dizi iin ne bir azami boyut vardr ne de yelerinin indislenmesi ya da pe pe e s s atanmas gereklidir. Dizilerin ilk indisi sfrdr. Bir degi ken a agdaki szdizimi kullanlarak atanrsa, bir dizi otomatikman olu turulmu olur: s s s s

isim[indis]=de er g

indis degerlendirildiginde sfra e it ya da byk bir say olmas gereken bir aritmetik ifade olarak ele alnr. Bir s
dizi dogrudan a agdaki gibi bildirilebilir: s
declare a isim

Ayrca bu sz dizimi de kabul edilir:


declare a isim[indis]

indis yoksaylr. Bir dizi degi keni iin znitelikler declare ve readonly (sayfa: 40) yerle ikleri ile belirtilebilir. s s
Her znitelik dizinin tm yelerine uygulanr. Diziler a agdaki gibi birle ik atamalar kullanlarak atanabilir. s s

isim=(de er1 ... de erN) g g


Burada her de er, [[indis]=]dizge biemindedir. stege bagl olan indis verilirse, indis atanm olur; aksi g I s ndisleme sfrdan ba lar. Bu szdiztakdirde atanan elemann indisi deyim tarafndan atanan son indis art birdir. I s imi ayrca declare yerle igi tarafndan da kabul edilir. Tek tek dizi elemanlar isim[indis]=deger szdizimi s kullanlarak atanabilir. s Dizideki her eleman ${isim[indis]} bieminde bir ifade iinde kullanlabilir. Ka l ayralar, kabugun dosyaismi yorumlama i leci ile eli memesi iin gereklidir. indis olarak @ veya * verilirse, dizinin tm yeleri anlamndadr. s s Bu indisler sadece ift trnak iine alndgnda farkldr. Szck ift trnaklar arasndaysa, ${isim[*]} szcg, her dizi yesi IFS degi keninin ilk karakteri ile ayrlarak tek szck olarak yorumlanr. ${isim[@]} szcgnde s ise dizinin her eleman ayr bir szck olarak yorumlanr. Dizinin hi eleman yoksa, ${isim[@]} hibir sey

http://belgeler.org

Linux Kitaplg

76 / 142

GNU Bash Basvuru Klavuzu

olarak yorumlanr. Bir szck iinde ift trnakl yorumlama olursa ilk parametrenin yorumu zgn szcgn ba lang paras ile birle ir ve son parametrenin yorumu da zgn szcgn son paras ile birle ir. Bu, @ s s s ve * zel parametrelerinin yorumlanmasna benzerdir. ${#isim[indis]}, ${isim[indis]} dizisinin uzunlugu olarak yorumlanr. indis, @ veya * ise yorumlama dizideki elemanlarn saysdr. Bir dizi degi keni bir ifade iinde s kullanlrken bir indis belirtilmezse sfrnc elemana kar lktr. s s Dizileri kaldrmak iin unset (sayfa: 43) yerle igi kullanlr. unset isim[indis] komutu indis indisli eleman diziden kaldrr. Dosyaismi retiminin sebep olacag istenmeyen yan etkilerden kanlmaya al lmaldr. s unset isim komutunda isim bir dizi ismi ise dizinin tamam kaldrlr. Ayrca indis olarak * veya @ verildiginde de dizinin tamam kaldrlr.

declare (sayfa: 45), local (sayfa: 47) ve readonly (sayfa: 40) yerle iklerinin herbirinde bir dizi belirtmek s iin a seenegi bulunur. read yerle iginin a seenegi ile standart girdiden okunan szcklerin bir listesi bir s diziye atanabilir ve degerler standart girdiden okunup tek tek dizi elemanlarna atanabilir. set (sayfa: 49) ve declare (sayfa: 45) yerle ikleri girdi olarak yeniden kullanlabilir sekilde dizi degerlerini gsterebilir. s

8. Dizin Ygn Yerlesikleri


Dizin ygn son ziyaret edilen dizinlerin bir listesidir. Dizinleri ygna eklemek iin pushd yerle igi kullanlr ve s s eklenen dizine geilmesini saglar. Dizinleri ygndan kaldrmak iin popd yerle igi kullanlr ve ygnn tepesindeki dizine geilmesini saglar. Dizin ygnndaki dizinleri gstermek iin de dirs yerle igi kullanlr. s Dizin ygnnn ierigine ayrca bir dizi degi keni olan DIRSTACK kabuk degi keninden de eri ilebilir. s s s

8.1. Dirs Yerlesigi


dirs [+N | N] [clpv]

O an hatrlanan dizinlerin listesini gsterir. Dizinler pushd komutu ile listeye eklenir ve popd komutu ile listeden kaldrlr.

+N
Seeneksiz agrlan dirs tarafndan baslan listenin solundaki kayt 0 kabul edilerek N. dizini gsterir.

N
Seeneksiz agrlan dirs tarafndan baslan listenin sagndaki kayt 0 kabul edilerek N. dizini gsterir

c
Tm elemanlarn silerek dizin ygnn temizler.

l
Daha uzun liste retir; ntanml liste bieminde ev dizini bir yakla k karakteri ile gsterilir. s

p
Dizin ygnn her satrda tek girdiyle gsterir.

v p gibidir, farkl olarak her satrn ba na girdinin ygndaki indisi konur. s

8.2. Popd Yerlesigi


popd [+N | N] [n]

Argmansz verildiginde dizin ygnnn tepesindeki girdiyi kaldrdktan sonra ygnn tepesindeki dizine cd uygu lar. dirs ile listelenen ilk dizin 0 olmak zere tm elemanlar 0 dan ba layarak numaralanr. Bu durumda, popd s komutu popd +0 komutuna e degerdir. s

http://belgeler.org

Linux Kitaplg

77 / 142

GNU Bash Basvuru Klavuzu

+N
Seeneksiz agrlan dirs tarafndan baslan listenin solundaki kayt 0 kabul edilerek N. dizini siler.

N
Seeneksiz agrlan dirs tarafndan baslan listenin sagndaki kayt 0 kabul edilerek N. dizini siler.

n
Dizinler ygndan kaldrlrken, dizin degi tirilmesini engeller. Bylece sadece ygn degi mi olur. s s s

8.3. Pushd Yerlesigi


pushd [dizin | +N | N] [n]

inde bulunulan dizini dizin ygnnn tepesine kaydettikten sonra belirtilen dizine geilir. Argmansz kulI lanldgnda ygnn tepesindeki iki dizin yer degi tirir. s

+N
Seeneksiz agrlan dirs tarafndan baslan listenin solundaki kayt 0 kabul edilerek N. dizini, listeyi dndrerek ygnn tepesine getirir.

N
Seeneksiz agrlan dirs tarafndan baslan listenin sagndaki kayt 0 kabul edilerek N. dizini, listeyi dndrerek ygnn tepesine getirir.

n
Dizinler ygna eklerken, dizin degi tirilmesini engeller. Bylece sadece ygn degi mi olur. s s s

dizin
inde bulunulan dizini ygnn tepesi yapar ve cd dizin komutuna e deger bir i lemle dizine geilmesini I s s saglar.

9. Komut steminin Kontrol Edilmesi I


PROMPT_COMMAND degi keninin degeri Bash birincil komut istemini basmadan hemen nce saptanr. s PROMPT_COMMAND atanm ve bo olmayan bir degere sahipse, bu degeri, komut satrnda yazldg gibi s s
al trlr. s Komut istemi degi kenlerinde grnen zel karakterler: s

\a
Sesli uyar (bell) karakteri.

\d
Tarih, ng. olarak "Gnismi Ayismi AynGn" biemindedir (rn, "Thu Apr 24"). I

\D{biim}

biim strftime(3)a aktarlr ve sonu istem dizgesine yerle tirilir; biim bo ise sonu yerele zel s s s s zaman gsteriminde olacaktr. biim bo bile olsa ka l ayralar gereklidir.
\e
nceleme (esc) karakteri.

\h
lk . ya kadar, konak ismi. I Linux Kitaplg 78 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

\H
Tam konak ismi.

\j
Kabuk tarafndan o an ynetilmekte olan i lerin says. s

\l
Kabugun ubirim aygtnn dosya ismi (rn, /dev/tty2 iin tty2).

\n
Satrsonu (LF) karakteri.

\r
Satrba (CR) karakteri. s

\s
Kabugun ismi ya da ba ka bir deyi le $0n degeri (son / den sonraki ksm). s s

\t
24 saatlik gsterimle SS:MM:ss bieminde saat.

\T
12 saatlik gsterimle SS:MM:ss bieminde saat.

\@
12 saatlik gsterimle /s bieminde saat.

\A
24 saatlik gsterimle SS:MM bieminde saat.

\u
O anki kullancnn kullanc ismi.

\v
Bashin srm (rn, 2.00)

\V
Bashin "dagtm.srm.yamaseviyesi" olarak srm (rn, 2.05.9)

\w
O anki dizin; $HOME ksaltlm olarak ile gsterilir. s

\W $PWD degi kenindeki dizinin son / dan sonraki ksm; $HOME ksaltlm olarak ile gsterilir. s s \!
Bu komutun gemi numaras. s

\#
Bu komutun komut numaras.

\$
Etkin kullanc kimligi 0 ise #, degilse $.

\nnn
Sekizlik ASCII degeri nnn olan karakter.

\\ http://belgeler.org
Linux Kitaplg 79 / 142

GNU Bash Basvuru Klavuzu

Tersbl.

\[
Baslamayan karakterler dizisi ba latr. Bu, komut istemine bir ubirim denetim dizgesi girmek iin s yararldr.

\]
Baslamayan karakterler dizisini sonlandrr. (rnegin PS1=$\[\\033[1;31m\]\\w$ krmz renkte bir komut satr ayarlar) Komut numaras ile gemi numaras farkl kavramlardr: Bir komutun gemi numaras onun gemi listesindeki s s s konumudur (Bashin Gemi sel Yetenekleri (sayfa: 111) blmne baknz). Komut numaras ise o anki kabuk s oturumunun ba langcndan itibaren al trlan komut saysdr. s s Dizgenin kodu zldkten sonra promptvars (sayfa: 56) kabuk seeneginin degerine konu, parametre yo rumlamas (sayfa: 24), komut ikamesi (sayfa: 26), aritmetik yorumlama (sayfa: 27) ve trnak kaldrma (sayfa: 29) uygulanr.

10. Snrl Kabuk


Bash rbash ile ba latlrsa ya da agr srasnda restricted veya r seenegi verilirse, kabuk snrl s duruma gelir. Bir snrl kabuk, standart kabuktan daha kontroll bir ortam saglamak iin kullanlr. Bir snrl s kabuk a agdaki yasaklar (belirtilse de uygulanmazlar) d nda bashe zde davranr: s s

cd yerle igi ile dizin degi tirmek. s s SHELL, PATH, ENV veya BASH_ENV degi kenlerini kaldrmak ya da deger atamak. s / ieren komut isimleri yazmak. . yerle igine bir argman olarak / ieren bir dosya ismi belirtmek. s hash yerle igine p seeneginin argman olarak / ieren bir dosya ismi belirtmek. s
Ba langta kabuk ortamndan i lev tanmlarn alntlamak. s s Ba langta kabuk ortamndaki SHELLOPTS degi keninin degerini zmlemek. s s kty >, >|, <>, >&, &> ve >> ynlendirme i leleri ile ynlendirmek. s

exec yerle igini kullanarak kabugu ba ka bir komutla degi tirmek. s s s enable yerle iginin f ve d seenekleri ile yerle ik komutlar eklemek ya da silmek. s s
Etkisiz olan kabuk yerle iklerini enable yerle igi ile etkinle tirmek. s s s

command yerle igini p seenegi ile al trmak. s s set +r veya set +o restricted komutlar ile snrl kipi kapatmak.

Bu snrlamalar ba lang dosyalarndan herhangi biri okunur okunmaz etkin olur. s Bir komut kabuk betigi (sayfa: 35) olarak varsa al trlr, rbash bir kabuk betigini al trmak zere kabugu s s atalladgnda snrlamalar kapatr.

11. Bash POSIX Kipi


Bashi posix komut satr seenegi ile ba latarak ya da Bash al rken set o posix komutunu s s al trarak, Bashin POSIX standardndakinden farkl olan ntanml davran larn degi tirerek standarda daha s s s yakn davranmas saglanr.

sh olarak agrldgnda, Bash ba lang dosyalarn okuduktan sonra POSIX kipine girer s
A agdaki liste POSIX kipi etkinle tirildiginde degi enleri gsterir: s s s

http://belgeler.org

Linux Kitaplg

80 / 142

GNU Bash Basvuru Klavuzu

1. Bir komut komut tablosunda artk yoksa, Bash komutun yeni yerini bulmak iin $PATH dizinlerini tekrar arar. Bu ayrca shopts checkhash ile etkinle tirilebilir. s 2. Bir i sfrdan farkl bir durumla ktgnda i denetim kodu ve yerle ikleri Bitti(durum) benzeri bir ileti s s s basar. 3. Bir i durdugunda i denetim kodu ve yerle ikleri Durdu(sinyalismi) benzeri bir ileti basar. Burada geen s s s sinyalismi rnegin SIGTSTP olabilir. 4. bg yerle igi artalana yerle tirilmeyi aklamay gerektiren ama i in o anki mi nceki mi oldugunun belirs s s tilmesini iermeyen bir biim kullanr. 5. Anahtar szcklere takma ad verilemez. 6. POSIX PS1 ve PS2 gemi numarasna ! yorumlamas ve !! iin de ! etkinle tirilir ve promptvars s s kabuk seeneginin durumuna aldrmayp PS1 ve PS2 degi kenlerinin degerlerine parametre yorumlamas s uygulanr. 7. Etkile imli aklamalar ntanml olarak etkinle tirilir (Bash zaten onlar ntanml olarak etkin yapar). s s 8. Normal Bash dosyalar yerine POSIX ba latma dosyalar al trlr ($ENV). s s 9. Yakla k yorumlamas satrdaki tm atama deyimleri yerine bir komut ismini nceleyen atamalar zerinde s uygulanr. 10. ntanml gemi dosyas /.sh_historydir (bu, $HISTFILE degi keninin ntanml degeridir). s s 11. killl kts tm sinyal isimlerini bo luklarla ayrarak ve SIG nekini kullanlmakszn tek satra basar. s 12. kill yerle igi SIG nekli sinyal isimlerini kabul etmez. s 13. . dosyaismi komutundaki dosyaismi bulunamazsa, etkile imsiz kabuklar kar. s 14. Bir aritmetik yorumlamasnn iindeki bir szdizimi hatas, bir geersiz ifadenin iinde sonulanyorsa etkile imsiz kabuklar kar. s 15. Ynlendirme i leleri, kabuk etkile imli olmadka ynlendirmedeki szck stnde dosyaismi yorumlas s mas uygulamaz. 16. Ynlendirme i leleri, ynlendirmedeki szck stnde szck ayrmlamas uygulamaz. s 17. slev isimleri geerli kabuk isimleri olmaldr. Bylece bu isimler, bir rakam ile ba layamaz ve harer, I s rakamlar ile altizgi karakteri d nda karakterleri ieremez. Bir i lev isminin bir geersiz isimle bildirilmesi s s etkile imsiz kabuklarda bir lmcl szdizimi hatas olu turur. s s 18. POSIXe zel yerle iklere (sayfa: 58) komut aramas srasnda kabuk i levlerinden nce baklr. s s 19. Bir POSIX zel yerle igi bir hata durumu ile dnerse bir etkile imsiz kabuk kar. lmcl hatalarn da s s listelendigi POSIX standard yanl seeneklerin aktarlmas gibi seyler, ynlendirme hatalar, komut ismini s nceleyen atamalar iin degi ken atama hatalar ve benzerlerini ierir. s 20. CDPATH atanm sa, cd yerle igi bulunulan dizini ona dogrudan eklemeyecektir. Bunun anlam: cd s s yerle igine bir argman olarak verilen isimle ayn isimdeki bir dizin bulunulan dizinde mevcut olsa bile, s $CDPATH iindeki girdilerden birinden olu turulabilen geerli dizin ismi yoksa cd yerle igi ba arsz olas s s caktr. 21. Atama deyimlerinden sonra gelen komut ismi olmadgnda, bir degi ken atama hatas olu ursa, bir etk s s ile imsiz kabuk bir hata durumu ile kar. rnegin, bir saltokunur degi kene bir deger atanmaya al lrsa, s s s bir degi ken atama hatas olu ur. s s 22. Bir for deyiminin yineleme degi keni veya bir select deyiminin seim degi keni bir saltokunur s s degi kense bir etkile imsiz kabuk bir hata durumu ile kar. s s 23. Sre ikamesi yoktur. 24. POSIX zel yerle iklerinden nce verilen atama deyimleri komut i ini tamamladktan sonra da kabukta s s etkin olarak kalr.

http://belgeler.org

Linux Kitaplg

81 / 142

GNU Bash Basvuru Klavuzu

25. Kabuk i levi agrlarndan nce verilen atama deyimleri i lev dndkten sonra da bir nceki maddede s s oldugu gibi kabukta etkin olarak kalr. 26. export ve readonly yerle ik komutlar ktlarn POSIXin gerektirdigi biemde gsterir. s 27. trap yerle igi sinyal isimlerini SIG ile ncelemeden gsterir. s 28. trap yerle igi ilk argmanna olas bir sinyal belirtimi var m acaba diye bakmaz ve eger varsa args man yalnzca rakamlardan olu madka ve geerli bir sinyal numaras olmadka sinyal i lemeyi zgn s s mecrasna geri dndrr. Eger kullanc sinyal i lemeyi zgn mecrasna geri dndrmek isterse ilk arg s man olarak kullanmaldr. 29. . ve source yerle ikleri bir dosyaismi argmannn, PATH aramasnda bulamazlarsa, bulunulan dizinde s aramazlar. 30. Komut ikamelerini al trmak iin atallanan altkabuklar e seeneginin degerini kendilerini al tran s s kabuktan miras alrlar. POSIX kipinde degilken, Bash e seeneginin degerini bu altkabuklarda temizler. 31. Etkile imsiz kabuklarda bile takma ad yorumlamas daima etkindir. s 32. alias yerle igi takma ad tanmlarn listelemek amacyla kullanldgnda p seenegi belirtilmedike s tanmlarn ba larnda alias gsterilmez. s 33. set yerle igi seeneksiz olarak agrldgnda, kabuk i levlerinin isimlerini ve tanmlarn gstermez. s s 34. set yerle igi seeneksiz olarak agrldgnda, sonular baslamayan karakterleri ierse bile, kabuk s metakarakterlerini iermedike, degi ken degerlerini trnaksz olarak gsterir. s 35. cd yerle igi mantksal kipte agrldgnda ve dosya yolu $PWDden olu tugunda ve de bir argman olarak s s verilen dizin ismi iinde bulununlan dizini gstermediginde cd ziksel kipe dnmek yerine ba arsz ola s caktr. 36. pwd yerle igi P seenegi ile agrldgnda $PWDnin ierigini sembolik bag iermeyen dizinlerle yazar. s 37. pwd yerle igi P seenegi belirtmek suretiyle dosya sistemini snamas istenmese bile bastg degerin, s iinde bulunulan dizin ile ayn olup olmadgna bakacaktr. 38. Gemi listelenirken fc yerle igi gemi girdisinin degi tirilmi olup olmadgna dair bir belirti iermez. s s s s s 39. fc tarafndan ntanml metin dzenleyici olarak ed kullanlr. 40. type ve command yerle ikleri al trlabilir olmayan bir dosyay kabuk al trmaya al acak olsa hatta s s s s $PATH iinde bu isimde sadece bu dosya varsa bile byle bir ey bulduk diye raporlamazlar. s 41. v komutu (.N.:v degil vi olacakt sanrm) al trlmak istendiginde vi kipindeyken $FCEDIT ve s $EDITOR degi kenlerinin ieriklerine baklmakszn dogrudan vi metin dzenleyici al trlr. s s 42. xpg_echo seenegi etkinken Bash argmanlar echo seenekeri olarak yorumlamaya al maz. Her s argman gsterildikten sonra ncelenmi karakterler dn trlr. s s POSIX kipindeyken ntanml olan ancak Bashin gereklemedigi baz POSIX davran lar vardr. zellikle: s 1. fc yerle igi, gemi girdileri dzenlenecegi zaman FCEDIT ortamda tanml degilken ntanml metin s s dzenleyici olarak edi kullanacagna gidip $EDITOR degi keninin ierigine bakar; $EDITOR tanml s degilse edi kullanr. 2. Yukarda dikkat ekildigi gibi, Bash, echo yerle iginin tam uyumlu olabilmesi iin xpg_echo seeneginin s etkin olmasn gerektirir. 3. Bash kurulum srasnda configure betigine enablestrictposixdefault seenegi ver ilmek suretiyle ntanml olarak POSIX uyumlu olmak zere yaplandrlabilir (bkz, Istege Bagl zellikler (sayfa: 118)).

http://belgeler.org

Linux Kitaplg

82 / 142

GNU Bash Basvuru Klavuzu

VII. s Denetimi I
indekiler I
1. Is Denetiminin Temelleri 2. Is Denetim Yerlesikleri . 2.1. Bg Yerle igi . . . . s 2.2. Fg Yerle igi . . . . s 2.3. Jobs Yerle igi . . . s 2.4. Kill Yerle igi . . . . s 2.5. Wait Yerle igi . . . s 2.6. Disown Yerle igi . s 2.7. Suspend Yerle igi . s 3. Is Denetim Degiskenleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 84 84 84 84 85 85 85 85 86

Bu oylumda, i denetiminin ne oldugu, nasl al tg ve onun yeteneklerine Bash ile nasl eri eceginiz ans s s latlm tr. s

1. s Denetiminin Temelleri I
s denetimi, bir srecin al masn seerek durdurma (bekletme) ve daha sonra al masn srdrme (yeniden I s s ba latma) yetenegi demektir. Bir kullanc bu arala genellikle Bash ve sistemin ubirim srcs tarafndan s ortak olarak saglanan bir etkile imli arayz zerinden al r. s s Kabuk bir i ile her boruhattn ili kilendirir. Halen al makta olan ve jobs komutu ile listelenebilen i lerin s s s s listesini bir tabloda saklar. Bash bir i i e zamansz olarak ba lattgnda syle bir ileti gsterir: s s s
[1] 25647

Bu ileti, i in i numarasnn 1 ve bu i le ili kilendirilen boruhattndaki son srecin sre kimliginin (PID) 25647 s s s s oldugunu ifade eder. Bir tek boruhattndaki srelerin tm ayn i in yeleridir. Bash i denetimi iin esas olarak s s i soyutlamas kullanr. s s denetiminin kullanc arayznn gereklenmesini kolayla trmada, i letim sistemi, kullanlan ubirim I s s srecinin grup kimligi diye bir kavram saglar. Bu sre grubunun yeleri (srelerin sre grubu kimligi, kul lanlan ubirimin sre grubu kimligine e ittir) klavyeden retilen SIGINT gibi sinyalleri alr. Bu sreler nalanda s olduklarn sylerler. Artalan sreleri, sre grubu kimligi ubiriminkinden farkl olan srelerdir. Bu sreler klavyeden retilen sinyallerden bag ktr. Sadece nalan sreleri ubirime yazar ve ubirimi okuyabilir. Ubirs imi okumaya (ya da yazmaya) al an artalan sreleri bir SIGTTIN (SIGTTOU) sinyali yakalanmadka, sreci s bekleten ubirim srcs zerinden gnderir. Bashin al tg i letim sistemi zerinde i denetimi destekleniyorsa, Bash onu kullanacak aralar ierir. Bir s s s sre al rken bekletme karakteri nin tu lanmas (genelde Z, ControlZdir) srecin durdurulmasna ve denes s s timin Bashe gemesine sebep olur. Gecikmeli bekletme karakterinin (genelde Y, ControlYdir) tu lanmas, ubirimden girdi okumaya al tg zaman srecin durdurulmasna sebep olur ve denetim Bashe dndrlr. s Bundan sonra kullanc bu i in durumunu degi tirebilir: bg komutunu kullanarak artalanda, fg komutunu kullas s nark nalanda i i devam ettirebilir ya da kill komutu ile sreci ldrebilir. Bir Z hemen etkisini gsterir ve s ktnn askda kalmasna ve ba tanyazmann iptal edilmesine sebep olan bir yan etkisi vardr. s s Kabuktaki bir i i ifade etmede kullanlan bir ka yol vardr. % karakteri bir i in ismini ifade eder. s s numaras ne, %n olarak ba vurulabilir. %+ ve %% sembolleri, artalanda ba latlan ya da nalanda olan durmu I s s s son i in yani o anki i kavramnn kabuktaki kar lgdr. Tek bir % (i belirtimine e lik etmeksizin) ayrca o anki s s s s s

http://belgeler.org

Linux Kitaplg

83 / 142

GNU Bash Basvuru Klavuzu

i i belirtmek iin kullanlabilir. nceki i ise % sembol ile ifade edilir. slerle ilgili ktlarda ise (rn. jobs s s I komutunun kts), o anki i daima bir + ile nceki i ise ile imlenir. s s Bir i e onu ba latan ismi bir nek olarak kullanarak ya da komut satrnn iinde geen bir dizge kullanlarak s s eri ilebilir. rnegin, %ce durmu olan ce i ini ifade eder. %?ce seklinde bir kullanmda ise komut satrnda ce s s s dizgesi geen bir i ifade edilebilir. Eger nek ve dizge birden fazla i le e le irse, Bash bir hata uyars verir. s s s s Bir i in isimlendirilmesi onu nalana almak iin kullanlabilir: %1, fg%1 komutuna e degerdir ve 1 numaral i i s s s artalandan nalana almak iindir. Benzer olarak, %1 &, bg%1 komutuna e degerdir ve 1 numaral i in artalanda s s srdrlmesini saglar. Kabuk herhangi bir yerde bir i durumunu degi tirdiginde annda grenir. Normalde Bash bir i i, durumundaki s s s degi iklikleri raporlamadan nce bir komut istemi basmaya hazr hale gelene kadar herhangi bir ktsna kesme s uygulamadan bekler. set yerle igi b seenegi ile al trlm sa, Bash bu degi iklikleri annda raporlar. Her s s s s ocuk srecin k nda varsa SIGCHLD sinyal kapan al trlr. s s Durmu i ler varken Bash kmaya al rsa, kabuk durmu i lerin varlgn belirten bir uyar iletisi basar. Bundan s s s s s sonra onlarn durumunu grenmek iin jobs komutu kullanlabilir. Bir ara komut olmakszn kmak iin ikinci bir istek daha gelirse, kabuk bir ileti daha gstermez ve durmu i ler sonlandrlr. s s

2. s Denetim Yerlesikleri I
2.1. Bg Yerlesigi
bg [i belirtimi] s

& ile ba latlm asna artalanda bekleyen i belirtimi i ini srdrr. i belirtimi verilmemi se, o anki i kuls s s s s s s
lanlr. s denetimi etkin degilken al trlmadka veya i denetimi etkinle tirilerek al trldgnda belirtilen i I s s s s s s s s s s s belirtiminin bulunamamas d nda ya da ibelirtimi i denetimsiz ba latlan bir i olmadka dn durumu sfrdr.

2.2. Fg Yerlesigi
fg [i belirtimi] s

nalandaki i belirtimi i ini srdrr ve onu o anki i yapar. Eger i belirtimi verilmeksizin al trlrsa o anki s s s s s s denetimi etkin degilse i kullanlr. Normalde dn durumu nalana yerle tirilen komutun k durumudur. I s s s s s s s s veya i denetimini etkinle tirerek al trldgnda, i belirtimi geerli bir i i belirtmiyorsa veya i belirtimi i s s s denetimsiz ba latlm bir i i belirtiyorsa dn durumu sfrdan farkldr. s s s s

2.3. Jobs Yerlesigi


jobs [lnprs] [i belirtimi] s jobs x komut [argmanlar]

lk satr etkin i leri listeler. Seeneklerin anlamlar: I s

l
Normal bilgilere ek olarak sre kimliklerini de (PID) listeler.

n
Sadece kullancnn durumlar hakknda aldg son uyardan beri durumlar degi en i ler hakknda bilgi s s gsterir.

http://belgeler.org

Linux Kitaplg

84 / 142

GNU Bash Basvuru Klavuzu

p
Sadece i lerin sre grup liderlerinin sre kimliklerini listeler. s

r
Sadece al an i ler ktlanr. s s

s
Sadece durmu i ler ktlanr. s s

ibelirtimi verilmi se, kt bu i ile ilgili bilgilerle snrldr, verilmemi se tm i lerin durumlar listelenir. s s s s s
x seenegi verilmi se, argmanlar ile belirtilen tm i belirtimlerini, i lerin sre grup liderinin sre grup s s s
kimligine yerle tirilip komut al trlr. Dn durumu komutun k durumudur. s s s s

2.4. Kill Yerlesigi


kill [s sinyalbelirtimi] [n sinyalnumaras] [sinyalbelirtimi] i belirtimi s kill [s sinyalbelirtimi] [n sinyalnumaras] [sinyalbelirtimi] pid kill l [k durumu] s

pid ile belirtilen sre kimligine veya ibelirtimi ile belirtilen i in srecine sinyalbelirtimi veya sinyal s s numaras ile belirtilen sinyali gnderir. sinyalbelirtimi ya harf byklgne duyarsz olarak SIGINT gibi bir sinyal ismi (SIG neki olmadan da verilebilir) ya da bir sinyal numaras olabilir. sinyalnumaras ise bir sinyal numaras olmaldr. sinyalbelirtimi veya sinyalnumaras verilmezse ntanml olarak SIGTERM kullanlr.
l seenegi ile sinyal isimleri listelenir. Bu seenekle birlikte bir argman verilmi se, bu argmanlara kar s s
d en sinyal isimleri listelenir ve dn durumu sfrdr. k durumu ile bir sinyal numaras ya da bir sinyal ile s s s sonlandrlan bir srecin k durumu belirtilebilir. En azndan bir sinyal ba aryla gnderilmi se k durumu s s s s sfrdr. Bir hata olu ur veya geersiz bir seenek saptanrsa sfrdan farkldr. s s denetimi etkin degilken, kill yerle igi i belirtimi argmann kabul etmez. Bunlar sre kimlikleri olarak s s I verilmelidir.

2.5. Wait Yerlesigi


wait [ i belirtimi | pid ] s

s belirtimi i belirtimi ile veya sre kimligi pid ile belirtilen bir ocuk srelerin her birinin kmasn bekler. I s Dn durumu kmasn bekledigi srecin k durumudur. Hibir argman verilmeden al trlrsa etkin tm s s s s ocuk sreler iin bekler, bu durumda k durumu sfrdr. Ne i belirtimi ne de pid kabugun bir ocuk s srecini belirtiyorsa 127 durumu ile dner. s denetimi etkin degilken, wait yerle igi i belirtimi argmann kabul etmez. Bunlar sre kimlikleri olarak s s I verilmelidir.

2.6. Disown Yerlesigi


disown [ar] [h] [i belirtimi ...] s

Seeneksiz kullanmda her i belirtimi etkin i ler tablosundan kaldrlr. h seenegi ile i tablodan kaldrlmaz s s s ama imlenir bylece kabuk bir SIGHUP alrsa bunu i e gndermez. i belirtimi ve a ile r seenekleri s s verilmezse, o anki i kullanlr. i belirtimi verilmeden a seeneginin kullanlmas tm i lerin imlenmesi ya s s s da kaldrlmas demektir. i belirtimi verilmeden r seeneginin kullanlmas ise i lemi i lerin al trlmas ile s s s s snrlar.

http://belgeler.org

Linux Kitaplg

85 / 142

GNU Bash Basvuru Klavuzu

2.7. Suspend Yerlesigi


suspend [f]

Bu kabugun al masn bir SIGCONT sinyali alana kadar askya alr. f seenegi kullanldgnda kabuk bir s giri kabugu olsa bile askya alnr. s

3. s Denetim Degiskenleri I
auto_resume
Bu degi ken kabugun kullanc ve i denetimi ile nasl etkile ecegini kontrol eder. Bu degi ken varsa, s s s s ynlendirmesiz tek szcklk basit komutlar bir mevcut i in yeniden ba latlmas iin aday kabul edilir. Bir s s belirsizlige izin verilmez; girilen dizge ile ba layan birden fazla i varsa en son eri ilen i seilmi olacaktr. s s s s s Bu baglamda, durmu i in ismi onu ba latmakta kullanlan komut satrdr. Bu degi kene exact degeri s s s s atanrsa, verilen dizge tpatp bir durmu i in ismi olmaldr. Degi kene substring degeri atanrsa, s s s verilen dizge bir durmu i in isminin bir altdizgesi olmas gerekir. substring, %? i kimligi ile bens s s s Denetiminin Temelleri (sayfa: 83) blmne baknz). Bunlarn d nda bir dizge zer i levsellik saglar (I s s atanrsa, verilen dizge bir durmu i in isminin bir neki olmaldr. Bu, % i kimligi ile benzer i levsellik s s s s saglar.

http://belgeler.org

Linux Kitaplg

86 / 142

GNU Bash Basvuru Klavuzu

VIII. Komut Satrnn Dzenlenmesi


indekiler I
1. Satr Dzenlemeye Giris . . . . . . . . . . . . 2. Readline Etkilesimi . . . . . . . . . . . . . . . 2.1. Readlinen Yaln z . . . . . . . . . . . 2.2. Readline Hareket Tu lar . . . . . . . . . s 2.3. Readline Kes ve Yap tr Komutlar . . . . s 2.4. Readline Argmanlar . . . . . . . . . . 2.5. Gemi iinde Komutlarn Aranmas . . . s 3. Readline Ilklendirme Dosyas . . . . . . . . . 3.1. Readline Ilklendirme Dosyasnn Szdizimi 3.1.1. Degi ken Atamalar . . . . . . . . s 3.1.2. Tu Ksayollar . . . . . . . . . . . s lklendirme Yaplar . . . . . . . . 3.2. Ko ullu I s 3.3. rnek Ilklendirme Dosyas . . . . . . . . 4. Ksayollar iin Readline Komutlar . . . . . . 4.1. Hareket Komutlar . . . . . . . . . . . . . 4.2. Gemi i Yneten Komutlar . . . . . . . . s 4.3. Metni Degi tirmek iin Komutlar . . . . . s 4.4. Kesme ve Yap trma Komutlar . . . . . s 4.5. Saysal Argmanlarn Belirtilmesi . . . . 4.6. Readline Sizin Yerinize Yazsn . . . . . . 4.7. Klavye Makrolar . . . . . . . . . . . . . 4.8. e itli Komutlar . . . . . . . . . . . . . . s 5. Readline vi Kipi . . . . . . . . . . . . . . . . . 6. Programlanabilir Tamamlama . . . . . . . . . 7. Programlanabilir Tamamlama Yerlesikleri . . 7.1. Compgen Yerle igi . . . . . . . . . . . . s 7.2. Complete Yerle igi . . . . . . . . . . . . s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 88 88 89 89 90 90 90 91 91 93 95 96 98 98 98 99 100 101 102 103 103 105 105 107 107 107

Bu oylumda GNU komut satr dzenleme arayznn temel zelliklerinden sz edilecektir. Komut satr dzenlemesi, Bashin de aralarnda oldugu pek ok uygulamann kullandg, Readline ktphanesi tarafndan saglanr.

1. Satr Dzenlemeye Giris


Tu larla ilgili olarak kullanlan nitelemeler a agda aklanm tr. s s s

Ck grdgnz yerde bu dizgeyi KontrolK olarak okuyacaksnz ve Ctrl tu u baslyken k tu una da s s


basmanz gerektigini anlayacaksnz.

Mk grdgnz yerde ise bu dizgeyi MetaK olarak okuyacaksnz ve bo luk tu unun solunda bulunan Alt s s tu u basl iken k tu una da basmanz gerektigini anlayacaksnz. s s
s s s s s Bo luk tu unun solundaki Alt tu u Meta tu u olarak da bilinir. Bo luk tu unun sagndaki AltGr tu u ise baz s s klavyelerde Meta tu u olabildigi gibi Trk klavyelerinde oldugu gibi tu lara atanan ek karakterler iin de kullanlr. s s Bu bakmdan Meta tu u denilince soldaki Alt tu undan bahsedildigini anlayacagz. s s Baz klavyelerde bu iki tu bulunmayabilir ya da onlara farkl grevler atanm olabilir. Bu gibi durumlar iin s s s s s ba vulurulabilecek bir tu daha vardr: Esc tu u. Yalnz Esc tu u Alt tu u gibi kullanlmaz. Mk iin Esc s s

http://belgeler.org

Linux Kitaplg

87 / 142

GNU Bash Basvuru Klavuzu

tu una bir kere basp braktktan sonra k tu una basmalsnz. Her iki i leme k tu unun telenmesi de denir s s s s (metafying).

MCk grdgnz yerde bu dizgeyi MetaKontrolk olarak okuyacaksnz ve Alt ile Ctrl tu larna basl s iken k tu una da basmanz gerektigini anlayacaksnz. Bu i leme Ck telemesi de denir. s s
s s Bunlara ek olarak baz tu larn kendi isimleri kullanlm tr. zellikle DEL (silme tu u), ESC (teleme tu u), LFD, s s SPC (bo luk tu u), RET (return veya enter tu u) ve TAB (sekme tu u) tu lar ilerleyen blmlerde ve init s s s s s dosyasnda (Readline Ilklendirme Dosyas (sayfa: 90) blmne baknz) bu isimlerle geer. Klavyenizde LFD tu u yoksa Cj tu layarak bu tu un i levselligine eri ebilirsiniz. s s s s s

2. Readline Etkilesimi
Bir etkile imli oturumda satra uzunca bir metin girdiginizde ogunlukla sadece ilk szcg yanl yazdgnzda s s uyarlrsnz. Readline ktphanesi bu gibi durumlarda hatal yazdgnz metni yeniden yazmadan kolayca degi tirebilmenizi saglayan baz komutlara sahiptir. Bu dzenleme komutlarn kullanrak imleci dzeltme s yaplacak yere gtrebilir, hatal ksm silebilir ve silinen yere dogrusunu yazabilirsiniz. Dzeltmeyi bitirdiginizde metnin neresinde olursanz olun basite RET tu una bastgnzda satrn tm kabul edilir. s

2.1. Readlinen Yaln z


Satra karakterleri girmek isterseniz basite onlar yazarsnz. Yazlan karakterler imlecin oldugu yerde grnr ve siz yazdka imle hep sagdaki bo luga kayar. Bir karakteri yanl yazarsanz, silme tu larn kullanarak onu s s s yerinde ya da geriye dogru silebilirsiniz. Bazan yanl yazlm bir karakteri ge farkedersiniz ya da ba ka karakterleri yazdktan sonra bir hata uyars s s s s s alrsnz. Bu durumda Cb tu layarak satr zerinde sola ilerleyip hatal yeri dzelttikten sonra Cf tu layarak kaldgnz yere geri dnebilirsiniz. Bir satrn ortasna bir ka szck eklemek isterseniz, imle saga ilerledike imlecin sagndaki karakterlerde saga dogru telenerek gireceginiz metin iin yer alr. Tersine olarak, arada kalan bir metni sildiginizde, alan bo luk sagdaki karakterlerin sola telenmesiyle doldurulur. s Girdi satrndaki metni dzenlemek iin kullanlan temel tu lar: s

Cb
mle bir karakter sola gider. I

Cf
mle bir karakter saga gider. I

DEL veya Gerisilme


mlecin solundaki karakteri siler. I

Cd
mlecin altndaki karakteri siler. I baslan karakterler mlecin oldugu yerde satra eklenir. I

C_ veya Cx Cu
Son yaplan dzeltmeleri geri alr. Geri ala ala bo satra kadar gidilebilir. s

http://belgeler.org

Linux Kitaplg

88 / 142

GNU Bash Basvuru Klavuzu

Klavye yaplandrmanza bagl olarak, imlecin altndaki karakteri silen Cd yerine DEL tu u kullanlabilir (Trk s klavye yaplandrmas byledir).

2.2. Readline Hareket Tuslar


Bir nceki blmde bahsedilen tu lar, girdi satr zerinde yapacagnz dzenlemelerde kullanabileceginiz en s s s temel tu lard. Rahatnz iin Cb, Cf, Cd ve DEL tu larna ek olarak ba ka komutlar da bulunur. s

Ca
mle satrn ba na gider. I s

Ce
mle satrn sonuna gider. I

Mf
mle bir szck ileri gider. Harf ya da rakam olmayan karakterler szckten saylmaz, onlara bo luk gibi I s davranlr.

Mb
mle bir szck ileri gider. Harf ya da rakam olmayan karakterler szckten saylmaz, onlara bo luk gibi I s davranlr.

Cl
Son satr tepede kalacak sekilde ekran yukar kaydrlr (ekran temizlenir). Dikkat ettiyseniz Cf imleci bir karakter saga kaydrrken, Mf imleci bir szck saga kaydrmaktadr. Bir teaml s s olarak Ctrl ile baslan tu lar karakterlerle Alt ile baslan tu lar szcklerle ilgilidir.

2.3. Readline Kes ve Yapstr Komutlar


Kesmek satrdaki metni silmek ama silerken daha sonra kullanmak zere saklamaktr. Yap trmak ise kesilen s metni satra yerle tirmektir. s Bir komut aklamasnda kesmekten bahsediliyorsa, bu metnin satrda ayn yerde ya da farkl bir yerde tekrar kulanabileceginiz anlamna gelir. Bir metni kestiginizde metin panoya kopyalanr. Metin iinde ard k yaplan kesmeler, satr zerinde kesildigi s srada birlikte tutulur. rnegin "aaa bbb ccc ddd" satrnda srayla "aaa", "bbb", "ddd" kesilmi se metni panodan s istediginizde "aaa bbb" ile "ddd" seklinde iki kesme ( degil) bulundugunu grrz. Ancak pano satra zel degildir. Bir satrdan kesilen bir metin ba ka bir satra yap trlabilir. s s Metinleri kesmek iin kullanlan komutlar:

Ck
Metni imle konumundan satrn sonuna kadar keser.

Md
Metni imle konumundan szcgn sonuna kadar keser. mle iki szcgn arasndaysa, metin sonraki I szcgn sonuna kadar kesilir. Szck snrlar Mf ile ayndr.

MDEL
Metni szck ba langcndan imlece kadar keser. mle iki szcgn arasndaysa, metin nceki szcgn s I ba na kadar kesilir. Szck snrlar Mf ile ayndr. s

Cw

http://belgeler.org

Linux Kitaplg

89 / 142

GNU Bash Basvuru Klavuzu

Metni imle konumundan nceki bo luga kadar keser. Buradaki szck snrlar MDELdeki snrlardan s farkldr. Burada metnin satra nasl yap trlacagndan bahsedilecektir. Yap trmak, panodaki son metni satra kopyalas s maktr.

Cy
Son kesilen metni imle konumunda satra yerle tirir. s

My
Her My pano ierigindeki kesmelerden bir ncekinin seilmesini saglar. Pano ierigi My ile srekli dndrlr. Bu i lem sadece nceki komut Cy ya da My ise uygulanr. s

2.4. Readline Argmanlar


Readline komutlarna saysal argmanlar aktarlabilir. Bu argmanlar bazan bir yineleme, bazan bir argmann nem derecesini gsteren bir i aret olarak ele alnr. Negatif bir argman, normalde ileri ynde bir eylem olu turan s s bir komutta ters ynde bir eyleme sebep olacaktr. rnegin bir metni imle konumundan satrn ba na kadar s kesmek isterseniz M Ck komutunu verebilirsiniz. Bir komuta saysal argmanlar aktarmann genel yolu komuttan nce rakam telemesi yapmaktr. Bir saydan nce bir eksi i areti () koyarsanz, argmann i areti negatif olur. Bir rakam telemesinden sonra sayy tamams s lamak iin kalan rakamlar tek ba na tu lanr ve ardndan komut tu lanr. rnegin Cd komutuna 10 argmann s s s s vermek iin M1 0 Cd tu lanr ve girdi satrnda imle konumundan itibaren 10 karakter silinir.

2.5. Gemis iinde Komutlarn Aranmas


Readline komut gemi inde belirtilen bir dizgeyi aramak iin komutlara sahiptir (Bashin Gemi sel Yetenekleri s s ki arama kipi vardr: arttrml ve arttrmsz. (sayfa: 111) blmne baknz). I Arttrml arama, kullanc aranacak dizgeyi yazmaya ba ladg anda ba lar. Karakterler yazldka, Reads s line yazlan dizge ile e le en bir sonraki gemi girdisini gsterir. Bir arttrml arama, istenen gemi girs s s s disini bulmay saglayacak kadar karakterin yazlmasn gerektirir. Bir dizgeyi gemi te geriye dogru aramay s ba latmak iin Cr tu layn. Cs aramay ileri ynde ba latr. Arttrml aramay sonlandracak karakterler s s s isearchterminators degi keninde tutulur. Degi kene bir deger atanmam sa, ESC ve CJ bir arttrml s s s aramay sonlandracaktr. Cg aramay iptal ederek zgn satra dnlmesini saglar. Arama sonlandrldgnda aramann sonucu olan girdi komut satr haline gelir. Gemi listesinde diger e le meleri bulmak iin aramay hangisiyle ba lattgnza bagl olarak Cr ya da Cs s s s s tu layabilirsiniz. Bu, yazdgnz arama dizgesine bagl olarak ileri veya geri ynde e le en diger gemi girdilerini s s s s taramanz saglar. Readline komutu olan herhangi bir tu lama aramay sonlandrr ve komutu al trr. rnegin, s s RET tu u aramay sonlandrp satrn kabul edilmesini ve gemi listesindeki komutun al trlmasn saglar. s s s Bir hareket komutu aramay sonlandracak, bulunan son satr komut satr yapacak ve satr dzenlemesini ba latacaktr. s Readline son arttrml arama dizgesini hatrlar. Pe pe e iki Cr girerseniz, hatrdaki arama dizgelerinden biri s s kullanlr. Arttrmsz arama, e le en gemi satrn aramaya ba lamadan nce arama dizgesinin tamamn okur. Arama s s s s dizgesi kullanc tarafndan yazlm ya da o anki satrn iindeki bir para olabilir. s

3. Readline lklendirme Dosyas I

http://belgeler.org

Linux Kitaplg

90 / 142

GNU Bash Basvuru Klavuzu

Readline ktphanesi kurulumda ntanml olarak Emacs benzeri tu ksayollar ile gelmekle birlikte, farkl s tu ksayollar ile de kullanmak mmkndr. Bir kullanc, teaml olarak ev dizininde bulunan bir inputrc s dosyasna yerle tirdigi komutlarla Readlinen kullanldg uygulamalar ki iselle tirebilir. Bu dosyann ismi s s s bir kabuk degi keni olan INPUTRC degi keninden alnr. Bu degi ken atanmam sa dosyann ntanml s s s s ismi /.inputrcdir. Bu dosya mevcut degilse vela okunamyorsa, eninde sonunda baklacak dosya /etc/inputrc dosyasdr. Readline ktphanesini kullanan bir uygulama ba latldgnda ilklendirme dosyas okunur ve tu ksayollar s s atanr. Ek olarak, Cx Cr komutu bu ilklendirme dosyasnn tekrar okunmasn saglar, bylece dosyann okun masndan sonra dosyada degi iklik yapldgnda bu degi ikliklerin etkinle tirilmesi saglanm tr. s s s s

3.1. Readline lklendirme Dosyasnn Szdizimi I


Readline ilklendirme dosyasnda izin verilen bir ka temel yap vardr. Bo satrlar yoksaylr. # ile ba layan s s satrlarda aklamalar verilebilir. $ ile ba layan satrlar ko ullu yaplardr (Ko ullu Ilklendirme Yaplar (sayfa: 95) s s s blmne baknz). Diger satrlar degi ken atamalar ve tu ksayollar olarak ele alnr. s s 3.1.1. Degisken Atamalar Readlinen al ma an davran larn, Readline degi kenlerine ilklendirme dosyasnda set komutuyla deger s s s atayarak degi tirebilirsiniz. Szdizimi basittir: s
set de i ken de er gs g

Burada, rnegin ntanml Emacs benzeri tu ksayollarn vi satr dzenleme komutlar ile degi tirmek iin s s komutu syle yazabilirsiniz:
set editingmode vi

Degi ken isimleri ve degerleri uygun kullanldgnda harf byklklerine baklmakszn tannr. Bilinmeyen s degi ken isimleri yoksaylr. s Mantksal degi kenlerden (ak veya kapal olabilenler) degerleri bo , null, on (harf byklg nemsiz) veya 1 s s olanlar ak (on) kabul edilir; bunlarn d ndaki herhangi bir degere sahip olanlar kapal (off) kabul edilir. s

bind V (sayfa: 43) komutu o anki Readline degi ken isimlerini ve degerlerini listeler. s
al ma an davran larnn byk ksm a agdaki degi kenlerle degi tirilebilir: s s s s s

bellstyle
Readline ubirim ann aldrmak istediginde neler olacagn kontrol eder. Deger olarak none atanrsa, an hi almaz. visible atanrsa ve bir grnr an kullanlabilir durumdaysa Readline kullanr. audible atanrsa (ntanmldr), Readline ubirim ann almaya al r. s

bindttyspecialchars Degeri on ise Readline, ekirdegin ubirim srcs tarafndan zel olarak ele alnan kontrol karakterlerini
Readline e degerlerine baglamaya al r. s s

commentbegin insertcomment komutu al trldgnda satrn ba na yerle tirilecek dizge. ntanml degeri: "#". s s s completionignorecase on degeri atanrsa, Readline harf byklgne duyarl dosyaismi e le tirmesi ve tamamlamas uygular. s s ntanml degeri: off. http://belgeler.org
Linux Kitaplg 91 / 142

GNU Bash Basvuru Klavuzu

completionqueryitems
Kullancya olaslklarn listesini grmek isteyip istemedigi sorulurken saptanan olas tamamlamalarn says. Olas tamamlamalarn says bu degerden yksekse Readline kullancya onlar grmek isteyip istemedigini soracaktr; aksi takdirde, basite listelenecektir. Bu degi kene sfrdan byk ya da e it bir s s tamsay atanabilir. Negatif bir deger asla sorulmayacak anlamna gelir. ntanml degeri: 100.

convertmeta on degeri atanrsa, Readline karakterlerin sekizinci bitini ayrp sekizinci bite bir ASCII tu dizisi atayarak ve s onlar meta nekli tu dizisine eviren ESC karakteri ile nceleyerek karakterleri dn trecektir. ntanml s s degeri: on. disablecompletion On degeri atandgnda, Readline szck tamamlamasn iptal eder. Tamamlama karakterleri nasl girildiyse o sekilde satra yerle tirilir. ntanml degeri: off. s editingmode editingmode degi keni kullanlan ntanml tu ksayollarnn kipini kontrol eder. ntanml olarak s s
Readline tu ksayollar Emacsnkine ok benzeyen Emacs dzenleme kipinde ba lar. Bu degi kene ya s s s emacs ya da vi atanabilir.

enablekeypad on degeri atandgnda, Readline uygulama agrldgnda saysal tu takmn etkinle tirmeye al acaktr. s s s
Baz sistemler ok tu larnn kullanlabilmesi iin saysal tu takmnn etkinle tirilmesine ihtiya duyar. s s s ntanml degeri: off.

expandtilde on degeri atanrsa, Readline szck tamamlamas yapmaya al rken yakla k yorumlamas uygular. s s ntanml degeri: off. historypreservepoint on degeri atanrsa, komut gemi i kodu imleci previoushistory veya nexthistory ile alnan s her gemi satrnda ayn konuma yerle tirmeye al r. ntanml degeri: off. s s s horizontalscrollmode on degeri atanrsa, dzenlenen metnin satrlarnn uzunlugu ekran geni liginden fazlaysa imleci bir alt s satra indirmek yerine, satr kaydrlr. ntanml degeri: off. inputmeta on degeri atanrsa, ubirimin destek iin ne gerektirdigine baklmakszn, Readline sekiz bitlik girdileri s s etkinle tirir (okunurken sekizinci bit temizlenmeyecektir). metaflag bu degi kenle e anlamldr. ns tanml degeri: off. isearchterminators
Bir arttrml aramay sonlandracak karakter dizisi (Gemi iinde Komutlarn Aranmas (sayfa: 90) s blmne baknz). Bu degiken bir degerle atanmam sa bir arttrml arama ESC ve CJ ile sonlandrlr. s

keymap
Tu s iin kullanlacak tu e lemi atanr. Kabul edilen tu e lemi isimleri emacs, s s s s emacsstandard, emacsmeta, emacsctlx, vi, vimove, vicommand ve viinsert. vi ile vicommand ve emacs ile emacsstandard e degerdir. ntanml degeri emacsdr. Ayrca s editingmode degi keni de ntanml tu e lemini etkiler. s s s ksayollar

http://belgeler.org

Linux Kitaplg

92 / 142

GNU Bash Basvuru Klavuzu

markdirectories on degeri atanrsa tamamlanm dizin isimlerine bir / eklenir. ntanml degeri: on. s markmodifiedlines on degeri atanrsa, degi tirilmi gemi satrlarn Readline ba na bir * ekleyerek gsterir. ntanml s s s s degeri: off. marksymlinkeddirectories on yaplrsa, dizinlere sembolik bag olan tamamlanm isimlere bir / eklenmi olur (markdirectories s s degerine konu). ntanml degeri: off. matchhiddenfiles on degeri atanrsa, dosyaismi tamamlamas uygularken, dosyaisminin tamamlanmasnda ba taki . kul s lanc tarafndan verilmedike, Readlinen . ile ba layan dosya isimlerini e le tirmesini saglar. ntanml s s s degeri: on. outputmeta on degeri atanrsa Readline, karakterleri bir meta nekli teleme dizileri olarak degil sekizinci biti etkin olarak gsterecektir. ntanml degeri: off. pagecompletions on yaplrsa, Readline olas tamamlamalar bir defada bir tam ekran gstermek iin more benzeri bir dahili sayfalayc kullanr. ntanml degeri: on. printcompletionshorizontally on degeri atanrsa, Readline tamamlamalarla e le meleri ekranda yukardan a ag dizmek yerine alfabetik s s s srada yanyana gsterecektir. ntanml degeri: off. showallifambiguous
Tamamlama i levlerinin ntanml davran n degi tirir. on degeri atanrsa, birden fazla olas tamamlamas s s s olan szcklerin e le melerinin an aldrmak yerine listelenmesini saglar. ntanml degeri: off. s s

showallifunmodified
Tamamlama i levlerinin ntanml davran larn showallifambiguousa benzer bir sekilde degi tirir. s s s Degeri on yaplrsa herhangi bir ksmi tamamlama olmakszn (olas tamamlamalar ortak bir nek payla mazlar) tek olas tamamlamadan fazlasna sahip szckler an aldrmak yerine e le enlerin s s s hemen listelenmesine sebep olur. ntanml degeri: off.

visiblestats on degeri atanrsa, dosya trn gsteren bir karakter, olas tamamlamalar listelenirken dosya ismine eklenir. ntanml degeri: off.
3.1.2. Tus Ksayollar lklendirme dosyasnda tu ksayollarnn kontrol edilmesi iin kullanlan szdizimi basittir. nce degi tirmek I s s istediginiz komutun ismini bulmanz gerekir. A agda komut isimlerini, ntanml tu ksayollarn ve varsa ko s s mutun ne yaptgn anlatan bir ksa aklamann da bulundugu bir liste bulacaksnz. Komutun ismini grendikten sonra, ilklendirme dosyasnda bir satra, nce komuta ksayol olarak atayacagnz s s s tu un ismini yazn, bir : i areti koyun ve komutun ismini yazn. Tu un ismi ile ikinokta imi arasnda bo luk s olmayabilir, bu durumda ikinokta imi tu isminin bir paras olarak yorumlanr. Tu un ismini kolaynza gelen s s farkl yollarla ifade edebilirsiniz.

http://belgeler.org

Linux Kitaplg

93 / 142

GNU Bash Basvuru Klavuzu

Komut isimlerine ek olarak, Readline tu lara basldgnda bir dizge basmalarn saglamak zere bir dizge atans masna da izin verir (bir makro).

bind p komutu (sayfa: 43) Readline i lev isimleri ve ksayollarn bir ilklendirme dosyasna dogrudan konus
labilecek biemde gsterir.

tuismi: ilevismi veya makro s s tuismi, bir tu un ngilizce ismidir. rnek: s s I


Controlu: universalargument MetaRubout: backwardkillword Controlo: "> kt"

Bu rnekte, Cu tu larna universalargument i levi, MDEL tu larna backwardkillword s s s i levi ve Co tu larna al trlacak bir makro (satra > kt dizgesini girer) atanm tr. s s s s Tu ksayollarn tanmlarken kullanlabilecek sembolik karakter isimlerinin szdizimleri: DEL, ESC, ESs CAPE, LFD, NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC ve TAB. "tu dizisi": i levismi veya makro s s tudizisi tuisminden dizgenin ift trnak iine alnm olmas ile farkldr. Baz GNU Emacs tarz tu s s s s telemeleri a agdaki rnekteki gibi kullanlabilmesine kar n zel karakter isimleri kullanlamaz. s s
"\Cu": universalargument "\Cx\Cr": rereadinitfile "\e[11": "lev tuu 1" Is s

Bu rnekte, Cu tu larna universalargument i levini (ilk rnekteki gibi), Cx Cr tu larna s s s rereadinitfile i levini ve ESC [ 1 1 ise lev tuu 1 metnini girmek zere s Is s atanm tr. s A agdaki GNU Emacs tarz tu telemeleri, tu dizilerini belirtirken kullanlabilir: s s s

\C
Kontrol neki

\M
Meta neki

\e
teleme karakteri

\\
tersbl

\"
", bir ift trnak i areti s GNU Emacs tarz tu telemelerine ek olarak, tersbl ncelemeli karakterler de mevcuttur: s

\a
sesli uyar (bell)

\b
gerisilme

\d
silme

\f http://belgeler.org
Linux Kitaplg 94 / 142

GNU Bash Basvuru Klavuzu

sayfa ilerletme

\n
satrsonu

\r
satrba s

\t
yatay sekme

\v
d ey sekme s

\nnn
sekizlik degeri nnn olan sekiz bitlik karakter (1, 2 ya da 3 haneli olabilir).

\xHH
onaltlk degeri HH olan sekiz bitlik karakter (1 ya da 2 haneli olabilir). Bir makro metnini girerken, bir makro tanmn belirtmek iin ift ya da tek trnaklar arasna alnmaldr. Trnaksz metinler bir i lev ismi olarak kabul edilir. Makro gvdesinde tersbl ncelemeli karakterler yukarda aklandg s gibi yorumlanr. Makro metni iindeki trnak iine alnm yerlerde trnak i aretleri " ve tersbl ile ncelens s melidir. rnegin a agdaki atama Cx \ tu laryla bir tek \ basar: s s
"\Cx\\": "\\"

3.2. Kosullu lklendirme Yaplar I


Readline, C ni lemcisinin ko ullu derleme zelliklerine benzer testlerin sonucu olarak uygulanacak tu s s s ksayollar ve degi ken atamalarna izin veren bir ara saglar. Kullanlan drt zmleyici ynerge vardr. s

$if $if yaps, Readline kullanan uygulamalar, kullanlan ubirim ve dzenleme kipi zerine tabanlanm s
ksayollar yaplmasna izin verir. Test metni satr sonuna kadar uzar; onu izole etmek iin bir karaker gerekmez.

mode $if ynergesinin mode= snamas Readlinen emacs kipinde mi yoksa vi kipinde mi oldugunu test etmekte kullanlr. Bu, set tuelemi komutu ile birlikte kullanlabilir, rnegin, Reads s line sadece emacs kipinde ba latldgnda ksayollarn emacsstandard ve emacsctlx s
tu e lemlerine ayarlanmas gibi. s s

term term= snamas ubirime zel tu ksayollarn iermekte, belki de tu dizilerinin ktsn ubirimin s s s i lev tu larna gre baglamakta kullanlabilir. = i aretinin sagndaki szck hem ubirimin tam ad s s hem de ilk den nceki parasnda test edilir. Bu, rnegin sun szcgnn hem sun hem de suncmd ile e le mesine izin verir. s s uygulama uygulama snamas uygulamaya zel ayarlarn ierilmesinde kullanlr. Readline ktphanesini
kullanan her program uygulama ismini belirler ve bir ksmi deger iin test yapabilirsiniz. Bu, tu s dizilerini belli bir program iin kullan l olan i levlere baglamakta kullanlmaldr. rnegin, a agdaki s s s komut Bashda o anki ya da nceki szcg trnak iine alan bir tu dizisi ekler: s

http://belgeler.org

Linux Kitaplg

95 / 142

GNU Bash Basvuru Klavuzu

$if Bash # imdiki ya da nceki szc trnak iine al S g "\Cxq": "\eb\"\ef\"" $endif

$endif
Bu ynerge yukardaki rnekte de grldg gibi bir $if ynergesini sonlandrmak iin kullanlr.

$else $if ynergesi ba arsz oldugunda bu ynerge altndaki komutlar al trlr. s s $include
Bu ynerge argman olarak tek bir dosyaismi alr ve komutlar ve tu ksayollarn dosyadan okur. rnegin s a agdaki ynerge /etc/inputrc dosyasn okur: s
$include /etc/inputrc

3.3. rnek lklendirme Dosyas I


Buradaki inputrc dosyas rnegi tu ksayollar, degi ken atamalar ve ko ullu szdizimlerini rneklerle s s s aklamaktadr.
# Bu dosya Gnu Readline Ktphanesini kullanan uygulamalar iin # satr girdi dzenlemesi davranlarn kontrol eder. s # Bu uygulamalar FTP, Bash ve Gdbdir. # # inputrc dosyasn Cx Cr ile yeniden okutabilirsiniz. # # ile balayan satrlar aklamadr. s # # nce, sistem genelinde etkin olacak ksayollar ve deiken atamalar g s # /etc/inputrc dosyas ile dosya ieriine dahil edilir. g $include /etc/inputrc # # eitli ksayollar emacs kipinde atanr s set editingmode emacs $if mode=emacs MetaControlh: backwardkillword lev isminden sonraki metin yoksaylr Is

# # Saysal tutakm kipinde ok tular s s # #"\MOD": backwardchar #"\MOC": forwardchar #"\MOA": previoushistory #"\MOB": nexthistory # # ANSI kipinde ok tular s # "\M[D": backwardchar "\M[C": forwardchar "\M[A": previoushistory "\M[B": nexthistory # # 8 bit saysal tutakm kipinde ok tular s s

http://belgeler.org

Linux Kitaplg

96 / 142

GNU Bash Basvuru Klavuzu

# #"\M\COD": backwardchar #"\M\COC": forwardchar #"\M\COA": previoushistory #"\M\COB": nexthistory # # 8 bit ANSI kipinde ok tular s # #"\M\C[D": backwardchar #"\M\C[C": forwardchar #"\M\C[A": previoushistory #"\M\C[B": nexthistory Cq: quotedinsert $endif # Eski tarz bir ksayol. TAB: complete

Bunun ntanml olmas umulur.

# Kabuk etkileimini kolaylatran makrolar s s $if Bash # yolu dzenle "\Cxp": "PATH=${PATH}\e\Ce\Ca\ef\Cf" # trnak iine almak iin hazrla # ardarda iki ift trnak yazar # ve bir karakter geri gider "\Cx\"": "\"\"\Cb" # bir tersbl girer # (tu dizilerindeki tersbl ncelemelerini ve makrolar test etmek iin) s "\Cx\\": "\\" # imdiki ya da nceki szc trnak iine alr S g "\Cxq": "\eb\"\ef\"" # Satr tazeler "\Cxr": redrawcurrentline # Satrdaki deikeni dzenler g s "\M\Cv": "\Ca\Ck$\Cy\M\Ce\Ca\Cy=" $endif # varsa bir grnr an kullanlr set bellstyle visible # okurken karakterlerden 8. biti ayrmaz set inputmeta on # iso* karakterlerin girilmesine izin verir set convertmeta off # karakterleri meta nekli karakterler olarak deil g # sekizinci bitleri dorudan 1 yaplm olarak gsterir g s set outputmeta on # bir szcn tamamlanabilmesi iin 150 den fazla olaslk varsa g # kullancya onlar grmek isteyip istemediini sor g set completionqueryitems 150 # FTP iin $if Ftp "\Cxg": "get \M?"

http://belgeler.org

Linux Kitaplg

97 / 142

GNU Bash Basvuru Klavuzu

"\Cxt": "put \M?" "\M.": yanklastarg $endif

4. Ksayollar iin Readline Komutlar


Bu ksmda, tu dizilerine baglanabilecek Readline komutlar anlatlm tr. Tu ksayollarn bind (sayfa: 43)P s s s komutunu al trarak ya da bir inputrc dosyasnda kullanlabilir biemde bindp komutu ile listeleyes bilirsiniz. Bir tu dizisinin e lik etmedigi komut isimleri ntanml olarak baglantszdr. s s A agdaki aklamalarda nokta o anki imle konumunu, mark ise setmark komutu ile kaydedilmi imle s s konumunu ifade eder. nokta ile mark arasndaki dizge ise blge ile ifade edilmi tir. s

4.1. Hareket Komutlar


beginningofline (Ca)
mle satrn ba na gider. I s

endofline (Ce)
mle satrn sonuna gider. I

forwardchar (Cf)
mle bir karakter ileri gider. I

backwardchar (Cb)
mle bir karakter geri gider. I

forwardword (Mf)
mle bir szck ileri gider. Harf ya da rakam olmayan karakterler szckten saylmaz, onlara bo luk gibi I s davranlr.

backwardword (Mb)
mle bir szck geri gider. Harf ya da rakam olmayan karakterler szckten saylmaz, onlara bo luk gibi I s davranlr.

clearscreen (Cl)
Son satr tepede kalacak sekilde ekran yukar kaydrlr (ekran temizlenir).

redrawcurrentline ()
Satr tazeler. ntanml olarak ksayol atanmam tr. s

4.2. Gemisi Yneten Komutlar


acceptline (Newline veya Return)
mlecin yerine bakmakszn satr kabul eder. Bu bir bo satr degilse, HISTCONTROL ve HISTIGNORE I s degi kenlerinin degerlerine bagl olarak gemi listesine eklenir. Satr degi tirilmi bir gemi satr ise, s s s s s gemi satr orjinal durumuna getirilir. s

previoushistory (Cp)
nceki komut alnarak, gemi listesinde geri gidilir. s

nexthistory (Cn) http://belgeler.org


Linux Kitaplg 98 / 142

GNU Bash Basvuru Klavuzu

Sonraki komut alnarak, gemi listesinde ileri gidilir. s

beginningofhistory (M<)
Gemi teki ilk satra gidilir. s

endofhistory (M>)
Gemi in son satrna gidilir, rnegin, o an girilen satr. s

reversesearchhistory (Cr)
O anki satrdan geriye dogru ve gerekliyse gemi te yukar hareketle arama yaplr. Bu bir arttrml s aramadr.

forwardsearchhistory (Cs)
O anki satrdan ileriye dogru ve gerekliyse gemi te a ag hareketle arama yaplr. Bu bir arttrml ara s s madr.

nonincrementalreversesearchhistory (Mp)
O anki satrdan geriye dogru ve gerekliyse kullanc tarafndan verilen bir dizge iin bir arttrmsz arama kullanlarak gemi te yukar hareketle arama yaplr. s

nonincrementalforwardsearchhistory (Mn)
O anki satrdan ileriye dogru ve gerekliyse kullanc tarafndan verilen bir dizge iin bir arttrmsz arama kullanlarak gemi te a ag hareketle arama yaplr. s s

historysearchforward ()
O anki satrn ba ndan imle konumuna kadar olan metin iin gemi te ileri dogru arama yaplr. Bu bir s s arttrmsz aramadr. ntanml olarak ksayol atanmam tr. s

historysearchbackward ()
O anki satrn ba ndan imle konumuna kadar olan metin iin gemi te geriye dogru arama yaplr. Bu s s bir arttrmsz aramadr. ntanml olarak ksayol atanmam tr. s

yankntharg (MCy)
lk argman nceki komuta imle konumunda yerle tirir (genellikle nceki satrn ikinci szcg). Bir I s n argman ile, nceki komutun n. szcg olarak yerle tirilir (nceki satrdaki szckler ilk szck 0 s kabul edilerek saylr). Bir negatif argman ile, nceki komutun sonundan n. szck olarak yerle tirilir. n. s argman bir kere hesapland m !n gemi yorumlamas belirtilmi gibi argman elde edilir, s s

yanklastarg (M. veya M_)


Son argman nceki komuta yerle tirir (nceki gemi girdisindeki son szck). Bir argman ile s s yankntharg aklamasndaki gibi davranr. Pe pe e yaplan agrlarla gemi listesinde geriye dogru s s s gidilirken her satra son argman yerle tirilir. Gemi yorumlama olu umlar son argman elde etmek iin s s s !$ gemi yorumlamas belirtilmi gibi kullanlr. s s

4.3. Metni Degistirmek iin Komutlar


deletechar (Cd)
mle konumunda karakteri siler. mle satrn ba langcnda ise, satrda hi karakter yoksa ve son karakter I I s deletechara bagl degilse EOF dner.

backwarddeletechar (Rubout) http://belgeler.org


Linux Kitaplg 99 / 142

GNU Bash Basvuru Klavuzu

mlecin arkasndaki karakteri siler. Bir saysal argman karakterlerin silinmesini degil kesilmesini saglar. I

forwardbackwarddeletechar ()
mle satrn sonunda olmadka, imlecin altndaki karakteri siler. mle satrn sonundaysa imlecin I I arkasndaki karakter silinir. ntanml olarak bir tu a atanmam tr. s s

quotedinsert (Cq veya Cv)


Sonraki karakteri yazlan satra aynen ekler. Bu Cq gibi bir tu dizilerinin girilmesi gibidir. s

selfinsert (a, b, A, 1, !, ...)


Kendini yerle tirir. s

transposechars (Ct)
mle arkasndaki karakteri pe inden ileri dogru bir karakter srkler. mle satrn sonundaysa, son iki I s I karakter yer degi tirir. Negatif argmanlar etkisizdir. s

transposewords (Mt)
mle ncesindeki szcg pe inden bir szck ileri srkler. mle satrn sonundaysa son iki szck yer I s I degi tirir. s

upcaseword (Mu)
mlecin zerindeki (ya da sonrasndaki) szcgn hareri byk harfe evrilir. Bir negatif argman ile, I nceki szck byk hari yaplr ama imle hareket etmez.

downcaseword (Ml)
mlecin zerindeki (ya da sonrasndaki) szcgn hareri kk harfe evrilir. Bir negatif argman ile, I nceki szck kk hari yaplr ama imle hareket etmez.

capitalizeword (Mc)
mlecin zerindeki (ya da sonrasndaki) szcgn ba harni byk harfe evrilir. Bir negatif argman ile, I s nceki szcgn ba har byk harfe evrilir ama imle hareket etmez. s

overwritemode ()
steyazma kipini aar kapar. Dogrudan bir pozitif saysal argman ile steyazma kipine geer. Dogrudan bir pozitif olmayan saysal argmanla ekleme kipine geer. Bu komut sadece emacs kipini etkiler; vi kipinde bu i lem farkl yaplr. Her readline() agrs ekleme kipini ba latr. s s steyazma kipinde, selfinserte bagl karakterler metni saga itmek yerine ayn noktadaki metinle degi tirilir. backwarddeletechara bagl karakterler imlecin ncesindeki karakteri bo lukla s s degi tirir. s ntanml olarak bu komut bir tu a baglanmam tr. s s

4.4. Kesme ve Yapstrma Komutlar


killline (Ck)
mle konumundan satrn sonuna kadar keser. I

backwardkillline (Cx Rubout)


mle konumundan satrn ba na kadar keser. I s

unixlinediscard (Cu) http://belgeler.org


Linux Kitaplg 100 / 142

GNU Bash Basvuru Klavuzu

mle konumundan satrn ba na kadar keser. I s

killwholeline ()
Satrn tamamn keser, imle konumundan bagmszdr. ntanml olarak ksayol atanmam tr. s

killword (Md)
mle konumundan szcgn sonuna kadar keser, imle iki szcgn arasndaysa sonraki szcgn I sonuna kadar keser. Szck snrlar forwardword ile ayndr.

backwardkillword (MDEL)
Metni szck ba langcndan imlece kadar keser. mle iki szcgn arasndaysa, metin nceki szcgn s I ba na kadar kesilir. Szck snrlar backwardword ile ayndr. s

unixwordrubout (Cw)
Metni konumundan nceki bo luga s backwardkillworddeki snrlardan farkldr. imle kadar keser. Buradaki szck snrlar

unixfilenamerubout ()
Szck snrlar olarak bo luk ve / karakterini kullanarak imlecin arkasndaki szcg keser. Kesilen metin s kesme zincirine kaydedilir.

deletehorizontalspace ()
mlecin evresindeki tm bo luklar ve sekmeleri siler. ntanml olarak ksayol atanmam tr. I s s

killregion ()
Blgedeki metni keser. ntanml olarak ksayol atanmam tr. s

copyregionaskill ()
Blgedeki metni keser. ntanml olarak ksayol atanmam tr. s

copybackwardword ()
mleten nceki szcg keser. Szck snrlar backwardword ile ayndr. ntanml olarak ksayol I atanmam tr. s

copyforwardword ()
mleten sonraki szcg keser. Szck snrlar forwardword ile ayndr. ntanml olarak ksayol I atanmam tr. s

yank (Cy)
Son kesilen metni imle konumunda satra yerle tirir. s

yankpop (My) Her yankpop pano ierigindeki kesmelerden bir ncekinin seilmesini saglar. Pano ierigi yankpop ile srekli dndrlr. Bu i lem sadece nceki komut yank ya da yankpop ise uygulanr. s

4.5. Saysal Argmanlarn Belirtilmesi


digitargument (M0, M1, ... M)
Rakam evvelce ba latlm argmana ekler ya da bir yeni argman ba latr. M bir negatif argman s s s ba latr. s

universalargument () http://belgeler.org
Linux Kitaplg 101 / 142

GNU Bash Basvuru Klavuzu

Bu bir argman belirtmenin diger yoludur. Bu komuttan sonra bir veya daha fazla rakam ver ilirse, istemlik bir eksi i aretiyle, bu rakamlar argman tanmlar. Komuttan sonra rakamlar verilmi se s s universalargumentn tekrar al trlmas saysal argmanla biter, ama ba ka trl yoksaylr. zel s s bir durum olarak bu komuttan sonra bir rakam ya da eksi i areti olarak bir karakter verilirse sonraki komut s iin argman says drt ile arplr. Argman says dahili olarak birdir, yani bu i levin ilk defa al trlmas s s argman saysn drt yapar, bir ikincisi argman saysn 16 yapar ve byle gider. ntanml olarak ksayol atanmam tr. s

4.6. Readline Sizin Yerinize Yazsn


complete (TAB)
mlecin arkasndaki metne tamamlama uygulamaya al r. Uygulanan asl tamamlama uygulamaya I s zeldir. Bash, metni dndrlen bir degi ken (metin $ ile ba lyorsa), kullanc ismi (metin ile ba lyorsa), s s s konak ismi (metin @ ile ba lyorsa) ya da komut (takma adlar ve i levler) olarak ele alp tamamlamaya s s al r. Eger bunlardan hibiri bir e le me saglamazsa, dosyaismi tamamlamas yaplmaya al lr. s s s s

possiblecompletions (M?)
mlecin arkasndaki metnin olas tamamlamalarn listeler. I

insertcompletions (M*)
mlecin arkasndaki metnin possiblecompletions tarafndan retilmi olan tm tamamlamalarn I s yerle tirir. s

menucomplete () completee benzer ancak, tamamlanacak szck ile olas tamamlamalar listesindeki tek bir e le me s s yer degi tirilir. menucomplete pe pe e al trlrsa olas tamamlamalar listesi zerinde adm adm s s s s
dola larak her e le me tek tek satra yerle tirilir. Tamamlamalar listesinin sonuna gelindiginde an alar s s s s (bellstyle atamasna bagl olarak) ve orjinal metne dnlr. Bir n argman e le enler listesinde n s s adm ileri gidilmesini saglar; argman negatifse listede n adm geri gidilir. Bu komut TAB iin d nlm tr s s ancak ntanml olarak atanmam tr. s

deletecharorlist ()
mle satrn ba nda ya da sonunda degilse imlecin altndaki karakteri siler (deletechar gibi). Satrn I s sonunda possiblecompletionsa zg davranr. Bu komuta ntanml olarak bir ksayol atanmam tr. s

completefilename (M/)
mlecin arkasndaki metne dosyaismi tamamlamas yapmaya al r. I s

possiblefilenamecompletions (Cx /)
mlecin arkasndaki metni bir dosyaismi olarak ele alp, olas tamamlamalarn listeler. I

completeusername (M)
mlecin arkasndaki metni bir kullanc ismi olarak ele alp, tamamlamaya al r. I s

possibleusernamecompletions (Cx )
mlecin arkasndaki metni bir kullanc ismi olarak ele alp, olas tamamlamalarn listeler. I

completevariable (M$)
mlecin arkasndaki metni bir kabuk degi keni olarak ele alp, tamamlamaya al r. I s s

possiblevariablecompletions (Cx $) http://belgeler.org


Linux Kitaplg 102 / 142

GNU Bash Basvuru Klavuzu

mlecin arkasndaki metni bir kabuk degi keni olarak ele alp, olas tamamlamalarn listeler. I s

completehostname (M@)
mlecin arkasndaki metni bir konak ismi olarak ele alp, tamamlamaya al r. I s

possiblehostnamecompletions (Cx @)
mlecin arkasndaki metni bir konak ismi olarak ele alp, olas tamamlamalarn listeler. I

completecommand (M!)
mlecin arkasndaki metni bir komut ismi olarak ele alp, tamamlamaya al r. Komut tamamlamas metni I s srasyla takma adlar, anahtar szckler, kabuk i levleri, kabuk yerle ikleri ve son olarak al trlabilir s s s dosya isimleri ile tamalamaya al r. s

possiblecommandcompletions (Cx !)
mlecin arkasndaki metni bir komut ismi olarak ele alp, olas tamamlamalarn listeler. I

dynamiccompletehistory (MTAB)
mlecin arkasndaki metni gemi listesinin satrlar olan olas tamamlamalarla tamamlamaya al r. I s s

completeintobraces (M{)
Dosyaismi tamamlamas uygular ve olas tamamlamalarn listesini ka l ayralar arasna yerle tirir, bylece s s liste kabuk tarafndan kullanlabilir hale gelir (Ka l Ayralarn Yorumlanmas (sayfa: 23) blmne baknz). s

4.7. Klavye Makrolar


startkbdmacro (Cx ()
Yazlan karakterlerin o anki klavye makrosuna kaydn ba latr. s

endkbdmacro (Cx ))
Yazlan karakterlerin o anki klavye makrosuna kaydn durdurur ve tanm kaydeder.

calllastkbdmacro (Cx e)
Atanan klavye makrosunu, makrodaki karakterler klavyeden yazlm asna basarak yeniden al trr. s s

4.8. esitli Komutlar


rereadinitfile (Cx Cr) inputrc dosyasnn ierigini okur ve burada bulunan degi ken atamalar ve tu ksayollar ile Readline s s
yeniden ilklendirir.

abort (Cg)
o anki dznleme komutundan kar ve ubirim ann alar (bellstyle atamasna bagl olarak).

douppercaseversion (Ma, Mb, Mx, ...)


telenmi karakter x kk harf ise, bu karakterin byk hari kar lgn ieren komutu al trr. s s s

prefixmeta (ESC)
Ardndan yazlan karakteri teler. Bu, bir meta tu u olmayan klavyeler iindir. ESC f ile Mf e degerdir. s s

undo (C_ or Cx Cu)


Arttrml geri alma, her satr iin ayr ayr hatrlanr.

http://belgeler.org

Linux Kitaplg

103 / 142

GNU Bash Basvuru Klavuzu

revertline (Mr)
Bu satrda yaplan tm degi iklikleri geri alr. Bu, satr stnde pe pe e undo komutu girilip tm s s s degi ikliklerin geri alndg duruma bir kerede eri meyi saglar. s s

tildeexpand (M&)
O anki szck stnde yakla k yorumlamas uygular. s

setmark (C@)
Noktay mark yapar. (mle konumunu kaydeder). Bir saysal argman verilirse, belirttigi konum mark I yaplr.

exchangepointandmark (Cx Cx)


Nokta ile mark yer degi tirir. O anki imle kaydedilmi konuma kaydrlr ve eski imle konumu mark olarak s s kaydedilir.

charactersearch (C])
Bir karakter okunur ve imle bu karakterin bulundugu sonraki konuma gider. Bir negatif argman karakteri satrn ba na dogru arar. s

charactersearchbackward (MC])
Bir karakter okunur ve imle bu karakterin bulundugu nceki konuma gider. Bir negatif argman karakteri satrn sonuna dogru arar.

insertcomment (M#)
Bir saysal argman olmakszn commentbegin degi keninin degeri o anki satrn ba na yerle tirilir. s s s Bir saysal argman saglanm sa bu komutun degi tirilmesine sebep olur: eger satrn ba ndaki karakter s s s commentbegin degeri ile e le miyorsa deger yerle tirilir, aksi takdirde commentbegindeki karak s s s ter satrn ba ndan silinir. Her durumda, satr bir satrsonu tu lanm gibi kabul edilir. commentbegin s s s degi keninin ntanml degeri bu komutun o anki satr bir kabuk aklamas yapmasna sebep olur. Eger s bir saysal argman aklama karakterinin silinmesine sebep olursa satr kabuk tarafndan al trlacaktr. s

dumpfunctions ()
Tm i levleri ve bunlarla ili kili tu ksayollarn Readline kt hattna basar. Bir saysal argman verilirse, s s s kt inputrc dosyasnda girdi olarak kullanlabilecek biemde baslr. Bu komuta ntanml olarak bir ksayol atanmam tr. s

dumpvariables ()
Tm atanabilir degi kenleri ve degerlerini Readline kt hattna basar. Bir saysal argman verilirse, kt s inputrc dosyasnda girdi olarak kullanlabilecek biemde baslr. Bu komuta ntanml olarak bir ksayol atanmam tr. s

dumpmacros ()
Readline tu dizilerini ve bunlarn baglandg makrolarla dizgeleri Readline kt hattna basar. Bir saysal s argman verilirse, kt inputrc dosyasnda girdi olarak kullanlabilecek biemde baslr. Bu komuta ntanml olarak bir ksayol atanmam tr. s

globcompleteword (Mg)
mlecin ncesindeki szck bir * rtk olarak eklenerek dosyayolu yorumlamas iin bir kalp olarak ele I alnr. Bu kalp olas tamamlamalar iin e le en dosya isimlerinin bir listesini retmek iin kullanlr. s s

globexpandword (Cx *) http://belgeler.org


Linux Kitaplg 104 / 142

GNU Bash Basvuru Klavuzu

mlecin ncesindeki szck dosyayolu yorumlamas iin bir kalp olarak ele alnarak e le en dosya isimI s s lerinin listesi szckle degi tirilir. Bir saysal argman saglanm sa dosya yorumlamasnn ncesine bir * s s eklenir.

globlistexpansions (Cx g) globexpandword tarafndan retilen yorumlama listesi gsterilir ve satr yeniden olu turulur. Bir s
saysal argman saglanm sa dosya yorumlamasnn ncesine bir * eklenir. s

displayshellversion (Cx Cv)


Bashin al an kopyas hakknda srm bilgisi gsterir. s

shellexpandline (MCe)
Satr kabugun yaptg gibi yorumlar. Bu takma ad ve gemi yorumlamas ile kabuk szck yorumla s malarnn hemen tamamn uygular (Kabuk Yorumlar (sayfa: 22) blmne baknz).

historyexpandline (M)
O anki satra gemi yorumlamas uygular. s

magicspace ()
O anki satra gemi yorumlamas uygular ve bir bo luk girer (Gemi Yorumlamas (sayfa: 113) blmne s s s baknz).

aliasexpandline ()
O anki satra takma ad yorumlamas uygular (Takma Adlar (sayfa: 75) blmne baknz).

historyandaliasexpandline ()
O anki satra gemi ve takma ad yorumlamas uygular. s

insertlastargument (M. or M_) yanklastarg ile e anlamldr. s operateandgetnext (Co)


O anki satr al trmak iin kabul eder ve o anki satra greli sonraki satr dzenlemek iin gemi ten s s alr. Her argman yoksaylr.

editandexecutecommand (CxCe)
O anki komut satr stnde bir metin dzenleyici agrr ve sonucu bir kabuk komutu olarak al trr. Bash s metin dzenleyici olarak srasyla $VISUAL, $EDITOR ve emacs agrmaya al r. s

5. Readline vi Kipi
Readline ktphanesi vinin dzenleme i levlerinin tamamna sahip olmasa da bir satrn dzenlenmesinin s basitligi nedeniyle yeterlidir. Readline vi kipinde POSIX standardnda belirtildigi gibi davranr.

emacs ve vi dzenleme kipleri arasnda etkile imli olarak gei yapmak iin set (sayfa: 49)o emacs ve s s seto vi komutlar kullanlr. Readline ntanml olarak emacs kipindedir. vi kipindeyken bir satr girerseniz, kendinizi i tu una basldgnda girilen zerine yazma kipinde bulursunuz. s ESC tu una basarak komut kipine geersiniz. Bylece standart vi hareket tu lar ile satr dzenleyebilirsiniz. s s rnegin k ile gemi listesindeki nceki satrlara, j ile mteakip satrlara hareket edebilirsiniz. s

6. Programlanabilir Tamamlama
http://belgeler.org
Linux Kitaplg 105 / 142

GNU Bash Basvuru Klavuzu

complete (sayfa: 107) yerle igi kullanlarak etkinle tirilen bir tamamlama belirtiminin (compspec) bir komus s
tun bir argman iin szck tamamlamasnda kullanlmaya al lmas halinde, programlanabilir tamamlama s aralar agrlm olur. s nce komut ismi saptanr. Bu komut iin bir tamamlama belirtimi tanmlanm sa, bu, szcgn olas tamams lamalarn retir. Komut tam dosyayolu belirtilerek verilmi se ilk olarak bu dosyayoluna gre bir tamamlama s belirtimi aranr. Tam dosyayolu iin bir tamamlama belirtimi bulunmuyorsa, son / i aretinden sonraki ksm iin s bir tamamlama belirtimi bulunmaya al lr. s Bir tamamlama belirtimi bir kere bulunduktan sonra, onunla, uygun szcklerin bir listesi retilir. Bir tamamlama belirtimi yoksa, Readline Sizin Yerinize Yazsn (sayfa: 102) blmnde bahsedilen ntanml Bash tamamlamas uygulanr. lk olarak, tamamlama belirtimi tarafndan belirtilen eylemler kullanlr ve sadece szck ile ba layan tamamI s lamalar dndrlr. Dosyaismi veya dizin ismi tamamlamas iin f ya da d seenegi kullanldgnda, FIGNORE kabuk degi keni (sayfa: 62) uyu anlar szmek iin kullanlr. s s Sonra, G seenegi ile bir dosyaismi yorumlama kalb verilerek tamamlamalar retilir. Szck lerin retildigi kalbn tamamlanmas istenen szckle e le memesi gerekir. E le enleri szmekte s s s s GLOBIGNORE kabuk degi keni (sayfa: 62) degil, FIGNORE kabuk degi keni kullanlr. s s s Sonra da W seenegine argman olarak dizgenin belirtildigi varsaylr. IFS zel degi kenindeki karakterler ayra olarak kullanlarak dizge nce ayr trlr. Kabuk tarafndan trnaklama uygulanr. Her szcge s ka l ayra yorumlamas (sayfa: 23), yakla k yorumlamas (sayfa: 23), parametre yorumlamas (sayfa: 24), s s komut ikamesi (sayfa: 26) ve aritmetik yorumlama (sayfa: 27) uygulanr. Sonulara szcklere ayrma (sayfa: 27) uygulanr. Yorumlama sonular tamamlanmas istenen szcgn nek oldugu szcklerdir ve e le en s s szckler olas tamamlamalardr. s Bu e le meler retildikten sonra, F ve C seenekleri ile bir kabuk i levi ya da bir komut agrlr ve s s COMP_LINE ile COMP_POINT (sayfa: 61) degi kenlerine degerleri atanr. Bir kabuk i levi agrlm sa ayrca s s s COMP_CWORD (sayfa: 61) ve COMP_WORDS (sayfa: 61) degi kenleri de atanr. slev veya komut agrldgnda, s I ilk argman argmanlar tamamlanacak olan komutun ismidir, ikinci argman tamamlanan szcktr ve nc argman komut satrndaki tamamlanmas istenen szcg nceleyen szcktr. Tamamlanmas istenen szcge kar lk retilen tamamlamalara szme uygulanmaz; i lev ya da komut retilen e le melerle serbeste s s s s tamamlanr. Bir i lev ilk olarak F seenegine belirtilerek agrlr. slev, e le meleri retmek iin compgen yerle igi s I s s s (sayfa: 107) dahil, her kabuk aracn kullanabilir. Olas tamamlamalar COMPREPLY (sayfa: 61) dizi degi kenine s yerle tirmelidir. s Sonra, komut ikamesine e deger bir ortam iinde bir komut C seenegine belirtilerek agrlr. Bu, komut tamams lamalarnn listesini her biri bir satrda standart ktya basmaldr. Gerekliyse, tersbl bir satrsonunu ncelemekte kullanlabilir. Tm olas tamamlamalar retildikten sonra X seenegine belirtilen bir szge listeye uygulanr. Szge dosyayolu yorumlamas iin kullanlan bir kalptr; kalptaki bir & karakteri tamamlanmas istenen szck metni ile degi tirilir. Kalba uyan tamamlamalar listeden kaldrlacaktr. ! ile ba layan bir kalp zt e leme yapar; bu dus s s rumda, kalba uymayan tamamlamalar listeden kaldrlacaktr. Son olarak, P ve S seenekleri ile belirtilen bir nek ve bir sonek tamamlama listesinin her yesine eklenir ve sonu Readline tamamlama koduna olas tamamlamalarn listesi olarak dndrlr. Eger ncelikle uygulanan eylemler bir e le me retmezse ve tamamlama belirtimi tanmlanrken complete s s (sayfa: 107) ile o dirnames seenegi verilmi se, dizin ismi tamamlanmaya al lr. s s Eger tamamlama belirtimi tanmlandgnda o plusdirs seenegi complete komutuna saglanm sa dizin s ismi tamamlanmaya al lr ve e le enler diger eylemlerin sonularna eklenir. s s s

http://belgeler.org

Linux Kitaplg

106 / 142

GNU Bash Basvuru Klavuzu

ntanml olarak, bir tamamlama belirtimi varsa, onun rettigi her ne varsa olas tamamlamalarn bir tam kmesi olarak tamamlama koduna dner. ntanml Bash tamamlamalar uygulanmaz ve Readlinen ntanmls olan dosyaismi tamamlamas kapatlr. Eger tamamlama belirtimi tanmlyken complete yerle igi s o bashdefault seenegi ile al trlm sa ve tamamlama balirtimi bir e le me retmiyosa ntanml s s s s Bash tamamlamalar uygulanmaya al lr. Tamamlama belirtimi tanmlyken o default seenegi ile s al trlm sa ve tamamlama belirtimi (ve eger uygulanm sa ntanml Bash tamamlamalar) hi e le me s s s s s retememi se, Readlinen ntanml tamamlamas uygulanacaktr. s Bir tamamlama belirtimi dizin ismi tamamlamas istendigini belirtiyorsa programlanabilir tamamlama i levleri s Readline dizinlere sembolik bag olan ve marksymlinkeddirectories Readline degi keninin s degerine bakmakszn markdirectories Readline degi keninin degerine konu olan isimleri tamamlamak s iin / eklemeye zorlar.

7. Programlanabilir Tamamlama Yerlesikleri


Programlanabilir tamamlama aralarn ynetmek iin iki yerle ik komut vardr. s

7.1. Compgen Yerlesigi


compgen [seenek] [szck]

szck ile e le en olas tamamlamalar, p ve r seenekleri d nda complete yerle igi tarafndan kabul s s s s edilen herhangi bir seenek olabilen seeneklere gre retir ve e le enleri standart ktya yazar. F veya s s
C seenekleri kullanldgnda, e itli kabuk degi kenleri programlanabilir tamamlama aralar tarafndan kul s s
lanlana kadar yararl olmayacak degerlerle atanr. Programlanabilir tamamlama kodunun, bir tamamlama belirtiminden ayn seeneklerle dogrudan rettigi gibi s s s s s s e le meler retilmi olacaktr. szck belirtilmi se bu e le melerin sadece, szck ile e le enleri gsterilmi s s s olacaktr. Geersiz bir seenek verilmedike ya da hi e le me retilmemesi d nda dn durumu sfrdr. s s s s

7.2. Complete Yerlesigi


complete [abcdefgjksuv] [o tamamlamaseene i] [A eylem] [G genelkalp] g [W szcklistesi] [P nek] [S sonek] [X szgekalb] [F i lev] [C komut] isim [isim ] s complete pr [isim ]

Argmanlarn her isime nasl tamamlanmas gerektigi belirtilir. p seenegi verilirse veya hi seenek ver ilmezse, mevcut tamamlama belirtimleri girdi olarak yeniden kullanlabilir sekilde baslr. r seenegi her isim iin tamamlama belirtimini kaldrr, hi isim belirtilmezse tm kaldrlr. Szck tamamlamas yaplmaya al ldgnda, bu tamamlama belirtimlerinin uygulanma sreci Programlans abilir Tamamlama (sayfa: 105) blmnde aklanm tr. s Diger seenekler belirtildiklerinde a agdaki anlamlara gelirler. G, W ve X (ve lazmsa P ve S) seenek s lerinin argmanlar, complete yerle igi agrlmadan nce yorumlanmamas iin trnak iine alnm olmaldr. s s

o tamamlamaseene i g

tamamlamaseene i tamamlamalarn basit retimi d nda tamamlama belirtiminin e itli davran g s s s biimlerini kontrol eder. tamamlamaseene i a agdakilerden biri olabilir: g s
bashdefault http://belgeler.org
Linux Kitaplg 107 / 142

GNU Bash Basvuru Klavuzu

Tamamlama belirtimi hi e le me retemezse ntanml Bash tamamlamalarnn kalan uygulanr. s s

default
Tamamlama belirtimi hi e le me retemezse Readlinen ntanml dosyaismitamamlamas kuls s lanlr.

dirnames
Tamamlama belirtimi hi e le me retemezse, dizin ismi tamamlamas uygulanr. s s

filenames
Readlinea tamamlama belirtiminin dosyaisimlerini retmesini syler, bylece dosyaismine zel i lemleri uygulayabilir (dizin isimlerine / eklemek veya sondaki bo luklarn kaldrlmas gibi i lemler). s s s Bu seenek, F seenegi ile belirtilen kabuk i levleriyle kullanmak iin d nlm tr. s s s

nospace
Readlinea bir szcg tamamlamak iin satr sonundayken bir bo luk eklememesini syler. s

plusdirs
Tamamlama belirtimi tarafndan tanmlanm e le meler retildikten sonra dizin ismi tamamlanmaya s s s al lr ve e le enler diger eylemlerin sonularna eklenir. s s s

A eylem

eylem, olas tamamlamalarn bir listesinin retilmesi iin kullanlan a agdaki seeneklerden biridir: s
alias
Takma adlar. a seenegi ile ayndr.

arrayvar
Dizi degi keni isimleri. s

binding
Readline tu ksayollarnn isimleri (Ksayollar iin Readline Komutlar (sayfa: 98) blmne baknz). s

builtin
Kabuk yerle ik komutlarnn isimleri. b seenegi ile ayndr. s

command
Komut isimleri. c seenegi ile ayndr.

directory
Dizin isimleri. d seenegi ile ayndr.

disabled
ptal edilmi kabuk yerle ikleri. I s s

enabled
Etkin kabuk yerle iklerinin isimleri. s

export
Ortama aktarlm kabuk degi kenlerinin isimleri. e seenegi ile ayndr. s s

file
Dosya ismi. f seenegi ile ayndr.

function
Kabuk i levlerinin isimleri. s

http://belgeler.org

Linux Kitaplg

108 / 142

GNU Bash Basvuru Klavuzu

group
Grup isimleri. g seenegi ile ayndr.

helptopic help yerle ik komutu (sayfa: 47) tarafndan kabul edilen yardm konular. s hostname HOSTFILE kabuk degi keni (sayfa: 63) tarafndan belirtilen dosyadan alnan konak isimleri. s job
s denetimi etkinse, i isimleri. j seenegi ile ayndr. I s

keyword
Kabuk anahtar szckleri. k seenegi ile ayndr.

running
s denetimi etkinse, al an i lerin isimleri. I s s

service
Servis isimleri. Ayrca s olarak da belirtilebilir.

setopt set yerle ik komutunun (sayfa: 49) o seeneginin geerli argmanlar. s shopt shopt yerle ik komutunun (sayfa: 52) kabul ettigi kabuk seeneklerinin isimleri. s signal
Sinyal isimleri

stopped
s denetimi etkinse, durmu i lerin isimleri. I s s

user
Kullanc isimleri. u seenegi ile ayndr.

variable
Tm kabuk degi kenlerinin isimleri. v seenegi ile ayndr. s

G genelkalp
Dosyaismi yorumlama kalb genelkalp, olas tamamlamalar retmek iin yorumlanr.

W szcklistesi

szcklistesi IFS zel degi kenindeki karakterler ayra olarak kullanlarak ayr trlr ve elde edilen s s szck yorumlanr. Olas tamamlamalar, tamamlanmas istenen szckle e le en sonu listesinin s s yeleridir.
C komut

komut bir altkabuk ortamnda al trlr ve kts olas tamamlamalar olarak kullanlr. s
F i lev s
Kabuk i levi i lev bulunulan kabuk ortamnda al trlr. Bittiginde olas tamamlamalar COMPREPLY s s s (sayfa: 61) dizi degi keninden alnr. s

X szgekalb

http://belgeler.org

Linux Kitaplg

109 / 142

GNU Bash Basvuru Klavuzu

szgekalb dosyaismi yorumlamas iin kullanlan bir kalptr. nceki seenek ve argmanlar tarafndan
retilen olas tamamlamalarn listesine uygulanr ve szgekalb ile e le en her tamamlama listeden s s kaldrlr. Bir ! ile ncelenirse kalp zt i lem yapar yani, e le meyenler listeden kaldrlr. s s s

P nek
Tm seenekler uygulandktan sonra her olas tamamlamann ba langcna nek eklenir. s

S sonek
Tm seenekler uygulandktan sonra her olas tamamlamann sonuna sonek eklenir. Bir geersiz seenek verilmedike, p veya r seenekleri d nda bir seenek bir isim argman ile vers ilmedike, hi belirtimi olmayan bir isim iin bir tamamlama belirtimi kaldrlmaya al lmadka veya bir tamams lama belirtimine eklemenin bir hata olu turmas d nda dn durumu sfrdr. s s s

http://belgeler.org

Linux Kitaplg

110 / 142

GNU Bash Basvuru Klavuzu

IX. Gemisin Etkilesimli Kullanm


indekiler I
1. Bashin Gemissel Yetenekleri 2. Bash Gemis Yerlesikleri . . 2.1. Fc Yerle igi . . . . . . . s 2.2. History Yerle igi . . . . . s 3. Gemis Yorumlamas . . . . . 3.1. Eylem Belirticiler . . . . 3.2. Szck Belirticiler . . . . 3.3. Degi tiriciler . . . . . . . s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 111 111 112 113 113 114 115

Bu oylumda GNU Gemi Kitaplgnn etkile imli olarak nasl kullanlacag anlatlm , bir kullanc klavuzu olarak s s s ele alnm tr. GNU Gemi Kitaplgnn diger uygulamalarla kullanm konular iin GNU Readline Kitaplg s s Klavuzuna baknz.

1. Bashin Gemissel Yetenekleri


set (sayfa: 49) yerle igini o history seenegi ile al trp gemi i etkinle tirdiginizde, kabuk nceden s s s s kullandgnz komutlarn bir listesi olan komut gemi ine eri im saglar. HISTSIZE kabuk degi keninin degeri s s s gemi listesindeki kaytlarn says olarak kullanlr. Daima son $HISTSIZE komut (ntanml 500) saklanr. s s s Kabuk her komutu, HISTIGNORE ve HISTCONTROL kabuk degi kenlerinin degerlerine bagl olarak gemi
yorumlamas uyguladktan sonra, parametre ve degi ken yorumlamalarn uygulamadan nce gemi listesine s s alr. Kabuk ba latldgnda HISTFILE degi keninde ismi kaytl olan dosyadan (ntanml degeri s s /.bash_history) gemi i ilklendirir. Bu dosyann satr says HISTFILESIZE degi kenindeki degerden s s fazla ise, dosya boyutu fazlalklar atlarak ayarlanr. Bir etkile imli kabuk karken gemi listesindeki son s s $HISTSIZE komutu $HISTFILE isimli dosyaya kopyalar. histappend kabuk seenegi (sayfa: 54) etkinse gemi listesindeki komutlar dosyaya eklenir, degilse dosyann zerine yazlr. HISTFILE atans mam sa veya gemi dosyas yazlabilir degilse gemi kaydedilmez. Gemi kaydedildikten sonra, gemi s s s s s dosyas $HISTFILESIZE satrdan fazla satr ieriyorsa fazla satrlar dosyadan kaldrlr. $HISTFILESIZE atanmam sa fazla satrlar kaldrlmaz. s

HISTTIMEFORMAT atanm sa her gemi girdisi ile ilgili zaman damgas bilgisi gemi dosyasna yazlr. s s s fc yerle ik komutu (sayfa: 111) ile gemi listesi, listelenebilir, dzenlenebilir ve listenin bir blm yeniden s s al trlabilir. history yerle ik komutu (sayfa: 112) ile gemi listesini grebilir, degi tirebilir ve gemi s s s s s
dosyasn degi tirebilirsiniz. Komut satr dzenlemesi yaparken, gemi listesine eri im saglayan her dzens s s s leme kipinde arama komutlar kullanlabilir (Gemi i Yneten Komutlar (sayfa: 98) blmne baknz). Kabuk, gemi listesinde kaytl komutlarn zerinde denetime izin verir. HISTCONTROL ve HISTIGNORE s degi kenleri kabugun, girilen komutlarn belli bir blmnn kaydedilmesini saglamakta kullanlabilir. cmdhist s (sayfa: 53) kabuk seenegi etkinse, bir ok satrl komut, szdizimsel dogrulugun korunmasn saglayacak yerler ine ; i aretleri yerle tirilerek btn satrlar tek gemi girdisi olarak kaydedilmeye al lr. lithist (sayfa: 55) s s s s kabul seenegi etkinse, bir ok satrl komut, ; i aretleri yerine kendi iindeki satrsonu karakterleri ile kaydedilir. s Bu seenekleri etkinle tirmek iin shopt yerle ik komutu (sayfa: 52) kullanlr. s s

2. Bash Gemis Yerlesikleri


Gemi listesinde ve gemi dosyasnda degi iklik yapmak iin kullanlabilecek iki yerle ik komut vardr. s s s s

http://belgeler.org

Linux Kitaplg

111 / 142

GNU Bash Basvuru Klavuzu

2.1. Fc Yerlesigi
fc [e dzenleyiciismi] [nlr] [ilk] [son] fc s [eski=yeni] [komut]

Komutun ismi dzeltme komutu anlamna gelen Fix Command szcklerinin ba harerinden tretilmi tir. lk s s I szdiziminde, gemi listesinin ilk ve son kaytlar arasndaki komutlar seilebilir. ilk ve son birer dizge olarak s belirtilebilecegi gibi birer say da olabilir. Dizgelerle komutlarn kendileri, numaralarla ise kaydn listedeki sra s numaras belirtilir. Deger negatif bir say ise sayma son komuttan eskiye dogrudur. son verilmezse, ilke e itlenir. ilk verilmezse, listelemek iin 16 kabul edilir ve dzenlemek iin sondan bir nceki komut seilir. l seenegi verilmi se, komutlar standart ktya listelenir. n seenegi de verilirse, listleme srasnda satr numaralar gsters ilmez. r seenegi ile birlikte, listelemenin ters sralamayla yaplmasn saglar. l seenegi verilmezse, seilen aralktaki komutlar dzenleyiciismi ile verilen metin dzenleyicide gsterilir. dzenleyiciismi verilmemi se, s

${FCEDIT:${EDITOR:vi}} degi ken yorumlamas kullanlr. Bu yorumlama sonucunda nce etkin bir s FCEDIT degi keninin varlgna baklr, yoksa EDITOR degi kenine baklr, o da yoksa vi al trlr. Dzenleme s s s
bittiginde dzenlenen komutlar standart ktya yanstlr ve al trlr. s kinci szdiziminde, komutun iinde eskilerin yerine yeniler yerle tirilerek komut tekrar al trlr. I s s

fc komutu yerine kullanlabilecek en faydal takma ad (sayfa: 75) r=fc s olurdu. rnegin sadece r yazarak son komutu tekrar al trabilirsiniz, ya da r cc yazarak cc ile ba layan son komutu tekrar s s
al trabilirsiniz. s

2.2. History Yerlesigi


history history history history history [n] [c] d konum [anrw] [dosyaismi] ps argman

Seeneksiz kullanldgnda gemi listesini satr numaralar ile gsterir. Degi iklik yaplm satrlarda nu s s s maralardan nce bir * vardr. argman olarak bir say verildiginde, son argman sayda komut listelenir. HISTTIMEFORMAT kabuk degi keni tanmlanm ve null degilse gsterilen her gemi girdisi ile ili kili zas s s s man damgasn gsterecek strftime iin biim dizgesi olarak kullanlr. Biimli zaman damgas ile gemi s satr arasna bir ey baslmaz. s Seeneklerin anlamlar:

c
Gemi listesini temizler. Gemi listesini toptan degi tirmek iin bu seenek diger seeneklerle birlikte s s s kullanlabilir.

d konum
Satr numaras konum olan gemi girdisini siler. konum silinecek satrn gemi listesinde gsterilen s s numaras olmaldr.

a
Bash oturumunun ba langcndan itibaren girilen gemi satrlar gemi dosyasna eklenir. s s s

n
Gemi dosyasndan henz okunmam olan gemi satrlar, Bash oturumunun ba langcndan beri s s s s olu an gemi listesine eklenir. s s

r http://belgeler.org
Linux Kitaplg 112 / 142

GNU Bash Basvuru Klavuzu

Gemi dosyas okunur ve ierigi gemi listesine eklenir. s s

w
Gemi listesini gemi dosyasna yazar. s s

argmanlar zerinde gemi yorumlamas uygular ve sonular standart ktda gsterir. Sonular gemi s s
listesinde saklanmaz.

argmanlar gemi listesinin sonuna tek girdi olarak eklenir. s


w, r, a veya n seenekleri ile verilen dosyaismi, gemi dosyas olarak kullanlr. dosyaismi verilmezse, s HISTFILE degi kenindeki deger kullanlr. s

3. Gemis Yorumlamas
Gemi ktphanesi, csh tarafndan kullanlana benzer bir gemi yorumlamas zelligine sahiptir. Bu ksmda s s gemi bilgilerinin ynetiminde kullanlan szdizimi aklanacaktr. s Gemi yorumlamas gemi listesindeki girdilerin standart girdiye aktarlmasyla, komutlarn tekrarlans s abilmesini, nceki komutlarn girdi satrna alnp degi tirilerek tekrar kullanmn veya nceki komutlarda yaplan s hatalarn dzeltilmesini kolayla trr. s Gemi yorumlamas iki blmde ele alnabilir. lki, yorumlama srasnda gemi listesindeki hangi satrn kuls I s lanlacagnn saptanmas, ikincisi de alntlamak iin satrn baz paralarnn seilmesidir. Gemi ten seilen s satra eylem ve satrdan seilen paralara da szckler denir. Seilen szckleri ynetmek iin e itli degi tiriciler s s bulunur. Bashin baz szckleri trnak iine alarak tek szck haline getirmesine benzer bir yolla satr szcklere ayrlr. Gemi yorumlamas, gemi yorumlama karakteri ad verilen bir karakterinin varlg ile anla lr. Bu s s s s karakter ntanml olarak!dir. Gemi yorumlama karakteri sadece \ ve karakterleri ile ncelenebilir.

shopt (sayfa: 52) yerle igi ile etkinle tirilen kabuk seeneklerinden bazlar gemi yorumlamasnn s s s s davran larn degi tirmekte kullanlabilir. histverify (sayfa: 55) kabuk seenegi etkinle tirildiginde, Reads s
line kullanlyorsa gemi yorumlamas dogrudan kabuk zmleyicisine aktarlmaz. Yorumlanan satr, degi iklik s s yaplabilsin diye nce Readline dzenleme tamponuna yklenir. histreedit (sayfa: 55) kabuk seenegi etkinle tirildiginde, Readline kullanlyorsa ba arsz olmu bir gemi yorumlamas dzeltilebilmesi iin Reads s s s line dzenleme tamponuna tekrar yklenir. history (sayfa: 112) yerle ik komutunun p seenegi, uygulans s madan nce gemi yorumlamasnn ne yapacagn grmek iin, s seenegi de komutlarn al trlmakszn s gemi listesinin sonuna eklenmesinde kullanlabilir, bylece ilerde bu komutlarn gemi listesinden yeniden s s agrlmas mmkn olabilir. Bu, Readline ile baglantl olarak olduka kullan ldr. s

histchars (sayfa: 62) kabuk degi keni ile kabuk, e itli karakterlerin gemi yorumlama mekanizmas s s s
tarafndan kullanlmasna izin verir.

3.1. Eylem Belirticiler


Bir eylem belirtici, gemi listesindeki bir komut satr girdisine bir gstergedir. s

!
Kendinden sonra bo luk, sekme, satrsonu, = veya ( karakteri gelmedike bir gemi yorumlamasn s s ba latr (shopt yerle igi kullanlarak extglob kabuk seenegi etkinle tirildiginde). s s s

!n
Gemi listesindeki n. satra kar lktr. s s

http://belgeler.org

Linux Kitaplg

113 / 142

GNU Bash Basvuru Klavuzu

!n
Gemi listesindeki geriye dogru n. satra kar lktr. s s

!!
Bir nceki komuta kar lktr. !1e e degerdir. s s

!dizge

dizge ile ba layan son komuta kar lktr. s s


!?dizge[?]
inde dizge geen son komuta kar lktr. dizgeden hemen sonra bir satrsonu geliyorsa ? verilmeyebilir. I s

dizge1dizge2
Hzl Yorumlama.

dizge1

ile

dizge2

yerdegi tirilerek s

bir

nceki

komut

tekrarlanr.

!!:s/dizge1/dizge2/ ile e degerdir. s !#


O ana kadar yazlan komut satrnn tmne kar lktr. rnegin, type !# yazp deneyin. s

3.2. Szck Belirticiler


Szck belirteleri, eylemden istenen szckleri semek iin kullanlr. Bir : karakteri eylem belirtimini szck s belirticiden ayrr. Szck belirtici bir , $, *, , veya % karakteri ile ba lyorsa : verilmeyebilir. Szckler satrn ba ndan itibaren numaralanr ve ilk szcgn numaras 0 (sfr)dr. Szckler satra birer bo lukla ayrlarak s s girilir. rnegin,

!!
nceki komutu belirtir.

!!:$
nceki komutun son argmanna kar lktr. Ksaltmas olarak !$ da yazlabilir. s

!fi:2 fi hareriyle ba layan son komutun ikinci argmann belirtir. s


Bunlar szck belirticidir:

0 (sfr)
0. szck. ogu durumda bu komut szcgdr.

n. szck

lk argman; yani 1. szck. I

$
Son argman.

%
En son ?dizge? aramasndaki szck.

xy
Szck aralg; y, 0y ile ayndr. Linux Kitaplg 114 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

*
0. hari, szckleri tm. 1$ ile e degerdir. Eylem sadece bir szck ierse bile * hata vermez, sadece s bo dizge dner. s

x* x$ iin ksaltma. x x$n x*a benzer ksaltmasdr, ancak son szck atlanr.
Bir szck belirtici, bir eylem belirtimi olmakszn verilirse nceki komut eylem olarak kullanlr. rnegin, type lki eylem, ikincisi szck belirtir. komutunu girdikten sonra yeni satr olarak !! !! yazn. I

3.3. Degistiriciler
stege bagl olarak szck belirticiden sonra, herbiri bir : ile ncelenerek a agdaki degi tiricilerden bir veya I s s birkan ekleyebilirsiniz.

h
Bir dosya yolundan son dizini kaldrr. rnegin, cd /home/nilgun/belgeler komutundan sonra cd !$:h yazarsanz /home/nilgun dizinine geilir.

t
Bir dosya yolundan geriye son dizin kalacak sekilde ba takileri kaldrr. Yukardaki rnege devamla s cd !$:t yazarsanz cd nilgune kar lk olur ki, "byle bir dosya ya da dizin yok" iletisi alnabilir. s

.sonek seklindeki bir soneki kaldrr, sadece esas dosya ismi (basename) kalr.
e
sonek hari her eyi kaldrr. s

p
Son komutu basar ama al trmaz. rnek: !:p s

q
Yerini aldg szckleri, gerekirse nceleyerek, trnak iine alr,

x q gibidir ancak szcklerin arasndaki bo luklar, sekmeleri ve satrsonlarn koruyarak szckleri tek tek s
trnak iine alr.

s/eski/yeni/
Eylem satrndaki ilk eskinin yerine yeniyi koyar (ikame). / yerine herhangi bir ayra kullanlabilir. eski ile yeni arasndaki ayra bir tek tersbl ile trnaklanabilir. yeni iinde & varsa eski ile degi tirilir. Bir tek s tersbl & karakterini nceleyecektir. Girdi satrndaki son karakter oldugunda son ayra istege bagldr.

&
nceki ikameyi tekrarlar.

g a
Degi ikliklerin s eylem satrnn tm zerinde uygulanmasn gs/eski/yeni/deki gibi veya & ile birle ik kullanlr. s saglar.

s ile birle ik olarak s

G
Olaydaki her szcge izleyen s degi tiricisini bir kere uygular. s

http://belgeler.org

Linux Kitaplg

115 / 142

GNU Bash Basvuru Klavuzu

X. Bash Kurulumu
indekiler I
1. Temel Kurulum . . . . . . . . 2. Derleyiciler ve Seenekler . . 3. oklu Mimariler iin Derleme 4. Kurulum Isimleri . . . . . . . 5. Sistem Trnn Belirtilmesi . 6. ntanmllarn Paylasm . . . slem Denetimi . . . . . . . . 7. I 8. Istege Bagl zellikler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 117 117 117 117 118 118 118

Bu oylumda desteklendigi platformlarda Bash kurulumu iin temel talimatlar bulunmaktadr. Dagtm, GNU i letim s sistemlerini, Unixin hemen her srmn, BeOS ve Interix gibi e itli Unix olmayan sistemleri destekler. MS s DOS, OS/2, Windows platformlar iin ba ka bagmsz dagtmlar da vardr. s

1. Temel Kurulum
Bash iin kurulum talimatlar. Bashi derlemenin en basit yolu: 1. Kaynak kodun bulundugu dizine cd yapn ve Bashi sisteminize gre yaplandrmak iin ./configure yazn. Bir eski srm System V zerinde csh kullanyorsanz, cshn configure dosyasnn kendisini al trmay denemesinden korunmak yerine sh./configure yazmalsnz. configure dosyasnn s al mas biraz zaman alr. al rken hangi zellikleri denetledigini belirten iletiler basar. s s 2. Bash derlemek iin make yazn ve bashbug hata raporlama betigini kurgulayn. 3. stemlik olarak, testleri al trmak iin make tests yazn. I s 4. bash ve bashbug kurmak iin make install yazn. Bu ayrca klavuz sayfalarn ve Info dosyasn da kuracaktr.

configure kabuk betigi derleme srasnda e itli sistem bagml degi kenler iin dogru degerleri tahmin et s s meye al r. Bu degerleri paketin her dizinindeki Makefile dosyalarn olu turmakta kullanr (paket iinde s s tepe dizin, builtins, doc ve support dizinleri ve bu dizinlerin altndaki lib ve e itli ba ka dizinlers s den olu ur). Betik ayrca sistem bagml tanmlar ieren config.h dosyasn olu turur. Son olarak, o anki s s yaplandrmay tekrar olu turmak iin al trabileceginiz config.status isimli bir kabuk betigi, yeniden s s yaplandrmay hzlandracak test sonularnn kaydedildigi config.cache diye bir dosya ve derleyici ktsn ieren config.log (yaplandrma hatalarn ayklamak iin faydaldr) dosyasn olu turur. Baz noktalarda iss temediginiz sonular ieriyorsa, config.cache dosyasn silebilir ya da dzenleyebilirsiniz. configure betiginin anladg seenekler ve argmanlar hakknda daha fazla bilgi edinmek iin Bash kaynak
dizininizde Bash komut istemine
bash2.04$ ./configure help

yazn. Bash derlerken olagand seyler yapmaya ihtiyacnz varsa, ltfen "onlarn yaplp yaplamayacagn s configure nasl denetlemeliydi" meselesini halletmeyi deneyin ve farkllklar veya talimatlar <bash maintainers (at) gnu.org> adresine postalayn ki, gelecek dagtm iin onlar hesaba katlabilsin.

http://belgeler.org

Linux Kitaplg

116 / 142

GNU Bash Basvuru Klavuzu

configure.in dosyas Autoconf diye bir program tarafndan configure betigini olu turmakta kullanlr. s configure.in dosyasn configure betigini daha yeni bir Autoconf srmn kullanarak yeniden retmek veya degi tirmek isterseniz Autoconf srm 2.50 veya daha yeni bir srmn kullanmalsnz. s
Program al trlabilirlerini ve nesne dosyalarn kaynak kod dizinlerinden make clean yazarak s kaldrabilirsiniz. Ayrca configure betiginin olu turdugu dosyalar da kaldrmak isterseniz (Bylece Bashi s ba ka bir makina iin derleyebilirsiniz) make distclean yazn. s

2. Derleyiciler ve Seenekler
Baz sistemler configure betiginin bilmedigi olagand derleme ve ilintileme seenekleri gerektirir. s configure betiginin i dagi kenlerinin degerlerini ortamda atayarak bunlar verebilirsiniz. Bir Bourne uyumlu s kabuk kullanarak bunun gibi bir komut satr ile bunu yapabilirsiniz:
CC=c89 CFLAGS=O2 LIBS=lposix ./configure

env program kullanlan baz sistemlerde ise bunu syle yapabilirsiniz:


env CPPFLAGS=I/usr/local/include LDFLAGS=s ./configure

Yaplandrma sreci Bashi kurgulamak iin varsa GCCyi kullanr.

3. oklu Mimariler iin Derleme


Bashi birden fazla mimari iin, her mimarinin nesne dosyalarn kendi dizinlerine yerle tirerek bir seferde s derleyebilirsiniz. Bunu yapabilmek iin makein VPATH degi kenini destekleyen GNU make gibi bir srmn s kullanmanz gerekir. Nesne dosyalarnn ve al trlabilirlerin bulunacag dizine geerek kaynak dizinindeki s configure betigini al trabilirsiniz. Bunu yaparken configure betigini kaynak dosyalarn nerede bulu s nacagn belirten srcdir=KaynakDizini seenegi ile al trmak gerekebilir. configure betigi kaynak s dizinini ntanml olarak bulundugu dizin kabul eder burada bulamazsa .. dizinine bakar.

VPATH degi kenini desteklemeyen bir make srm ile Bashi kaynak dizini iinde bir kerede bir mimari iin s
derleyebilirsiniz. Bir mimari iin Bashi kurduktan sonra ba ka bir mimari iin paketi yaplandrmadan nce bir s make distclean yapmalsnz. Alternatif olarak, sisteminiz sembolik baglar destekliyorsa, kaynak dizininden farkl bir yerde her mimari iin bir dizin olu turup support/mkclone betigi ile bu dizin altnda kaynak dizindeki her dosya ve dizin iin sembolik s baglar olu turabilirsiniz. A agdaki rnek kaynak dizin /usr/gnu/src/bash2.0 dan bulundugunuz dizine s s sembolik baglar olu turur: s
bash /usr/gnu/src/bash2.0/support/mkclone s /usr/gnu/src/bash2.0

mkclone betigi Bash ile al trlabilir. Bu nedenle ok mimarili bir derlemede her mimariye ayr bir derleme s
dizini olu turabilmek iin en azndan bir mimari iin Bash kurmu olmanz gerekir. s s

4. Kurulum simleri I
ntanml olarak, make install kurulumu /usr/local/bin, /usr/local/man, vs. dizinlerine yapar. Kurulumun yaplacag temel dizini (burada /usr/local) configure betigine prefix=DosyaYolu seenegi ile kurulum dizini neki olarak belirtebileceginiz gibi DESTDIR make degi kenine bu degeri make s install komutunu al trmadan nce atayarak belirtebilirsiniz. s Mimariye zel ve mimari bagml dosyalar ayr kurulum nekleriyle kurmak iin configure betigini execprefix=DosyaYolu seenegi ile al trabilirsiniz. Bu yntemle sadece al trlabilirler ve s s ktphane dosyalar bu nekle kurulacaktr. Belgeler ve diger veri dosyalar normal dizin nekini kullanacaktr.

http://belgeler.org

Linux Kitaplg

117 / 142

GNU Bash Basvuru Klavuzu

5. Sistem Trnn Belirtilmesi


Baz configure zellikleri otomatik olarak halledilemeyebilir. Bashin zerinde al acag konak trnn s saptanmas gerekir. Genel olarak, configure bunu halleder, ancak bazan bir ileti ile konak trn saptayamadgn belirtebilir. Bu durumda host=KonakTr seenegi kullanlr. KonakTr ya sun4 gibi bir ksa isim veya lemciFirmaSistem bieminde alanl bir kurall isim olabilir (rn. Is i386unknownfreebsd4.2). Her alana girilebilecek mmkn degerler iin support/config.sub dosyasna baknz.

6. ntanmllarn Paylasm
configure betiginin ntanml degerlerini her paket kurulumu iin ayn olacak sekilde payla lmasn isters s s eniz config.site diye bilinen bir site kabuk betigi olu turmalsnz. Bu dosya iinde CC, cache_file ve prefix gibi configure betiginin kullandg degi kenlere deger atayabilirsiniz. configure betigi bu dosyay s srayla PREFIX/share/config.site, PREFIX/etc/config.site dizinlerinde ve CONFIG_SITE
ortam degi keninde arar. s Uyar Bash configure betigi bir site betigini arar ama configure betiklerinin hepsi bunu yapmaz.

7. slem Denetimi I
configure betiginin i lemlerini kontrol eden seenekler: s cachefile=dosya
Yaplandrma srasnda yaplan snamalar ./config.cache dosyas yerine dosyaya kaydedilir ve buradan kullanlr. Hata ayklamas yapmak iin /dev/null vererek kayd engelleyebilirsiniz.

help configure seeneklerinin bir zetini basar ve kar. quiet silent q


Denetimler srasnda neler yapldgn gsteren iletileri basmaz.

srcdir=dizin
Bash kaynak kodu dizin dizininde aranr. Genelde configure bunu otomatik olarak saptayabilir.

version configure betiginin retiminde kullanlan Autoconfun srmn gsterir ve kar. configure ayrca geni olarak kullanlan baz standart hale gelmi seeneklere de sahiptir. s s configurehelp komutu ile bu seenekleri listeleyebilirsiniz.

8. stege Bagl zellikler I


Bash configure betigi, Bashin istege bagl zelliklerinin belirtilebildigi enablezellik seenekler ine sahiptir. Bundan ba ka bashmalloc veya purify gibi baz paketlerin belirtilebildigi withpaket s seenekleri, ntanml kullanlan paketlerin kullanlmamasn saglayan withoutpaket seenekleri, n tanml olarak var olan baz zelliklerinin kaldrlmasn saglayan disablezellik seenekleri vardr. A agda enable ve with ile ba layan Bash seeneklerinin bir listesini bulacaksnz: s s Linux Kitaplg 118 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

withafs
Transarcn Andrew Dosya Sistemini (Andrew File System) kullanyorsanz atayn.

withbashmalloc lib/malloc dizinindeki mallocun Bash srm kullanlr. Bu GNU libc malloc ile ayn degildir. Daha eski olan 4.2 BSD mallocdan tretilmi bir srmdr. Bu malloc ok hzl ama her bellek ayrmada s bellegin birazn i e yaramaz hale getiren bir srmdr. Bu seenek ntanml olarak etkindir. NOTES s dosyasnda bu seenegin kapatlmas gereken sistemler listelenmi tir ve configure bu sistemler z s
erinde otomatik olarak bu seenegi iptal eder.

withcurses termcap ktphanesi yerine curses ktphanesi kullanlr. Eger sisteminizdeki termcap veritaban
yetersiz ya da yoksa bu seenek kullanlmaldr.

withgnumalloc withbashmalloc ile e anlamldr. s withinstalledreadline[=NEK] Bu seenegi lib/readlinedaki srm yerine Readlinen makinanzda bulunan srm ile Bashi ilintilemek iin kullann. Bu seenek sadece Readline 5.0 ve sonraki srmleri ile al r. NEK yes s olarak verilmi se ya da hi verilmemi se ve Readline, sistemin standart include ve lib dizins s s lerinde bulunmuyorsa configure betigi makein prefix degi keninde tanml dizinin altdizinleri olarak atanm includedir ve libdir degi kenlerinin degerlerini kullanr. NEK no ise, Bash s s lib/readlinedaki srm ile ilintilenir. NEK iin ba ka bir deger verilmi se, configure bu degeri s s
bir dizin yolu olarak ele alr ve Readlinen kurulu srmn bu dizinin alt dizinlerinde arar (ba lk dosyalar s iin NEK/include ve ktphane dosyalar iin NEK/lib dizinleri).

withpurify
Rational Softwarein Purify bellek ayrma denetleyicisini kullanmak iindir.

enableminimalconfig
Tarihsel Bourne kabuguna ok yakn, en az zellik ieren bir kabuk retir.

enable ile ba layan seenekler, Bashin al ma annda zelliklerini degi tirmek yerine derleme ve ilins s s
tileme ile kurulurken uygun zelliklerde olmasn saglamak iindir.

enablelargefile
sletim sistemi byk dosyalara eri en programlarn derlenebilmesi iin zel derleyici seenekleri gerekI s tiriyorsa, byk dosya(B322) destegini etkinle tirir. sletim sistemi byk dosya destegine sahipse bu zellik s I ntanml olarak etkindir.

enableprofiling gprof tarafndan i lenen prol bilgilerini reten bir Bash al trlabilirinin derlenmesini saglar. s s enablestaticlink gcc kullanlyorsa, Bashin statik olarak ilintilenmesini saglar. Bu seenek root kullancsnn kabugu
olarak kullanlacak bir srm derlemek iin kullanlmaldr.

minimalconfig seenegi a agdaki seeneklerin tamamn iptal etmek iin kullanlabilir. Ancak s minimalconfig seenegi ilk seenek olmaldr. Bundan sonra a agdaki seeneklerden istenenler s enablezellik seenegi ile tek tek belirtilebilir.
sletim sisteminin gerekli destegi saglamamas d nda, disabledbuiltins ve xpgechodefault I s seenekleri hari a agdaki seeneklerin tm ntanml olarak etkinle tirilir. s s

http://belgeler.org

Linux Kitaplg

119 / 142

GNU Bash Basvuru Klavuzu

enablealias alias ve unalias yerle ikleri dahil takma ad yorumlamasna (sayfa: 75) izin verilir. s enablearithforcommand C dilinin for deyimi gibi davranan ba ka bir for komutu (sayfa: 17) iin destek ierir. s enablearrayvariables
Tek boyutlu dizi (sayfa: 76) kabuk degi kenleri iin destek ierir. s

enablebanghistory csh tarz gemi yorumlamas (sayfa: 113) iin destek ierir. s enablebraceexpansion csh tarz ka l parantez yorumlamas (sayfa: 23) iin destek ierir. ( b{a,b}c ==> bac bbc ). s enablecommandtiming time szcgnn anahtar szck olmas ve time ile ba layan boruhatlar (sayfa: 15) iin zamanlama s
istatistiklerinin gsterilmesi destegini ierir.

enablecondcommand [[ ko ullu komutu (sayfa: 18) iin destek ierir. s enablecondregexp = iki terimlisinin [[ ko ullu komutunda (sayfa: 18) kullanmyla POSIX dzenli ifadelerini kullanarak s
e le me bulmaya destek verir. s s

enabledebugger
Bash hata ayklayc (ayr dagtlr) iin destek ierir.

enabledirectorystack csh tarz dizin ygn (sayfa: 77) ile pushd (sayfa: 78), popd (sayfa: 77), ve dirs (sayfa: 77) yerle ikleri s
iin destek ierir.

enabledisabledbuiltins Bir xxx yerle igi enable (sayfa: 47) n xxx komutu ile iptal edilmi bile olsa builtin s s (sayfa: 44) xxx yerle igi ile al trlabilmesine izin verilir. s s enabledparenarithmetic ((...)) (sayfa: 18) komutu iin destek ierir. enableextendedglob
Kalp E leme (sayfa: 28) zellikleri iin destek ierir. s

enablehelpbuiltin
Kabuk yerle ikleri ve degi kenleri hakknda yardm almak iin kullanlan help (sayfa: 47) yerle igi iin s s s destek ierir.

enablehistory history (sayfa: 112) ve fc (sayfa: 111) yerle ikleri iin destek ierir. s enablejobcontrol
sletim sistem destekliyorsa Is Denetimi (sayfa: 83) zelliklerini etkinle tirir. s I

enablemultibyte
sletim sistem destekliyorsa okbaytl karakterlere destegi etkinle tirir. I s

enablenetredirections http://belgeler.org
Linux Kitaplg 120 / 142

GNU Bash Basvuru Klavuzu

Ynlendirmelerde (sayfa: 29) kullanldgnda /dev/tcp/konak/port ve /dev/udp/konak/port biemindeki dosyalara eri imi etkinle tirir. s s

enableprocesssubstitution
sletim sistemi gerekli destegi saglyorsa sre ikamesini (sayfa: 27) etkinle tirir. I s

enableprogcomp
Programlanabilir tamamlama (sayfa: 105) olu umlarn etkinle tirir. Readline etkin degilse bu seenek s s etkisizdir.

enablepromptstringdecoding $PS1, $PS2, $PS3 ve $PS4 komut istemi dizgelerinde tersbl ncelemeli karakterlerin yorumlanmasn
etkinle tirir. Daha ayrntl bilgi iin Komut Isteminin Kontrol Edilmesi (sayfa: 78) blmne baknz. s

enablereadline
Readline ktphanesinin Bash srm ile Komut Satrnn Dzenlenmesi (sayfa: 87) ve gemi (sayfa: s 111) destegini etkinle tirir. s

enablerestricted
Snrl Kabuk (sayfa: 80) iin destek ierir. Bu seenek etkin oldugunda, Bash rbash olarak agrldgnda snrl kipe girer.

enableselect
Basit menlerin olu turulmasna imkan veren select (sayfa: 18) komutuna destek ierir. s

enableseparatehelpfiles help yerle igi tarafndan gsterilen belgeleme iin metni dahili olarak saklamak yerine harici dosyalar s
kullanlr.

enablesinglehelpstrings help yerle igi tarafndan gsterilen metin her yardm konusu iin ayr bir dizge olarak saklanr. Bu mets
nin farkl dillere tercmesini mmkn klar. Eger derleyiciniz ok uzun dizge sabitlerle al amyorsa bu s seenegi etkinle tirmemelisiniz. s

enablestrictposixdefault
Bazhi ntanml olarak POSIX uyumlu yapar (bkz, Bash POSIX Kipi (sayfa: 80)).

enableusgechodefault enablexpgechodefault ile e anlamldr. s enablexpgechodefault echo (sayfa: 46) yerle iginin e seenegini gerektirmeksizin tersbl ncelemeli karakterleri yorumlas masn ntanml olarak etkinle tirir. Bu seenek echo yerle iginin Tek Unix Belirtimi, srm 3te belirtilen s s srme daha benzer davranmasn saglayan xpg_echo (sayfa: 56) kabuk seenegini ntanml etkin
yapar.

configtop.h dosyas configure tarafndan belirtilemeyen seenekler iin C ni lemcisinin #define s


deyimlerini ierir. Bunlarn bazlar degi tirilebilir anlamnda almayn, yaparsanz, sonularna katlanrsnz. Etks isini anlamak iin her tanm ile ili kili aklamalar okuyun. s

http://belgeler.org

Linux Kitaplg

121 / 142

GNU Bash Basvuru Klavuzu

A. Hatalar Raporlama
Bashde buldugunuz hatalarn tmn ltfen raporlayn. Ama nce, onun gerekten hata olup olmadgndan ve Bashin en son srmnnde de oldugundan emin olun. Bashin en son srmn daima ftp://ftp.gnu. org/pub/bash/ adresinden temin edebilirsiniz. Gerekten bir hata saptarsanz, hatay raporlamak iin bashbug komutunu kullann. Kaynak kodunda bir dzeltme yaptysanz (x) cesur olun ve onu bize postalayn. Tavsiyeler ve felse hata raporlar <bugbash (at) gnu.org> adresine veya Usenet news:gnu.bash.bug haber begine postalayabilirsiniz. Tm hata raporlarnda bunlarn bulunmasn saglayn:

Bashin srm numaras. Donanm ve i letim sistemi. s Bashi derlemekte kullanlan derleyici. Hatann neler yaptgna dair aklama. Hatay olu turan bir ksa betik veya bir reete. s

bashbug ilk geyi otomatik olarak hata raporlamak iin kullanacagnz sablona yerle tirir. s
Ltfen bu klavuzun orjinali ile ilgili tm raporlar <chet (at) po.CWRU.Edu> adresine ve eviri ile ilgili hatalar <nilgun (at) belgelergentr> adresine bildirin.

B. Bash ile Bourne Kabugu Arasndaki Baslca Farklar


Bash, Bourne Kabugu ile esasen ayn dil bilgisi, parametre ve degi ken yorumlamas, ynlendirme ve trnak iine s alma zelliklerin sahiptir. Bash bu zelliklerin belirtimleri olarak POSIX 1003.2 standardn kullanr. Geleneksel Bourne kabugu ile Bash arasnda baz farklar vardr; bu blmde nemli farklara ksaca deginilecektir. Bu farklarn bir ksm nceki blmlerde derinligine aklanm tr. Bu blmde SVR4.2 (tarihi Bourne kabugunun s son srm) iindeki sh srm ile kar la trma yaplm tr. s s s

POSIX belirtiminin geleneksel sh davran ndan farklar olsa da, Bash POSIX uyumludur s (Bash POSIX Kipi (sayfa: 80) blmne baknz). Bash ok karakterli agr seeneklerine sahiptir (Bashin agrlmas (sayfa: 67) blmne baknz). Bashde komut satr dzenlemesi ve bind yerle igi vardr (Komut Satrnn Dzenlenmesi (sayfa: 87) s blmne baknz). Bash bir programlanabilir szck tamamlama (sayfa: 105) mekanizmas ile onu ynetmek iin complete ve compgen yerle iklerini ierir. s Bash komut gemi i (sayfa: 111) ile onu ynetmek iin history ve fc yerle iklerine sahiptir. Bash s s gemi listesi zaman damgas bilgisi saglar ve degerini gstermek iin HISTTIMEFORMAT degi kenini s s kullanr. Bash csh tarz gemi yorumlamasna (sayfa: 113) sahiptir. s Bash tek boyutlu dizi (sayfa: 76) degi kenlerine ve onlar kullanacak uygun degi ken atama szdizimi ve s s degi ken yorumlamasna sahiptir. Bashin baz yerle iklerinin seenekleri dizilerle al mak iindir. Ayrca s s s Bashin yerle ik dizi degi kenleri de vardr. s s Bashde tek trnak iine alnm metinlerde ANSIC (sayfa: 13) tersbl ncelemeli karakterleri yorumlayan s $... trnaklama szdizimi destegi vardr. Bash ift trnak iine alnm karakterlere yerele zel eviri (sayfa: 14) yapmak iin $"..." trnakl szdizs imini destekler. D, dumpstrings, ve dumppostrings komut satr seenekleri bir betik iindeki evrilebilir dizgeleri listeler.

http://belgeler.org

Linux Kitaplg

122 / 142

GNU Bash Basvuru Klavuzu

Bash bir boruhattnn (sayfa: 15) dn degerinin tersini alabilen bir ! anahtar szcgne sahiptir. Bir s snama ba arsz oldugunda bir if deyiminde i lem yaptrmak iin faydaldr. Bash, set yerle iginin o s s s pipefail seenegi ile etkinle tirilen ve iindeki bir komutunun ba arszlg halinde bir hata dndren s s bir boruhattna sahiptir. Bash time anahtar szcg ve komut zamanlamas (sayfa: 15) ierir. TIMEFORMAT degi keni ile kontrol s edilen zamanlama istatistikleri gsterir. Bash, C dilindekine benzer
for (( ifade1 ; ifade2 ; ifade3 ))

aritmetik for (sayfa: 17) komutu ierir. Bash basit menlerin olu turulmasna izin veren select (sayfa: 18) birle ik komutuna sahiptir. s s Bash kabuk szdiziminde snama yapmaya yarayan ve istege bagl olarak dzenli ifade e le mesini de s s mmkn klan [[ ko ullu komutu (sayfa: 18) iin destek ierir. s Bash case ve [[ olu umlar iin istege bagl olarak harf byklgne duyarsz e le me saglar. s s s Bash ka l ayra yorumlamas (sayfa: 23) ve yakla k yorumlamas (sayfa: 23) ierir. s s Bash komut takma adlar (sayfa: 75) ile alias ve unalias yerle iklerini ierir. s Bash kabuk aritmetigi (sayfa: 74), (( birle ik komutu (sayfa: 18) ve aritmetik yorumlamasna (sayfa: 74) s sahiptir. Kabugun ilk ortamnda mevcut olan degi kenler ast srelere otomatik olarak aktarlr. Bourne kabugu s export komutu kullanlarak degi kenler imlenmedike normalde bunu yapmaz. s Bash isimli degi kenin sol taraf degerine ekleme yapan += atama i lecini destekler. s s Bash POSIX kalp yoketme, degi ken degerlerinden ba taki ve sondaki altdizgeleri kaldracak %, #, %% s s ve ## yorumlamalar ierir (Kabuk Parametrelerinin Yorumlamas (sayfa: 24) blmne baknz).

${xx}in uzunlugunu dndren ${#xx} yorumlamas desteklenir (Kabuk Parametrelerinin Yorumlamas


(sayfa: 24) blmne baknz).

konum kalp

dan

ba layan s

uzunluk

karakterlik

parametre

alt

dizgesini ile

yorumlayan degi tiren s

${parametre:konum[:uzunluk]} parametre yorumlamas (sayfa: 24) vardr.


e le tirdikten sonra onu parametre nin degerindeki dizge s s ${parametre/[/]kalp[/dizge]}, parametre yorumlamas (sayfa: 24) vardr.

simleri nek ile ba layan tm kabuk degi kenlerinin isimleri olarak yorumlanan ${!nek}* parameI s s tre yorumlamas (sayfa: 24) vardr. Bash ${!szck} kullanarak dolayl degi ken yorumlamasna (sayfa: 24) sahiptir. s Bash $9 dan byk konumsal paramaetreleri ${say} kullanarak yorumlar. POSIX $() biemli komut ikamesi (sayfa: 26), Bourne kabugunun komut ikamesine tercih edilmi tir. s Ancak Bourne kabugunun komut ikamesi de desteklenmektedir. Bash sre ikamesine (sayfa: 27) sahiptir. Bash o anki kullanc (UID, EUID ve GROUPS), o anki konak (HOSTTYPE, OSTYPE, MACHTYPE ve HOSTNAME) ve al an Bash kopyas (BASH, BASH_VERSION ve BASH_VERSINFO) hakknda bilgi s saglayan degi kenleri (sayfa: 60) otomatik olarak atar. s

IFS degi keni tm szcklerin degil sadece yorumlama sonularn ayrmlamakta (sayfa: 27) kuls
lanlm tr. Bu uzun zamandr sren bir gvenlik agn kapatm tr. s s Bash POSIX 1003.2 dosyaismi yorumlama (sayfa: 27) i lelerinin tamamn destekler (karakter snar, s e itlik snar ve birle tirme sembolleri dahil). s s Bash extglob kabuk seenegi etkinken ek kalp e le me i lelerini kullanabilir (Kalp E leme (sayfa: s s s s 28) blmne baknz). Linux Kitaplg 123 / 142

http://belgeler.org

GNU Bash Basvuru Klavuzu

Bir degi ken ile bir i lev ayn isimde olabilir; sh bu iki isim alann ayrmaz. s s Bash i levleri local (sayfa: 47) yerle igini kullanarak yerel degi kenler kullanabilir. Bylece i ie i lev s s s s agrlar yazlabilmesi mmkndr. Komutlar nceleyen degi ken atamalar sadece komutlar, yerle ikleri ve i levleri etkiler. shda komutlar s s s nceleyen tm degi ken atamalar komut dosya sisteminden al trlmadka agrldg ortam da etkiler s s (Ortam (sayfa: 34) blmne baknz). Bash girdi ve kt ynlendirme (sayfa: 29) i lelerine terim olarak belirtilen dosyaisimleri stnde s dosyaismi yorumlamas uygular. Bash bir dosyay hem okumak hem de yazmak iin aan <> ve standart kt ile standart girdiyi ayn dosyaya ynlendiren ynlendirme (sayfa: 29) i lelerini ierir. s Bash bir dizgenin bir komutun standart girdisi olarak kullanlmasn mmkn klan <<< ynlendirme i lecini s ierir. Bash bir dosya tantcsn bir digerine ta yan [n]<&szck ve [n]>&szck ynlendirme i lelerini s s ierir. Bash ynlendirme (sayfa: 29) i lelerinde kullanldgnda dosyaisimlerini zel olarak ele alr. s Bash ynlendirme (sayfa: 29) i leleri ile istege bagl olarak makinalara ve servislere ag baglantlar s aabilir. Bashde kt ynlendirmesi ile mevcut dosyalarn zerine yazlmasn engelleyecek noclobber (sayfa: 50) seenegi vardr. >| ynlendirme i leci ile noclobber seeneginin engeli a labilir. s s Bash cd (sayfa: 38) ve pwd (sayfa: 40) yerle iklerinin herbiri L ve P seenekleri ile mantksal ve ziksel s kiplere geebilir. Bash bir yerle ikle ayn isimde i levlere izin vererek i lev iinden yerle igin i levselligine builtin (sayfa: s s s s s s s 45) ve command (sayfa: 45) yerle ikleri zerinden eri ilmesini saglar.

command (sayfa: 45) yerle igi komut aramas uygulanrken i levlerin seimli iptaline izin verir. s s
Yerle ikler enable (sayfa: 47) yerle igi kullanlarak tek tek etkinle tirilebilir ya da iptal edilebilir. s s s Bash exec (sayfa: 39) yerle igi, al trlan komuta aktarlan ortamn ieriginin ve komuta verilecek sfrnc s s argmann ne olacagnn kullanc tarafndan kontrol edilmesini saglayan ek seeneklere sahiptir. Kabuk i levleri (sayfa: 20) exportf ile ortam zerinden alt srelere aktarlabilir. s Bash export (sayfa: 39), readonly (sayfa: 40) ve declare (sayfa: 45) yerle ikleri kabuk i levleri s s ile al an bir f seenegine, bir kabuk girdisi olarak kullanlabilen bir biemde atanan e itli isimlere s s sahip degi kenleri gsteren bir p seenegine, e itli degi ken isimlerini kaldran bir n seenegine ve s s s g degi ken isimleri ile degerlerini ayn anda atayan isim=deer argmanlarna sahiptir. s Bash hash (sayfa: 40) yerle igi dosyaismi $PATH aramasnda hash p kullanlarak bulunamasa bile s bir ismin bir key dosyaismi ile ili kilendirilmesine izin verir. s Bash kabuk yerle ikleri ve degi kenleri hakknda yardm almak iin kullanlan bir help (sayfa: 47) s s yerle igine sahiptir. s

printf (sayfa: 48) yerle igi biemli ktlar gstermekte kullanlr. s


Bash read (sayfa: 48) yerle igi \ ile biten bir satr r seenegi ile okuyacak ve hi seenek olmayan s argman verilmezse ntanml olarak REPLY degi kenini kullanacaktr. Bash read yerle igi ayrca p s s seenegi ile bir komut istemi dizgesi kabul eder ve e seenegi verildiginde satr saglamada Readline kullanr. read yerle igi bunlardan ba ka girdiyi kontrol etmek iin ek seeneklere sahiptir: s seenegi s s girdi karakterlerinin okundugu gibi yanslanmasn engelleyecek, t seenegi ile belirtilen sre iinde bir girdi alnmazsa okumann zamana mna girmesi saglanacak, n seenegi satrn tamam yerine sadece s belirtilen sayda karakterin okunmasna izin verecek ve d seenegi satrsonu yerine bir ba ka karaktere s kadar okuyacaktr.

http://belgeler.org

Linux Kitaplg

124 / 142

GNU Bash Basvuru Klavuzu

return (sayfa: 41) yerle igi . veya source (sayfa: 56) yerle ikleri ile al trlan betiklerin kmasn s s s saglamakta kullanlabilir.
Bash kabugun istemlik yeteneklerini daha iyi kontrol etmek iin ve bu seeneklerin kabuk agrsnda (sayfa: 67) atanmasn ve kaldrlmasn saglayan shopt (sayfa: 52) yerle igine sahiptir. s Bash set (sayfa: 49) yerle igi ile kontrol edilebilir ok sayda istemlik davran a sahiptir. s s

x (xtrace (sayfa: 51)) seenegi bir al mann izlenmesi srasnda basit komutlardan ba ka komutlar s s
da gsterir.

test (sayfa: 41) yerle igi argmanlaryla davran degi tirilebilen bir POSIX algoritmas olarak biraz s s s
farkl gereklenmi tir. s Bash, etkin altyordam agrsnn (. veya source yerle igi ile al trlan bir kabuk i levi ya da betigi) s s s baglamn gsteren caller yerle igini ierir. Bu, bash hata ayklaycsn da destekler. s

trap (sayfa: 42) yerle igi EXITe benzer bir DEBUG sinyalimsi belirtimine izin verir. Bir DEBUG kapan ile s belirtilen komutlar her basit komuttan, for komutundan, case komutundan, select komutundan, her s s s I aritmetik for komutundan ve bir kabuk i levinde al trlacak ilk komuttan nce al trlr. sleve trace niteligi verilmi olmadka ya da shopt yerle igi kullanlarak functrace seenegi etkinle tirilmi ol s s s s madka DEBUG kapan kabuk i levleri tarafndan miras alnmaz. extdebug kabuk seeneginin DEBUG s
kapan zerinde ek bir etkisi vardr.

trap (sayfa: 42) yerle igi EXIT ve DEBUGa benzer bir ERR sinyalimsi belirtimine izin verir. Bir ERR kapan s ile belirtilen komutlar bir ka durum d nda her ba arsz basit komuttan sonra al trlr. set yerle inin s s s s o errtrace seenegi etkinle tirilmedike ERR kapan kabuk i levleri tarafndan miras alnmaz. s s trap (sayfa: 42) yerle igi EXIT ve DEBUGa benzer bir RETURN sinyalimsi belirtimine izin verir. Bir s RETURN kapan ile belirtilen komutlar . veya source ile al trlan bir kabuk i levi veya betigi dndkten s s sonra kaldg yerden devam etmeden nce al trlrlar. sleve trace niteligi verilmi olmadka ya da s I s shopt yerle igi kullanlarak functrace seenegi etkinle tirilmi olmadka RETURN kapan kabuk s s s
i levleri tarafndan miras alnmaz. s

Bash type (sayfa: 56) yerle igi daha yaygndr ve buldugu isimler hakknda daha fazla bilgi verir. s Bash umask (sayfa: 43) yerle igi kendisine girdi olarak verilebilecek biemde gsterilen bir kt veren bir s p seenegine sahiptir. Bash bir csh benzeri dizin ygnna (sayfa: 77) sahiptir ve onu ynetmek iin pushd, popd ve dirs yerle iklerini ierir. Bash ayrca dizin ygnn DIRSTACK (sayfa: 61) kabuk degi keninin degerindeki gibi s s grnr yapabilir. Bash etkile imliyken komut isteminde (sayfa: 78) zel tersbl ncelemeli karakterleri yorumlar. s Bash snrl kipte (sayfa: 80) ok kullan ldr; SVR4.2 kabugu ise snrl kipte ok fazla snrldr. s

disown (sayfa: 85) yerle igi bir i i kabugun dahili i tablosundan kaldrabilir veya kabuk bir SIGHUP s s s sinyalinin sonucu olarak karken bir i e SIGHUP sinyalinin gnderilmesini engelleyebilir. s
Bash, kabuk betikleri iin ayr bir hata ayklaycy destekleyecek bir miktar zellik ierir. The SVR4.2 kabugu ayrcalklarla ilgili mldmode ve priv diye Bashde bulunmayan iki yerle ige sahiptir. s Bash stop ve newgrp yerle iklerine sahip degildir. s Bash kabuk hesaplar uygulamaz ve SHACCT degi kenini kullanmaz. s SVR4.2 sh TIMEOUT degi keni kullanrken Bash TMOUT degi kenini kullanr. s s

Bashe zel diger zellikler Bashin zellikleri (sayfa: 67) blmnde bulunabilir.

B.1. SVR4.2 Kabugunun Olusumsal Farklar


Bash tamamen yeni bir olu um oldugundan, SVR4.2 kabugunun bir ok snrlamasndan muaftr. rnegin: s

http://belgeler.org

Linux Kitaplg

125 / 142

GNU Bash Basvuru Klavuzu

Bash bir if veya while deyiminde oldugu gibi bir kabuk denetim yapsnn iine ya da d na yaplan s ynlendirmelerde bir altkabuk atallamaz. Bash kapanmam trnaklara icin vermez. SVR4.2 kabugu ayn durumda hata vermeyerek kapatan trnag s EOF konumunda yerle tirecektir. Bu da bulunmas ok zor hatalara sebep olur. s SVR4.2 kabugu SIGSEGV sinyalinin yakalanmasna bagl bir barok bellek ynetim semas kullanr. Kabuk SIGSEGV ile bloklanm (rnegin, system() C ktphane i levi agrs ile) bir sreten ba latlrsa, s s s olduka yanl davranr. s Gvenlikte spheli bir te ebbs halinde SVR4.2 kabugu p seenegi olmakszn agrldgnda gerek s ve etkin UID ve GIDi bir sihirli e ik degerden (genelde 100) kkse, gerek ve etkin UID ve GIDini s degi tirecektir. Bu beklenmeyen sonulara yol aabilir. s SVR4.2 kabugu kullanclarn SIGSEGV, SIGALRM ve SIGCHLD sinyalleri ile ilgili sinyal kapan kur malarna izin vermez. SVR4.2 kabugu IFS, MAILCHECK, PATH, PS1 ve PS2 degi kenlerinin ortamdan kaldrlmasna izin s vermez. SVR4.2 kabugunda , |ya e deger olarak ele alnr. s Bash seeneklere oklu argmanlar olarak (x v) izin verirken SVR4.2 kabugu sadece tek argmanlk s (xv) seenek belirtilmesine izin verir. Gerekte, kabugun baz srmleri ikinci argman bir ile ba lyorsa bellek dkm ile kar (core dump). SVR4.2 kabugunda bir betigin iindeki bir yerle ik komut hata ile karsa betikte kar. Bashde ise sadece s POSIX 1003.2 zel yerle iklerinden biri ba arsz olursa ve sadece POSIX 1003.2 standardnda sralanm s s s ba arszlk hallerinde betik kar. s SVR4.2 kabugu jsh olarak agrldgnda farkl davranr (i denetimini etkinle tirir). s s

C. Bu Klavuzun Kopyalanmas
GNU zgr Belgeleme Lisans ile lisanslanm belgelerin bu lisans iermesi gerektiginden ve bu lisans kens disinin degi tirilmesine izin vermediginden (buna tercme de dahildir) lisans hibir degi iklik yaplmakszn bus s rada belgeye eklenmi tir. s (.N. GNU zgr Belgeleme Lisans bu zelligi sebebiyle dili ngilizce olmayan belgelerde kullanmak iin I ngilizce bir metin eklemek istemezsiniz, herhalde. Daha zgr kendinin uygun degildir; Trke belgenize I belgeye eklenmesini zorunlu klmayan lisanslar da var. rnegin "Creative Commons Share Alike" kendinin belgeye eklenmesini zorunlu klmamas d nda GNU BLye hemen hemen e degerdir.) s s

GNU Free Documentation License


Version 1.2, November 2002
Copyright 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 021111307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

1. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modications made by others.

http://belgeler.org

Linux Kitaplg

126 / 142

GNU Bash Basvuru Klavuzu

This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 2. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world wide, royaltyfree license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modied Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modications and/or translated into another language. A "Secondary Section" is a named appendix or a frontmatter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Documents overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not t the above denition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as FrontCover Texts or BackCover Texts, in the notice that says that the Document is released under this License. A FrontCover Text may be at most 5 words, and a BackCover Text may be at most 25 words. A "Transparent" copy of the Document means a machinereadable copy, represented in a format whose specication is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent le format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modication by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ascii without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standardconforming simple HTML, PostScript or PDF designed for human modication. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally

http://belgeler.org

Linux Kitaplg

127 / 142

GNU Bash Basvuru Klavuzu

available, and the machinegenerated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the works title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specic section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this denition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 3. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 4. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Documents license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: FrontCover Texts on the front cover, and BackCover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to t legibly, you should put the rst ones listed (as many as t reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machinereadable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computernetwork location from which the general networkusing public has access to download using publicstandard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

http://belgeler.org

Linux Kitaplg

128 / 142

GNU Bash Basvuru Klavuzu

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 5. MODIFICATIONS You may copy and distribute a Modied Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modied Version under precisely this License, with the Modied Version lling the role of the Document, thus licensing distribution and modication of the Modied Version to whoever possesses a copy of it. In addition, you must do these things in the Modied Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modications in the Modied Version, together with at least ve of the principal authors of the Document (all of its principal authors, if it has fewer than ve), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modied Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modied Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Documents license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modied Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modied Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modied Version.

http://belgeler.org

Linux Kitaplg

129 / 142

GNU Bash Basvuru Klavuzu

N. Do not retitle any existing section to be Entitled "Endorsements" or to conict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modied Version includes new frontmatter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modied Versions license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modied Version by various partiesfor example, statements of peer review or that the text has been approved by an organization as the authoritative denition of a standard. You may add a passage of up to ve words as a FrontCover Text, and a passage of up to 25 words as a BackCover Text, to the end of the list of Cover Texts in the Modied Version. Only one passage of FrontCover Text and one of BackCover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modied Version. 6. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms dened in section 4 above for modied versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodied, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements." 7. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 8. AGGREGATION WITH INDEPENDENT WORKS

http://belgeler.org

Linux Kitaplg

130 / 142

GNU Bash Basvuru Klavuzu

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilations users beyond what the individual works permit. When the Document is included an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Documents Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 9. TRANSLATION Translation is considered a kind of modication, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 10. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 11. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document species that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specied version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

ADDENDUM: How to use this License for your documents


To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (C) year your name. Permission is granted to copy, distribute and/or modify this document

http://belgeler.org

Linux Kitaplg

131 / 142

GNU Bash Basvuru Klavuzu

under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no FrontCover Texts, and no BackCover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.

If you have Invariant Sections, FrontCover Texts and BackCover Texts, replace the "with...Texts." line with this:
with the Invariant Sections being list their titles, with the FrontCover Texts being list, and with the BackCover Texts being list.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

http://belgeler.org

Linux Kitaplg

132 / 142

GNU Bash Basvuru Klavuzu

Kabuk Yerlesik Komutlar Dizini


Semboller
. (nokta) ................................................. 38 : (iki nokta stste) .................................... 38 [ .......................................................... 41

K
kill ........................................................ 85

L
let ........................................................ 47 local......................................................47

A
alias......................................................43

P
popd ..................................................... 77 pushd.................................................... 78 pwd ...................................................... 40

B
bg ........................................................ 84 break .................................................... 38 builtin .................................................... 44

R
readonly................................................. 40 return .................................................... 41

C
caller..................................................... 44 command ............................................... 45 compgen .............................................. 107 complete...............................................107 continue ................................................. 39

S
set........................................................49 shift ...................................................... 41 shopt .................................................... 53 source ................................................... 56 suspend ................................................. 86

D
declare .................................................. 45 dirs....................................................... 77 disown................................................... 85

T
test....................................................... 41 trap ...................................................... 42 type ...................................................... 56 typeset .................................................. 57

E
echo ..................................................... 46 enable ................................................... 47 eval ...................................................... 39 exec......................................................39 export....................................................39

U
unalias...................................................58 unset .................................................... 43

W
wait ...................................................... 85

F
fc........................................................112 fg ......................................................... 84

G
getopts .................................................. 39

H
hash ..................................................... 40 help ...................................................... 47

J
jobs ...................................................... 84

http://belgeler.org

Linux Kitaplg

133 / 142

GNU Bash Basvuru Klavuzu

Kabuk Seenekleri Dizini


A
allexport ................................................. 50

K
keyword ................................................. 50

L
lithist ..................................................... 55 login_shell .............................................. 55

B
braceexpand ........................................... 50

M
mailwarn ................................................ 55 monitor .................................................. 50

C
cdable_vars.............................................53 cdspell................................................... 53 checkhash .............................................. 53 checkwinsize ........................................... 53 cmdhist.................................................. 53

N
nocaseglob ............................................. 55 nocasematch ........................................... 55 noclobber ............................................... 50 noexec...................................................50 noglob ................................................... 50 nolog .................................................... 50 notify..................................................... 50 nounset ................................................. 51 no_empty_cmd_completion.......................... 55 nullglob.................................................. 55

D
dotglob .................................................. 53

E
emacs ................................................... 50 errexit.................................................... 50 errtrace.................................................. 50 execfail .................................................. 54 expand_aliases ........................................ 54 extdebug ................................................ 54 extglob .................................................. 54 extquote................................................. 54

O
onecmd ................................................. 51

P
physical ................................................. 51 pipefail...................................................51 posix..................................................... 51 privileged ............................................... 51 progcomp ............................................... 55 promptvars..............................................56

F
failglob...................................................54 force_gnore ........................................... 54 functrace ................................................ 50

G
gnu_errfmt .............................................. 54

R
restricted_shell......................................... 56

H
hashall...................................................50 histappend........................................ 54, 111 histexpand .............................................. 50 history ................................................... 50 histreedit ................................................ 55 histverify ................................................ 55 hostcomplete ........................................... 55 huponexit ............................................... 55

S
shift_verbose ........................................... 56 sourcepath.............................................. 56

V
verbose..................................................51 vi ......................................................... 51

I
ignoreeof................................................ 50 interactive_comments................................. 55

X
xpg_echo ............................................... 56 xtrace.................................................... 51 134 / 142

http://belgeler.org

Linux Kitaplg

GNU Bash Basvuru Klavuzu

Kabuk Anahtar Szckleri Dizini


Semboller
) .......................................................... 19 ! .......................................................... 15 (( ......................................................... 18 ( ......................................................... 19 )) ......................................................... 18 [[.......................................................... 18 ]].......................................................... 18 { .......................................................... 19 } .......................................................... 19

C
case ..................................................... 17

D
do ............................................... 16, 16, 17 done ............................................ 16, 16, 17

E
elif........................................................ 17 else ...................................................... 17 esac ..................................................... 17

F
.......................................................... 17 for ........................................................ 17 function..................................................20

I
if.......................................................... 17 in ......................................................... 17

S
select .................................................... 18

T
then ...................................................... 17

U
until ...................................................... 16

W
while ..................................................... 16

http://belgeler.org

Linux Kitaplg

135 / 142

GNU Bash Basvuru Klavuzu

Parametreler ve Degiskenler Dizini


Semboller
# ......................................................... 22 $ ......................................................... 22 * ......................................................... 21 (bir tire) ............................................... 22 0 ......................................................... 22 ? ......................................................... 22 @ ......................................................... 22
_ (bir altizgi) ........................................... 22

E
editingmode ...................................... 92 EMACS ................................................ 62 enablekeypad .................................... 92 EUID .................................................. 62 expandtilde ...................................... 92

F
FCEDIT ............................................... 62 FIGNORE ............................................. 62 FUNCNAME ........................................... 62

A
auto_resume ........................................86

G
GLOBIGNORE ........................................62 GROUPS ............................................... 62

B
BASH ................................................... 60 BASH_ARGC .......................................... 60 BASH_ARGV .......................................... 60 BASH_COMMAND ..................................... 60 BASH_ENV ............................................ 60 BASH_EXECUTION_STRING ...................... 60 BASH_LINENO ....................................... 60 BASH_REMATCH ..................................... 60 BASH_SOURCE ....................................... 60 BASH_SUBSHELL ................................... 60 BASH_VERSINFO ................................... 60 BASH_VERSION ..................................... 60 bellstyle ......................................... 91 bindttyspecialchars .................... 91

H
histchars ......................................... 62 HISTCMD ............................................. 62 HISTCONTROL ...................................... 62 HISTFILE ........................................... 63 HISTFILESIZE .................................... 63 HISTIGNORE ........................................63 historypreservepoint .................... 92 HISTSIZE ........................................... 63 HISTTIMEFORMAT ................................ 63 HOME .................................................... 59 horizontalscrollmode .................... 92 HOSTFILE ........................................... 63 HOSTNAME ........................................... 63 HOSTTYPE ........................................... 63

C
CDPATH ................................................ 59 COLUMNS ............................................. 61 commentbegin .................................... 91 completionignorecase .................... 91 completionqueryitems .................... 91 COMPREPLY ........................................... 61 COMP_CWORD ........................................61 COMP_LINE ......................................... 61 COMP_POINT ........................................61 COMP_WORDBREAKS ............................... 61 COMP_WORDS ........................................61 convertmeta ...................................... 92

I
IFS ...................................................... 59 IGNOREEOF ......................................... 64 INPUTRC ............................................. 64

I
inputmeta ......................................... 92 isearchterminators ......................... 92

K
keymap ................................................ 92

L
LANG .................................................. 64 LC_ALL ............................................... 64 LC_COLLATE ........................................64 LC_CTYPE ........................................... 64
136 / 142

D
DIRSTACK ........................................... 61 disablecompletion ........................... 92 http://belgeler.org

Linux Kitaplg

GNU Bash Basvuru Klavuzu

LC_MESSAGES ........................................14 LC_MESSAGES ...................................... 64 LC_NUMERIC ........................................64 LINENO ............................................... 64 LINES ................................................ 64

T
TEXTDOMAIN ......................................... 14 TEXTDOMAINDIR .................................... 14 TIMEFORMAT ........................................66 TMOUT ................................................ 66 TMPDIR ............................................... 66

M
MACHTYPE ........................................... 64 MAIL .................................................... 59 MAILCHECK ......................................... 64 MAILPATH ............................................. 59 markdirectories ............................... 92 markmodifiedlines ......................... 93 marksymlinkeddirectories ............. 93 matchhiddenfiles ........................... 93

U
UID .................................................... 66

V
visiblestats .................................... 93

O
OLDPWD ............................................... 64 OPTARG ................................................ 59 OPTERR ............................................... 64 OPTIND ................................................ 59 OSTYPE ............................................... 65 outputmeta ........................................93

P
pagecompletions ............................... 93 PATH .................................................... 59 PIPESTATUS ........................................65 POSIXLY_CORRECT ............................... 65 PPID .................................................. 65 printcompletionshorizontally ...... 93 PROMPT_COMMAND ................................ 65 PS1 ...................................................... 59 PS2 ...................................................... 59 PS3 .................................................... 65 PS4 .................................................... 65 PWD .................................................... 65

R
RANDOM ............................................... 65 REPLY ................................................ 65

S
SECONDS ............................................. 65 SHELL ................................................ 65 SHELLOPTS ......................................... 65 SHLVL ................................................ 66 showallifambiguous ...................... 93 showallifunmodified .................... 93 http://belgeler.org
Linux Kitaplg 137 / 142

GNU Bash Basvuru Klavuzu

slev Dizini I
A
abort (Cg) ....................................... 103 acceptline (Newline veya Return) .98 aliasexpandline () ....................... 105

editandexecutecommand (CxCe) 105 endkbdmacro (Cx )) ..................... 103 endofhistory (M>).........................99 endofline (Ce) .............................. 98 exchangepointandmark (Cx Cx) 104

F
forwardbackwarddeletechar () ... 100 forwardchar (Cf) ............................ 98 forwardsearchhistory (Cs) .......... 99 forwardword (Mf) ............................ 98

B
backwardchar (Cb) .......................... 98 backwarddeletechar (Rubout).........99 backwardkillline (Cx Rubout) ... 100 backwardkillword (MDEL) ............ 101 backwardword (Mb) .......................... 98 beginningofhistory (M<) ............. 99 beginningofline (Ca) ................... 98

G
globcompleteword (Mg) ................ 104 globexpandword (Cx *) ................ 104 globlistexpansions (Cx g) ......... 105

C
calllastkbdmacro (Cx e)...........103 capitalizeword (Mc) ..................... 100 charactersearch (C]) ................... 104 charactersearchbackward (MC]) 104 clearscreen (Cl) ............................ 98 complete (TAB).................................. 102 completecommand (M!) ................... 103 completefilename (M/)..................102 completehostname (M@)..................103 completeintobraces (M{) ............ 103 completeusername (M)..................102 completevariable (M$)..................102 copybackwardword () ..................... 101 copyforwardword () ....................... 101 copyregionaskill () ................... 101

H
historyandaliasexpandline ()..105 historyexpandline (M) .............. 105 historysearchbackward () .............. 99 historysearchforward ()................99

I
insertcomment (M#) ....................... 104 insertcompletions (M*) ................ 102 insertlastargument (M. or M_) 105

K
killline (Ck) ................................ 100 killregion ().................................. 101 killwholeline ()...........................101 killword (Md) ................................ 101

D
deletechar (Cd) .............................. 99 deletecharorlist () ................... 102 deletehorizontalspace () ............ 101 digitargument (M0, M1, ... M)
101

M
magicspace ().................................. 105 menucomplete () .............................. 102

N
nexthistory (Cn) ............................ 98 nonincrementalforwardsearchhistory (Mn) ................................................... 99 nonincrementalreversesearchhistory (Mp) ................................................... 99

displayshellversion (Cx Cv) ... 105 douppercaseversion (Ma, Mb, Mx, ...) .......................................... 103 downcaseword (Ml) ......................... 100 dumpfunctions () ............................ 104 dumpmacros ().................................. 104 dumpvariables () ............................ 104 dynamiccompletehistory (MTAB)..103

O
operateandgetnext (Co) ............ 105 overwritemode () ............................ 100

E
http://belgeler.org

Linux Kitaplg

138 / 142

GNU Bash Basvuru Klavuzu

P
possiblecommandcompletions
103 (Cx !)

possiblecompletions (M?) ............ 102 possiblefilenamecompletions (Cx /) ....................................................... 102 possiblehostnamecompletions (Cx @) ....................................................... 103 possibleusernamecompletions (Cx ) ....................................................... 102 possiblevariablecompletions (Cx $) ....................................................... 102 prefixmeta (ESC) ............................ 103 previoushistory (Cp) ..................... 98

Q
quotedinsert (Cq veya Cv) ......... 100

R
rereadinitfile (Cx Cr)...........103 redrawcurrentline () ..................... 98 reversesearchhistory (Cr) .......... 99 revertline (Mr) ............................ 103

S
selfinsert (a, b, A, 1, !, ...) ... 100 setmark (C@).................................. 104 shellexpandline (MCe) .............. 105 startkbdmacro (Cx ()..................103

T
tildeexpand (M&)...........................104 transposechars (Ct) ..................... 100 transposewords (Mt) ..................... 100

U
undo (C_ or Cx Cu) ..................... 103 universalargument () ..................... 101 unixfilenamerubout ()..................101 unixlinediscard (Cu)..................100 unixwordrubout (Cw) ................... 101 upcaseword (Mu) ............................ 100

Y
yank (Cy) ......................................... 101 yanklastarg (M. veya M_) .......... 99 yankntharg (MCy).........................99 yankpop (My).................................. 101 http://belgeler.org
Linux Kitaplg 139 / 142

GNU Bash Basvuru Klavuzu

Kavramlar Dizini
A
aklamalar kabuk ............................................... 14 alan (eld).............................................. 9 anadil .................................................... 14 anahtar szck (reserved word) .................... 9 arama komut ............................................... 33 aritmetik i lemler ............................................. 74 s kabuk degi kenleriyle............................. 74 s yorumlama ......................................... 27 artalan................................................... 83 ayrmlama .............................................. 13 ANSI ................................................ 13

E
e leme s kalp ................................................. 28 etkile im s readline ............................................. 88 etkile imli s kabuk ........................................... 67, 70 eylem belirticiler ......................................... 113

G
gemi s eylemleri .......................................... 113 listesi .............................................. 111 nasl kullanlr .................................... 107 yerle ik komutlar ................................ 111 s yorumlamas ..................................... 113 giri kabugu ............................................ 67 s

B
Bash kurulum ........................................... 116 yaplandrma ..................................... 116 ba latma dosyalar .................................... 69 s belirte.................................................... 9 boruhatt ................................................ 15 bo luk..................................................... 9 s Bourne kabugu......................................... 12

I
ifadeler aritmetik ............................................ 74 ko ullu .............................................. 72 s ikame komut ............................................... 26 sre ................................................ 27 ilklendirme dosyas readline ............................................. 90 i (job) .................................................. 9 s i denetimi (job control) .............................. 9 s isim ........................................................ 9 i le (operator) ........................................ 9 s i lemler s aritmetik ............................................ 74 i lerin bekletilmesi ..................................... 83 s

al trma s komut ............................................... 33 al trma ortam ...................................... 33 s eviriler anadil ............................................... 14 k durumu............................................35 s k durumu (exit status) ............................ 9 s

K
kalp e leme ............................................ 28 s ka l ayralarn yorumlanmas ....................... 23 s kes ve yap tr.......................................... 89 s komut arama ............................................... 33 al trma........................................... 33 s dzenleme ......................................... 88 gemi i ............................................ 111 s ikame ............................................... 26 yorumlamas ....................................... 32 zamanlama......................................... 15 komut istemi ............................................ 78 komut satr dzenlemesi ............................. 88 140 / 142

D
degi ken s kabuk ............................................... 21 readline ............................................. 90 denetim i leci (control operator) .................... 9 s dizgecik (token) ....................................... 9 dizin ygn .............................................. 77 dn durumu (return status) ....................... 9 s dosyaismi yorumlama ......................................... 28 dosyaismi (lename) ................................. 9 dosyayolu yorumlama ......................................... 28

http://belgeler.org

Linux Kitaplg

GNU Bash Basvuru Klavuzu

komut tablosu...................................... 40, 53 komutlar basit ................................................. 15 birle ik .............................................. 16 s boruhatlar.......................................... 15 dngler ........................................... 16 gruplama ........................................... 19 kabuk ............................................... 14 ko ullu .............................................. 17 s listeler............................................... 15

sre grubu (process group)....................... 10 sre grubu kimligi (process group ID) ........... 10

T
takma ad yorumlama ......................................... 75 tamamlama yerle ikleri.............................. 107 s

U
uluslararasla trma ................................... 14 s

M
metakarakter (metacharacter).......................9 metnin kesilmesi ....................................... 89 metnin yap trlmas .................................. 90 s

Y
yerelle tirme............................................ 14 s yerle ik (builtin) ...................................... 10 s yerle ik komutlar s Bash ................................................ 43 Bourne kabugu .................................... 38 dizin ygn.......................................... 77 gemi ............................................ 111 s i denetimi.......................................... 84 s POSIXe zel ...................................... 58 tamamlama ....................................... 107 ynlendirme ............................................ 29 yorumlama.............................................. 22 aritmetik ............................................ 27 dosyaismi........................................... 28 dosyayolu........................................... 28 gemi ............................................ 113 s ka l ayralar....................................... 23 s komut ............................................... 32 parametre .......................................... 24 takma ad ........................................... 75 yakla k () ......................................... 23 s

N
niteleme readline ............................................. 88

O
ortam .................................................... 34

nalan ................................................... 83 zel yerle ik komut ..................................... 58 s zel yerle ik (special builtin).........................9 s

P
pano ..................................................... 89 parametre yorumlama ......................................... 24 parametreler............................................ 21 konumsal ........................................... 21 zel.................................................. 21 POSIX Kipi..............................................80 programlanabilir tamamlama ....................... 105

R
Readline nasl kullanlr ...................................... 86

S
snrl kabuk ............................................ 80 sinyal (signal) ........................................ 10 szck belirticiler ......................................... 114 szck (word) ........................................ 10

http://belgeler.org

Linux Kitaplg

141 / 142

GNU Bash Basvuru Klavuzu

Notlar
a) Belge iinde dipnotlar ve d baglantlar varsa, bunlarla ilgili bilgiler bulunduklar sayfann sonunda dipnot s olarak verilmeyip, hepsi toplu olarak burada listelenmi olacaktr. s Konsol grntsn temsil eden sar zeminli alanlarda metin geni ligine sgmayan satrlarn sgmayan s ksm karakteri kullanlarak bir alt satra indirilmi tir. Sar zeminli alanlarda karakteri ile ba layan s s satrlar bir nceki satrn devam olarak ele alnmaldr. Bir betik al rken klavyeden C tu ladgnzda durmamasn isterseniz a agdaki gibi bir programcg s s s betigin ba na yerle tirebilirsiniz (fare kapan kurmak gibi sinyal kapan kuruyoruz): s s
# Ctrl + C tulandnda gsterilecek ileti s g trap echo "ControlC iptal edildi." SIGINT
(2)

b)

(1)

# Hibir ileti gstermeden de C iptal edilebilir trap SIGINT


(3)

C kesmesini tekrar etkin klmak isterseniz:


trap SIGINT

yeterlidir.
(4)

.N.: Tohum (seed) yeni rasgele saylarn retilmesi iin kaynaklk edecek bir say olarak d nlebilir. s Ayn tohumlar hep ayn saylar retir.

(B322)

http://www.sas.com/standards/large_file/x_open.20Mar96.html
Bu dosya (bashref.pdf), belgenin XML biiminin TEXLive ve belgeler-xsl paketlerindeki aralar kullanlarak PDF biimine dntrlmesiyle elde edilmitir. s s

27 Subat 2007

http://belgeler.org

Linux Kitaplg

142 / 142

You might also like