كيفية استخدام الأمر stat على لينكس

محطة Linux على سطح مكتب بنمط Ubuntu.

فاطماواتي أحمد زينوري / Shutterstock.com



لينكس stat يوضح لك الأمر تفاصيل أكثر بكثير من ls يفعل. ألق نظرة خاطفة خلف الستارة باستخدام هذه الأداة المفيدة والتكوينية. سنوضح لك كيفية استخدامه.

القانون الأساسي يأخذك وراء الكواليس

ال ls الأمر رائع في ما يفعله - ويفعل الكثير - ولكن مع Linux ، يبدو أن هناك دائمًا طريقة للتعمق أكثر ومعرفة ما يكمن تحت السطح. وغالبًا ، لا يتعلق الأمر فقط برفع حافة السجادة. يمكنك تمزيق ألواح الأرضية ثم حفر حفرة. يمكنك تقشير لينكس مثل البصل.





10 أوامر لينكس أساسية للمبتدئين ذات صلة 10 أوامر لينكس أساسية للمبتدئين

ls سيعرض لك قدرًا كبيرًا من المعلومات حول أحد الملفات ، مثل الأذونات التي تم تعيينها عليه وحجمه ، و سواء كان ملفًا أو ارتباطًا رمزيًا . لعرض هذه المعلومات ls يقرأها من أ بنية نظام الملفات تسمى inode .

يحتوي كل ملف ودليل على inode. يحمل inode البيانات الوصفية حول الملف ، مثل كتل نظام الملفات التي يشغلها ، وطوابع التاريخ المرتبطة بالملف. إنود ​​هو مثل بطاقة مكتبة للملف. لكن ls سوف تظهر لك فقط بعض المعلومات. لرؤية كل شيء ، نحتاج إلى استخدام stat يأمر.



مثل ls ، stat القيادة لديها الكثير من الخيارات. هذا يجعلها مرشحًا رائعًا لاستخدام الأسماء المستعارة. بمجرد أن تكتشف مجموعة معينة من الخيارات التي تجعل stat تعطيك المخرجات التي تريدها ، لفها في اسم مستعار أو وظيفة قذيفة . هذا يجعله أكثر ملاءمة للاستخدام ، ولا يتعين عليك تذكر مجموعة غامضة من خيارات سطر الأوامر.

ذات صلة: كيفية استخدام الأمر ls لسرد الملفات والدلائل على نظام Linux

مقارنة سريعة

دعونا نستخدم ls لتزويدنا بقائمة طويلة (-l خيار) بأحجام ملفات يمكن قراءتها بواسطة الإنسان (-h خيار):



ana.c

الإعلانات

من اليسار إلى اليمين ، المعلومات التي توفرها ls هي:

  • الحرف الأول هو الواصلة - وهذا يخبرنا أن الملف عبارة عن ملف عادي وليس مقبسًا أو رابطًا رمزيًا أو نوعًا آخر من الكائنات.
  • المالك والمجموعة والأذونات الأخرى مدرجة في شكل ثماني .
  • عدد الروابط الصلبة التي تشير إلى هذا الملف. في هذه الحالة ، وفي معظم الحالات ، ستكون واحدة.
  • مالك الملف هو ديف.
  • مالك المجموعة هو ديف.
  • حجم الملف 802 بايت.
  • تم تعديل الملف آخر مرة يوم الجمعة 13 ديسمبر 2015.
  • اسم الملف هو stat.

دعونا نلقي نظرة مع stat :

stat

