32
Konuya ait anahtar kelimeler :cal, date, sort Şimdi bazı Unix/Linux komutlarını örnekler üzerinde kullanmayı görelim. cal : Uzun adı "Calendar", Türkçe "Takvim" manasına gelmektedir. Takvim bilgilerini göstermeye yaramaktadır. Örnek:
[alax@alax script]$ cal November 2015 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Sistem dilinize bağlı olarak tarih bilgisini sizde görüyor olmalısınız. Gün sayısı rengi diğer sayılardan farklı görünecektir. Yıl için "YYYY" ay için "MM" ve gün için "DD" şeklinde değerler kullanılır. Şimdi belirli bir ay ve yıl için takvim açalım. "cal Ay Yıl"
[alax@alax script]$ cal 11 2013 November 2013 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Yıl içerisindeki bütün ayları görüntülemek için "cal -y" komutu kullanılır. Bütün aylar birer birer yazdırılır. Bir önceki, şimdiki ve bir sonraki ayı görüntülemek için "cal -3" komutu kullanılır. Lütfen komutu çalıştırınız ve sonucunu inceleyiniz. date : Tarih bilgisini gösterir. Tarih varsayılan olarak "Yıl-Ay-Gün" şeklinde olmaktadır. Örnek:
[alax@alax script]$ date Sun Nov 22 23:47:57 UTC 2015 [alax@alax script]$
Önceden de belirttiğimiz gibi çıktılar sizin kullandığınız dile göre değişebilir. Biz Ingilizce olarak sistemi kullandığımız için veriler Ingilizce yazmaktadır. Bunun pek bir önemi yok. Şimdi tarih bilgisini "Yıl-Ay-Gün-Saat-Dakika-Saniye" olarak bir değişkene atayalım ve değişken değerini yazdıralım
[alax@alax script]$ tarih=`date +%Y-%m-%d:%H:%M:%S` && echo $tarih 2017-05-13:23:50:31 [alax@alax script]$
Sadece yıl değerini çekmek için "date +%Y", sadece ay değerini çekmek için "date +%m" yada sadece o anki saniye değerini çekmek için "date +%S" vb.. şeklinde kullanabilirsiniz. UTC(Universal Coordinated Time), "Koordineli Evrensel Zaman" bilgisini ise "date -u" komutu ile elde edebilirsiniz. sort : Açıklama ve kullanım bilgisine "man sort" komutu ile ulaşabilirsiniz. "Sort" Türkçe "Ayırmak, Sınıflandırmak" anlamlarına gelmektedir. Girdi olarak sunulan text dosyası içeriğini parametrelere göre ayırarak sıralama yapmaktadır. Kullanımı: sort -parametreler dosya_adi şeklinde olmaktadır.
-fBüyük küçük harf duyarlılığı olmadan. "a" ile "A" aynı kabul edilir.
-nSayısal olarak sıralama.
-rTersine sıralama yapma.
-oSıralamayı bir dosyaya yaz.
-gGenel olarak nümerik,sayısal sıralama.
-tAyraç belirleme. Seperator.
-RRastgele sıralama.
-kKaçıncı alana göre sıralama yapılacağı.
Şimdi çalışma dizini içerisinde "sort" adında bir dosya oluşturalım ve içeriği aşağıdaki gibi olsun.
[alax@alax script]$ nano sort Mustafa Kaygısız 556323 Ankara. Mahmut Süslü 557698 Manisa. Kenan Sert 236555 İzmir. Burak Sağlam 212365 USA. [alax@alax script]$
Şimdi yukarıdaki parametreleri kullanarak dosya içeriğini listeleyelim.
[alax@alax script]$ sort -n "sort" Burak Sağlam 212365 USA. Kenan Sert 236555 İzmir. Mahmut Süslü 557698 Manisa. Mustafa Kaygısız 556323 Ankara. [alax@alax script]$ sort -r "sort" Mustafa Kaygısız 556323 Ankara. Mahmut Süslü 557698 Manisa. Kenan Sert 236555 İzmir. Burak Sağlam 212365 USA. [alax@alax script]$ sort -k 3 "sort" # 3. alandaki değerlere göre. Burak Sağlam 212365 USA. Kenan Sert 236555 İzmir. Mustafa Kaygısız 556323 Ankara. Mahmut Süslü 557698 Manisa. [alax@alax script]$
Şimdi üçüncü alandaki sayıları sıralama ölçütü yapalım, ayrıca üçüncü alandaki sayılarında üçüncü karakteri değerine göre sıralamayı filtreleyelim. "556323" ile "557698" sayılarını gözönünde bulundurun.
[alax@alax script]$ sort -k 3,3 "sort" Burak Sağlam 212365 USA. Kenan Sert 236555 İzmir. Mustafa Kaygısız 556323 Ankara. Mahmut Süslü 557698 Manisa. [alax@alax script]$
Şimdi sıralama sonuçlarını "sırala.txt" adlı dosyaya yazdıralım bunu iki şekilde yapabiliriz.
[alax@alax script]$ sort -n "dosya_adi" -o "sırala.txt" [alax@alax script]$
yada
[alax@alax script]$ sort -n "dosya_adi" > "sırala.txt" [alax@alax script]$
İki şekilde de sıralama sonuçlarını herhangi bir dosyaya yazdırabilirsiniz.Genel olarak bir dosyaya çıktıları kaydetmek için ">" komutu kullanılmaktadır. Her komut için ayrı ayrı parametre bilmektense ortak olan komut/parametre bilmek daha iyidir. Ayrıca uygun sıralama ölçütlerine göre otomatik sıralamayı "-V" parametresi ile yapabilirsiniz. Lütfen yukarıdaki örnekleri "-V" parametresi ile deneyerek değişiklikleri gözlemleyiniz. Lütfen kendiniz bazı örnekler üreterek pratik yapmayı unutmayınız. Derslerimizde bütün komutları parametresi ile anlatamıyoruz, önemli ve en çok kullanılan komutlar ile parametrelerini anlatmaya çalışıyoruz.