ACIK KAYNAK
 
*
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun. Temmuz 04, 2008, 12:58:35 ÖS


Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz



Reklamlar
Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: Ders 14. Yazı İşlemek (detaylı anlatım)  (Okunma Sayısı 91 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
fazlamesai
Global Moderator
***
Offline Offline

Mesaj Sayısı: 36



Üyelik Bilgileri
« : Ağustos 09, 2007, 01:32:47 ÖS »

Yönlendirme Bir komutun çıktşını bir dosyaya yönlendirmek için > operatörünü kullanırız, şöyle ki:

$ echo "dosya" > kopyasi

Çıktıyı yönlendirmeye ek olarak, oldukça güçlü bir kabuk özelliği olan pipe (boru)ları da kullanabiliriz. Bağlantıları kullanarak bir komutun çıktşını diğerine girdi olarak vermemiz mümkün. Sıu örneğe bir bakın

$ echo "merhaba dunyali" | wc

1
2
16


| karakteri soldaki komutun çıktsının sağdaki komuta girdi olarak verilmesini sağlamaktadır. Yukardaki örnekte echo komutu \merhaba dunyali" cumlesini sonunda bir satır sonu ile birlikte basar. Normalde bu çıktının terminalde gözükmesi lazım fakat yaptığımız bağlantı onu wc komutuna yönlendirdi ve böylece satır, kelime ve karakter (boşluk ve satır sonu dahil) sayılarını öğrendik. Bir boru örneği ıIşte bir başka • ornek:

$ ls -s | sort -n

Bu durumda, ls -s normalde mevcut dizinin listesini her dosyanın boyu dosya isminden önce gelecek şekilde terminal ekranına basacakken biz bu çıktıyı borudan geçirip sort -n'ye yönlendirdiğimiz için karşımıza çıktının sayşal olarak sıralanmış şekli gelmektedir. Ev (home) dizininizdeki büyük dosyaları bir bakışta tespit etmek için gerçekten güzel bir yöntem!

Aşağıdaki önekler biraz daha karışıktır ancak boru mekanizması ile ne kadar güçlü ve becerikli işlemler gerçekleştirilebildiğini  göstermeleri bakımından faydalıdır. Sıimdiye dek görmediğiniz bazı komutlarla karşılaşabilirsiniz, bunun sizi yavaşlatmasına lütfen izin vermeyin. Bunun yerine boru mekanizmasını yani bir çıktının bir sonraki programa girdi olarak nasıl geçildiğini anlamaya odaklanın. Böylece bunlardan günlük Linux kullanımınızda bolca faydalanabilirsiniz. Sıkıştırılmışları açan boru hattı Nomalde sıkıştırılmış bir dosyayı açmak ve arşivi çözmek için şunu yaparsınız:

$ bzip2 -d linux-2.4.16.tar.bz2

$ tar xvf linux-2.4.16.tar

Bu yöntemin dezavantajı diskinizde sıkıştırılmamış bir ara dosya barındımasıdır. tar yazılımı doğrudan standart girdiden okuyabildiği için (yani buna parametre olarak illa ki diskteki bir dosyayı geçmeniz gerekmediği için) yukarıdaki sonucun aynısına şöyle bir boru hattı kullanarak, daha pratik ve ekonomik bir şekilde erişebiliriz:

$ bzip2 -dc linux-2.4.16.tar.bz2 | tar xvf

Sıkıştırılmış arşiv (tarball) dosyamız bir anda açılıverdi ve arada ortaya çıkan geçici bir dosyaya da ihtiyaç duymadık.

Daha uzun bir boru hattı

Bir başka örneğe bakalım:

$ cat dosyam.txt | sort | uniq | wc -l

cat komut ile myı le.txt dosyasının içeriğini elde edip bunu sort komutuna girdi olarak veriyoruz. sort komutu bu girdiyi alınca tüm satırları alfabetik olarak sıralıyor ve ürettiği çıktıyı boru üzerinden uniq komutuna aktarıyor ve bu program da tekrar eden satırları iptal ediyor (yani birbirinin aynısı olan satırlardan sadece bir tane görünüyor) ve bu sonucu wc -l komutuna veriyor. wc komutunu daha önce görmüştük, -l seçeneği ile birlikte kullanıldığında bu komut sadece ve sadece satır sayşını verir. Birkaç test dosyası oluşturup bu boru hattının etkilerini inceleyebilirsiniz.

Metin işleme kasırgası başlıyor!

Şimdi standart Linux metin işleme komutlarının üzerinden fırtına gibi geçeceğiz. Bu bölümde bir hayli yoğun bir içerik aktardığımız için her komuta dair detaylı bir sürü örnek veremeyeceğiz bu yüzden de sizden burayı okuduktan sonra ilgili komutların man sayfalarına bakmanızı istiyoruz. Bunları inceleyin ve değişik seçeneklerle oynayın, öğrenmenin en güzel yolu budur. Genel kural olarak bu komutlar kendisine verilen metin dosyalarının içeriğini uygun şekilde işleyip ekrana basarlar, dosyanın kendisine kalçı olarak müdahale etmezler. Bu fırtına turundan sonra girdi ve çıktı yönlendirmeye biraz daha detaylı bakacağız. Evet, tünelin ucundaki ışığı göreceksiniz Gülümseme

echo

echo kendisine verilen argümanları terminale basar. -e seçeğini kullanırsanız \escape dizisi" olarak tabir ettiğimiz özel karakter kombinasyonlarının da düzgün olarak yorumlanmasını sağlarsınız, misal: echo -e \foo

nfoo" komutu ekrana önce foo basar, bir satır aşağı iner başka bir deyişle yenisatır karakteri basar ve sonra yine bir kez foo basar. -n seçeneğini kullanırsanız çıktıya en sonra otomatik olarak eklenen yenisatır karakterinin basılmasını engelleyebilirsiniz.

cat, sort ve uniq

cat: cat komutu bir dosyanın içeriğini terminal ekranına basar. Bir boru hattına ilk girdiyi vermek için faydalı bir komuttur, misal cat foo.txt | vesaire | vesaire.

sort: sort komutu komut satırında kendisine belirtilen dosyanın içeriğini alfabetik olarak sıralayıp basar. Elbette sort komutu da boru üzerinden kendisine aktarılan girdiyi kabul edecek şekilde tasarlanmıştır. man sort ile bu komutun ne kadar farklı sıralama işleri için pratik şekilde kullanılabileceğini görebilirsiniz. uniq: uniq sıralanmış bir dosyayı ya da boru hattı üzerinden kendisine yollanan veriyi alır ve bunun içindeki birbirinin aynısı olan satırları ayıklar.

wc, head, ve tail

wc: wc komut satırında kendisine belirtilen dosyayı (ya da boru hattından gelen veriyi) okur ve bu dosyanın satır, sözcük ve byte sayşını ekrana basar. man wc ile detaylı bilgi edinebilirsiniz.

head: head komutu bir dosyanın ya da boru hattından gelen verinin ilk on satırını basar. -n seçeneği ile kaç satır basılacağını belirleyebilirsiniz.

tail: Bu komut bir dosyanın ya da boru hattından akan verinin son on satırını basar. -n seçeneği ile kaç satır basılacağını belirleyebilirsiniz.

tac, expand ve unexpand

tac: tac da tıpkı cat komutu gibidir, şu farkla ki okuduğunu tersten basar. Yani son okunan satır ilk olarak basılır, dosyanın ilk satırı ise en son basılır.

xpand: expand komutu girdideki tab karakterlerini boşluk karakterine dönüştürür. -t seçeneği ile tab duraklarını belirleyebilirsiniz.

unexpand: unexpand girdideki boşlukları tab karakterine dönüştürür. -t seçeneği ile tab duraklarını belirleyebilirsiniz.

cut, nl ve pr

cut: cut komutu belli bir dosyadaki ya da girdideki karakterle ayrılmış alanları çekip çıkarır.

nl: nl girdideki her satırın başına sıra ile artan bir sayı ekler. özellikle program kaynak kodu türünden dosyalara göz atarken ya da bunların çıktşını alırken faydalıdır.

pr: pr komutu bir dosyayı sayfalara böler, yazçı çıktılarında faydalıdır.

tr, sed ve awk

tr: tr bir tür karakter dönüştürme araÇdır, girdideki belli karakterleri çıktıdaki başka karakterlere tasvir etmek için kullanılır.

sed: sed çok güçlü, veri akışını işlemeye yönelik (stream-oriented) metin editörüdür. awk: awk kolay kullanımlı, satır tabanlı bir metin işleme dilidir.

od, split, ve fmt

od: od komutu girdiyi alıp sekizlik ya da onaltılık biçimde basar.

split: split komutu büyük bir dosyayı alıp bunu küçük dosyalara ayırır.

fmt: fmt paragraf kenarları toplanacak şekilde paragrafı yeniden biçimlendirir. Bu yetenek birçok text editör içerisinde yer alsa bile bilinmesi gereken komutlardan bir tanesidir.

Paste, join, ve tee

paste: paste iki ya da daha fazla dosyayı girdi olarak alır, giriş dosyalarından gelen ardışıl satırları birbiri ardına ekler ve sonuç satırlarını çıktı yapar. Text tabloları ve kolonları yaratmak için oldukça kullanışlıdır. join: join de paste komutuna benzese de tek bir satırda birleşecek şeyleri eşleştirmek için, her girdi satırında bir alan kullanır.

tee: tee kendi girdisini hem dosyaya hem de ekrana basar. Bir şeyin log'unu tutmak ama aynı zamanda ı Çktıyı ekranda da görmek istediğinizde bu komut gayet kullanışlı olabilir
Logged

Linux Linux'tur. Windows Hiç Birşey!!!
Sayfa: [1]   Yukarı git
  Yazdır  
 
Gitmek istediğiniz yer:  


[Basit Gorunum]

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.5 | SMF © 2006, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks


acikkaynak
XHTML 1.0 Geçerli! CSS Geçerli! Dilber MC Theme by HarzeM