Temel linux komutları - 2

Temel linux komutları - 2

Bu yazımızda Linux komutları nasıl birleştirip, birlikte kullanılabileceğinden ve Linux’ta temel dosya/klasör izinlerinden bahsedeceğiz.
Burcu Koçulu25 Ara 2022

Linux işletim sistemi hakkında bilgi almak isterseniz ve başka komutlar öğrenmek isterseniz serinin ilk yazısını da okumanızı öneririm. 

 

Linux komut birleştirme

Komutları birleştirmenin en kolay yolu, bir komutun çıktısını bir dosyada saklayıp,  ardından bu dosya üzerinde birbiri ardına başka bir dizi komutla işlem yapmaktır. Komut birleştirme yaparken | , > ve < karakterlerini kullanıyoruz. 

 

< karakteri, belirtilen dosyanın inputunu getirirken,  > karakteri çıktıyı karakterden sonra gelen dosyaya aktarır. Hemen bir örnek vererek inceleyelim.  Phbook1.txt ve Phbook2.txt dosyalarının çıktısını cat ile terminale yazdırıp bu çıktıyı > yardımı ile tmp-phbook.txt dosyasına aktardık. 

 

$ cat phbook1.txt
Sally Salty: 123 Sam St, Land O' Oz, Kansas 98765: (555) 123-4545
Bob Blob: 405 Oak St,  Land O' Oz, Kansas 98765: (444) 333-3777
Carl Snarl: 27543 Poppy Dr, Mon, California: (425) 215-4343 
$ cat phbook2.txt
Manny Fanny: 135 Sam St, Land O' Oz, Kansas 98765: (555) 120-9876
Rick Brick: 45 Slug St,  Land O' Oz, Kansas 98765: (555) 333-3702
Abby Flabby: 27512 Poppy Dr, Mon, California: (425) 215-2378 
$ cat phbook1.txt phbook2.txt > tmp-phbook.txt
$ cat tmp-phbook.txt 
Sally Salty: 123 Sam St, Land O' Oz, Kansas 98765: (555) 123-4545
Bob Blob: 405 Oak St,  Land O' Oz, Kansas 98765: (444) 333-3777
Carl Snarl: 27543 Poppy Dr, Mon, California: (425) 215-4343 
Manny Fanny: 135 Sam St, Land O' Oz, Kansas 98765: (555) 120-9876
Rick Brick: 45 Slug St,  Land O' Oz, Kansas 98765: (555) 333-3702
Abby Flabby: 27512 Poppy Dr, Mon, California: (425) 215-2378 

 

sort: Belirtilen dosyayı alfabetik/nümerik olarak sıralar. Sort ile dosyamızı sıralı bir şekilde gözlemleyelim. 

$ sort tmp-phbook.txt

Abby Flabby: 27512 Poppy Dr, Mon, California: (425) 215-2378 
Bob Blob: 405 Oak St,  Land O' Oz, Kansas 98765: (444) 333-3777
Carl Snarl: 27543 Poppy Dr, Mon, California: (425) 215-4343 
Manny Fanny: 135 Sam St, Land O' Oz, Kansas 98765: (555) 120-9876
Rick Brick: 45 Slug St,  Land O' Oz, Kansas 98765: (555) 333-3702
Sally Salty: 123 Sam St, Land O' Oz, Kansas 98765: (555) 123-4545


 

Pipe (|) ile yukarıda yaptığımız işlemleri şu şekilde de yapabiliriz: 

$ cat phbook1.txt phbook2.txt > tmp-phbook.txt | sort tmp-phbook.txt

Yukarıdaki ayrı ayrı kullandığımız komutları | kullanarak burada birleştirmiş olduk. 

 

$ cat phbook1.txt phbook2.txt | sort

Abby Flabby: 27512 Poppy Dr, Mon, California: (425) 215-2378 
Bob Blob: 405 Oak St,  Land O' Oz, Kansas 98765: (444) 333-3777
Carl Snarl: 27543 Poppy Dr, Mon, California: (425) 215-4343 
Manny Fanny: 135 Sam St, Land O' Oz, Kansas 98765: (555) 120-9876
Rick Brick: 45 Slug St,  Land O' Oz, Kansas 98765: (555) 333-3702
Sally Salty: 123 Sam St, Land O' Oz, Kansas 98765: (555) 123-4545

