ال date
يوجد الأمر في غلاف Bash، وهو الغلاف الافتراضي في معظم توزيعات Linux وحتى macOS. يوضح لك هذا البرنامج التعليمي كيفية إتقان date
على سطر الأوامر وكيف يمكنك استخدامه في نصوص shell للقيام بأكثر من مجرد طباعة الوقت.
كيفية رؤية التاريخ والوقت والوقت في محطة طرفية Linux
قم بتشغيل date
الأمر لعرض هذه المعلومات. يقوم بطباعة التاريخ والوقت الحاليين لمنطقتك الزمنية:
date
يبدو التنسيق الافتراضي غريبًا بعض الشيء. لماذا لا تتم طباعة السنة بعد الشهر واليوم، بدلاً من وضع علامة عليها في النهاية، خلف المنطقة الزمنية؟ لا تقلق: إذا كنت تريد التحكم في تنسيق الإخراج، date
يقدمها بسخاء. هناك أكثر من 40 خيارًا يمكنك تمريرها إلى date
لتوجيهه إلى تنسيق مخرجاته بدقة كما تريد.
لاستخدام أي من الخيارات اكتب date
، مسافة، علامة زائد +
، والخيار الذي يتضمن علامة النسبة المئوية الرائدة. %c
يؤدي خيار (البيانات والوقت بتنسيق محلي) إلى طباعة التاريخ والوقت بتنسيق طبيعي مرتبط بموقعك المحلي. يتم تعيين موقعك المحلي من خلال المعلومات الجغرافية والثقافية التي قدمتها عند تثبيت نظام التشغيل. يتحكم الموقع المحلي في أشياء مثل رمز العملة وأحجام الورق والمنطقة الزمنية والمعايير الثقافية الأخرى.
date +%c
ويبدو العام الآن في وضع أكثر طبيعية في الإخراج.
يمكنك تمرير عدة خيارات إلى date
مرة واحدة. تسمى سلسلة الخيارات سلسلة التنسيق. لرؤية اسم اليوم (%A
), يوم الشهر (%d
) واسم الشهر (%B
), استخدم هذا الأمر:
date +%A%d%B
لقد نجح الأمر، لكنه قبيح. لا توجد مشكلة، يمكننا تضمين المسافات طالما أننا نلف سلسلة التنسيق بالكامل بين علامتي اقتباس. لاحظ أن +
يخرج خارج علامات الاقتباس.
date +"%A %d %B"
يمكنك إضافة نص إلى سلسلة التنسيق، مثل هذا:
date +"Today is: %A %d %B"
التمرير لأعلى ولأسفل خلال date
صفحة الرجل سرعان ما يصبح البحث عن الخيار الذي تريده أمرًا مرهقًا. لقد قمنا بتقسيم الخيارات إلى مجموعات لمساعدتك في العثور على طريقك بينها بسهولة أكبر.
خيارات لعرض التاريخ والوقت
- %ج:يطبع التاريخ والوقت بالتنسيق المناسب لموقعك، بما في ذلك المنطقة الزمنية.
خيارات لعرض التاريخ
- %د:طباعة التاريخ بتنسيق mm/dd/yy.
- %ف:طباعة التاريخ بتنسيق yyyy-mm-dd.
- %x:طباعة التاريخ بالتنسيق المناسب لموقعك.
خيارات لعرض اليوم
- %أ:يطبع اسم اليوم، مختصرًا إلى الاثنين، الثلاثاء، الأربعاء، وما إلى ذلك.
- %أ:يطبع الاسم الكامل لليوم، الاثنين، الثلاثاء، الأربعاء، وما إلى ذلك.
- %و:يطبع رقم يوم الأسبوع، حيث الاثنين = 1، الثلاثاء = 2، الأربعاء = 3، وهكذا.
- %و:يطبع رقم يوم الأسبوع، حيث الأحد=0، الاثنين=1، الثلاثاء=2، وهكذا.
- %د:يطبع يوم الشهر، مع وضع صفر أساسي (01، 02 … 09) إذا لزم الأمر.
- %ه:يطبع يوم الشهر، مع ترك مسافة بادئة (‘1’، ‘2’ … ‘9’) إذا لزم الأمر. لاحظ أن علامات الاقتباس لا تُطبع.
- %ج:يطبع يوم السنة، مع ما يصل إلى صفرين رئيسيين، إذا لزم الأمر.
خيارات لعرض الأسبوع
- %و:يطبع رقم الأسبوع في السنة، مع اعتبار يوم الأحد هو اليوم الأول من الأسبوع. على سبيل المثال، الأسبوع الثالث من السنة، الأسبوع العشرين من السنة، وما إلى ذلك.
- %V:يطبع رقم أسبوع ISO للسنة، مع اعتبار يوم الاثنين هو اليوم الأول من الأسبوع.
- %و:رقم أسبوع السنة، باعتبار يوم الإثنين هو اليوم الأول من الأسبوع.
خيارات لعرض الشهر
- %ب أو %ح:يطبع اسم الشهر مختصرًا إلى Jan، Feb، Mar، وما إلى ذلك.
- %ب:يطبع الاسم الكامل للشهر، يناير، فبراير، مارس، وما إلى ذلك.
- %م:طباعة رقم الشهر، مع إضافة صفر في البداية إذا لزم الأمر 01، 02، 03 … 12.
خيارات لعرض السنة
- %ج:تطبع القرن بدون السنة. في عام 2019 ستطبع 20.
- %ي:تطبع السنة برقمين. في عام 2019 ستطبع 19.
- %ي:طباعة السنة بأربعة أرقام.
خيارات لعرض الوقت
- %ت:طباعة الوقت بالصيغة HH:MM:SS.
- %ر:يطبع الساعة والدقائق بالترتيب HH:MM بدون ثوانٍ، باستخدام ساعة 24 ساعة.
- %ر:طباعة الوقت وفقًا لموقعك، باستخدام ساعة مكونة من 12 ساعة ومؤشر صباحًا أو مساءً.
- %X:يطبع الوقت وفقًا لموقعك المحلي، باستخدام ساعة 24 ساعة. يُزعم. لاحظ أنه أثناء الاختبار، كان هذا الخيار يتصرف تمامًا كما هو الحال
%r
يقوم بذلك، كما هو موضح أدناه. على جهاز Linux مهيأ للإعدادات المحلية في المملكة المتحدة ومضبوط على توقيت جرينتش، قام بطباعة الوقت، باستخدام ساعة 24 ساعة بدون مؤشر AM أو PM، كما هو متوقع.
خيارات لعرض الساعة
- %ح:طباعة الساعة 00، 01، 02…23.
- ٪أنا:طباعة الساعة باستخدام نظام الـ 12 ساعة، 00، 01، 02 … 12، مع وضع صفر في البداية إذا لزم الأمر.
خيارات لعرض الدقائق
- %م: تطبع الدقيقة 01، 02، 03 … 59، مع وضع صفر في البداية إذا لزم الأمر.
خيارات لعرض الثواني
- %س:يطبع عدد الثواني منذ 1970-01-01 00:00:00، بداية عصر يونكس.
- %س:طباعة الثواني، 01، 02، 03 … 59، مع وضع صفر في البداية إذا لزم الأمر.
- %ن:طباعة النانو ثانية.
خيارات لعرض معلومات المنطقة الزمنية
- %ز:يطبع فارق التوقيت بين منطقتك الزمنية وتوقيت UTC.
- %:ز: تطبع فارق التوقيت بين منطقتك الزمنية وتوقيت UTC، مع وجود علامة : بين الساعات والدقائق. لاحظ
:
بين%
علامة وz
. - %::ز: تطبع فارق الوقت بين منطقتك الزمنية وتوقيت UTC، مع وجود علامة : بين الساعات والدقائق والثواني. لاحظ
::
بين%
علامة وz
. - %ز:طباعة اسم المنطقة الزمنية الأبجدي.
- %ص:طباعة مؤشر AM أو PM بأحرف كبيرة.
- %ص:يطبع مؤشر am أو pm بأحرف صغيرة. لاحظ الاختلاف بين هذين الخيارين. يمكن طباعة مؤشر am أو pm بأحرف صغيرة
p
يعطي إخراجًا بأحرف كبيرة، أحرف كبيرةP
يعطي إخراجًا بأحرف صغيرة. - %ت:طباعة علامة تبويب.
- %ن:طباعة سطر جديد.
خيارات لتعديل خيارات أخرى
يمكن إدراج هذه المعدلات بين %
وحرف الخيار للخيارات الأخرى لتعديل عرضها. على سبيل المثال، %-S
سيؤدي ذلك إلى إزالة الصفر الأولي لقيم الثواني المكونة من رقم واحد.
- –:تمنع الشرطة المفردة ملء الصفر على القيم المكونة من رقم واحد.
- _:تضيف الشرطة السفلية المفردة مسافات بادئة للقيم المكونة من رقم واحد.
- 0:يوفر أصفارًا بادئة للقيم المكونة من رقم واحد.
- ^:استخدم الأحرف الكبيرة، إذا كان ذلك ممكنًا (لا تحترم كل الخيارات هذا التعديل).
- #:استخدم عكس حالة الأحرف الافتراضية للخيار، إذا كان ذلك ممكنًا (لا تحترم كل الخيارات هذا التعديل).
حيلتان أخريان أنيقتان
للحصول على وقت التعديل الأخير لملف، استخدم -r
(خيار المرجع). لاحظ أن هذا يستخدم -
(شرطة) بدلا من %
علامة، ولا يتطلب الأمر +
جرب هذا الأمر في المجلد الرئيسي الخاص بك:
date -r .bashrc
يتيح لك إعداد TZ تغيير منطقتك الزمنية طوال مدة أمر واحد.
TZ=GMT date +%c
استخدام التاريخ في البرامج النصية
إن تمكين نص Bash shell من طباعة الوقت والتاريخ أمر سهل للغاية. قم بإنشاء ملف نصي بالمحتوى التالي، واحفظه باسم gd.sh
.
#!/bin/bashTODAY=$(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
اكتب الأمر التالي لتعيين أذونات التنفيذ وجعل البرنامج النصي قابلاً للتنفيذ.
chmod +x gd.sh
قم بتشغيل البرنامج النصي باستخدام هذا الأمر:
./gd.sh
يمكننا استخدام أمر التاريخ لتوفير طابع زمني. سيعمل البرنامج النصي الموضح على إنشاء دليل باسم الطابع الزمني. ثم سينسخ جميع ملفات النصوص من المجلد الحالي إليه. من خلال تشغيل هذا البرنامج النصي بشكل دوري، يمكننا التقاط لقطة من ملفات النصوص الخاصة بنا. بمرور الوقت، سننشئ سلسلة من المجلدات تحتوي على إصدارات مختلفة من ملفات النصوص الخاصة بنا.
لاحظ أن هذا ليس نظام نسخ احتياطي قوي، فهو لأغراض توضيحية فقط.
قم بإنشاء ملف نصي بالمحتوى التالي، ثم احفظه باسم snapshot.sh.
#!/bin/bash
date_stamp=$(date +"%F-%H-%M-%S")
mkdir "$date_stamp"
cp *.txt "$date_stamp"
echo "Text files copied to directory: "$date_stamp
اكتب الأمر التالي لتعيين أذونات التنفيذ وجعل البرنامج النصي قابلاً للتنفيذ.
chmod +x snapshot.sh
قم بتشغيل البرنامج النصي باستخدام هذا الأمر:
./snapshot.sh
ستلاحظ أنه تم إنشاء دليل. ويشير اسمه إلى التاريخ والوقت اللذين تم فيهما تنفيذ البرنامج النصي. ويوجد داخل هذا الدليل نسخ من ملفات النصوص.
مع قليل من التفكير والإبداع، حتى المتواضع date
يمكن استخدام الأمر في الاستخدام الإنتاجي.