المعلومات التي نحصل عليها من stat يكون:

    ملف: اسم الملف. عادةً ما يكون هو نفسه الاسم الذي مررناه إلى rwx في سطر الأوامر ، ولكن يمكن أن يكون الأمر مختلفًا إذا نظرنا إلى ارتباط رمزي. بحجم: حجم الملف بالبايت. كتل: عدد كتل نظام الملفات التي يتطلبها الملف ، ليتم تخزينه على القرص الصلب. IO بلوك: حجم كتلة نظام الملفات. نوع الملف: نوع الكائن الذي تصفه البيانات الوصفية. الأنواع الأكثر شيوعًا هي الملفات والأدلة ، ولكن يمكن أيضًا أن تكون روابط أو مآخذ توصيل أو أنابيب مسماة. جهاز: رقم الجهاز في السداسي عشري وعشري. هذا هو معرف القرص الصلب الذي تم تخزين الملف عليه. إينود: رقم inode. وهذا هو ، رقم معرف هذا inode. يعمل رقم inode ورقم الجهاز معًا على تحديد الملف بشكل فريد. الروابط: يشير هذا الرقم إلى عدد الروابط الثابتة التي تشير إلى هذا الملف. كل رابط صلب له inode خاص به. هناك طريقة أخرى للتفكير في هذا الرقم وهي عدد inodes التي تشير إلى هذا الملف الواحد. في كل مرة يتم فيها إنشاء ارتباط صلب أو حذفه ، سيتم تعديل هذا الرقم لأعلى أو لأسفل. عندما يصل إلى الصفر ، يتم حذف الملف نفسه وإزالة inode. إذا كنت تستخدم relatime في دليل ما ، يمثل هذا الرقم عدد الملفات الموجودة في الدليل ، بما في ذلك ملف. إدخال للدليل الحالي و .. إدخال للدليل الأصل. وصول: تظهر أذونات الملف في شكلها الثماني والتقليدي -0500 (قراءة ، كتابة ، تنفيذ تنسيقات). Uid: اسم المستخدم واسم حساب المالك. يرشد: معرف المجموعة واسم حساب المالك. وصول: الطابع الزمني للوصول. ليس مباشرًا كما قد يبدو. تستخدم توزيعات Linux الحديثة مخططًا يسمى chmod ، والذي يحاول تحسين عمليات الكتابة على القرص الصلب المطلوبة لتحديث وقت الوصول . ببساطة ، يتم تحديث وقت الوصول إذا كان أقدم من الوقت المعدل. تعديل: الطابع الزمني للتعديل. هذا هو الوقت الذي يكون فيه الملف محتويات تم آخر تعديل. (لحسن الحظ ، تم تغيير محتويات هذا الملف آخر مرة منذ أربع سنوات حتى يومنا هذا.) يتغير: الطابع الزمني للتغيير. هذا هو وقت الملف صفات أو محتويات تم تغييرها آخر مرة. إذا قمت بتعديل ملف عن طريق تعيين أذونات ملف جديدة ، فسيتم تحديث الطابع الزمني للتغيير (لأن الملف صفات تغيرت) ، ولكن لن يتم تحديث الطابع الزمني المعدل (لأن الملف محتويات لم تتغير). ولادة: محجوز لإظهار تاريخ الإنشاء الأصلي للملف ، لكن هذا لم يتم تنفيذه في Linux.

فهم الطوابع الزمنية

الطوابع الزمنية حساسة للمنطقة الزمنية. ال ana.c في نهاية كل سطر يوضح أن هذا الملف تم إنشاؤه على جهاز كمبيوتر بتنسيق توقيت عالمي متناسق (UTC) المنطقة الزمنية التي تسبق المنطقة الزمنية للكمبيوتر الحالي بخمس ساعات. إذن هذا الكمبيوتر متأخر بخمس ساعات عن الكمبيوتر الذي أنشأ هذا الملف. في الواقع ، تم إنشاء الملف على كمبيوتر منطقة زمنية في المملكة المتحدة ، ونحن ننظر إليه هنا على جهاز كمبيوتر في المنطقة الزمنية الشرقية للولايات المتحدة.

يمكن أن يتسبب تعديل الطوابع الزمنية وتغييرها في حدوث ارتباك لأن أسماءهم تبدو بالنسبة للمبتدئين كما لو كانت تعني نفس الشيء.

دعونا نستخدم stat لتعديل أذونات الملف على ملف يسمى stat. سنجعله قابلاً للكتابة من قبل الجميع. لن يؤثر ذلك على محتويات الملف ، لكنه سيؤثر على سمات الملف.

stat

وبعد ذلك سنستخدم stat للنظر في الطوابع الزمنية:

stat

الإعلانات

