'\" t .\" Title: script .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-05-18 .\" Manual: أوامر المستخدم .\" Source: util-linux 2.42.1 .\" Language: English .\" .TH "SCRIPT" "1" "2026-05-18" "util\-linux 2.42.1" "أوامر المستخدم" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "الاسم" script \- ينشئ نسخة مكتوبة لجلسة الطرفية .SH "موجز" .sp \fBscript\fP [خيارات] [\fIملف\fP] [\fB\-\-\fP \fIأمر\fP [\fIمعامل\fP.\|.\|.]] .SH "الوصف" .sp يقوم \fBscript\fP بعمل نسخة مكتوبة لكل شيء في جلسة الطرفية الخاصة بك. تُخزن بيانات الطرفية بصيغتها الخام في ملف السجل، وتُخزن معلومات التوقيت في ملف سجل هيكلي آخر (اختياري). ملف سجل التوقيت ضروري لإعادة تشغيل الجلسة لاحقاً بواسطة \fBscriptreplay\fP(1) ولتخزين معلومات إضافية عن الجلسة. .sp منذ الإصدارة 2.35، يدعم \fBscript\fP تدفقات متعددة ويسمح بتسجيل المدخلات والمخرجات في ملفات منفصلة أو كلها في ملف واحد. تدعم هذه الإصدارة أيضاً ملف توقيت جديد يسجل معلومات إضافية. يوفر الأمر \fBscriptreplay \-\-summary\fP حينها كافة المعلومات. .sp إذا أُعطي المعطى \fIملف\fP أو الخيار \fB\-\-log\-out\fP \fIملف\fP، يحفظ \fBscript\fP الحوار في هذا الـ \fIملف\fP. وإذا لم يُعطَ اسم ملف، يُحفظ الحوار في الملف \fItypescript\fP. .sp لاحظ أن تسجيل المدخلات باستخدام \fB\-\-log\-in\fP أو \fB\-\-log\-io\fP قد يسجل معلومات حساسة أمنياً لأن ملف السجل يحتوي على جميع مدخلات جلسة الطرفية (مثل كلمات السر) بغض النظر عن إعداد علامة صدى الطرفية. .SH "الخيارات" .sp أدناه، قد يتبع معطى الحجم \fIحجم\fP لواحق مضاعفة KiB (=1024)، و MiB (=1024*1024)، وهكذا لـ GiB و TiB و PiB و EiB و ZiB و YiB (اللاحقة "iB" اختيارية، مثلاً "K" لها نفس معنى "KiB")، أو اللواحق KB (=1000)، و MB (=1000*1000)، وهكذا لـ GB و TB و PB و EB و ZB و YB. .sp \fB\-a\fP، \fB\-\-append\fP .RS 4 ألحق المخرجات بالملف \fIملف\fP أو \fItypescript\fP، مع الاحتفاظ بالمحتويات السابقة. .RE .sp \fB\-c\fP، \fB\-\-command\fP \fIأمر\fP .RS 4 شغل الـ \fIأمر\fP بدلاً من صدفة تفاعلية. هذا يسهل على أي سكربت التقاط مخرجات برنامج يتصرف بشكل مختلف عندما لا يكون مخرجه القياسي (stdout) طرفية (tty). بدلاً من استخدام الخيار \fB\-c\fP، يمكن أيضاً تحديد الـ \fIأمر\fP بعد شرطة مزدوجة (\fB\-\-\fP). .RE .sp \fB\-E\fP، \fB\-\-echo\fP \fIمتى\fP .RS 4 يتحكم هذا الخيار في علامة \fBECHO\fP للطرف التابع للطرفية الوهمية الخاصة بالجلسة. الأنماط المتاحة هي \fIalways\fP، أو \fInever\fP، أو \fIauto\fP. .sp المبدئي هو \fIauto\fP \(em في هذه الحالة، يتم تفعيل \fBECHO\fP للطرفية الوهمية التابعة؛ فإذا كان المدخل القياسي الحالي طرفية، يتم تعطيل \fBECHO\fP له لمنع الصدى المزدوج؛ وإذا لم يكن المدخل القياسي الحالي طرفية (على سبيل المثال أنبوب: \fBecho date | script\fP) فإن إبقاء \fBECHO\fP مفعلاً للطرفية الوهمية التابعة يسمح بعرض بيانات المدخل القياسي على الشاشة أثناء تسجيلها في سجل الجلسة في آن واحد. .sp لاحظ أن نمط \*(Aqnever\*(Aq يؤثر على محتوى سجل مخرجات الجلسة، لأن مدخلات المستخدم لا تكرر في المخرجات. .RE .sp \fB\-e\fP، \fB\-\-return\fP .RS 4 أرجع حالة الخروج للعملية الابن. يستخدم نفس تنسيق إنهاء bash عند إنهاء الإشارة (أي أن حالة الخروج هي 128 + رقم الإشارة). تُخزن حالة الخروج للعملية الابن دائماً في ملف النسخة المكتوبة أيضاً. .RE .sp \fB\-f\fP، \fB\-\-flush\fP .RS 4 فرغ المخرجات بعد كل كتابة. هذا مفيد للتعاون عن بعد: يقوم شخص بـ \fBmkfifo\fP \fIfoo\fP؛ ثم \fBscript \-f\fP \fIfoo\fP، ويمكن لآخر الإشراف في الوقت الفعلي على ما يتم فعله باستخدام \fBcat\fP \fIfoo\fP. لاحظ أن التفريغ له تأثير على الأداء؛ من الممكن استخدام \fBSIGUSR1\fP لتفريغ السجلات عند الطلب. .RE .sp \fB\-\-force\fP .RS 4 اسمح لملف المخرجات المبدئي \fItypescript\fP بأن يكون رابطاً صلباً أو رمزياً. سيتبع الأمر الرابط الرمزي. .RE .sp \fB\-B\fP، \fB\-\-log\-io\fP \fIملف\fP .RS 4 سجل المدخلات والمخرجات في نفس الـ \fIملف\fP. لاحظ أن هذا الخيار لا يكون منطقياً إلا إذا حُدد \fB\-\-log\-timing\fP أيضاً، وإلا فسيكون من المستحيل فصل تدفقات المخرجات والمدخلات من الـ \fIملف\fP السجل. .RE .sp \fB\-I\fP، \fB\-\-log\-in\fP \fIملف\fP .RS 4 سجل المدخلات في الـ \fIملف\fP. تُعطل مخرجات السجل إذا حُدد \fB\-\-log\-in\fP فقط. .sp استخدم وظيفة التسجيل هذه بحذر لأنها تسجل كل المدخلات، بما في ذلك المدخلات عندما تكون علامة الصدى في الطرفية معطلة (على سبيل المثال، مدخلات كلمة السر). .RE .sp \fB\-O\fP، \fB\-\-log\-out\fP \fIملف\fP .RS 4 سجل المخرجات في الـ \fIملف\fP. المبدئي هو تسجيل المخرجات في الملف المسمى \fItypescript\fP إذا لم يُعطَ الخيار \fB\-\-log\-out\fP أو \fB\-\-log\-in\fP. تُعطل مخرجات السجل إذا حُدد \fB\-\-log\-in\fP فقط. .RE .sp \fB\-T\fP، \fB\-\-log\-timing\fP \fIملف\fP .RS 4 سجل معلومات التوقيت في الـ \fIملف\fP. تتوفر صيغتان لملف التوقيت حالياً. تُستخدم الصيغة الكلاسيكية عند تفعيل تسجيل تدفق واحد فقط (مدخلات أو مخرجات). تُستخدم صيغة التدفق المتعدد عند استخدام \fB\-\-log\-io\fP أو عند استخدام \fB\-\-log\-in\fP و \fB\-\-log\-out\fP معاً. راجع أيضاً \fB\-\-logging\-format\fP. .RE .sp \fB\-m\fP، \fB\-\-logging\-format\fP \fIتنسيق\fP .RS 4 فرض استخدام تنسيق سجل التوقيت \fIadvanced\fP أو \fIclassic\fP. التنسيق المبدئي هو classic لتسجيل المخرجات فقط، وتنسيق advanced عندما يُطلب تسجيل المدخلات والمخرجات معاً. .sp \fBClassic format\fP .RS 4 يحتوي سجل التوقيت على حقلين، يفصل بينهما مسافة. يشير الحقل الأول إلى مقدار الوقت المنقضي منذ المخرج السابق. ويشير الحقل الثاني إلى عدد المحارف التي أُخرجت هذه المرة. .RE .sp \fBAdvanced (multi\-stream) format\fP .RS 4 الحقل الأول هو معرف نوع الإدخال (\*(AqI\*(Aq لـ Input، و \*(AqO\*(Aq لـ Output، و \*(AqH\*(Aq لـ Header، و \*(AqS\*(Aq لـ Signal). الحقل الثاني هو مقدار الوقت المنقضي منذ الإدخال السابق، وبقية الإدخال هي بيانات خاصة بالنوع. .RE .RE .sp \fB\-o\fP، \fB\-\-output\-limit\fP \fIحجم\fP .RS 4 قصر حجم ملفات النص المكتوب والتوقيت على \fIحجم\fP وإيقاف العملية الابنة بعد تجاوز هذا الحجم. لا يشمل حجم الملف المحسوب رسائل البدء والانتهاء التي يضيفها أمر \fBscript\fP في بداية ونهاية مخرجات العملية الابنة. قد يكون ملف المخرجات الناتج أكبر من القيمة المحددة بسبب التخزين المؤقت. .RE .sp \fB\-q\fP، \fB\-\-quiet\fP .RS 4 وضع السكون (عدم كتابة رسائل البدء والانتهاء إلى المخرجات القياسية). .RE .sp \fB\-t\fP[\fIملف\fP]، \fB\-\-timing\fP[\fB=\fP\fIملف\fP] .RS 4 إخراج بيانات التوقيت إلى الخطأ القياسي، أو إلى \fIملف\fP عند تحديده. هذا الخيار مهجور لصالح \fB\-\-log\-timing\fP حيث يكون وسيط \fIملف\fP غير اختياري. .RE .sp \fB\-h\fP، \fB\-\-help\fP .RS 4 اعرض نص المساعدة ثم اخرج. .RE .sp \fB\-V\fP، \fB\-\-version\fP .RS 4 اعرض الإصدار واخرج. .RE .SH "إشارات" .sp عند استلام \fBSIGUSR1\fP، يقوم \fBscript\fP بتفريغ ملفات المخرجات فوراً. .SH "البيئة" .sp يستخدم \fBscript\fP متغير البيئة التالي: .sp \fBSHELL\fP .RS 4 إذا كان المتغير \fBSHELL\fP موجوداً، فستكون الـ صدفة المتفرعة بواسطة \fBscript\fP هي تلك الـ صدفة. إذا لم يُضبط \fBSHELL\fP، فستُفترض صدفة Bourne. (تضبط معظم الـ صدفات هذا المتغير آلياً). .RE .SH "ملاحظات" .sp ينتهي السكربت عند الخروج من الـ صدفة المتفرعة (\fIcontrol\-D\fP لصدفة Bourne (\fBsh\fP(1p))، و \fIexit\fP أو \fIlogout\fP أو \fIcontrol\-d\fP (إذا لم يُضبط \fIignoreeof\fP) لصدفة C\-shell، \fBcsh\fP(1)). .sp تنشئ بعض الأوامر التفاعلية، مثل \fBvi\fP(1)، بيانات غير مرغوب فيها في ملف النص المكتوب. يعمل \fBscript\fP بشكل أفضل مع الأوامر التي لا تتلاعب بالشاشة، حيث تهدف النتائج إلى محاكاة طرفية ورقية. .sp لا يُنصح بتشغيل \fBscript\fP في صدفات غير تفاعلية. الـ صدفة الداخلية لـ \fBscript\fP تفاعلية دائماً، وقد يؤدي ذلك إلى نتائج غير متوقعة. إذا استخدمت \fBscript\fP في ملف تهيئة الـ صدفة، فيجب عليك تجنب الدخول في حلقة مفرغة. يمكنك استخدام ملف \fB.profile\fP على سبيل المثال، والذي يُقرأ بواسطة صدفات الـ ولوج فقط: .sp .if n .RS 4 .nf .fam C if test \-t 0 ; then script exit fi .fam .fi .if n .RE .sp يجب عليك أيضاً تجنب استخدام \fBscript\fP في أنابيب الأوامر، حيث يمكن لـ \fBscript\fP قراءة مدخلات أكثر مما تتوقع. .SH "تاريخ" .sp ظهر أمر \fBscript\fP في النسخة 3.0BSD. .SH "العلل" .sp يضع \fBscript\fP \fIكل شيء\fP في ملف السجل، بما في ذلك تغذية السطور والمسافات للخلف. ليس هذا ما يتوقعه المستخدم المبتدئ. .sp صُمم \fBscript\fP أساساً لجلسات الطرفية التفاعلية. عندما لا يكون stdin طرفية (على سبيل المثال: \fBecho foo | script\fP)، فقد تتعلق الجلسة، لأن الـ صدفة التفاعلية داخل جلسة السكربت تفتقد علامة نهاية الملف EOF ولا يملك \fBscript\fP أي دليل على وقت إغلاق الجلسة. راجع قسم \fBNOTES\fP لمزيد من المعلومات. .SH "انظر أيضاً" .sp \fBcsh\fP(1) (لآلية \fIhistory\fP)، \fBscriptreplay\fP(1)، \fBscriptlive\fP(1) .SH "التبليغ عن الأخطاء" .sp لتقارير العِلل، استخدم \c .URL "https://github.com/util\-linux/util\-linux/issues" "مُتتبع المشكلات" "." .SH "التوفر" .sp الأمر \fBscript\fP جزء من حزمة util\-linux التي يمكن تنزيلها من \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "أرشيف نواة لينكس" "."