www.linux.org.tr
Kabuk Kabuk ProgramlamaProgramlama
Kerem ERZURUMLU
[email protected]
Hacettepe Üniversitesi
Bilgi İşlem Daire Başkanlığı
AB’2000www.linux.org.tr
Bir ara katman Kullanıcı için bir arayüz Bir komut yorumlayıcı
Kabuk Nedir?
AB’2000www.linux.org.tr
Kabuk Neler Yapar?
* Program çalıştırma* Girdi/çıktı yönlendirmesi* Pipe işlemleri* Metakarakter kullanımı* Programlama dili
AB’2000www.linux.org.tr
Kabuk Çeşitleri
sh csh ksh bash
Bourne Shell C Shell Korn Shell Bourne Again Shell
AB’2000www.linux.org.tr
1. Program Çalıştırma
» [x@y z]$ <program_adı> <argümanlar>
AB’2000www.linux.org.tr
2. Girdi/Çıktı Yönlendirmeleri
AB’2000www.linux.org.tr
3. Pipe
» [x@y z]$ <program1> | <program2>
AB’2000www.linux.org.tr
4.1 *
4. Metakarakterler
AB’2000www.linux.org.tr
4.2 ?
4. Metakarakterler
AB’2000www.linux.org.tr
4.3 ;
4. Metakarakterler
AB’2000www.linux.org.tr
4. Metakarakterler
4.4 ^
AB’2000www.linux.org.tr
4.5 $
4. Metakarakterler
AB’2000www.linux.org.tr
4.6 []
4. Metakarakterler
AB’2000www.linux.org.tr
4.7 ‘
4. Metakarakterler
AB’2000www.linux.org.tr
4.8 “
4. Metakarakterler
AB’2000www.linux.org.tr
4.9 `
4. Metakarakterler
AB’2000www.linux.org.tr
5. İleri Düzey Komutlar
5.1 cut
AB’2000www.linux.org.tr
5.2 tr
5. İleri Düzey Komutlar
AB’2000www.linux.org.tr
5.3 sort/uniq
5. İleri Düzey Komutlar
AB’2000www.linux.org.tr
5.4 xargs
5. İleri Düzey Komutlar
AB’2000www.linux.org.tr
6. Programlama
Kural 1: Her programın başına hangi kabuk için yazıldığı “#!” ile belirtilmelidir.
Kural 2: Çalıştırılmadan önce çalıştırma hakkı verilmelidir.
AB’2000www.linux.org.tr
6.1 Kabuk Değişkenleri
6.1.1 $#
AB’2000www.linux.org.tr
6.1.2 $0 $1 $2 $3 … $9
6.1 Kabuk Değişkenleri
AB’2000www.linux.org.tr
6.1.3 $*
6.1 Kabuk Değişkenleri
AB’2000www.linux.org.tr
6.1.4 $?
6.1 Kabuk Değişkenleri
AB’2000www.linux.org.tr
6.1.5 Kullanıcı tanımlı değişkenler
6.1 Kabuk Değişkenleri
AB’2000www.linux.org.tr
6.2 Shift, Read, Expr komutları
AB’2000www.linux.org.tr
6.3 Test
» Tamsayı İşletmenleri » Dosya İşletmenleriz1 –eq z2 z1 ve z2 birbirine eşit mi?
z1 –ne z2 z1 ve z2 birbirinden farklı mı?
z1 –qt z2 z1, z2’den büyük mü?
z1 –qe z2 z1, z2’den büyük eşit mi?
z1 –lt z2 z1, z2’den küçük mü?
z1 –le z2 z1, z2’den küçük eşit mi?
-f dosya Dosya mevcut mu?
-d dosya Dosya bir dizin mi?
-s dosya Dosya mevcut ve uzunluğu sıfırdan farklı mı?
AB’2000www.linux.org.tr
6.4 Kontrol Yapıları
6.4.1 if … then … else
AB’2000www.linux.org.tr
6.4.2 case
6.4 Kontrol Yapıları
AB’2000www.linux.org.tr
6.4.3 for do … done
6.4 Kontrol Yapıları
AB’2000www.linux.org.tr
6.4.4 while do … done
6.4 Kontrol Yapıları
AB’2000www.linux.org.tr
» Diğerleri6.4.5 until6.4.6 break6.4.7 continue
6.4 Kontrol Yapıları