الوقت(1)

الاسم
time - يُشغّل البرامج ويلخص استخدام موارد النظام

موجز

time
    [ -apqvV ] [ -f التنسيق ] [ -o الملف ]
    [ --append ] [ --verbose ] [ --quiet ] [ --portability ]
    [ --format=التنسيق ] [ --output=الملف ] [ --version ]
    [ --help ] الأمر [ المعطيات ]

الوصف
يُشغّل time البرنامج الأمر مع أي معطيات معطاة ARG.... وعندما ينتهي الأمر، يعرض time معلومات حول الموارد التي استخدمها الأمر (على مخرج الخطأ القياسي، بشكل مبدئي). إذا خرج الأمر بحالة غير صفرية، يعرض time رسالة تحذير وحالة الخروج.

يحدد time المعلومات التي سيتم عرضها حول الموارد المستخدمة من قبل الأمر من سلسلة التنسيق. إذا لم يُحدد تنسيق في سطر الأوامر، ولكن ضُبط متغير البيئة TIME، تُستخدم قيمته كتنسيق. خلاف ذلك، يُستخدم تنسيق مبدئي مدمج في time.

يجب أن تظهر خيارات time في سطر الأوامر قبل الأمر. أي شيء في سطر الأوامر بعد الأمر يُمرر كمعطيات إلى الأمر.

الخيارات

-o الملف، --output=الملف
    اكتب إحصائيات استخدام الموارد في الملف بدلاً من تدفق الخطأ القياسي. بشكل مبدئي، يستبدل هذا الملف، مما يؤدي إلى تدمير محتوياته السابقة. هذا الخيار مفيد لجمع المعلومات عن البرامج التفاعلية والبرامج التي تنتج مخرجات على تدفق الخطأ القياسي.

-a، --append
    ألحق معلومات استخدام الموارد بملف المخرجات بدلاً من استبداله. هذا الخيار مفيد فقط مع الخيار '-o' أو '--output'.

-f التنسيق، --format التنسيق
    استخدم التنسيق كسلسلة التنسيق التي تتحكم في مخرجات time. انظر أدناه لمزيد من المعلومات.

--help
    اطبع ملخصاً لخيارات سطر الأوامر واخرج.

-p، --portability
    استخدم سلسلة التنسيق التالية، للتوافق مع معيار POSIX 1003.2:
              real %e
              user %U
              sys %S

-v، --verbose
    استخدم التنسيق المفصل المدمج، والذي يعرض كل معلومة متاحة حول استخدام موارد البرنامج في سطر مستقل، مع وصف بالإنجليزية لمعناها.

--quiet
    لا تبلغ عن حالة البرنامج حتى لو كانت مختلفة عن الصفر.

-V، --version
    اطبع رقم إصدارة time واخرج.

تنسيق المخرجات
تتحكم سلسلة التنسيق التنسيق في محتويات مخرجات time. يمكن ضبط سلسلة التنسيق باستخدام الخيارات '-f' أو '--format' أو '-v' أو '--verbose' أو '-p' أو '--portability'. إذا لم يتم توفيرها، ولكن ضُبط متغير البيئة TIME، تُستخدم قيمته كسلسلة تنسيق. خلاف ذلك، يُستخدم تنسيق مبدئي مدمج. التنسيق المبدئي هو:
  %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
  %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

تتكون سلسلة التنسيق عادةً من 'محددات موارد' تتخللها نصوص عادية. تؤدي علامة النسبة المئوية ('%') في سلسلة التنسيق إلى تفسير المحرف التالي كمحدد مورد، وهو مشابه لمحارف التنسيق في دالة printf(3).

تبدأ الشرطة المائلة العكسية ('') 'هروب الشرطة المائلة العكسية'، والذي يُترجم إلى محرف طباعة واحد عند الإخراج. يخرج ' ' محرف جدولة، و ' يخرج سطراً جديداً، و '\' يخرج شرطة مائلة عكسية. الشرطة المائلة العكسية المتبوعة بأي محرف آخر تخرج علامة استفهام ('?') متبوعة بشرطة مائلة عكسية، للإشارة إلى إعطاء هروب غير صالح للشرطة المائلة العكسية.