Yukarıdaki gibi de yapabilirdik, buradaki fark, diskte herhangi bir dosya oluşturulmamasıdır. Cat’in çıktıları sort komutunu besliyor ve terminal ekranında sonuçları görüyoruz. 

Birden fazla pipe da kullanabiliriz. 

$ grep '(555)' phbook2.txt

Manny Fanny: 135 Sam St, Land O' Oz, Kansas 98765: (555) 120-9876
Rick Brick: 45 Slug St,  Land O' Oz, Kansas 98765: (555) 333-3702

 

cut: Belirtilen dosyadaki bölümü kesmek için kullanılır. Tek başına kullanılmaz. 
Aşağıdaki örnekte dosyada grep ile ‘(555)’ içeren satırları filtreledik. Ardından -d (delimiter) parametresi ile dosyadaki ayırıcıyı “,” olarak belirtip, -f parametresi ile (field)  3. bölümü kesip, sort ile en sonunda sıralayarak çıktıyı terminalde gözlemleyebildik. 

$ grep '(555)' phbook2.txt

Manny Fanny: 135 Sam St, Land O' Oz, Kansas 98765: (555) 120-9876
Rick Brick: 45 Slug St,  Land O' Oz, Kansas 98765: (555) 333-3702

 

$ grep '(555)' phbook2.txt | cut -d "," -f 3 | sort

 Kansas 98765: (555) 120-9876
 Kansas 98765: (555) 333-3702

 

Komut birleştirmenin başka bir yolu ise komut değiştirme yöntemini kullanmaktır. Bu yöntemde, bir komutun çıktısını başka bir komuta parametre olarak besliyoruz. Yöntemlerden biri  $() kullanmaktadır. Aşağıdaki örnek üzerinden gidelim, $(pwd)çıktısını echo ile terminale yazdırabildik. 
 

$ echo "my current directory is: $(pwd)"

my current directory is: /root

 

Linux’ta temel izinler

Linux işletim sistemi dosya yapısında, her dosya ve klasör; kullanıcı (user), grup (group) ve diğerleri (other) olmak üzere üç izin yapısı tutar. Dosyalar ve klasörler bu kullanıcılara yönelik bir grup izin sistemi bulunuyor, okuma (read), yazma (write) ve çalıştırma (execute). 

 

ls -l komutu ile dosya ve klasör izinlerini gözlemleyebiliriz. 

$ ls -l
total 4
-rw-rw-r-- 1 cosmo cosmo 13 Dec  5 16:23 myfile.txt

 

 

Dosya tür çeşitlerini şu şekilde sıralayabiliriz: 

- Dosya 

d Dizin 

b Özel blok dosyası

c Özel karakter dosyası 

l Sembolik bağlantı dosyası 

P Özel isimlendirilmiş pipe dosyası
 

chmod - change mod komutu ile dosya/klasör izinleri düzenlenebilir. 

– İzinleri kaldır ( remove chmod permission ) 

+ İzinleri ekle ( add chmod permission ) 

= İzinleri ayarla ( set chmod permission )

 

chmod +x deneme : deneme dosyasına execute(x) izni vermiş olduk. 

rwx: Okuma, yazma ve çalıştırma erişim izinlerinin hepsi var.

rw- : Okuma ve yazma izinleri var, çalıştırma için izin yok. 

r-x : Okuma ve çalıştırma izinleri var, yazma için izin yok.

 

Aşağıdaki örnekte read yetkisi tüm kullanıcılardan alındı.  

~$ chmod -r myfile.txt

~$ ls -l
total 4
--w--w---- 1 cosmo cosmo 13 Dec  5 16:23 myfile.txt

 

Yazımızda Linux’ta <, > ve | karakterleri yardımıyla nasıl komutları birleştirebileceğimizden ve dosya/klasör sahiplik ayarlarının nasıl chmod komutu ile değiştirebileceğine değindik. Bir sonraki yazıda görüşmek üzere.  

 

Kaynaklar

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.