.TH MULTIXTERM 1 "16 August 2002" .SH "نام (NAME)" multixterm \- هدایت چند ترمینال xterm به‌صورت جداگانه یا هم‌زمان .SH "خلاصه دستور (SYNOPSIS)" .B multixterm [ .I args ] .SH "توضیحات (DESCRIPTION)" برنامه multixterm چندین ترمینال xterm ایجاد می‌کند که می‌توان آن‌ها را به‌طور هم‌زمان یا جداگانه هدایت و کنترل کرد. در ساده‌ترین حالت، multixterm بدون هیچ آرگومانی اجرا می‌شود و دستورها به‌صورت تعاملی در فیلد ورودی اول وارد می‌شوند. فشردن کلید return (یا کلیک روی دکمهٔ «new xterm») یک xterm جدید ایجاد می‌کند که آن دستور را اجرا می‌نماید. کلیدهای فشرده‌شده در «پنجرهٔ stdin» به تمام xtermهایی که توسط multixterm آغاز شده‌اند هدایت می‌شوند. همچنین می‌توان xtermها را صرفاً با بردن فوکوس روی آن‌ها به‌طور جداگانه کنترل کرد. پنجرهٔ stdin باید فوکوس داشته باشد تا کلیدهای فشرده‌شده به xtermها ارسال شوند. هنگامی که پنجره فوکوس دارد، رنگ آن به زمردی (aquamarine) تغییر می‌کند. با وارد شدن نویسه‌ها، رنگ برای یک ثانیه سبز می‌شود. از آنجا که نویسه‌ها در پنجرهٔ stdin پژواک نمی‌شوند، این تغییر رنگ نقش بازخورد را دارد. تایپ کردن در پنجرهٔ stdin هنگام نگه‌داشتن کلیدهای alt یا meta، یک نویسهٔ escape پیش از نویسه‌های تایپ‌شده ارسال می‌کند. این قابلیت پشتیبانی از برنامه‌هایی مانند emacs را فراهم می‌آورد. .SH "آرگومان‌ها (ARGUMENTS)" .RS .TP 4 -xa آرگومان اختیاری \-xa آرگومان‌هایی را که باید به xterm ارسال شوند، مشخص می‌کند. .TP -xc آرگومان اختیاری \-xc دستوری را که باید در هر xterm نام‌گذاری‌شده اجرا شود (به \-xn مراجعه کنید)، مشخص می‌کند. بدون آرگومان \-xc، دستور همان شل فعلی خواهد بود. .TP 4 -xd آرگومان اختیاری \-xd دایرکتوری مورد جستجو برای فایل‌هایی را که در منوی Files ظاهر خواهند شد، مشخص می‌کند. به‌طور پیش‌فرض، این دایرکتوری برابر است با: ~/lib/multixterm .TP 4 -xf آرگومان اختیاری \-xf فایلی را که باید هنگام راه‌اندازی خوانده شود، مشخص می‌کند. برای اطلاعات بیشتر به بخش «فایل‌ها (FILES)» در زیر مراجعه کنید. .TP 4 -xn آرگومان اختیاری \-xn نامی را برای هر xterm تعیین می‌کند. این نام همچنین جایگزین هر %n در آرگومان دستور خواهد شد (به \-xc مراجعه کنید). .TP 4 -xv پرچم اختیاری \-xv برنامهٔ multixterm را در حالت پرحرف (verbose) قرار می‌دهد که در آن برخی از کارهای داخلی خود را شرح خواهد داد. خروجی پرحرف صرفاً برای نویسندهٔ برنامه قابل فهم طراحی شده است. .RE گزینه‌های کم‌کاربردتر را می‌توان از طریق فایل راه‌اندازی تغییر داد (به بخش «فایل‌ها (FILES)» در زیر مراجعه کنید). تمام پرچم‌های معمول X و wish پشتیبانی می‌شوند (مانند \-display و \-name). تعداد آن‌ها به‌قدری زیاد است که برای جلوگیری از تداخل و به‌خاطرسپاری آسان‌تر، تمام پرچم‌های multixterm با \-x آغاز می‌شوند. اگر هر آرگومانی با پرچم‌های بالا مطابقت نداشته باشد، باقی‌ماندهٔ خط فرمان برای پردازش کاربر در دسترس قرار می‌گیرد. به‌طور پیش‌فرض، باقی‌مانده به‌عنوان فهرستی از نام‌های xterm به شیوهٔ \-xn استفاده می‌شود. این رفتار پیش‌فرض را می‌توان با استفاده از فایل .multixtermrc تغییر داد (به بخش «دات‌فایل (DOT FILE)» در زیر مراجعه کنید). .SH "مثال‌هایی از آرگومان‌های خط فرمان (EXAMPLE COMMAND LINE ARGUMENTS)" خط فرمان زیر با استفاده از ssh به میزبان‌های bud و dexter، دو xterm را راه‌اندازی می‌کند. multixterm \-xc "ssh %n" bud dexter .SH "فایل‌ها (FILES)" فایل‌های دستور می‌توانند برای هدایت یا مقداردهی اولیهٔ multixterm به کار روند. از منوی File می‌توان برای فراخوانی فایل‌های دیگر استفاده کرد. اگر فایل‌هایی در دایرکتوری فایل‌های دستور (به \-xd در بالا مراجعه کنید) وجود داشته باشند، در منوی File ظاهر خواهند شد. همچنین می‌توان فایل‌ها را با استفاده از File->Open بارگذاری کرد. هر نام فایلی قابل قبول است، اما مرورگر File->Open به‌طور پیش‌فرض فایل‌های دارای پسوند .mxt را نشان می‌دهد. فایل‌ها به زبان Tcl نوشته می‌شوند و می‌توانند هر متغیری را تغییر داده یا هر رویه‌ای را فراخوانی کنند. متغیرهای اصلی مورد توجه عبارت‌اند از 'xtermCmd' که دستور را مشخص می‌کند (به \-xc مراجعه کنید) و 'xtermNames' که فهرستی از نام‌ها است (به \-xn مراجعه کنید). رویهٔ xtermStartAll، به‌ازای هر نام در فهرست، xtermها را راه‌اندازی می‌کند. سایر متغیرها و رویه‌ها را می‌توان با بررسی خودِ multixterm پیدا کرد. .SH "فایل نمونه (EXAMPLE FILE)" فایل زیر همان کاری را انجام می‌دهد که در مثال پیشین خط فرمان دیدیم: .nf # start two xterms connected to bud and dexter set xtermCmd "ssh %n" set xtermNames {bud dexter} xtermStartAll .fi .SH "دات‌فایل (DOT FILE)" در هنگام راه‌اندازی، multixterm در صورت وجود فایل ~/.multixtermrc آن را می‌خواند. این فایل مشابه فایل‌های دستور است (به بخش «فایل‌ها (FILES)» در بالا مراجعه کنید)، به جز اینکه .multixtermrc نباید xtermStartAll را فراخوانی کند؛ در عوض این رویه به‌صورت ضمنی فراخوانی می‌شود، مشابه رفتاری که در استفاده از \-xn در خط فرمان وجود دارد. فایل .multixtermrc نمونهٔ زیر باعث می‌شود هر xterm دستور ssh را به میزبان‌های نام‌برده در خط فرمان اجرا کند. set xtermCmd "ssh %n" سپس multixterm را می‌توان به‌سادگی فراخوانی کرد: multixterm bud dexter اگر هر آرگومان خط فرمان با پرچم‌های multixterm مطابقت نداشته باشد، باقی‌ماندهٔ خط فرمان در متغیر argv در دسترس .multixtermrc قرار می‌گیرد. اگر هنگام بازگشت از .multixtermrc متغیر argv غیرخالی باشد، به xtermNames اختصاص می‌یابد، مگر اینکه xtermNames از قبل غیرخالی باشد که در این صورت محتوای argv نادیده گرفته می‌شود. دستورهای multixterm در اوایل فرایند مقداردهی اولیهٔ multixterm ارزیابی می‌شوند. هر کاری که باید در مراحل پایانی مقداردهی اولیه انجام گیرد (مانند افزودن نگاشت‌ها و کلیدهای میان‌بر بیشتر به رابط کاربری) می‌تواند با قرار دادن دستورها درون رویه‌ای به نام "initLate" انجام شود. .SH "منوها (MENUS)" به جز مواردی که توضیح داده شده، منوها خودتوضیح هستند. برخی از منوها خط‌چین‌هایی را به‌عنوان اولین ورودی دارند. کلیک کردن روی این خط‌چین‌ها منوها را جداشدنی («tear off») می‌کند. .SH "پیشنهاد کاربرد \- نام‌های مستعار و فایل‌های دستور (USAGE SUGGESTION \- ALIASES AND COMMAND FILES)" نام‌های مستعار (alias) می‌توانند برای ذخیرهٔ فراخوانی‌های طولانی خط فرمان به کار روند. فایل‌های دستور نیز می‌توانند هم برای ذخیرهٔ چنین فراخوانی‌هایی و هم برای ارائهٔ روشی آسان جهت به‌اشتراک‌گذاری پیکربندی‌ها استفاده شوند. زبان Tcl یک زبان همه‌منظوره است. از این رو، فایل‌های دستور multixterm می‌توانند بسیار انعطاف‌پذیر باشند، مانند بارگذاری نام میزبان‌ها از برنامه‌ها یا فایل‌های دیگر که ممکن است روزبه‌روز تغییر کنند. علاوه بر این، فایل‌های دستور می‌توانند برای اهداف دیگری به کار روند؛ به‌عنوان مثال، می‌توان از آن‌ها برای آماده‌سازی توالی‌های تعاملی از پیش‌آماده (canned) استفاده کرد. برای نمونه، دستور ارسال رشته‌ای یکسان به همهٔ xtermها عبارت است از: xtermSend "a particularly long string" منوی File (به‌صورت جداشده) توالی‌های از پیش‌آماده را بسیار راحت و دم‌دست می‌کند. تعامل‌ها همچنین می‌توانند به یک دکمهٔ ماوس، فشردن کلید، یا از طریق فایل .multixtermrc به یک منو افزوده شوند. کد .multixtermrc زیر باعث می‌شود xtermهای کوچک به‌صورت کاشی‌وار (tile) در سراسر صفحه و به سمت پایین چیده شوند. (ممکن است لازم باشد پارامترها را برای صفحهٔ نمایش خود تنظیم کنید.) این قابلیت هنگام کار با تعداد زیادی از xtermها می‌تواند بسیار مفید باشد. .nf set yPos 0 set xPos 0 trace variable xtermArgs r traceArgs proc traceArgs {args} { global xPos yPos set ::xtermArgs "-geometry 80x12+$xPos+$yPos \-font 6x10" if {$xPos} { set xPos 0 incr yPos 145 if {$yPos > 800} {set yPos 0} } else { set xPos 500 } } .fi متغیر xtermArgs در کد بالا متناظر با آرگومان \-xa است. همچنین می‌توان xtermها را به‌طور مستقیم ایجاد کرد. فایل دستور زیر سه xterm هم‌پوشان به‌صورت افقی ایجاد می‌کند: .nf set xPos 0 foreach name {bud dexter hotdog} { set ::xtermArgs "-geometry 80x12+$xPos+0 \-font 6x10" set ::xtermNames $name xtermStartAll incr xPos 300 } .fi .SH "پیشنهاد کاربرد \- انتخاب میزبان‌ها با نام مستعار (USAGE SUGGESTION \- SELECTING HOSTS BY NICKNAME)" فایل .multixtermrc زیر مثالی از تغییر رفتار پیش‌فرض آرگومان‌ها از نام میزبان‌ها به نام فایلی حاوی نام میزبان‌ها را نشان می‌دهد: set xtermNames [exec cat $argv] مورد زیر نوعی دیگر از آن است که نام‌های میزبان را از پایگاه دادهٔ yp واکشی می‌کند: set xtermNames [exec ypcat $argv] کد زیر دو مجموعه از میزبان‌ها را به‌طور ثابت در برنامه تعریف می‌کند، به‌طوری که بتوانید multixterm را با "cluster1" یا "cluster2" فراخوانی کنید: .nf switch $argv { cluster1 { set xtermNames "bud dexter" } cluster2 { set xtermNames "frank hotdog weiner" } } .fi .SH "مقایسه و تمایز (COMPARE/CONTRAST)" مقایسهٔ multixterm با xkibitz قابل توجه است. برنامهٔ multixterm یک فرایند جداگانه را به هر xterm متصل می‌کند. در حالی که xkibitz همان فرایند یکسان را به هر xterm متصل می‌نماید. .SH "محدودیت‌ها (LIMITATIONS)" برنامهٔ multixterm هیچ سازوکاری برای کنترل از راه دور نوارهای پیمایش، تغییر اندازه، و اکثر عملکردهای دیگر مرتبط با سامانهٔ پنجره‌ای فراهم نمی‌کند. از آنجا که xterm سازوکاری برای انتشار اطلاعات اندازه به فرایندهای خارجی ندارد، به‌ویژه برای برنامه‌های گرافیک متنی (مانند vi و emacs)، ممکن است لازم باشد به‌صورت دستی اطمینان حاصل کنید که فرایند اجراشده در پس‌زمینهٔ هر xterm اندازهٔ درستی دارد. برای مثال، اگر xterm را با اندازه‌ای خاص ایجاد یا تنظیم کنید، ممکن است نیاز باشد یک دستور صریح stty با اندازهٔ مناسب به فرایند(های) ایجادشده ارسال کنید. همچنین، می‌توانید هنگام ایجاد xterm آرگومان اندازهٔ صحیح را به آن اضافه نمایید (مانند "-geometry 80x20"). برنامهٔ multixterm تنها می‌تواند xtermهای جدیدی را کنترل کند که خودِ multixterm آن‌ها را آغاز کرده باشد. به‌عنوان یک سهولت، منوی File تعداد محدودی از فایل‌ها را نمایش می‌دهد. برای مشاهدهٔ تمام فایل‌ها، از File->Open استفاده کنید. .SH "فایل‌ها (FILES)" $DOTDIR/.multixtermrc فایل دستور اولیه .br ~/.multixtermrc فایل دستور جایگزین .br ~/lib/multixterm/ دایرکتوری پیش‌فرض فایل‌های دستور .SH "گزارش باگ‌ها (BUGS)" اگر multixterm با استفاده از یک سیگنال kill غیرقابل دریافت و مهار کشته شود، xtermها بسته نمی‌شوند. به نظر می‌رسد این یک اشکال در خودِ xterm باشد. توالی‌های send/expect را می‌توان در فایل‌های دستور multixterm استفاده کرد. با این حال، به دلیل گستردگی احتمالات، مستندسازی مناسب آن نیازمند زمانی بیش از آنچه در حال حاضر در اختیار نویسنده است، می‌باشد. .SH "نیازمندی‌ها (REQUIREMENTS)" نیازمند Expect نسخهٔ 5.36.0 یا بالاتر است. .br نیازمند Tk نسخهٔ 8.3.3 یا بالاتر است. .SH "نسخه (VERSION)" این صفحهٔ راهنما نسخهٔ 1.8 از multixterm را توصیف می‌کند. آخرین نسخهٔ multixterm در نشانی http://expect.nist.gov/example/multixterm در دسترس است. اگر نسخهٔ Expect و Tk شما بیش از حد قدیمی است (به بخش «نیازمندی‌ها (REQUIREMENTS)» در بالا مراجعه کنید)، نسخهٔ جدید Expect را از http://expect.nist.gov بارگیری کنید. .SH "تاریخ (DATE)" ۳۰ آوریل ۲۰۰۲ .SH "نویسندگان (AUTHORS)" Don Libes .SH "مجوز (LICENSE)" برنامهٔ multixterm در مالکیت عمومی (public domain) قرار دارد؛ با این حال نویسنده قدردان خواهد بود اگر در صورت استفاده از multixterm، بخش‌هایی از آن، یا ایده‌های برگرفته از آن، مراتب اعلام گردد.