33
Komutların Birlikte Kullanılması Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ

Komutların Birlikte Kullanılması

  • Upload
    isanne

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ. Komutların Birlikte Kullanılması. Öğr. Gör. Mustafa SARIÖZ. Standart Giriş/Çıkış/Hata İşaretçileri. Linux işletim sisteminde çalıştırılan her komut 3 dosya işaretçisine sahiptir :  - PowerPoint PPT Presentation

Citation preview

Page 1: Komutların Birlikte Kullanılması

Komutların Birlikte Kullanılması

Öğr. Gör. Mustafa SARIÖZ

BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 223 AĞ İŞLETİM SİSTEMLERİ DERSİ

Page 2: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Giriş/Çıkış/Hata İşaretçileri Linux işletim sisteminde çalıştırılan her komut 3

dosya işaretçisine sahiptir : Standart Giriş (stdin - 0) Standart Çıkış (stdout - 1) Standart Hata (stderr - 2)

Page 3: Komutların Birlikte Kullanılması

BİLG 223

Standart Giriş

Standart Giriş (stdin) : (0)Çalışan programın veri okumak için kullanacağı

kaynağı belirtir. Varsayılan olarak veri girişi klavyeden okuma

şeklinde gerçekleştirir.

Page 4: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Çıkış

Standart Çıkış (stdout) : (1) Çalışan programın çıktılarını göndereceği kaynağı

belirtir. Varsayılan kaynak terminal penceresidir.

Page 5: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Hata

Standart Hata (stderr) : (2) Çalışan programın hata çıktılarını göndereceği

kaynağı belirtir. Varsayılan kaynak terminal penceresidir.

Page 6: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Giriş/Çıkış/Hata ve Yönlendirme Her dosya işaretçisi bir numara ile belirtilir.

Standart giriş 0 , standart çıkış 1 , standart hata 2 değerlerine sahiptir.

Page 7: Komutların Birlikte Kullanılması

BİLG 223

Komut çalıştığında veri girişinin belli bir dosyadan yapılması istendiğinde “ < “ karakteri ile bir dosya standart girişe yönlendirilebilir.

komut <dosya

Standart Giriş Yönlendirme

Page 8: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Giriş Yönlendirme Örneği

[root@localhost Masaüstü]# ls -l toplam 18 -rw-r--r-- 1 root root 19 Kas 24 15:55 a -rw-r--r-- 1 root root 11 Kas 24 15:34 b -rw-r--r-- 1 root root 11 Kas 24 15:34 c -rw-r--r-- 1 root root 11 Kas 24 15:34 d -rw-r--r-- 1 root root 11 Kas 24 15:34 e [root@localhost Masaüstü]# cat a e f b d c a

[root@localhost Masaüstü]# cat a e f b d c a [root@localhost Masaüstü]# ls -l <a toplam 18 -rw-r--r-- 1 root root 19 Kas 24 15:55 a -rw-r--r-- 1 root root 11 Kas 24 15:34 b -rw-r--r-- 1 root root 11 Kas 24 15:34 c -rw-r--r-- 1 root root 11 Kas 24 15:34 d -rw-r--r-- 1 root root 11 Kas 24 15:34 e

Page 9: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Çıkış ve Hata Yönlendirme

Standart çıkış ve hatanın yönlendirilme işlemi temel olarak “>” karakteri ile yapılmaktadır. Yönlendirme için temel kullanım şekli aşağıdaki gibidir : komut [n]> dosya

n tanımlı değil Standart Çıkış n: 1 Standart Çıkış n: 2 Standart Hata

Page 10: Komutların Birlikte Kullanılması

BİLG 223

Komutun yanında n sayısı verilmediği takdirde veya 1 olarak verildiği takdirde standart çıkış için yönlendirme yapılır.

Yani komutun çıktısı belirtilen dosyaya yazılır.

Komut >dosyaKomut 1>dosya

Standart Çıkış Yönlendirme

Page 11: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Çıkış Yönlendirme Örneği

