Genel Bakış


Giriş

Bu bölümde Unix,Linux and bsd sistemleri için gelişmiş komutlar hakkında bilgi vereceğiz bu konutlar dosyaları silme, kopyalama, taşıma ve yeniden bicimlendirme gibi islemleri gerceklestime için kullanılır. Bu bölümde ayrıca gelişmiş kabuk özellikleri olan otomatik tamamlama, joker karakterler, borular(es zamanlı islemler)ve yeniden yonlendirme gibi konularda ele alınacaktır

Bu bölümde incelenecek komutlar

Komut Kullanım amacı
mv Dosya ya da dizinleri taşır veya yeniden adlandırır
cp Dosya ve dizinleri kopyalar
rm Dosyaları dizer
mkdir
rmdir
Dizin oluşturur, siler
touch Dosyanın zaman etiketlerini günceller(erişim oluşturma , değiştirme zamanı vb.)
lsof Açık dosyaları listeler
fuser Açık dosyalar hakkında bilgi görüntüler
cksum Dosya bütünlüğü doğrulamasın görüntüler
md5sun Dosyanın md5 doğrulama kodunu görüntüler
ln Dosya yada Dizinlere kısayol(link) oluşturur
alias Komut satırında komutlar için kısayol oluşturur
gzip
gunzip
Dosya sıkıştırır, açar
split Büyük boyutlu dosyaları küçük boyutlu parçalara böler
shred Güvenli dosya siler
watch Periyodik olarak (belirli aralıklarla) belirtilen komutları çalıştırır
env Ortam değişkenlerini görüntüler

Otomatik tamamlama
Bir çok kabuk komut satırında otomatik tamamlamayı destekler.Otomatik tamamlama komut satırında işlem yaparken komutların ve dosya yollarının kabuk tarafında bir kısmı yazıldıktan sonra tab tuşuna basıldığında tamamlamasıdır.Otomatik tamamlama aşağıdaki örnekte verildiği gibi kullanılır.

$ whe
$ whereis

Yukarıda verilen örenekte whe yazıldıktan sonra Tab tuşuna basıldığında whereis komutuna ait diğer karakterleri yazmaya gerek kalmadan kabuk komutu whereis şeklinde tamamlayacaktır. Otomatik tamamlama aynı zamanda dosya yollarını tamamlamak içinde kullanılır.Örneğin ls -l /etc/en yazıp tab tuşuna bastığımız da otomatik tamamlama dosya yolunu aşağıdaki örnekte verildiği gibi /etc/environment

$ ls -l /etc/en
$ ls -l /etc/environment

Otomatik tamamlama işlemi sırasında birden fazla eşleşme bulunduğunda kabuk tuüm sonuçları görüntüleyecektir.Bir sonraki örneğimizde ls -l /etc/host yazılıp Tab tuşuna basıldığında /etc dizinindeki tüm eşleşmeer listelenecektir

$ ls -l /etc/host
host.conf hostname hosts.allow hosts.deny


Bilgi Komut satırında tamamlama işlemine ek olarak bazı kabuklar klavyeden yukarı ok tuşuna basarak daha önce kullanılan kabuk komutlarının yeniden çağırılmasına imkan tanırlar

Joker karakterler 1 yada daha fazla
Joker karakterler 1 yada daha fazla metin elemanın yerine kullanılabilen karakterlerdir.Bu karakterler komut satırı üzerinde bir gurup dosyanın listelenmesi silinmesi vb. Yıgın işlemlerini yapılmasında yardımcı olurar.Aşağıdaki tablo komut satırında kullanılabilecek farklı joker karakterlerin listesini vermektedir.

Komut Kullanım amacı
* Eşleşen birden çok karakter için kullanılır
? Eşleşen 1 karakter için kullanılır
[abc] Listelenen karakteerlerden birini eşleşmesi için kullanılır
[a - c] Karakter aralığındaki eşleşmeler için kullanılır
[! abc] Listelenen karakterler dışındaki eşleşmeler için kullanılır
[!a - c] Belirtilen karakter aralığı dışındaki eşleşmeler için kullanılır
{tacos, nachos} Listelenen kelimelerden biri için eşleşme durumunda kullanılır