تُنسخ النصوص الأخرى في سلسلة التنسيق حرفياً إلى المخرجات. يطبع time دائماً سطراً جديداً بعد طباعة معلومات استخدام الموارد، لذا عادةً لا تنتهي سلاسل التنسيق بمحرف سطر جديد (أو ').

هناك العديد من مواصفات الموارد. لا تُقاس جميع الموارد في جميع إصدارات Unix، لذا قد يبلغ عن بعض القيم كصفر. أي محرف يتبع علامة النسبة المئوية ولم يُدرج في الجدول أدناه يؤدي إلى إخراج علامة استفهام ('?') متبوعة بهذا المحرف، للإشارة إلى إعطاء محدد مورد غير صالح.

محددات الموارد، وهي مجموعة شاملة لتلك التي يتعرف عليها أمر 'time' المدمج في tcsh(1)، هي:
    %   محرف '%' حرفي.
    C   اسم الأمر ووسائط سطر الأوامر التي يتم توقيتها.
    D   متوسط حجم منطقة البيانات غير المشتركة للعملية، بالكيلوبايت.
    E   الوقت الحقيقي المنقضي (ساعة الحائط) الذي استخدمته العملية، بصيغة [ساعات:]دقائق:ثوانٍ.
    F   عدد أخطاء الصفحة الرئيسة، أو التي تتطلب إدخالاً/إخراجاً، التي حدثت أثناء تشغيل العملية. هذه هي الأخطاء التي هاجرت فيها الصفحة بالفعل خارج الذاكرة الرئيسة.
    I   عدد مدخلات نظام الملفات بواسطة العملية.
    K   متوسط إجمالي استخدام الذاكرة (بيانات+مكدس+نص) للعملية، بالكيلوبايت.
    M   أقصى حجم لمجموعة الإقامة للعملية خلال فترة حياتها، بالكيلوبايت.
    O   عدد مخرجات نظام الملفات بواسطة العملية.
    P   نسبة وحدة المعالجة المركزية التي حصلت عليها هذه المهمة. هذه مجرد أوقات المستخدم + النظام مقسومة على إجمالي وقت التشغيل. وتطبع أيضًا علامة نسبة مئوية.
    R   عدد أخطاء الصفحة الثانوية، أو القابلة للاسترداد. هذه هي الصفحات غير الصالحة (فتؤدي لخطأ) ولكن لم تُطالب بها صفحات افتراضية أخرى بعد. وبالتالي، لا تزال البيانات في الصفحة صالحة ولكن يجب تحديث جداول النظام.
    S   إجمالي عدد ثواني وحدة المعالجة المركزية التي استخدمها النظام نيابة عن العملية (في وضع النواة)، بالثواني.
    U   إجمالي عدد ثواني وحدة المعالجة المركزية التي استخدمتها العملية مباشرة (في وضع المستخدم)، بالثواني.
    W   عدد المرات التي أُخرجت فيها العملية من الذاكرة الرئيسة.
    X   متوسط كمية النص المشتركة في العملية، بالكيلوبايت.
    Z   حجم صفحة النظام، بالبايت. هذا ثابت لكل نظام، ولكنه يختلف بين الأنظمة.
    c   عدد المرات التي تم فيها تبديل سياق العملية قسرياً (بسبب انتهاء الشريحة الزمنية).
    e   الوقت الحقيقي المنقضي (ساعة الحائط) الذي استخدمته العملية، بالثواني.
    k   عدد الإشارات التي سُلّمت إلى العملية.
    p   متوسط حجم المكدس غير المشترك للعملية، بالكيلوبايت.
    r   عدد رسائل المقبس (socket) التي استلمتها العملية.
    s   عدد رسائل المقبس (socket) التي أرسلتها العملية.
    t   متوسط حجم مجموعة الإقامة للعملية، بالكيلوبايت.
    w   عدد المرات التي تم فيها تبديل سياق البرنامج طوعاً، على سبيل المثال أثناء انتظار اكتمال عملية إدخال/إخراج.
    x   حالة خروج الأمر.

أمثلة
لتشغيل الأمر `wc /etc/hosts` وعرض المعلومات المبدئية:
     time wc /etc/hosts

لتشغيل الأمر `ls -Fs` وعرض وقت المستخدم والنظام والإجمالي فقط:
     time -f "\t%E real,\t%U user,\t%S sys" ls -Fs

لتحرير الملف BORK وجعل `time` يلحق الوقت المنقضي وعدد الإشارات بملف 'log'، مع قراءة سلسلة التنسيق من متغير البيئة `TIME`:
     export TIME="\t%E,\t%k" # إذا كنت تستخدم bash أو ksh
     setenv TIME "\t%E,\t%k" # إذا كنت تستخدم csh أو tcsh
     time -a -o log emacs bork

يحتاج مستخدمو الـ صدفة bash إلى استخدام مسار صريح لتشغيل أمر time الخارجي وليس الإصدارة المدمجة في الصدفة. في الأنظمة التي يثبت فيها time في /usr/bin، سيصبح المثال الأول
     /usr/bin/time wc /etc/hosts

الدقة
لا يُجمع الوقت المنقضي بشكل ذري مع تنفيذ البرنامج؛ ونتيجة لذلك، في ظروف غريبة (إذا أُوقف أمر time أو أُخرج من الذاكرة في الفترة بين خروج البرنامج الذي يتم توقيته وحساب time للمدة التي استغرقها التشغيل)، قد يكون أكبر بكثير من وقت التنفيذ الفعلي.

عندما يكون وقت تشغيل الأمر قريباً جداً من الصفر، قد يُبلغ عن بعض القيم (مثل نسبة وحدة المعالجة المركزية المستخدمة) كصفر (وهو خطأ) أو علامة استفهام.

تُشتق معظم المعلومات التي يعرضها time من استدعاء النظام wait3(2). والأرقام تكون بدقة تلك التي يعيدها wait3(2). في الأنظمة التي لا تملك استدعاء wait3(2) يعيد معلومات الحالة، يُستخدم استدعاء النظام times(2) بدلاً منه. ومع ذلك، فإنه يوفر معلومات أقل بكثير من wait3(2)، لذا في تلك الأنظمة يبلغ time عن معظم الموارد كصفر.

يُزعم أن قيمتي '%I' و '%O' هما إدخال وإخراج 'حقيقي' فقط ولا تشمل تلك التي توفرها أجهزة التخزين المؤقت (الـ خبيئة). قد يكون معنى الإدخال/الإخراج 'الحقيقي' المبلغ عنه بواسطة '%I' و '%O' مشوشاً لمحطات العمل، خاصة تلك التي لا تملك أقراصاً.

التشخيص
يعود الأمر time عندما يخرج البرنامج، أو يتوقف، أو يُنهى بواسطة إشارة. إذا خرج البرنامج بشكل طبيعي، تكون قيمة عودة time هي قيمة عودة البرنامج الذي نفذه وقاسه. خلاف ذلك، تكون قيمة العودة هي 128 زائد رقم الإشارة التي تسببت في توقف البرنامج أو إنهائه.

المؤلف
كُتب time بواسطة David MacKenzie. أضيفت صفحة الدليل هذه بواسطة Dirk Eddelbuettel <edd@debian.org>، وصي دبيان جنو/لينكس، لاستخدامها في توزيعة دبيان جنو/لينكس ولكن يمكن بالطبع استخدامها من قبل الآخرين.

انظر أيضًا
tcsh(1)، printf(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.