Linux Terminalinde Tarih ve Saati Görüntüleme (ve Bash Komut Dosyalarında Kullanma)

Fatmawati Achmad Zaenuri/Shutterstock.com

date komutu, çoğu Linux dağıtımında ve hatta macOS'taki varsayılan kabuk olan Bash kabuğunda bulunur. Bu öğretici, komut satırında date nasıl sıralanacağını ve sadece saati yazdırmaktan daha fazlasını yapmak için kabuk komut dosyalarında nasıl kullanabileceğinizi gösterir.

Bu bilgiyi görmek için date komutunu çalıştırın. Saat diliminiz için geçerli tarih ve saati yazdırır:

date

Varsayılan biçimlendirme biraz saçma görünüyor. Yıl sonunda neden etiketlenmek yerine, ayın ve günün sonunda basılmıyor? Korkma: İstediğiniz çıktının formatı üzerinde kontrol ediyorsa, date onu maça olarak verir. Çıktısını tam istediğiniz gibi biçimlendirmesini istemek için date kadar geçebileceğiniz 40'tan fazla seçenek vardır.

Seçenek türlerinden herhangi birini kullanmak için date , boşluk, artı işareti + ve baştaki yüzde işaretini içeren seçeneği kullanın. %c (yerel formattaki veri ve saat) seçeneği, tarih ve saatin yerel ayarınızla ilişkilendirilen normalleştirilmiş formatta yazdırılmasına neden olur. Yerel ayarınız, işletim sisteminizi kurduğunuzda verdiğiniz coğrafi ve kültürel bilgiler ile belirlenir. Yerel ayar, para birimi simgesi, kağıt boyutları, saat dilimi ve diğer kültürel normlar gibi şeyleri yönetir.

date +%c

Yıl şimdi çıktıda daha doğal bir konumda görünüyor.

Bir kerede date birkaç seçenek iletebilirsiniz. Bir seçenekler dizisine format dizesi denir. Günün adını ( %A ), ayın gününü ( %d ) ve ayın adını ( %B ) görmek için bu komutu kullanın:

date +%A%d%B

İşe yaradı ama çirkin. Hiç sorun değil, tüm biçim dizesini tırnak işaretleri içine aldığımız sürece boşluklar ekleyebiliriz. + İşaretinin tırnak işaretleri dışına çıktığını unutmayın.

date +”%A %d %B”

Bunun gibi biçim dizgisine metin ekleyebilirsiniz:

date +”Today is: %A %d %B”

Yakında istediğiniz seçeneği arayan date man sayfasında yukarı ve aşağı kaydırma, yorucu hale gelir. Seçenekleri daha kolay bulmalarını sağlamak için seçenekleri gruplara ayırdık.

Tarih ve Saati Gösterme Seçenekleri

  • % c : Saat dilimi de dahil olmak üzere tarih ve saati yerel ayarınıza göre yazdırır.

Tarihi Gösterme Seçenekleri

  • % D : Tarihi mm / gg / yy biçiminde yazdırır.
  • % F : Tarihi yyyy-aa-gg formatında yazdırır.
  • % x : Tarihi, yerel ayarınız için biçiminde yazdırır.

Günü Görüntüleme Seçenekleri

  • % a : Günün adını Pzt, Sal, Çar vb. ile kısaltılır.
  • % A : Günün tam adını, Pazartesi Salı, Çarşamba vb.
  • % u : Haftanın gününü, Pazartesi = 1, Salı = 2, Çarşamba = 3 vb.
  • % w : Haftanın günü sayısını yazdırır; burada Pazar = 0, Pazartesi = 1, Salı = 2, vb.
  • % d : Gerekirse ayın gününü, baştaki sıfırla (01, 02… 09) yazdırır.
  • % e : Gerekirse ayın gününü ve satır aralığı ('1', '2'… '9') yazdırır. Kesme işaretlerinin yazdırılmadığını unutmayın.
  • % j : Gerekirse, en fazla iki önde gelen sıfırla yılın gününü yazdırır.

Haftayı Gösterme Seçenekleri

  • % U : Pazar haftanın ilk günü olarak kabul edilirse, yılın hafta sayısını yazdırır. Örneğin, yılın üçüncü haftası, yılın yirminci haftası, vb.
  • % V : Pazartesi haftanın ilk günü olarak kabul edilirse yılın ISO haftası sayısını yazdırır.
  • % W : Pazartesi haftanın ilk günü olarak kabul edilen yılın hafta sayısı.

Ayı Gösterme Seçenekleri

  • % b veya % h : Ocak, Şub, Mar, vb. kısaltılmış ayın adını yazdırır.
  • % B : ayın, Ocak, Şubat, Mart, vb. Tam adını yazdırır.
  • % m : Gerekirse 01, 02, 03… 12 olması durumunda, ayın sayısını yazdırır.

Yılı Gösterme Seçenekleri

  • % C : Yüzyılı yıl olmadan yazdırır. 2019 yılında 20 yazdırırdı.
  • % y : Yılı iki basamak olarak yazdırır. 2019 yılında 19 yazdıracak.
  • % Y : Yılı dört basamak olarak yazdırır.

Saati Gösterme Seçenekleri

  • % T : Saati HH: MM: SS olarak yazdırır.
  • % R : Saati ve dakikayı 24 saatlik saati kullanarak saniye olmadan HH: MM olarak yazdırır.
  • % r : Saati, 12 saatlik saati ve am veya pm göstergesini kullanarak yerel ayarınıza göre yazdırır.
  • % X : Saati 24 saat kullanarak yerel ayarlarınıza göre yazdırır. İddiaya göre. Test sırasında bu seçeneğin aşağıda gösterildiği gibi tam olarak %r gibi davrandığını unutmayın. İngiltere yerel ayarı için yapılandırılmış ve GMT'ye ayarlanmış bir Linux makinesinde, beklendiği gibi, 24 saatlik saati AM veya PM göstergesiz olarak kullanarak yazdırdı.

