'\" t .\" Title: script .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-02 .\" Manual: User Commands .\" Source: util-linux 2.42.3 .\" Language: Persian .\" .TH "SCRIPT" "1" "2026-09-02" "util\-linux 2.42.3" "User Commands" .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 "نام (NAME)" script \- ضبط و ذخیره تمام تایپ‌ها و خروجی‌های نشست ترمینال .SH "خلاصه دستور (SYNOPSIS)" .sp \fBscript\fP [options] [\fIfile\fP] [\fB\-\-\fP \fIcommand\fP [\fIargument\fP.\|.\|.]] .SH "توضیحات (DESCRIPTION)" .sp دستور \fBscript\fP یک نسخهٔ متنی چاپی (typescript) از همه‌چیز در نشست ترمینال شما تهیه می‌کند. داده‌های ترمینال به شکل خام در پروندهٔ گزارش (log) ذخیره می‌شوند و اطلاعات مربوط به زمان‌بندی در یک پروندهٔ گزارش ساختاریافتهٔ دیگر (اختیاری) ذخیره می‌گردد. پروندهٔ گزارش زمان‌بندی برای بازپخش نشست در آینده توسط \fBscriptreplay\fP(1) و همچنین برای ذخیرهٔ اطلاعات بیشتر دربارهٔ نشست لازم است. .sp از نسخهٔ 2.35، \fBscript\fP از چندین جریان پشتیبانی می‌کند و امکان ثبت ورودی و خروجی را در پرونده‌های جداگانه یا همگی در یک پرونده فراهم می‌سازد. این نسخه همچنین از یک پروندهٔ زمان‌بندی جدید پشتیبانی می‌کند که اطلاعات بیشتری را ثبت می‌نماید. سپس دستور \fBscriptreplay \-\-summary\fP تمام این اطلاعات را ارائه می‌دهد. .sp اگر آرگومان \fIfile\fP یا گزینهٔ \fB\-\-log\-out\fP \fIfile\fP داده شود، \fBscript\fP مکالمه را در این \fIfile\fP ذخیره می‌کند. اگر نام پرونده‌ای داده نشود، مکالمه در پروندهٔ \fItypescript\fP ذخیره خواهد شد. .sp توجه داشته باشید که ثبت ورودی با استفاده از \fB\-\-log\-in\fP یا \fB\-\-log\-io\fP ممکن است اطلاعات حساس از نظر امنیتی را ثبت کند، زیرا پروندهٔ گزارش شامل تمام ورودی‌های نشست ترمینال (مانند گذرواژه‌ها) صرف‌نظر از تنظیم پرچم پژواک (echo) ترمینال است. .SH "گزینه‌ها (OPTIONS)" .sp در زیر، آرگومان \fIsize\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 الحاق خروجی به \fIfile\fP یا به \fItypescript\fP، با حفظ محتویات قبلی. .RE .sp \fB\-c\fP, \fB\-\-command\fP \fIcommand\fP .RS 4 اجرای \fIcommand\fP به جای یک پوستهٔ تعاملی. این ویژگی ضبط خروجی برنامه‌ای را که رفتار متفاوتی در زمان متصل نبودن stdout به tty دارد، برای یک اسکریپت آسان می‌کند. به جای استفاده از گزینهٔ \fB\-c\fP، دستور \fIcommand\fP را می‌توان پس از دو خط تیره (\fB\-\-\fP) نیز مشخص کرد. .RE .sp \fB\-E\fP, \fB\-\-echo\fP \fIwhen\fP .RS 4 این گزینه پرچم \fBECHO\fP را برای انتهای اسلیو (slave) شبه‌ترمینال نشست کنترل می‌کند. حالت‌های پشتیبانی‌شده عبارتند از \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 بازگرداندن وضعیت خروج (exit status) فرایند فرزند. از همان قالب خاتمهٔ bash هنگام پایان با سیگنال استفاده می‌کند (یعنی وضعیت خروج برابر است با ۱۲۸ + شماره سیگنال). وضعیت خروج فرایند فرزند همیشه در پروندهٔ typescript نیز ذخیره می‌شود. .RE .sp \fB\-f\fP, \fB\-\-flush\fP .RS 4 تخلیهٔ بافر (flush) خروجی پس از هر نوشتن. این قابلیت برای همکاری از راه دور بسیار مناسب است: یک نفر دستور \fBmkfifo\fP \fIfoo\fP; \fBscript \-f\fP \fIfoo\fP را اجرا می‌کند و شخص دیگر می‌تواند با استفاده از \fBcat\fP \fIfoo\fP بر آنچه در حال انجام است به صورت بلادرنگ نظارت کند. توجه داشته باشید که فلاش کردن بر کارایی تأثیر می‌گذارد؛ امکان استفاده از \fBSIGUSR1\fP برای تخلیهٔ بافر گزارش‌ها در صورت نیاز وجود دارد. .RE .sp \fB\-\-force\fP .RS 4 اجازه دادن به این‌که پروندهٔ خروجی پیش‌فرض \fItypescript\fP یک پیوند سخت (hard link) یا نمادین (symbolic link) باشد. این دستور پیوندهای نمادین را دنبال خواهد کرد. .RE .sp \fB\-B\fP, \fB\-\-log\-io\fP \fIfile\fP .RS 4 ثبت ورودی و خروجی در یک \fIfile\fP یکسان. توجه داشته باشید، این گزینه تنها زمانی معنادار است که \fB\-\-log\-timing\fP نیز مشخص شده باشد، در غیر این صورت جداسازی جریان‌های خروجی و ورودی از پروندهٔ گزارش \fIfile\fP غیرممکن خواهد بود. .RE .sp \fB\-I\fP, \fB\-\-log\-in\fP \fIfile\fP .RS 4 ثبت ورودی در \fIfile\fP. اگر تنها \fB\-\-log\-in\fP مشخص شده باشد، خروجی گزارش غیرفعال می‌شود. .sp از این قابلیت ثبت با احتیاط استفاده کنید زیرا همهٔ ورودی‌ها، از جمله ورودی‌هایی که در آن‌ها ترمینال پرچم echo را غیرفعال کرده است (مانند وارد کردن گذرواژه‌ها) را ثبت می‌کند. .RE .sp \fB\-O\fP, \fB\-\-log\-out\fP \fIfile\fP .RS 4 ثبت خروجی در \fIfile\fP. در صورتی که گزینه‌های \fB\-\-log\-out\fP یا \fB\-\-log\-in\fP داده نشوند، حالت پیش‌فرض ثبت خروجی در پرونده‌ای با نام \fItypescript\fP است. اگر تنها \fB\-\-log\-in\fP مشخص شده باشد، خروجی گزارش غیرفعال می‌شود. .RE .sp \fB\-T\fP, \fB\-\-log\-timing\fP \fIfile\fP .RS 4 ثبت اطلاعات زمان‌بندی در \fIfile\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 \fIformat\fP .RS 4 اجبار به استفاده از قالب گزارش زمان‌بندی \fIadvanced\fP (پیشرفته) یا \fIclassic\fP (کلاسیک). حالت پیش‌فرض برای ثبت تنها خروجی، قالب کلاسیک و در صورت درخواست ثبت ورودی و همچنین خروجی، قالب پیشرفته است. .sp \fBقالب کلاسیک (Classic format)\fP .RS 4 گزارش زمان‌بندی شامل دو فیلد است که با یک فاصله از هم جدا شده‌اند. فیلد اول نشان می‌دهد که چه مقدار زمان از خروجی قبلی سپری شده است. فیلد دوم نشان می‌دهد که این بار چند نویسه خروجی داده شده است. .RE .sp \fBقالب پیشرفته (چندجریانی) (Advanced (multi\-stream) format)\fP .RS 4 فیلد اول یک شناسهٔ نوع مدخل است (\*(AqI\*(Aq برای ورودی، \*(AqO\*(Aq برای خروجی، \*(AqH\*(Aq برای سرآیند، \*(AqS\*(Aq برای سیگنال). فیلد دوم نشان می‌دهد که چه مقدار زمان از مدخل قبلی گذشته است و بقیهٔ مدخل، داده‌های مختص آن نوع است. .RE .RE .sp \fB\-o\fP, \fB\-\-output\-limit\fP \fIsize\fP .RS 4 محدود کردن اندازهٔ پرونده‌های typescript و زمان‌بندی به \fIsize\fP و متوقف کردن فرایند فرزند پس از فراتر رفتن از این اندازه. اندازهٔ محاسبه‌شدهٔ پرونده شامل پیام‌های شروع و پایان که دستور \fBscript\fP به خروجی فرایند فرزند اضافه می‌کند، نمی‌شود. به دلیل بافر شدن، پروندهٔ خروجی نهایی ممکن است بزرگ‌تر از مقدار مشخص‌شده باشد. .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 حالت بی‌صدا (پیام‌های شروع و پایان را در خروجی استاندارد نمی‌نویسد). .RE .sp \fB\-t\fP[\fIfile\fP], \fB\-\-timing\fP[\fB=\fP\fIfile\fP] .RS 4 ارسال داده‌های زمان‌بندی به خطای استاندارد، یا در صورت ارائه، به \fIfile\fP. این گزینه منسوخ شده و گزینهٔ \fB\-\-log\-timing\fP که در آن آرگومان \fIfile\fP اختیاری نیست، به جای آن ترجیح داده می‌شود. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 نمایش متن راهنما و خروج. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 نمایش نسخه و خروج. .RE .SH "سیگنال‌ها (SIGNALS)" .sp به محض دریافت \fBSIGUSR1\fP، دستور \fBscript\fP بلافاصله بافر پرونده‌های خروجی را تخلیه می‌کند. .SH "محیط (ENVIRONMENT)" .sp متغیر محیطی زیر توسط \fBscript\fP استفاده می‌شود: .sp \fBSHELL\fP .RS 4 اگر متغیر \fBSHELL\fP وجود داشته باشد، پوسته‌ای که توسط \fBscript\fP منشعب (fork) می‌شود همان پوسته خواهد بود. اگر \fBSHELL\fP تنظیم نشده باشد، پوستهٔ Bourne فرض می‌شود. (بیشتر پوسته‌ها این متغیر را به طور خودکار تنظیم می‌کنند). .RE .SH "نکات (NOTES)" .sp اجرای اسکریپت زمانی پایان می‌یابد که پوستهٔ منشعب‌شده خارج شود (\fIcontrol\-D\fP برای پوستهٔ Bourne (\fBsh\fP(1p))، و \fIexit\fP، \fIlogout\fP یا \fIcontrol\-d\fP (اگر \fIignoreeof\fP تنظیم نشده باشد) برای پوستهٔ C، یعنی \fBcsh\fP(1)). .sp برخی دستورات تعاملی مانند \fBvi\fP(1)، داده‌های زاید در پروندهٔ typescript ایجاد می‌کنند. \fBscript\fP با دستوراتی که صفحه را دستکاری نمی‌کنند بهتر کار می‌کند، نتایج به گونه‌ای در نظر گرفته شده‌اند که یک ترمینال نسخهٔ چاپی سخت‌افزاری (hardcopy) را شبیه‌سازی کنند. .sp اجرای \fBscript\fP در پوسته‌های غیرتعاملی توصیه نمی‌شود. پوستهٔ داخلی \fBscript\fP همیشه تعاملی است، و این می‌تواند منجر به نتایج غیرمنتظره شود. اگر از \fBscript\fP در پروندهٔ مقداردهی اولیهٔ پوسته استفاده می‌کنید، باید از افتادن در حلقهٔ بی‌نهایت خودداری نمایید. به عنوان مثال می‌توانید از پروندهٔ \fB.profile\fP استفاده کنید که فقط توسط پوسته‌های ورود (login shells) خوانده می‌شود: .sp .if n .RS 4 .nf .fam C if test \-t 0 ; then script exit fi .fam .fi .if n .RE .sp همچنین باید از استفاده از \fBscript\fP در لوله‌های دستورات (command pipes) خودداری کنید، زیرا \fBscript\fP ممکن است ورودی بیشتری از آنچه انتظار دارید بخواند. .SH "تاریخچه (HISTORY)" .sp دستور \fBscript\fP در 3.0BSD پدیدار شد. .SH "اشکالات (BUGS)" .sp دستور \fBscript\fP \fIهمه‌چیز\fP را در پروندهٔ گزارش قرار می‌دهد، از جمله خط‌های جدید (linefeed) و نویسه‌های پس‌بر (backspace). این چیزی نیست که یک کاربر تازه‌کار انتظار دارد. .sp دستور \fBscript\fP عمدتاً برای نشست‌های تعاملی ترمینال طراحی شده است. هنگامی که stdin یک ترمینال نباشد (برای مثال: \fBecho foo | script\fP)، نشست می‌تواند متوقف (hang) شود، زیرا پوستهٔ تعاملی درون نشست اسکریپت انتهای پرونده (EOF) را دریافت نمی‌کند و \fBscript\fP اطلاعی از زمان بستن نشست ندارد. برای اطلاعات بیشتر بخش \fBنکات (NOTES)\fP را ببینید. .SH "همچنین ببینید (SEE ALSO)" .sp \fBcsh\fP(1) (برای سازوکار \fIhistory\fP)، \fBscriptreplay\fP(1), \fBscriptlive\fP(1) .SH "گزارش باگ‌ها (REPORTING BUGS)" .sp برای گزارش باگ‌ها، از \c .URL "https://github.com/util\-linux/util\-linux/issues" "ردیاب مشکلات" "." .SH "دسترسی (AVAILABILITY)" .sp دستور \fBscript\fP بخشی از بستهٔ util\-linux است که می‌توان آن را از \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux" "بایگانی هسته لینوکس" "."