asciinema-record(1) General Commands Manual asciinema-record(1)

asciinema-record - ضبط یک نشست ترمینال

asciinema record [-f|--output-format] [-c|--command] [-I|--capture-input] [--capture-env] [-a|--append] [--overwrite] [-t|--title] [-i|--idle-time-limit] [--headless] [--window-size] [--return] [--log-file] [-q|--quiet] [-h|--help] <FILE>

ضبط یک نشست ترمینال در یک پرونده.

تمامی خروجی‌های ترمینال و به صورت اختیاری ورودی‌های صفحه‌کلید را ضبط کرده و آن را برای بازپخش در آینده ذخیره می‌کند. از قالب‌های خروجی متنوع، محدودسازی زمان بیکاری و گزینه‌های سفارشی‌سازی نشست پشتیبانی می‌کند.

برای پایان دادن به نشست ضبط، کلیدهای <ctrl+d> را فشار دهید یا عبارت 'exit' را تایپ کنید. برای توقف موقت یا از سرگیری ضبط نشست، کلیدهای <ctrl+\> را فشار دهید.

در طول نشست، متغیر محیطی ASCIINEMA_SESSION با یک شناسه یکتای نشست مقداردهی می‌شود.

تعیین قالب پرونده خروجی. مقدار پیش‌فرض asciicast-v3 است. اگر پسوند مسیر پرونده .txt باشد، قالب txt به صورت خودکار انتخاب خواهد شد، مگر اینکه --output-format به صورت صریح مشخص شده باشد.

مقادیر ممکن:

  • asciicast-v3: قالب نشست با امکانات کامل، به همراه زمان‌بندی و فراداده (نسل فعلی) - https://docs.asciinema.org/manual/asciicast/v3
  • asciicast-v2: قالب نشست با امکانات کامل، به همراه زمان‌بندی و فراداده (نسل قبلی) - https://docs.asciinema.org/manual/asciicast/v2
  • raw: خروجی خام ترمینال، شامل توالی‌های کنترلی، بدون زمان‌بندی و فراداده
  • txt: متن ساده بدون رنگ‌ها یا توالی‌های کنترلی، خوانا برای انسان
