34
Konuya ait anahtar kelimeler : wc, type, cut Wc : Herhangi bir dosyanın sahip olduğu, "byte sayısı", "satır sayısı" ve "kelime sayısı" bilgilerini gösterir. Bir kaç opsiyon alabilmektedir.
-cByte sayısı, dosyanın kaç Byte'tan oluştuğu.
-mKarakter sayısı.
-lSatır sayısı.
-LEn uzun satır uzunluğu.
-wKelime sayısı.
--files0-from=FWc, yenisatır, kelime, Byte sayısını okur, eğer herhangi bir FILE(dosya) belirtilmemiş ise standart okuma olarak işlemi gerçekleştirir.
--helpYardım sayfası.
--versionVersiyon bilgileri.
Kullanımı, wc -opsiyon dosya-adi şeklinde olmaktadır. Şimdi çalışma dizini içerisinde bir adet "kodx" adında dosya oluşturalım ve dosya içeriği aşağıdaki gibi olsun.
[alax@alax script]$ nano kodx exec: Yeni bir program çalıştırma. cd: Dizin değiştirme. |: Pipe, boru çıkışı. ls: Listeleme. echo: Çıktıları göster, yazdır. eval: Argümanları değerlendirir. fg: Önplan işlemleri. bg: Arkaplan işlemleri. kill: Çalışan işlemleri kapatma. shift: Pozisyon ilerletme. suspend: Önplandaki işlemi askıya al. stop: Arkaplandaki işlemleri askıya al. umask: Dosya izinlerini ayarla/göster. jobs: Aktif işlemleri göster. >: Çıkış. <: Giriş. &: İşlemi arkaplanda çalıştır. []: Aralıktaki herhangi bir karakter. *: İçerisindeki bütün karakter(ler). (): Alt Shell'de çalıştır. $degisken: "degisken" adlı değişkenin değeri. $$: İşlem ID numarası. $0: Komut satırı adı. $n: n. değer.(n değeri 0 ile 9 arasında olabilir.) #: Yorum ekleme. [alax@alax script]$
Dosyayı kaydedelim ve çıkalım. Şimdi dosya kaç Byte, dosyadaki, satır, kelime vb.. bilgilerine bakalım.
[alax@alax script]$ wc -c kodx 790 kodx [alax@alax script]$ wc -l kodx 25 kodx [alax@alax script]$ wc -w kodx 98 kodx [alax@alax script]$ wc -L kodx 50 kodx [alax@alax script]$ cat kodx | wc -l 25 [alax@alax script]$
type : Herhangi bir komut hakkında bilgileri gösterir. Komutun türü özelliği gibi bilgilerini göstermeye yarar. Kullanımı, type -opsiyonlar komut şeklinde olmaktadır.
-aÇalıştırılabilir komuta ait tüm olayları. Ayrıca -p parametresi kullanılmadığı zaman aliasları, builtin(yerleşik), fonksiyonları da gösterir.
-fGizli Shell fonksiyon aramaları.
-PAlias, builtin, fonksiyona ait dosya yolu.
-pÇalıştırılabilir disk dosyası adı.
-tSadece komut tipi.
Şimdi bir kaç örnek yapalım.
[alax@alax script]$ type ssh ssh is /usr/bin/ssh [alax@alax script]$ type -t ssh file [alax@alax script]$ type -P cat /usr/bin/cat [alax@alax script]$ type echo echo is a shell builtin [alax@alax script]$ type -a echo echo is a shell builtin echo is /usr/bin/echo [alax@alax script]$
Cut : Belirtilen herhangi bir veriyi, kelimeyi dosya içerisinde her satırdan kesme işlemi yapar. Kullanımı, cut -opsiyonlar dosya_adi şeklinde olmaktadır.
-bByte, belirtilen Byte'ları göster. Sayısal değer alır.
-cKarakter, belirtilen yerdeki karakterleri göster. Sayısal değer alır.
-dSınırlayıcı, bölüm ayırıcı. Mesela Tab yerine istenilen başka bir ayraç ile işlem yapılabilir.
-fSadece belirli alanları seçme, -s opsiyonu belirtilmediği zaman içerisinde ayraç olmayan satırları da seçer.
-nBirden fazla bayttan oluşan karakterkleri parçalamama, -b ile beraber.
--complementSeçilen bayt, karakter veya alanları tamamla.
-sBelirlenen ayracın olmadığı satırları saklama, göstermeme.
--output-delimiter=KelimeÇıktı için "Kelime" ayracını kullan.
--helpYardım sayfası.
--versionVersiyon bilgileri.
Şimdi "kodx" dosyası üzerinde birkaç örnek yapalım.
[alax@alax script]$ cut -c 3 kodx # Her satırdaki 3. karakterler. e : : h a : : l i s o a b : : e : : : [alax@alax script]$ cut -c 1-3 kodx # 1. ve 3. karakterler arası. exe cd: |: ls: ech eva fg: bg: kil shi sus sto uma job >: <: &: []: *: (): $de $$: $0: $n: #: [alax@alax script]$
Şimdi her satırdan beşinci karakterden itibaren satır sonuna kadar kesme işlemi yapalım. Satır sonu tire "-" ile belirtilir.
[alax@alax script]$ cut -c5- kodx : Yeni bir Shell çalıştırma. Dizin değiştirme. ipe, boru çıkışı. Listeleme. : Çıktıları göster, yazdır. : Argümanları değerlendirir. Önplan işlemleri. Arkaplan işlemleri. : Çalışan işlemleri kapatma. t: Pozisyon ilerletme. end: Önplandaki işlemi askıya al. : Arkaplandaki işlemleri askıya al. k: Dosya izinlerini ayarla/göster. : Aktif işlemleri göster. çıkış. iriş. işlemi arkaplanda çalıştır. Aralıktaki herhangi bir karakter. içerisindeki bütün karakter(ler). Alt Shell'de çalıştır. isken: "degisken" adlı değişkenin değeri. İşlem ID numarası. Komut satırı adı. n. değer.(n değeri 0 ile 9 arasında olabilir.) orum ekleme. [alax@alax script]$
Şimdi "/etc/passwd" dosyası içerisinden birinci alandaki verileri çekelim. Bu arada ayracı ":" olarak ayarlayalım, dosya yapısından dolayı.
[alax@alax script]$ cut -d':' -f1 "/etc/passwd" root bin daemon mail ftp http uuidd dbus nobody systemd-journal-gateway systemd-timesync systemd-network systemd-bus-proxy systemd-resolve systemd-journal-remote systemd-journal-upload polkitd alax avahi colord mysql [alax@alax script]$
Şimdi yukarıdaki örneğe ilaveten yedinci alandaki verileri de çekelim.
[alax@alax script]$ cut -d':' -f1,7 "/etc/passwd" root:/bin/bash bin:/usr/bin/nologin daemon:/usr/bin/nologin mail:/usr/bin/nologin ftp:/usr/bin/nologin http:/usr/bin/nologin uuidd:/usr/bin/nologin dbus:/usr/bin/nologin nobody:/usr/bin/nologin systemd-journal-gateway:/usr/bin/nologin systemd-timesync:/usr/bin/nologin systemd-network:/usr/bin/nologin systemd-bus-proxy:/usr/bin/nologin systemd-resolve:/usr/bin/nologin systemd-journal-remote:/sbin/nologin systemd-journal-upload:/sbin/nologin polkitd:/usr/bin/nologin alax:/bin/bash avahi:/bin/nologin colord:/bin/false mysql:/bin/false [alax@alax script]$
Şimdi birinci alan ile üçüncü alanlar arasındaki verileri çekelim.
[alax@alax script]$ cut -d':' -f1-3 "/etc/passwd" root:x:0 bin:x:1 daemon:x:2 mail:x:8 ftp:x:14 http:x:33 uuidd:x:68 dbus:x:81 nobody:x:99 systemd-journal-gateway:x:191 systemd-timesync:x:192 systemd-network:x:193 systemd-bus-proxy:x:194 systemd-resolve:x:195 systemd-journal-remote:x:998 systemd-journal-upload:x:999 polkitd:x:102 alax:x:1000 avahi:x:84 colord:x:124 mysql:x:89 [alax@alax script]$
Şimdi "/etc/passwd" dosyası içerisinde "root" ile başlayan satır içerisinden, ayracı ":" olarak belirleyerek, beşinci kısım hariç diğer kısımları tamamlayarak çekme işlemi yapalım.
[alax@alax script]$ grep "^root" /etc/passwd | cut -d':' --complement -s -f5 root:x:0:0:/root:/bin/bash [alax@alax script]$
Son olarak yukarıdaki örneği, çıktı ayracı kare "#" olacak şekilde kullanalım.
[alax@alax script]$ grep "^root" /etc/passwd | \ cut -d':' --complement -s -f5 --output-delimiter='#' root#x#0#0#/root#/bin/bash [alax@alax script]$
Çıktı ayracını istediğiniz şekilde değiştirebilirsiniz. Mesela her alanı satır atlatarak yazdırmak isteseydik, o zaman yeni satır(newline) karakterini kullanmamız gerekecekti. "--output-delimiter=$'\n'" şeklinde. Yukarıda tabloda verilen opsiyonları kurallar gereğince istediğiniz şekilde kullanabilirsiniz. Lütfen dersler ile ilgili pratik yapınız. Biz sadece komutların örnek kullanımlarını sizlere sunmaktayız. Hangi komutu nasıl ve nerede kullanacağınız sizlere kalmış.