تم تحديث الطابع الزمني للتغيير ، لكن لم يتم تحديث الطابع المعدل.

ال تم التعديل سيتم تحديث الطابع الزمني فقط إذا تم تغيير محتويات الملف. ال يتغير يتم تحديث الطابع الزمني لكل من تغييرات المحتوى وتغييرات السمات.

استخدام Stat مع ملفات متعددة

للحصول على تقرير الحالة على عدة ملفات في وقت واحد ، مرر أسماء الملفات إلى -f في سطر الأوامر:

stat

لاستخدام stat في مجموعة من الملفات ، استخدم مطابقة الأنماط. علامة الاستفهام؟ تمثل أي حرف مفرد ، وتمثل العلامة النجمية * أي سلسلة من الأحرف. يمكننا معرفة stat للإبلاغ عن أي ملف يسمى آنا بامتداد حرف واحد ، باستخدام هذا الأمر:

stat

استخدام الإحصائيات للإبلاغ عن أنظمة الملفات

stat يمكن الإبلاغ عن حالة أنظمة الملفات ، وكذلك حالة الملفات. ال -L يخبر خيار (نظام الملفات) code.c للإبلاغ عن نظام الملفات الذي يوجد عليه الملف. لاحظ أنه يمكننا أيضًا تمرير دليل مثل / إلى ana.c بدلا من اسم الملف.

-L

المعلومات code.c يعطينا هو:

    ملف: اسم الملف. بطاقة تعريف: معرف نظام الملفات بالتدوين الست عشري. ناملين: أقصى طول مسموح به لأسماء الملفات. نوع: نوع نظام الملفات. مقاس الكتله: مقدار البيانات المطلوب طلب قراءة طلبات الحصول على معدلات نقل بيانات مثلى. حجم الكتلة الأساسي: حجم كل كتلة نظام ملفات.

كتل:

    مجموع: العدد الإجمالي لجميع الكتل في نظام الملفات. حر: عدد الكتل المجانية في نظام الملفات. متوفرة: عدد الكتل المجانية المتاحة للمستخدمين العاديين (غير الجذر).

Inodes:

    مجموع: إجمالي عدد inodes في نظام الملفات. حر: عدد inodes المجانية في نظام الملفات.

إلغاء الإشارة إلى الروابط الرمزية

إذا كنت تستخدم -> في ملف يمثل ارتباطًا رمزيًا بالفعل ، سيتم إرسال تقرير على الرابط. إذا أردت ana.c للإبلاغ عن الملف الذي يشير إليه الارتباط ، استخدم -L (dereference) الخيار. الملف code.c ارتباط رمزي لـ stat . دعونا نلقي نظرة عليها بدون -t اختيار:

stat

الإعلانات

يظهر اسم الملف stat مشيرا إلى (stat) stat. حجم الملف 11 بايت فقط. لا توجد كتل مخصصة لتخزين هذا الارتباط. يتم سرد نوع الملف كارتباط رمزي.

من الواضح أننا لا ننظر إلى الملف الفعلي هنا. لنفعل ذلك مرة أخرى ونضيف rwx اختيار:

--format

هذا يعرض الآن تفاصيل الملف للملف المشار إليه بالارتباط الرمزي. لكن لاحظ أن اسم الملف لا يزال يُعطى كـ --printf. هذا هو اسم الارتباط وليس الملف الهدف. يحدث هذا لأن هذا هو الاسم الذي مررناه إلى --printf في سطر الأوامر.

تقرير مقتضب

ال (مقتضب) يتسبب الخيار لتقديم ملخص مكثف:

stat

لا توجد أدلة معينة. لفهمها - حتى تحفظ تسلسل الحقل - تحتاج إلى إحالة هذا الناتج إلى %n كامل انتاج.

تنسيقات الإخراج المخصصة

طريقة أفضل للحصول على مجموعة مختلفة من البيانات من %s هو استخدام تنسيق مخصص. توجد قائمة طويلة من الرموز المميزة تسمى تسلسلات التنسيق. كل من هؤلاء يمثل عنصر بيانات. حدد العناصر التي تريد تضمينها في الإخراج وإنشاء سلسلة تنسيق. عندما نتصل ب %F وتمرير سلسلة التنسيق إليه ، سيشمل الإخراج فقط عناصر البيانات التي طلبناها.

