Orta Düzey Linux Komutları 1
Orta Düzey Linux Komutları1
1 . Yönlendirme
Kullanıcı , ekrana yazdı ı bir komutun neler yaptı ını en rahat ekilde komut tarafından ekranğ ğ ş a
yönlendirilen bilgilerden anlayabilir . Program , kullanıcıyı bilgilendirme amacıyla mümkün
olduğu kadar çok , fakat ortalığı fazla karıştırmamak için de mümkün olduğu kadar az bilgiyi
ekrana vermelidir .
1 . 1 Standart Girdi , Çıktı ve Hata
Linux"ta , programın ekrana yazılan bilgiyi iki sınıf altında toplayabiliriz . Birincisi , olağandışı
bir durumu bildiren standart hata , diğeri de her türlü verinin yazıldığı standart çıktı . Program
çalıştığı andan itibaren bu iki kanal üzerinden akan bilgiler , programın çalıştığı sanal terminale
yazılırlar . Program girdilerini ise standart girdi aracı olan klavyeden alır .
1 . 1 . 1 Girdi Yönlendirmesi
Girdi yönlendirmesinde , verilen sözcük"ün yorumlanması ile elde edilen isme sahip dosya ,
verilmişse dosya tanıtıcı n üstünde , aksi takdirde standart girdide ( dosya tanıtıcı 0 ) açılır .
Girdi yönlendirmesi olarak değerlendirilecek sözdizimi:
[n]<sözcük
Eğer bu bilgiler bir ekran boyundan ( 25 satır ) fazla tutuyorsa bazı satırlar programcının
gözünden kaçabilir . Bunu önlemek amacıyla standart çıktı ve hata bir dosyaya yazılacak şekilde
ayarlanabilir . Yönlendirme olarak da bilinen bu işlem UNIX altında ( DOS"ta olduğu gibi ) >
karakteri ile gerçekleştirilir .
Örnek olarak o an bulunduğunuz dizinde yeralan dosyaları ekrana getirin :
$ ls al
Bu komut , standart çıktı olarak dosyaların bilgilerini ekrana getirecektir . Bu çıktıyı , bir dosyaya
yönlendirelim ve dosyanın içeriğine göz atalım:
linux:~$ ls -al > liste
linux:~$ cat liste
total 16
drwxr-xr-x 5 gorkem users 1024 Feb 13 13:10 .
drwxr-xr-x 4 root root 1024 Jan 7 1980 . .
-rw-r--r-- 1 gorkem users 390 Feb 13 12:56 . Xdefaults
-rw-r--r-- 1 gorkem ftpadm 2016 Feb 13 13:09 . bash_history
-rw-r--r-- 1 gorkem users 1 Feb 13 12:57 . bashrc
-rw-r--r-- 1 gorkem users 163 Nov 24 1993 . kermrc
-rw-r--r-- 1 gorkem users 34 Nov 24 1993 . less
-rw-r--r-- 1 gorkem users 114 Nov 24 1993 . lessrc
drwxr-xr-x 2 gorkem users 1024 Jan 7 1980 . term
-rw-r--r-- 1 gorkem users 87 Feb 13 12:56 . xinitrc
-rw-r--r-- 1 gorkem users 2795 Feb 13 13:06 adres
-rw-r--r-- 1 gorkem users 0 Feb 13 13:10 liste
drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 mail
drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 perl
-rw-r--r-- 1 gorkem users 0 Feb 13 13:10 typescript
linux:~$
karakteri standart hatayı dosyaya yönlendirmez . Bu i lem içiş n 2> kullanılır . Ama hatayı
görebilmek için , hata yaratan bir komut yazmalıyız , öyle değil mi ?
$ ls /deneme
/deneme : No such file or directory
$ ls /deneme 2> hata
$ cat hata
/deneme : No such file or directory
A a ıdaki komutun i letilmesinin ardından standart çıktş ğ ş ı oku1 dosyasına , standart hata ise
oku2 dosyasına yazılacaktır . Bu dosyaları komutu çalıştırdıktan sonra incelemek suretiyle neler
olup bittiğini anlamak mümkün olur .
$ mkdir ~/deneme ( deneme isimli bir dizin yarat )
$ touch ~/deneme/gecici ( gecici isimli bir dosya yarat )
$ cat ~/deneme 2>oku2 >oku1
Kabuk , standart çıktı ve standart girdi için sırayla 2 ve 1 numaralarının kullanımına izin verir .
Yukarıda yeralan son komutta , standart hata mesajları için 2 kullanılarak hataların oku2
dosyasına yazılmıştır . Aşağıda , çekirdek derlemek için sürekli olarak kullanılan program yer
alıyor . Yönlendirme sayesinde ekrana gelmesi gereken mesajlar kullanılmayan 9 . sanal konsola
yönlendiriliyor .
# make config
# make dep > /dev/tty9
# make clean > /dev/tty9
# time make zImage > /dev/tty9
Son satırdaki time komutu , kendinden sonra gelen komutun ne kadar zaman içinde
çalıştırıldığını gösterir . Çekirdek derlemede geçen zaman , makinanın gücü hakkında bir fikir
verebilir . Peki ne hata , ne de çıktıyı ekranda görmek istemiyorsam ne yapmalıyım? Bunun için
standart çıktı ve hatayı biraraya getirerek yönlendirilen her çıktının kaybolduğu ‘kara deliğe'
atmak yeterlidir:
$ ls /deneme > /dev/null 2>&1
Yukarıdaki komutun yazılı sırasına dikkat edinş .
Standart çıktı ya da standart hatayı yönlendirirken , > işareti kullanırsanız , dosya yoksa ,
oluşturulur ve komutun çıktısı dosyaya yazılır . Dosya varsa , içeriği yok olur ve komutun çıktısı
dosyanın yeni içeriği olur . Var olan bir dosyayının eski içeriğini tamamen silmek değil de
komutun çıktısını dosyaya eklemek istiyorsanız >> kullanmalısınız . Bu durumda dosya varsa
komutun çıktısı dosyanın eski içeriği korunarak sonuna eklenir , dosya yoksa oluşturulur ve
komutun çıktısı dosyaya yazılır .
Örneğin:
$ echo deneme1 >>deneme . txt
$ cat deneme . txt
deneme1
$ echo deneme2 >>deneme . txt
$ cat deneme . txt
deneme1
deneme2
$
Örnekte görüldügü gibi ilk komut deneme . txt dosyasını oluşturdu . İkincisi ise oluşan dosyanın
içeriğini koruyarak ikinci komutun çıktısını bu dosyanın sonuna ekliyor .
Standart hata ve çıktıya ek olarak UNIX"in desteklediği bir yönlendirme daha vardır: Standart
girdi sayesinde bir dosyayı oluşturan satırlar , bir komut veya programa yönlendirilebilir . Daha
önce bir metin editor kullanarak hazırlamış olduğumuz raporu patrona kısa yoldan göndermek
için ,
$ mail -s "rapor" patron < rapor . txt
Dosyanın içeri i , mail komutuna girdi olmu vğ ş e rapor . txt dosyası patron kullanıcısına ‘rapor'
konu başlığıyla e-posta ile gönderilmiştir .
Bazı yaygın kabuk sembolleri
Sembol İşlerliği
ENTER Komut satırını çalıştır
; Aynı satırda farklı komutları ayır
[ ] Dosya isimlerinde olası karakter dizilerini
benzeştir
\ Takip eden karaktere izin verir
& Geri planda bir komutu çalıştırır
! history komutunun sembol şekli olup verilmiş
komutları listeler
* Dosya isimlerinde herhangi karakter setini
benzeştir
? Dosya isimlerinde herhangi bir karakteri
benzeştir
> Bir dosya veya aygıta standart çıktıyı
yönlendir , bu esnada eğer dosya mevcut değilse
yarat , eğer mevcut ise üzerine yaz
>! Eğer dosya halen mevcut ise üzerine yazma
işlemine zorlar bunu noclobber seçeneğinin
üzerine yazar
< Bir dosya veya aygıttan bir programa standart
giriş işlemini yönlendir
>> Bir dosya veya aygıta standart çıktıyı
yönlendir , çıktıyı dosyanın sonuna ilave et
Komut 2>
dosya_ismi
Standart hatayı ( Bourne kabuğunda ) bir
dosyaya veya aygıta yönlendir
komut 2>>
dosya_ismi
Standart hatayı ( Bourne kabuğunda ) bir dosya
veya aygıta yönlendir ve sonuna ekle
komut 2>&1 Standart hatayı ( Bourne kabuğunda ) standart
çıktıya yönlendir
Komut >&
dosya_ismi
Standart hatayı ( C kabuğunda ) bir dosyaya
veya aygıta yönlendir
1 . 1 . 2 Standart Çıktı ve Standart Hatanın Yönlendirmesi
Bash , hem standart çıktı ( dosya tanıtıcı 1 ) hem de standart hatayı ( dosya tanıtıcı 2 ) , sözcük"ün
yorumlanması ile elde edilen isme sahip dosyaya yönlendirebilir .
Standart çıktı ve standart hatanın yönlendirilmesine konu iki sözdizimi vardır:
&>sözcük ve
>&sözcük
Bu iki biçemden birincisinin kullanılması önerilir . Her ikisi de a a ıdakine e de erdirş ğ ş ğ :
>sözcük 2>&1
1 . 1 . 3 Çıkış Durumu
Kabuğun amaçlarına uygun olarak , sıfır çıkış durumu ile çıkan bir komut başarılıdır . Sıfırdan
farklı bir çıkış durumu ise başarısızlık göstergesidir . Böylece sayılardan oluşan hem başarı
durumunu hem de başarısızlık nedenlerinin ifade edilebildiği bir yapı sağlanır . Bir komut ,
numarası N olan bir ölümcül sinyal ile sonlandırılırsa , Bash , çıkış durumu olarak 128+N
değerini kullanır .
Bir komut bulunamamışsa , bir çocuk süreç oluşturulur ve bu süreç 127 çıkış durumu ile döner .
Bir komut bulunmuş ancak çalıştırılabilir değilse , 126 dönüş durumu döner . Yönlendirme ya
da yorumlama sırasında bir hatadan dolayı komutun çalıştırılması başarısız olursa , sıfırdan
büyük bir çıkış durumu döner .
Bash yerleşiklerinin de başarı durumunda sıfır ve başarısızlık durumunda sıfırdan farklı bir
çıkış durumu ile dönerek , çıkış durumlarnın koşul ve liste yapılarında kullanılabilmesi
sağlanmıştır . Tüm yerleşikler yanlış kullanım halinde 2 çıkış durumu ile döner .
Sitemizde yer alan tüm içerikler internet ortamından toplanmış ve derlenmiştir. Yer alan bilginin doğruluğu garanti edilmemektedir. Yanlış bilgi için tarafımıza sorumluluk yüklenemez. Yanlış bilginin doğuracağı etkenlerden sitemiz ve yöneticileri sorumlu tutulamaz.