[root@localhost Masaüstü]# ls -l <a toplam 18 -rw-r--r-- 1 root root 19 Kas 24 15:55 a -rw-r--r-- 1 root root 11 Kas 24 15:34 b -rw-r--r-- 1 root root 11 Kas 24 15:34 c -rw-r--r-- 1 root root 11 Kas 24 15:34 d -rw-r--r-- 1 root root 11 Kas 24 15:34 e

[root@localhost Masaüstü]# ls -l >b

[root@localhost Masaüstü]# cat b toplam 32 -rw-r--r-- 1 root root 19 Kas 24 15:55 a -rw-r--r-- 1 root root 0 Kas 24 16:25 b -rw-r--r-- 1 root root 11 Kas 24 15:34 c -rw-r--r-- 1 root root 11 Kas 24 15:34 d -rw-r--r-- 1 root root 11 Kas 24 15:34 e

Page 12: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Hata Yönlendirme

Komutun yanında n sayısı 2 olarak verildiği takdirde standart hata için yönlendirme yapılır.

Yani komut çalıştırılırken oluşan hata ya da uyarılar belirtilen dosyaya yazılır.

Komut 2>dosya

Page 13: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Standart Hata Yönlendirme Örneği [root@localhost Masaüstü]# ls -l toplam 18 -rw-r--r-- 1 root root 19 Kas 24 15:55 a -rw-r--r-- 1 root root 11 Kas 24 15:34 b -rw-r--r-- 1 root root 11 Kas 24 15:34 c -rw-r--r-- 1 root root 11 Kas 24 15:34 d -rw-r--r-- 1 root root 11 Kas 24 15:34 e [root@localhost Masaüstü]# ls -l a g h d e k l 2>hatalar -rw-r--r-- 1 root root 19 Kas 24 15:55 a -rw-r--r-- 1 root root 11 Kas 24 15:34 d -rw-r--r-- 1 root root 11 Kas 24 15:34 e [root@localhost Masaüstü]# cat hatalar ls: g'e erişilemedi: Böyle bir dosya ya da dizin yok ls: h'e erişilemedi: Böyle bir dosya ya da dizin yok ls: k'e erişilemedi: Böyle bir dosya ya da dizin yok ls: l'e erişilemedi: Böyle bir dosya ya da dizin yok

Page 14: Komutların Birlikte Kullanılması

BİLG 223

“>” operatörü ile yapılan yönlendirilmede hedef dosya yok ise oluşturulur , varsa içeriği sıfırlanır.

İçeriğin sıfırlanması yerine var olan dosyanın sonuna ekleme yapmak için “>>” operatörü kullanılmalıdır. Bu durumda hedef dosya yok ise oluşturulacak , var ise yapılacak eklemeler dosyanın sonuna yapılacaktır.

Standart hata ile standart çıkışın aynı dosyaya yönlendirilmesi çokça kullanılan bir yönlendirmedir. Bu yönlendirme 3 farklı şekilde gerçekleştirilebilir :

>& dosya &> dosya >dosya 2>&1

Standart Giriş/Çıkış/Hata ve Yönlendirme (>, >>, <, <<, &>)

Page 15: Komutların Birlikte Kullanılması

BİLG 223

[root@localhost Masaüstü]# ls -l olmayan_dosya olan_dosya 2>ls_hata >ls_cikti

[root@localhost Masaüstü]# cat ls_hata ls_cikti ls: olmayan_dosya: No such file or directory -rw-r--r-- 1 tufan users 0 Aug 22 14:06 olan_dosya [root@localhost Masaüstü]# cat ls_hata ls: olmayan_dosya: No such file or directory [root@localhost Masaüstü]# cat ls_cikti -rw-r--r-- 1 tufan users 0 Aug 22 14:06 olan_dosya [root@localhost Masaüstü]# ls -l olmayan_dosya olan_dosya &>ls_cikti [root@localhost Masaüstü]# cat ls_cikti ls: olmayan_dosya: No such file or directory -rw-r--r-- 1 tufan users 0 Aug 22 14:06 olan_dosya