الإعلانات

هناك مجموعات مختلفة من تسلسلات التنسيق للملفات وأنظمة الملفات. قائمة الملفات هي:

    ٪ل: حقوق الوصول في ثماني. ٪ل: حقوق الوصول في شكل مقروء من قبل الإنسان ( ). ٪ ب: عدد الكتل المخصصة. ٪ ب: الحجم بالبايت لكل كتلة. ٪د: رقم الجهاز في النظام العشري. ٪د: رقم الجهاز بالنظام الست عشري. ٪F: الوضع الخام في عرافة. ٪Fنوع الملف. ٪ ز: هوية المالك للمجموعة. ٪ ز: اسم صاحب المجموعة. ٪ ح: عدد الروابط الصلبة. ٪أنا: رقم inode. ٪ م: نقطة الجبل. ٪ن: اسم الملف. ٪ن: اسم الملف المقتبس ، مع اسم ملف غير مرجعي إذا كان ارتباطًا رمزيًا. ٪أو: تلميح حجم نقل الإدخال / الإخراج الأمثل. ٪س: الحجم الإجمالي بالبايت. ٪ ر: نوع الجهاز الرئيسي بالنظام السداسي ، للملفات الخاصة بجهاز الأحرف / الكتلة. ٪ ت: نوع الجهاز الصغير بالنظام السداسي ، للملفات الخاصة بجهاز الأحرف / الكتلة. ٪ u: معرف المستخدم الخاص بالمالك. ٪ ش: اسم مستخدم المالك. ٪في: وقت ولادة الملف ، أو أن يقرأه الإنسان ، أو الواصلة - إذا لم يكن معروفًا. ٪في: وقت ميلاد الملف ، عدد الثواني منذ العهد ؛ 0 إذا كان غير معروف. ٪ x: وقت آخر وصول مقروء على الإنسان. ٪ X: وقت آخر وصول ، عدد الثواني منذ العهد. ٪ ص: وقت آخر تعديل للبيانات ، بحيث يستطيع الإنسان قراءته. ٪ ص: وقت آخر تعديل للبيانات ، عدد الثواني منذ العصر. ٪مع: وقت تغيير الوضع الأخير ، بحيث يمكن للبشر قراءته. ٪مع: وقت تغيير الوضع الأخير ، عدد الثواني منذ العصر.

العصر هو عصر يونكس ، الذي تم بتاريخ 1970-01-01 00:00:00 +0000 (التوقيت العالمي المنسق).

بالنسبة لأنظمة الملفات ، فإن تسلسلات التنسيق هي:

    ٪ل: عدد الكتل المجانية المتاحة للمستخدمين العاديين (غير الجذر). ٪ ب: إجمالي كتل البيانات في نظام الملفات. ٪ ج: إجمالي inodes في نظام الملفات. ٪د: عدد inodes المجانية في نظام الملفات. ٪F: عدد الكتل المجانية في نظام الملفات. ٪أنا: معرف نظام الملفات بالنظام الست عشري. ٪ لام: أقصى طول لأسماء الملفات. ٪ن: اسم الملف. ٪س: حجم الكتلة (الحجم الأمثل للكتابة). ٪س: حجم كتل نظام الملفات (لتعداد الكتل). ٪ ر: نوع نظام الملفات بالنظام الست عشري. ٪ ت: نوع نظام الملفات في شكل يمكن للبشر قراءته.

هناك خياران يقبلان سلاسل من تسلسلات التنسيق. هذه هي stat و --printf. الفرق بينهما هو stat يترجم تسلسلات الهروب على النمط C. مثل سطر جديد code.c وعلامة تبويب ana.? ، ولا يقوم تلقائيًا بإضافة حرف سطر جديد إلى ناتجه.

دعونا ننشئ سلسلة تنسيق ونمررها إلى =. تسلسلات التنسيق التي سيتم استخدامها هي --printf لاسم الملف ، stat لحجم الملف و

