Örnek Kabuk Programı
Önceki Bash Kabuğu Sonraki
Örnek Kabuk Programı
Sistem görevlisinin en çok kullandığım komutlardan birisi ps -aux | grep -i xxx komutudur. Bu satır yardımıyla çalışan xxx isimli program hakkında daha ayrıntılı bilgi elde edilebilir. ps komutu ayrıntılı bir süreç listesini ekrana verirken çıktı doğrudan grep komutuna yönlendirilir ve sadece istediğimiz bilgi monitörde görünür. Fakat her zaman aynı uzun satırı tekrar tekrar yazmaktansa bu satırı bir dosyaya gönderip, dosya adını komut satırından çalıştırmak zamandan tasarruf sağlayacaktır. Biz de öyle yapalım ve aşağıdaki satırları "p" isimli dosyaya yazalım.
#!/bin/bash
if [ $# = 1 ]
  then
  ps -ax | grep -i $1
else
  ps -ax
fi
Ardından dosyayı PATH değişkeninin işaret ettiği dizinlerden /usr/local/bin altına yerleştirip çalıştırılabilir olması için chmod +x /usr/local/bin/p komutunu uygulayın. Kendi yazdığınız dosyaları /usr/local veya ~/bin dizini altına kopyalamanız bunların derli toplu olarak tek bir dizinde her an erişilebilir şekilde durmaları açısından önem taşır.
grep komutu, bir dosyadaki veya standart girişteki satırlar içinden belirli bir kelime, harf veya harf grubunu bulmaya yarar. Aşağıdaki birkaç örnek grep'i özetlemeye yeter.
$ grep while sort.c
sort.c dosyasinda while kelimesini iceren tum satirlari ekrana yazar.
$ w | grep demir
sistemde demir isimli kullanici var mi?
$ ls -al | grep "^d"
Son örnek, ls -al çıktısında satır başında ``d'' varsa ekrana getirir. Sadece dizin isimlerinin başında ``d'' harfi bulunur. Şapka isareti, satır başlangıcını gösterir.
Dosyaya biraz daha yakından bakalım. İlk satır, bu dosyanın /bin/bash programı tarafından çalıştırılacağını gösterir. İkinci satır yardımıyla komut satırı üzerinde kaç tane seçenek olduğu bulunur. $# çevresel değişkeni her biri TAB veya boşluk karakteri ile ayrılmış komut satırı seçeneklerinin sayısını verir. Aşağıdaki komutta toplam 3 seçenek vardır.
$ ls --8bit  -F -b
$# komutuna benzer şekilde $1, $2, $3... değişkenleri de seçenekleri verir. Yukarıdaki komutta $1, $2, $2 değişkenleri sırasıyla
--8bit
-F
-b
değerlerini alırlar. Komut satırından çalıştırılan komut ise $0 değişkenine atılır. Yukarıdaki örnekte $0 değişkeni ls değerini tutacaktır.
p dosyasına tek seçenek yollayacağız. Bu seçenek de hakkında ayrıntılı bilgi alacağımız süreç olacaktır. Dosya içinde $1 değişkenini ps komutuna yerleştirmek için:
ps -ax | grep -i $1;
yazılır. Bundan sonra komut satırında, örneğin:
$ p bash
girilirse $1 değişkeni bash e eşit olacak ve bu da ps -ax | grep -i bash eşdeğer komutunu çalıştıracaktır. Komut olarak sadece p girilirse $# değişkeni 0'a eşit olacağından dosyada yeralan ve hiç bir filtreleme yapmayan ps -ax komutu çalışır.
Linux'u yüklerken HOWTO dökümanlarını da eklemeyi ihmal etmediniz, değil mi? Aşağıdaki kısa program, bu dosyalara en hızlı şekilde ulaşmanıza yarıyor. Tüm HOWTO'lar kurulum aşamasında /usr/doc/faq/howto dizini altına kopyalanır ve sıkıştırılır.
Bu programı herhangi bir isimle kaydedin. Ardından komut satırından programın ismi ile birlikte ekranda görüntülemek istediğiniz HOWTO dökümanının ismini yazın (örneğin PPP). Bir parametre girilmez ise /usr/doc/faq/howto dizinindeki dosyalar ekrana gelir.
#!/bin/bash
if [ "$1" = "" ]; then
    ls /usr/doc/faq/howto | less
else
    gunzip -c /usr/doc/faq/howto/$1-HOWTO.gz | less
fi
Önceki Üst Ana Başlık Sonraki
Döngüler Başlangıç Sed ve Vi
Bir Linux Kitaplığı Sayfası