* en basit ve en çok kullanılan joker karakterdir. Aşağıda ki örnek htc dizininde host ile başlayan tüm dosyaların listesinin nasıl alınacağını göstermektedir.

$ ls -l /etc/host*

Aşağıda verilen ilk örnekte allow veye deny kelimeleri ile biten tüm eşleşmeler listelenecektir.İkinci örnekte ise a harfi ile başlamayanlar enson örnekte ise 5 karakterli ilk 4 karakteri host olan tüm eşleşmeler listelenecektir.

$ ls -l /etc/hosts. {allow,deny}
$ ls -l /etc/hosts. [!a]*
$ ls -l /etc/hosts?

Borular
Borular bir komutun çıkışını bir başka komutun girişine yönlendirmek için kullanılır. ls -l /etc yazılıp onaylandığında ls komutu etc dizininin içeriğini ekran boyunca hızlı bir şekilde listeler.Çıktılar ekrana sığmadığında ekran otamatik olarak kaydırılır.Şayet işlemler grafik ortamda değilde komut satırında gerçekleştiriliyorsa ekrandaki kaydırma çubuğu görüntülenmeyeceği için ekranın kayan kısmında kalan çıktılar görüntülenmeyecektir.Bunu engellemek için borulardan yararlanırız.aynı komutu ls -l /etc | more şeklinde yazdığımızda sonuçlar bir ekran botyu listelenir listelemenin devam edebilmesi için kullanıcıdan bir tuşa basması istenir.Listelemeyi herhangi bir anda iptal etmek için "Q" basmak yeterlidir.Borularla beraber kullanılan bir diğer komut ise grep'tir.Bunu daha sonra ayrıntılarıyla inceleyeceğiz lakin kısaca belirtmak gerekirse grep komutu listeleme sonuçlarının kendisinden sonra verilen karakter grubuna göre flitrelenmesini sağlar örneğin ls -l /etc |grep host şeklindeki bir listelemede etc dizinindeki listeleme çıktısının içerisinde sadece host kelimesini barındıranlar görüntülenir.

Yeniden yönlendirme
Bir komutun çıktısı bir başka konuma yada bir metin dosyasına yönlendirebilir.Yeniden yönlendirme işlemi ">" karakteri kullanılarak başlatılır.

$ date > date.txt
$ ls -l date.txt

Yukarıdaki örnekte date komutu tarih görüntüleme işlemini > karakteri nedeniyle ekrana değilde date.txt dosyasına yapmıştır.Şayet yönlendirme işlemi sırasında belirtilen dosya yoksa otomatik olarak oluşturulacaktır.Ancak dosya mevcut ise listeleme işlemi üzerine yapılacaktır.Dosya eski içeriğini kaybedecektir.Şayet listeleme işlemini var olan bir dosyanın sonuna dosya içerğini silmeden eklemek istersek bu durumda >> karakterleri kullanılmalıdır.Aşağıdaki örnektede date.txt dosyasının içeriğindeki dosya silinmeden snuç sonuna eklenmiştir.

$ date >> date.txt

İki çeşit çıkış vardır.
1. Standart çıkış-Standard output (STDOUT)
2. Hata çıkışı-Error output (STDERR)
Aşağıda gösterildiği üzere standart çıktılar ve hata çıktıları belirtilen özel dosyalara yönlendirilebilir.Bu genellikle hata mesajlarını yakalarken faydalı olacaktır.

$ ls -l /NonExistantFile 1>ls.txt 2>lserror.txt
$ ls -l ls*

Bu örneğimizdede 1> standart çıkışı ve 2> standart hata çıkışını göstermektadir.İstenilen dosya bulunamadığında hata mesajı lserror.txt dosyasına kaydelicek aksi durumda hatanın oluşmadığı hertürlü çıkış ls.txt dosyasına yönlendirilecektir.Standart hata ve standart çıkışa ek olarak bir başka konumdan gelebn girdi(örneğin bir dosyadan) bir komuta yönlendirile bilir.Bu işlemde standart giriş olarak tanımlanmaktadır.Bir sonraki örneğimizde bir dosyanın içeriği mail komutuna girdi olarak gönderilmiştir.

$ mail grepnick@gmail.com < ShoppingList.txt