Saati Gösterme Seçenekleri

  • % H : 00, 01, 02… 23 saatlerini yazdırır.
  • % I : Gerekirse, baştaki sıfırla, 00, 01, 02… 12, 12 saatlik saati kullanarak saati yazdırır.

Dakikaları Görüntüleme Seçenekleri

  • % M : dakikayı, 01, 02, 03… 59, gerekirse bir sıfırla basar.

Saniye Görüntüleme Seçenekleri

  • % s : Unix Epoch'un başlangıcından itibaren 1970-01-01 00:00:00 saatleri arasında geçen saniye sayısını yazdırır.
  • % S : Gerekirse, başında sıfır olan saniyeleri, 01, 02, 03… 59 yazdırır.
  • % N : Nanosaniye'yi yazdırır.

Saat Dilimi Bilgilerini Görüntüleme Seçenekleri

  • % z : Saat diliminiz ve UTC arasındaki zaman farkını yazdırır.
  • %: z : Saat diliminizle UTC arasındaki saat farkını, a ile saat ve dakika arasında yazdırır. Not : % işaretiyle z .
  • % :: z : Saat diliminizle UTC arasındaki saat farkını, a ile saat, dakika ve saniye arasında yazdırır. % İşaretiyle z arasındaki :: z .
  • % Z : Alfabetik zaman dilimi adını yazdırır.

Biçimlendirme İle İlgili Seçenekler

  • % p : AM veya PM göstergesini büyük harf olarak yazdırır.
  • % P : Am veya pm göstergesini küçük harfle yazdırır. Bu iki seçenek ile ilginçliğe dikkat edin. Küçük harf p büyük harf çıktı verir, büyük harf P küçük harf çıktı verir.
  • % t : Bir sekme yazdırır.
  • % n : Yeni bir satır yazdırır.

Diğer Seçenekleri Değiştirme Seçenekleri

Bu değiştiriciler, ekranlarını değiştirmek için % ile diğer seçeneklerin seçenek harfleri arasına eklenebilir. Örneğin, %-S , tek basamaklı saniye değerleri için baştaki sıfırı kaldırır.

  • : Tek bir kısa çizgi, tek basamaklı değerlerde sıfır dolguyu önler.
  • _ : tek bir alt çizgi, tek basamaklı değerler için baştaki boşluklar ekler.
  • 0 : Tek basamaklı değerler için baştaki sıfırları sağlar.
  • ^ : Mümkünse büyük harf kullanır (tüm seçenekler bu değiştiriciye saygı göstermez).
  • # : Mümkünse, seçenek için varsayılan durumun tersini kullanın (tüm seçenekler bu değiştiriciye saygı göstermez).

İki daha temiz numaralar

Bir dosyanın son değişiklik zamanını almak için -r (reference) seçeneğini kullanın. Bunun % işareti yerine a - (kısa çizgi) kullandığını ve + işareti gerektirmediğini unutmayın. Bu komutu giriş klasörünüzde deneyin:

date -r .bashrc

TZ ayarı, saat diliminizi tek bir komut süresince değiştirmenize olanak sağlar.

TZ=GMT date +%c

Komut Dosyalarında Tarih Kullanımı

Bash kabuk betiğinin saat ve tarihi yazdırmasını sağlamak önemsizdir. Aşağıdaki içeriğe sahip bir metin dosyası oluşturun ve gd.sh olarak gd.sh .

#!/bin/bash

TODAY=$(date +”Today is %A, %d of %B”)
TIMENOW=$(date +”The local time is %r”)
TIME_UK=$(TZ=BST date +”The time in the UK is %r”)

echo $TODAY
echo $TIMENOW
echo $TIME_UK

Yürütme izinlerini ayarlamak ve komut dosyasını çalıştırılabilir hale getirmek için aşağıdaki komutu yazın.

chmod +x gd.sh

Komut dosyasını şu komutla çalıştırın:

./gd.sh

Bir zaman damgası sağlamak için date komutunu kullanabiliriz. Gösterilen komut dosyası, adı olarak zaman damgasını taşıyan bir dizin oluşturur. Ardından tüm metin dosyalarını geçerli klasörden içine kopyalar. Bu betiği periyodik olarak çalıştırarak, metin dosyalarımızın anlık görüntüsünü alabiliriz. Zamanla, içindeki metin dosyalarımızın farklı sürümlerini içeren bir dizi klasör oluşturacağız.

Bunun sağlam bir yedekleme sistemi olmadığını, sadece açıklama amaçlı olduğunu unutmayın.

Aşağıdaki içeriğe sahip bir metin dosyası oluşturun ve onu snapshot.sh. olarak kaydedin snapshot.sh.

#!/bin/bash

# obtain the date and time
date_stamp=$(date +”%F-%H-%M-%S”)

# make a directory with that name
mkdir “$date_stamp”

# copy the files from the current folder into it
cp *.txt “$date_stamp”

# all done, report back and exit
echo “Text files copied to directory: “$date_stamp

Yürütme izinlerini ayarlamak ve komut dosyasını çalıştırılabilir hale getirmek için aşağıdaki komutu yazın.

chmod +x snapshot.sh

Komut dosyasını şu komutla çalıştırın:

./snapshot.sh

Bir dizinin oluşturulduğunu göreceksiniz. Adı, komut dosyasının çalıştırıldığı tarih ve saattir. Bu dizinde metin dosyalarının kopyaları bulunur.

Biraz düşünce ve yaratıcılık göz önüne alındığında, mütevazi date komutu bile verimli bir şekilde kullanılabilir.