Linux işletim sistemi hakkında bilgi almak isterseniz ve başka komutlar öğrenmek isterseniz serinin ilk yazısını da okumanızı öneririm.
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 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.