Standart Giriş/Çıkış/Hata ve Yönlendirme

Page 16: Komutların Birlikte Kullanılması

BİLG 223www.bilisimogretmeni.com

Boru (pipe) İşlemleri

Bazı durumlarda, bir komutun çıktısı di er bir komuta yönlendirilebilir. Başka bir deyişle, bir komutun standart çıktısını bir dosyaya değil, bu çıktıyı işleyecek başka bir komuta yönlendirmek istiyorsunuz.

Bu amaçla UNIX altında (yine DOS'ta olduğu gibi) boru (|) karakteri kullanılır. Bu karakter, kendinden önce gelen komut veya komut serisinin çıktısını, kendinden sonra gelen komuta gönderir.

Komut1 | Komut2

Page 17: Komutların Birlikte Kullanılması

BİLG 223

[root@localhost Masaüstü]# cat ls_cikti | wc -l 11 [root@localhost Masaüstü]# cat ls_cikti | grep ab -rw-r--r-- 1 tufan users 0 Aug 20 12:29 abcd -rw-r--r-- 1 tufan users 0 Aug 20 12:29 abfd -rw-r--r-- 1 tufan users 0 Aug 20 12:29 abfg -rw-r--r-- 1 tufan users 0 Aug 20 14:55 absd Unix boruları sayesinde bir önceki komutun çıktısı üzerinde işlem

yapabilen komutlar kullanılabilmektedir. Bu kullanım şekli en çok grep,sort,wc,cut gibi filtre programları tarafından tercih edilmektedir.

Bir Komutun Çıktısını Başka Bir Komutun Verisi Olarak Kullanmak

Page 18: Komutların Birlikte Kullanılması

BİLG 223

Tee Komutu

Tee komutu standart girişten okuduğunu hem standart çıkışa hem de dosyaya yazmak için kullanılan bir komuttur. Temel kullanım şekli aşağıdaki gibidir :

tee [-a] dosya_ismi-a parametresi kullanıldığı ve hedef dosya var olduğu

takdirde , hedef dosyanın içeriği sıfırlanmaz ve sonuna ekleme yapılır. Aksi durumlarda dosyanın içeriği sıfırlanır.

Tee komutu çoğunlukla Unix boruları ile yapılan yönlendirmelerde kullanılır. Belli bir komutun çıktısını hem aynı anda ekranda görüp hem de bir dosyaya kaydetmek istenildiği durumlarda tee komutu kullanılmaktadır.

Page 19: Komutların Birlikte Kullanılması

BİLG 223

[root@localhost Masaüstü]# tee tee_cikti < tee_deneme Tee komutu için deneme123456 [root@localhost Masaüstü]# cat tee_cikti Tee komutu için deneme123456

Tee Komutu

Page 20: Komutların Birlikte Kullanılması

BİLG 223

Filtreler

Filtreler çoğunlukla metin dosyaları üzerinde işlem yapan programlardır. En çok kullanılan program dosya içersinde metin bulmak için kullanılan grep programıdır.

Filtreler çoğunlukla başka bir programın çıktısını alıp işlerler. Bu yüzden çoğu filtre unix boruları ile beraber kullanılır.

Page 21: Komutların Birlikte Kullanılması

BİLG 223

wc Komutu

Bir dosyadaki byte , kelime ve satırları saymak için wc komutu kullanılır. Bu komutun temel yapısı aşağıdaki gibidir :

wc [seçenekler] [dosya] İşlenecek dosya verilmediği takdirde wc komutu verileri standart girişten

okuyacağını varsaymaktadır. Bu sayede wc komutu Unix boruları ile bir önceki komutun çıktısını alıp işleyebilmektedir.

wc komutu ile kullanılanabilecek temel seçenekler aşağıdaki gibidir : -c : Dosyadaki byteları sayar. -l : Dosyadaki satırları sayar. -w : Dosyadaki kelimeleri sayar. -L : Dosya içindeki en uzun satırın boyutunu gösterir.

Page 22: Komutların Birlikte Kullanılması

BİLG 223 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

wc Komutu

Page 23: Komutların Birlikte Kullanılması

BİLG 223

Metin Dosyalarının İçeriklerinin Sıralanması Metin dosyaları üzerinde sıralama işlemi sort

komutu ile yapılır. Bu komut satırları verilen sıralama kriterine göre sıralar ve sonucu standart çıkışa aktarır. Komutun temel kullanım şekli aşağıdaki gibidir :

sort [seçenek] dosya Dosya ismi verilmediği takdirde veriler standart

girişten okunacaktır.

Page 24: Komutların Birlikte Kullanılması

BİLG 223 Sort komutu ile kullanılabilecek temel seçenekler aşağıdaki gibidir: -k POS1[,POS2] : Bu parametre ile sıralama için kullanılacak alan

numarası verilir. POS1 değeri sıralama için kullanılacak alanlar için başlangıç değeridir. POS2 değeri ise sıralama alanları için bitiş

-r : Karşılaştırma sonuçlarını tersten işlemek için kullanılır. -M : Ay isimlerini baz alan sıralama yapılmasını sağlamak için

kullanılır. -m : Sıralanmış dosyaları birleştirmek için kullanılır. Birleştirilecek

dosyalar kendi içlerinde sıralanmış olmalıdır. -f : Büyük küçük harf ayrımını ortandan kaldırır. -n : Numerik olarak sıralama yapmak için kullanılır.

Metin Dosyalarının İçeriklerinin Sıralanması

Page 25: Komutların Birlikte Kullanılması

BİLG 223

“ls –l” komutunun çıktısında dosyanın en son değiştiği tarihin ay bilgisi altıncı , gün bilgisi yedinci alanda bulunmaktadır. Dosyanın boyutu bilgisi ise 5. alandadır. Sıralama alfabetik olarak yapılacaktır.

Metin Dosyalarının İçeriklerinin Sıralanması

Page 26: Komutların Birlikte Kullanılması

BİLG 223

[gulshat@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 12:03 dosya_2 -rw-r--r-- 1 tufan users 1356543 Aug 24 12:51 dosya_3 -rw-r--r-- 1 tufan users 11827208 Aug 24 12:56 dosya_4 [gulshat@localhost]$ ls -l | sort -k6,6 total 24436 -rw-r--r-- 1 tufan users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 tufan users 1356543 Aug 24 12:51 dosya_3 -rw-r--r-- 1 tufan users 453 Feb 12 2001 dosya_1 -rw-r--r-- 1 tufan users 11827208 Jul 23 12:03 dosya_2

Metin Dosyalarının İçeriklerinin Sıralanması

Page 27: Komutların Birlikte Kullanılması

BİLG 223

Altıncı alandaki bilgi ay bilgisi olduğu için altıncı alan için sıralama yaparken –M seçeneğinin kullanılması gerekmektedir.

[gulshat@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 12:03 dosya_2 -rw-r--r-- 1 tufan users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 tufan users 1356543 Aug 24 12:51 dosya_3 Bir sort komutunda birden fazla –k seçeneği kullanılabilir. Seçeneklerin

kullanım sırası yapılacak sıralama işlemini etkileyecektir.

Metin Dosyalarının İçeriklerinin Sıralanması

Page 28: Komutların Birlikte Kullanılması

BİLG 223

“ls –l” çıktısını ilk olarak Ay , sonra gün en son boyuta göre sıralamak için gerekli komut nedir?

Metin Dosyalarının İçeriklerinin Sıralanması

Page 29: Komutların Birlikte Kullanılması

BİLG 223

[gulshat@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 12:03 dosya_2 -rw-r--r-- 1 tufan users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 tufan users 1356543 Aug 24 12:51 dosya_3

Metin Dosyalarının İçeriklerinin Sıralanması

Page 30: Komutların Birlikte Kullanılması

BİLG 223

Metin İçinde Arama ve Grep Komutu

Metin dosyaları arasında istenilen paternleri aramak için grep komutu kullanılmaktadır. Grep komutu dosyalar üzerinde istenilen metin parçasını arar ve bu metin parçasını içeren satırları standart çıkışa kopyalar.

Temel kullanım şekli aşağıdaki gibidir : grep [seçenekler] patern [dosya]Dosya ismi verilmediği takdirde verilerin standart girişten

okunacağı varsayılır. Bu sayede Unix boruları kullanılarak bir komutun çıktısında istenilen bir metin parçası aranabilir.

Page 31: Komutların Birlikte Kullanılması

BİLG 223 Grep ile kullanılan temel seçenekler aşağıdaki gibidir : -l : Metin parcasının geçtiği satırların gösterilmesi yerine metin parçasının geçtiği dosyaların

isimleri gösterilir. Çoğunlukla bir dizin içinde belirli bir kelimeyi içeren dosyaların bulunması işlevinde kullanılır.

-c : Metin parçasının geçtiği satırların gösterilmesi yerine , metin parçasının bulunduğu satır sayısının gösterilmesini sağlar.

-i : Büyük – küçük harf ayrımını ortandan kaldırır. -f dosya : Aranması istenen metin parçaçıklarını bir dosyadan okumak için kullanılır. -n veya --line-number : Bulunulan satırın dosyadaki satır numarası da gösterilir. -e metin_parcası veya –regexp=metin_parcası : Metin içinde aranması istenen metin parçası

istendiği takdirde bu seçenek ile de verilebilir. Özellikle ‘ – ‘ ile başlayan metin parçaçıklarında kullanılmalıdır.

-v : Aranan metin parçasının bulunmadığı satırları gösterir. -x veya --line-regexp : Tam bir satır olarak metin parçasını içeren satırların bulunmasını sağlar. -A satır_sayısı : Bulunan satırdan sonra istenilen satır sayısı kadar satırın bastırılmasını sağlar. -B satır_sayısı : Bulunan satırdan önce istenilen satır sayısı kadar satırın bastırılmasını sağlar. -r : Rekürsif arama için kullanılır. Aranması gereken dosya bir dizin ise ve –r seçeneği kullanılmış ise

grep dizinin içindeki tüm dizin ve dosyaları da tarar.

Metin İçinde Arama ve Grep Komutu

Page 32: Komutların Birlikte Kullanılması

BİLG 223

-d hareket : Grep programının bir dizine rastladığında yapması gereken hareketi ayarlamak için kullanılır. Varsayılan hareket “read” yani okumadır. Bu işlem bazı dosya sistemleri tarafından desteklenmemektedir. Bu durumda grep programı hata verecektir. Eğer hareket olarak “skip” değeri atanırsa grep hiç bir hata vermeden dizinleri atlayacaktır. Eğer hareket olarak “recurse” verilirse grep dizinin içindeki dosya ve dizinleri rekürsif olarak tarıyacaktır.

-n veya --no-filename : Birden fazla dosya arandığı zaman grep programımetin parcasını bulduğu satırı bastırmadan önce , satırı bulduğu dosya ismini gösterir. Bu seçenekle bu özellik kapatılır.

-a veya --text : Grep programı aranan metin parçasını binary bir dosyada bulduğu takdirde bulunan satırı göstermek yerine kullanıcıya aranan metin parçasının bir binary dosyada bulunduğu bildirir. Grep’in binary dosyalarda da bulduğu satırları göstermesi için bu seçenek kullanılmalıdır.

-w veya --word-regexp : Aranan metin parcasının kelime olarak bulunduğu satırların seçilmesi için kullanılır. Örnek olarak , aranan metin parçasının “linux” olduğu durumlarda “linux sistemi” arama kriterine uyarken “linuxun komutları” arama kriterine uymamaktadır.

Metin İçinde Arama ve Grep Komutu

Page 33: Komutların Birlikte Kullanılması

BİLG 223

SORULAR?