Title: Komutlarin Birlikte Kullanilmasi
1 BILGISAYAR PROGRAMCILIGI BÖLÜMÜ AÇIK KAYNAK
ISLETIM SISTEMI DERSI
Komutlarin Birlikte Kullanilmasi
2Standart Giris/Çikis/Hata ve Yönlendirme
- Linux isletim sisteminde çalistirilan her komut
3 dosya isaretçisine sahiptir - Standart Giris (stdin) Çalisan programin ,
dosya gibi ek kaynaklar açmadan veri okumak için
kullanacagi kaynagi belirtir. Varsayilan olarak
veri girisi klavyeden okuma seklinde
gerçeklestirir. - Standart Çikis (stdout) Çalisan programin
çiktilarini gönderecegi kaynagi belirtir.
Varsayilan kaynak terminal penceresidir. - Standart Hata (stderr) Çalisan programin hata
çiktilarini gönderecegi kaynagi belirtir.
Varsayilan kaynak terminal penceresidir. - Her dosya isaretçisi bir numara ile belirtilir.
Standart giris 0 , standart çikis 1 , standart
hata 2 degerlerine sahiptir.
3Standart Giris/Çikis/Hata ve Yönlendirme
- Komut çalistiginda veri girisinin belli bir
dosyadan yapilmasi istendiginde lt karakteri
ile bir dosya standart girise yönlendirilebilir. - komut ltdosya
4Standart Giris/Çikis/Hata ve Yönlendirme
- Standart çikis ve hatanin yönlendirilme islemi
temel olarak gt karakteri ile yapilmaktadir.
Yönlendirme için temel kullanim sekli asagidaki
gibidir komut n gt dosya - n sayisi hangi dosya isaretçisinin
yönlendirilecegini belirtir. Bu sayi verilmedigi
takdirde veya 1 olarak verildigi takdirde
standart çikis için yönlendirme yapilir.
5Standart Giris/Çikis/Hata ve Yönlendirme
- Örnek ls komutunun çiktisinin bir dosyaya
yönlendirilmesi. Yönlendirme islemi komut
çalistirilmadan gerçeklestirildigi için ilk ls
çiktisinda gözükmeyen sonuç dosyasi ls_cikti ,
ikinci ls çiktisinda gözükecektir.
gulshat_at_localhost ls -l total 4 -rw-r--r--
1 tufan users 0 Aug 20 1229
abcd -rw-r--r-- 1 tufan users 0
Aug 20 1229 abfd -rw-r--r-- 1 tufan users
0 Aug 20 1229 abfg -rwxr-xr-x 1 root
root 41 Aug 20 1642
degisken.sh gulshat_at_localhost ls -l
gtls_cikti gulshat_at_localhost cat ls_cikti
total 4 -rw-r--r-- 1 tufan users
0 Aug 20 1229 abcd -rw-r--r-- 1 tufan
users 0 Aug 20 1229 abfd -rw-r--r--
1 tufan users 0 Aug 20 1229
abfg -rwxr-xr-x 1 root root 41
Aug 20 1642 degisken.sh
6Standart Giris/Çikis/Hata ve Yönlendirme
- Eger n sayisi 2 olarak verilirse standart hata
için yönlendirme yapilir.
- gulshat_at_localhost ls olmayan_dosya
- ls olmayan_dosya No such file or directory
- gulshat_at_localhost ls olmayan_dosya 2gtls_hata
- gulshat_at_localhost cat ls_hata
- ls olmayan_dosya No such file or directory
7Standart Giris/Çikis/Hata ve Yönlendirme
- gt operatörü ile yapilan yönlendirilmede hedef
dosya yok ise yaratilir , varsa içerigi
sifirlanir. Içerigin sifirlanmasi yerine var olan
dosyanin sonuna ekleme yapmak için gtgt operatörü
kullanilmalidir. Bu durumda hedef dosya yok ise
yaratilacak , var ise yapilacak eklemeler
dosyanin sonuna yapilacaktir. - Standart hata ile standart çikisin ayni dosyaya
yönlendirilmesi çokça kullanilan bir
yönlendirmedir. Bu yönlendirme 3 farkli sekilde
gerçeklestirilebilir - gt dosya
- gt dosya
- gtdosya 2gt1
8Standart Giris/Çikis/Hata ve Yönlendirme
- gulshat_at_localhost ls -l olmayan_dosya
olan_dosya 2gtls_hata gtls_cikti - gulshat_at_localhost cat ls_hata ls_cikti
- ls olmayan_dosya No such file or directory
- -rw-r--r-- 1 tufan users 0 Aug 22
1406 olan_dosya - gulshat_at_localhost cat ls_hata
- ls olmayan_dosya No such file or directory
- gulshat_at_localhost cat ls_cikti
- -rw-r--r-- 1 tufan users 0 Aug 22 1406
olan_dosya - gulshat_at_localhost ls -l olmayan_dosya
olan_dosya gtls_cikti - gulshat_at_localhost cat ls_cikti
- ls olmayan_dosya No such file or directory
- -rw-r--r-- 1 tufan users 0 Aug 22 1406
olan_dosya
9Bir Komutun Çiktisini Baska Bir Komutun Verisi
Olarak Kullanmak
- Linux isletim sistemi bir komutun çiktisini diger
komutun girisi olarak kullanilmasini saglayan
Unix borularini (pipe) desteklemektedir. Bu
islemin gerçeklestirilmesi için operatörü
kullanilir. - Komut1 komut2
10Bir Komutun Çiktisini Baska Bir Komutun Verisi
Olarak Kullanmak
- gulshat_at_localhost cat ls_cikti wc -l
- 11
- gulshat_at_localhost cat ls_cikti grep ab
- -rw-r--r-- 1 tufan users 0 Aug 20
1229 abcd - -rw-r--r-- 1 tufan users 0 Aug 20
1229 abfd - -rw-r--r-- 1 tufan users 0 Aug 20
1229 abfg - -rw-r--r-- 1 tufan users 0 Aug 20
1455 absd -
- Unix borulari sayesinde bir önceki komutun
çiktisi üzerinde islem yapabilen komutlar
kullanilabilmektedir. Bu kullanim sekli en çok
grep,sort,wc,cut gibi filtre programlari
tarafindan terçih edilmektedir.
11Tee Komutu
- Tee komutu standart giristen okudugunu hem
standart çikisa hem de dosyaya yazmak için
kullanilan bir komuttur. Temel kullanim sekli
asagidaki gibidir - tee -a dosya_ismi
- -a parametresi kullanildigi ve hedef dosya var
oldugu takdirde , hedef dosyanin içerigi
sifirlanmaz ve sonuna ekleme yapilir. Aksi
durumlarda dosyanin içerigi sifirlanir. - Tee komutu çogunlukla Unix borulari ile yapilan
yönlendirmelerde kullanilir. Belli bir komutun
çiktisini hem ayni anda ekranda görüp hem de bir
dosyaya kaydetmek istenildigi durumlarda tee
komutu kullanilmaktadir.
12Tee Komutu
- gulshat_at_localhost tee tee_cikti lt tee_deneme
- Tee komutu için deneme
- 123
- 456
- gulshat_at_localhost cat tee_cikti
- Tee komutu için deneme
- 123
- 456
13Filtreler
- Filtreler çogunlukla metin dosyalari üzerinde
islem yapan programlardir. En çok kullanilan
program dosya içersinde metin bulmak için
kullanilan grep programidir. - Filtreler çogunlukla baska bir programin
çiktisini alip islerler. Bu yüzden çogu filtre
unix borulari ile beraber kullanilir. - gulshat_at_localhost ls -l wc -l
- 58
14wc Komutu
- Bir dosyadaki byte , kelime ve satirlari saymak
için wc komutu kullanilir. Bu komutun temel
yapisi asagidaki gibidir - wc seçenekler dosya
- Islenecek dosya verilmedigi takdirde wc komutu
verileri standart giristen okuyacagini
varsaymaktadir. Bu sayede wc komutu Unix borulari
ile bir önceki komutun çiktisini alip
isleyebilmektedir. - wc komutu ile kullanilanabilecek temel
seçenekler asagidaki gibidir - -c Dosyadaki bytelari sayar.
- -l Dosyadaki satirlari sayar.
- -w Dosyadaki kelimeleri sayar.
- -L Dosya içindeki en uzun satirin boyutunu
gösterir.
15wc Komutu
- bash-3.2 cat ornek
- wc icin ornek
- 123
- en uzun satir bu ve boyu 27
- bash-3.2 cat ornek wc -c
- 47
- bash-3.2 cat ornek wc -w
- 11
- bash-3.2 cat ornek wc -l
- 4
- bash-3.2 cat ornek wc -L
- 27
16Metin Dosyalarinin Içeriklerinin Siralanmasi
- Metin dosyalari üzerinde siralama islemi sort
komutu ile yapilir. Bu komut satirlari verilen
siralama kriterine göre siralar ve sonucu
standart çikisa aktarir. Komutun temel kullanim
sekli asagidaki gibidir - sort seçenek dosya
- Dosya ismi verilmedigi takdirde veriler standart
giristen okunacaktir.
17Metin Dosyalarinin Içeriklerinin Siralanmasi
- Sort komutu ile kullanilabilecek temel seçenekler
asagidaki gibidir - -k POS1,POS2 Bu parametre ile siralama için
kullanilacak alan numarasi verilir. POS1 degeri
siralama için kullanilacak alanlar için baslangiç
degeridir. POS2 degeri ise siralama alanlari için
bitis - -r Karsilastirma sonuçlarini tersten islemek
için kullanilir. - -l Siralama islemini yaparken locale
bilgisinide kullanilmasini saglar. - -M Ay isimlerini baz alan siralama yapilmasini
saglamak için kullanilir. - -t SEP Alan ayiraci olarak bosluk veya tab
yerine SEP ile belirtilen karakterin
kullanilmasini saglar. - -m Siralanmis dosyalari birlestirmek için
kullanilir. Birlestirilecek dosyalar kendi
içlerinde siralanmis olmalidir. - -o dosya Siralanmis verinin standart çikis
yerine dosyaya yazilmasini saglar. - -f Büyük küçük harf ayrimini ortandan kaldirir.
- -n Numerik olarak siralama yapmak için
kullanilir. - -g Bu seçenek de numerik siralama yapmak için
kullanilir. n seçeneginden farki gerçel sayilar
üzerinde de islem yapabilmesidir. Sayilarin
gösterilmesi için kullanilan bilimsel notasyonu
(scientific notation) destekler. (1.5e-23 ,
15e24)?
18Metin Dosyalarinin Içeriklerinin Siralanmasi
- ls l komutunun çiktisinda dosyanin en son
degistigi tarihin ay bilgisi altinci , gün
bilgisi yedinci alanda bulunmaktadir. Dosyanin
boyutu bilgisi ise 5. alandadir. Siralama
alfabetik olarak yapilacaktir.
19Metin Dosyalarinin Içeriklerinin Siralanmasi
- gulshat_at_localhost ls -l
- total 24436
- -rw-r--r-- 1 tufan users 453 Feb 12
2001 dosya_1 - -rw-r--r-- 1 tufan users 11827208 Jul 23
1203 dosya_2 - -rw-r--r-- 1 tufan users 1356543 Aug 24
1251 dosya_3 - -rw-r--r-- 1 tufan users 11827208 Aug 24
1256 dosya_4 - gulshat_at_localhost ls -l sort -k6,6
- total 24436
- -rw-r--r-- 1 tufan users 11827208 Aug 24
1256 dosya_4 - -rw-r--r-- 1 tufan users 1356543 Aug 24
1251 dosya_3 - -rw-r--r-- 1 tufan users 453 Feb 12
2001 dosya_1 - -rw-r--r-- 1 tufan users 11827208 Jul 23
1203 dosya_2
20Metin Dosyalarinin Içeriklerinin Siralanmasi
- Altinci alandaki bilgi ay bilgisi oldugu için
altinci alan için siralama yaparken M
seçeneginin kullanilmasi gerekmektedir. - gulshat_at_localhost ls -l sort -k6,6M
- total 24436
- -rw-r--r-- 1 tufan users 453 Feb 12
2001 dosya_1 - -rw-r--r-- 1 tufan users 11827208 Jul 23
1203 dosya_2 - -rw-r--r-- 1 tufan users 11827208 Aug 24
1256 dosya_4 - -rw-r--r-- 1 tufan users 1356543 Aug 24
1251 dosya_3 - Bir sort komutunda birden fazla k seçenegi
kullanilabilir. Seçeneklerin kullanim sirasi
yapilacak siralama islemini etkileyecektir.
21Metin Dosyalarinin Içeriklerinin Siralanmasi
- ls l çiktisini ilk olarak Ay , sonra gün en
son boyuta göre siralamak için gerekli komut
nedir?
22Metin Dosyalarinin Içeriklerinin Siralanmasi
- gulshat_at_localhost ls -l sort -k7,7 -k6,6M
-k5,5 - total 24436
- -rw-r--r-- 1 tufan users 453 Feb 12
2001 dosya_1 - -rw-r--r-- 1 tufan users 11827208 Jul 23
1203 dosya_2 - -rw-r--r-- 1 tufan users 11827208 Aug 24
1256 dosya_4 - -rw-r--r-- 1 tufan users 1356543 Aug 24
1251 dosya_3
23Metin Içinde Arama ve Grep Komutu
- Metin dosyalari arasinda istenilen paternleri
aramak için grep komutu kullanilmaktadir. Grep
komutu dosyalar üzerinde istenilen metin
parçasini arar ve bu metin parçasini içeren
satirlari standart çikisa kopyalar. - Temel kullanim sekli asagidaki gibidir
- grep seçenekler patern dosya
- Dosya ismi verilmedigi takdirde verilerin
standart giristen okunacagi varsayilir. Bu sayede
Unix borulari kullanilarak bir komutun çiktisinda
istenilen bir metin parçasi aranabilir.
24Metin Içinde Arama ve Grep Komutu
- Grep ile kullanilan temel seçenekler asagidaki
gibidir - -l Metin parcasinin geçtigi satirlarin
gösterilmesi yerine metin parçasinin geçtigi
dosyalarin isimleri gösterilir. Çogunlukla bir
dizin içinde belirli bir kelimeyi içeren
dosyalarin bulunmasi islevinde kullanilir. - -c Metin parçasinin geçtigi satirlarin
gösterilmesi yerine , metin parçasinin bulundugu
satir sayisinin gösterilmesini saglar. - -i Büyük küçük harf ayrimini ortandan
kaldirir. - -f dosya Aranmasi istenen metin parçaçiklarini
bir dosyadan okumak için kullanilir. - -n veya --line-number Bulunulan satirin
dosyadaki satir numarasi da gösterilir. - -e metin_parcasi veya regexpmetin_parcasi
Metin içinde aranmasi istenen metin parçasi
istendigi takdirde bu seçenek ile de verilebilir.
Özellikle ile baslayan metin
parçaçiklarinda kullanilmalidir. - -v Aranan metin parçasinin bulunmadigi
satirlari gösterir. - -x veya --line-regexp Tam bir satir olarak
metin parçasini içeren satirlarin bulunmasini
saglar. - -A satir_sayisi Bulunan satirdan sonra
istenilen satir sayisi kadar satirin
bastirilmasini saglar. - -B satir_sayisi Bulunan satirdan önce istenilen
satir sayisi kadar satirin bastirilmasini saglar.
- -r Rekürsif arama için kullanilir. Aranmasi
gereken dosya bir dizin ise ve r seçenegi
kullanilmis ise grep dizinin içindeki tüm dizin
ve dosyalari da tarar.
25Metin Içinde Arama ve Grep Komutu
- -d hareket Grep programinin bir dizine
rastladiginda yapmasi gereken hareketi ayarlamak
için kullanilir. Varsayilan hareket read yani
okumadir. Bu islem bazi dosya sistemleri
tarafindan desteklenmemektedir. Bu durumda grep
programi hata verecektir. Eger hareket olarak
skip degeri atanirsa grep hiç bir hata vermeden
dizinleri atlayacaktir. Eger hareket olarak
recurse verilirse grep dizinin içindeki dosya
ve dizinleri rekürsif olarak tariyacaktir. - -n veya --no-filename Birden fazla dosya
arandigi zaman grep programimetin parcasini
buldugu satiri bastirmadan önce , satiri buldugu
dosya ismini gösterir. Bu seçenekle bu özellik
kapatilir. - -a veya --text Grep programi aranan metin
parçasini binary bir dosyada buldugu takdirde
bulunan satiri göstermek yerine kullaniciya
aranan metin parçasinin bir binary dosyada
bulundugu bildirir. Grepin binary dosyalarda da
buldugu satirlari göstermesi için bu seçenek
kullanilmalidir. - -w veya --word-regexp Aranan metin parcasinin
kelime olarak bulundugu satirlarin seçilmesi için
kullanilir. Örnek olarak , aranan metin
parçasinin linux oldugu durumlarda linux
sistemi arama kriterine uyarken linuxun
komutlari arama kriterine uymamaktadir.
26Kaynaklar
- Ders Notlari Mustafa Sariöz
- Ders Notlari Gulshat Kulzhabayeva