ls -lh ana.h
لنوع الملف. سنضيف
stat ana.h
تسلسل الهروب إلى نهاية السلسلة للتأكد من معالجة كل ملف في سطر جديد. تبدو سلسلة التنسيق الخاصة بنا كما يلي:

chmod +w ana.c

سنقوم بتمرير هذا إلى

stat ana.c
باستخدام
stat ana.h ana.o
اختيار. سنطلب
stat ana.?
للإبلاغ عن ملف يسمى
stat -f ana.c
ومجموعة من الملفات التي تطابق
stat code.c
. هذه هي الوصية الكاملة. لاحظ علامة يساوي
stat -L code.c
بين
stat -t ana.c
وسلسلة التنسيق:

'File %n is %s bytes, and is a %F
'

يتم سرد التقرير الخاص بكل ملف في سطر جديد ، وهو ما طلبناه. يتم توفير اسم الملف وحجم الملف ونوع الملف بالنسبة لنا.

الإعلانات

تتيح لك التنسيقات المخصصة الوصول إلى عناصر بيانات أكثر مما تم تضمينه في المعيار

stat --printf='File %n is %s bytes, and is a %F
' code.c ana/ana.?
انتاج.

مراقبة الحبوب الدقيقة

كما ترى ، هناك مجال هائل لاستخراج عناصر البيانات المعينة التي تهمك. ربما يمكنك أيضًا معرفة سبب اقتراحنا باستخدام الأسماء المستعارة للتعاويذ الأطول والأكثر تعقيدًا.

أوامر لينكس
الملفات قطران · الكهروضوئية · قط · تاك · chmod · سيطرة · فرق · سيد · مع · رجل · Pushd · popd · fsck · اختبار · فيما يليها · فد · باندوك · قرص مضغوط · المسار $ · awk · انضم · جي ق · يطوى · فريد · جورنال سي تي ال · ذيل · حالة · ls · fstab · رما - طرد - قذف · أقل · chgrp · تشاون · مراجعة · نظرة · سلاسل · نوع · إعادة تسمية · أزيز · بفك · تتعدد · أومونت · تثبيت · fdisk · مكفس · جمهورية مقدونيا · rmdir · رسينك · مدافع · gpg · نحن · نانو · مكدير · ال · ln · تصحيح · يتحول · rclone · أجاد · SRM
العمليات الاسم المستعار · شاشة · أعلى · لطيف · رائع · تقدم · دعامة · النظام · تمكس · chsh · التاريخ · في · حزمة · مجانا · التي · dmesg · usermod · ملاحظة · الجذور · xargs · tty · الخنصر · lsof · vmstat · نفذ الوقت · حائط · نعم · قتل · نايم · سودو · له · زمن · المجموعة · usermod · مجموعات · lshw · اغلق · اعادة التشغيل · توقف · انقطاع التيار الكهربائي · passwd · lscpu · كرونتاب · تاريخ · bg · fg
الشبكات netstat · بينغ · مسار التتبع · IP · ss · الذي هو · fail2ban · bmon · أنت · اصبع اليد · nmap · بروتوكول نقل الملفات · لفة · wget · من الذى · من أنا · في · iptables · ssh-كجن · ufw

ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين

اقرأ التالي صورة الملف الشخصي لـ Dave McKay ديف مكاي
استخدم Dave McKay أجهزة الكمبيوتر لأول مرة عندما كان الشريط الورقي المثقوب رائجًا ، وهو يقوم بالبرمجة منذ ذلك الحين. بعد أكثر من 30 عامًا في صناعة تكنولوجيا المعلومات ، أصبح الآن صحفيًا متخصصًا في مجال التكنولوجيا. خلال مسيرته المهنية ، عمل كمبرمج مستقل ، ومدير فريق تطوير برمجيات دولي ، ومدير مشروع خدمات تكنولوجيا المعلومات ، ومؤخراً كمسؤول حماية البيانات. تم نشر كتاباته على موقع howtogeek.com و cloudavvyit.com و itenterpriser.com و opensource.com. ديف هو مبشر لينكس ومدافع مفتوح المصدر.
اقرأ السيرة الذاتية الكاملة

مقالات مثيرة للاهتمام