مشخص کردن دستور برای اجرا در نشست ضبط. در صورت عدم تعیین، asciinema از پوسته پیش‌فرض شما در متغیر محیطی $SHELL استفاده خواهد کرد. این دستور می‌تواند هر دستوری به همراه آرگومان‌هایش باشد، به عنوان مثال: --command "python script.py" یا --command "bash -l". همچنین از طریق گزینه session.command در پرونده پیکربندی قابل تنظیم است.
فعال‌سازی ضبط ورودی‌های صفحه‌کلید علاوه بر خروجی ترمینال. در صورت فعال بودن، هم آنچه تایپ می‌کنید و هم آنچه روی صفحه نمایش داده می‌شود ضبط خواهد شد. توجه داشته باشید که ورودی‌های حساس مانند گذرواژه‌ها نیز در صورت فعال بودن این گزینه ضبط خواهند شد. همچنین از طریق گزینه session.capture_input در پرونده پیکربندی قابل تنظیم است.
مشخص کردن متغیرهای محیطی که باید ضبط شده و در فراداده ضبط گنجانده شوند. این کار به حفظ زمینه و شرایط ضبط (مثلاً برای حسابرسی و بازبینی) کمک می‌کند. فهرستی از نام‌های متغیرها را که با کاما از هم جدا شده‌اند ارائه دهید، به عنوان مثال: --rec-env "USER,SHELL,TERM". در صورت عدم تعیین، به‌طور پیش‌فرض تنها متغیر SHELL ضبط می‌شود. همچنین از طریق گزینه session.capture_env در پرونده پیکربندی قابل تنظیم است.
الحاق نشست جدید به یک پرونده ضبط موجود به جای ایجاد پرونده‌ای تازه. این ویژگی به شما امکان می‌دهد یک نشست ضبط قبلی را ادامه دهید. زمان‌بندی به گونه‌ای تنظیم خواهد شد که تداوم از نقطه‌ای که ضبط قبلی به پایان رسیده حفظ شود. نمی‌تواند همراه با --overwrite استفاده شود.
بازنویسی پرونده خروجی در صورتی که از قبل وجود داشته باشد. به صورت پیش‌فرض، asciinema برای جلوگیری از دست رفتن تصادفی داده‌ها از بازنویسی پرونده‌های موجود خودداری می‌کند. نمی‌تواند همراه با --append استفاده شود.
تنظیم عنوانی که در فراداده ضبط ذخیره می‌شود. این عنوان ممکن است توسط پخش‌کننده‌ها نمایش داده شود و برای سازمان‌دهی و شناسایی ضبط‌ها مفید است. به عنوان مثال: --title "Installing Podman on Ubuntu".
محدود کردن حداکثر زمان بیکاری ضبط‌شده بین رویدادهای ترمینال به تعداد ثانیه‌های مشخص‌شده. مکث‌های طولانی (مانند زمانی که از پای ترمینال کنار می‌روید) در ضبط به این مدت زمان محدود خواهند شد تا پخش ویدیو روان‌تر و مناسب‌تر شود. به عنوان مثال، --idle-time-limit 2.0 تضمین می‌کند که هیچ مکثی طولانی‌تر از ۲ ثانیه در ضبط ظاهر نشود. توجه داشته باشید که این گزینه اطلاعات زمان‌بندی اصلی (ضبط‌شده) را تغییر نمی‌دهد و در عوض، مقدار محدودیت زمان بیکاری را در فراداده درج می‌کند که هنگام پخش توسط پخش‌کننده‌های نشست تفسیر می‌شود. این موضوع امکان تنظیم محدودیت را پس از ضبط نیز فراهم می‌کند. همچنین از طریق گزینه session.idle_time_limit در پرونده پیکربندی قابل تنظیم است.
ضبط در حالت بدون سر (Headless) بدون استفاده از ترمینال برای ورودی/خروجی. این گزینه برای ضبط‌های خودکار یا اسکریپت‌شده که نمی‌خواهید asciinema در نشست فعلی ترمینال تداخل ایجاد کند مفید است. دستور ضبط‌شده همچنان به صورت عادی اجرا می‌شود، اما asciinema خروجی آن را در ترمینال شما نمایش نخواهد داد. حالت Headless هنگام اجرا در محیطی که ترمینال در دسترس نیست به صورت خودکار فعال می‌شود.
بازنویسی و تعیین اندازه پنجره ترمینال مورد استفاده برای نشست ضبط. ابعاد را به صورت COLSxROWS مشخص کنید (مانند 80x24 برای ۸۰ ستون در ۲۴ سطر). می‌توانید فقط ستون‌ها (80x) یا فقط سطرها (x24) را برای بازنویسی تنها یک بعد مشخص کنید. این گزینه برای اطمینان از یکدست بودن ابعاد ضبط بدون توجه به اندازه فعلی ترمینال شما کاربرد دارد.
باعث می‌شود دستور asciinema با همان کد وضعیت خروجی نشست ضبط‌شده خارج شود. به صورت پیش‌فرض، asciinema صرف‌نظر از آنچه در نشست ضبط‌شده رخ می‌دهد با وضعیت 0 خارج می‌شود. با این گزینه، اگر دستور ضبط‌شده با وضعیتی غیر از صفر خارج شود، asciinema نیز با همان کد وضعیت خارج خواهد شد.
فعال‌سازی ثبت رویدادهای داخلی (لاگ) در یک پرونده در مسیر مشخص‌شده. برای اشکال‌زدایی مشکلات ضبط کاربرد دارد.
فرونشاندن پیام‌های تشخیصی و نشانگرهای پیشرفت. فقط پیام‌های خطا نمایش داده خواهند شد.
چاپ راهنما (مشاهده خلاصه با '-h')
<FILE>
مسیر پرونده خروجی

مثال‌ها:


asciinema rec demo.cast
ضبط یک نشست پوسته در یک پرونده


asciinema rec --command "python script.py" demo.cast
ضبط اجرای یک اسکریپت پایتون


asciinema rec --idle-time-limit 2 demo.cast
ضبط با محدودیت زمان بیکاری به ۲ ثانیه


asciinema rec --capture-input --title "API Demo" demo.cast
ضبط همراه با ورودی صفحه‌کلید و تنظیم عنوان


asciinema rec --append demo.cast
ادامه ضبط در یک پرونده موجود


asciinema rec demo.txt
ضبط به صورت لاگ متنی ساده - قالب خروجی از پسوند .txt تشخیص داده می‌شود

record