| BASHRUN(1) | User Manuals | BASHRUN(1) |
نام (NAME)
bashrun - راهانداز برنامهها و ابزار اجرای دستورات مبتنی بر بش
خلاصه دستور (SYNOPSIS)
bashrun [گزینهها]
توضیحات (DESCRIPTION)
bashrun یک راهانداز ساده برنامهها برای X11 است. این ابزار یک نشست bash را درون یک پنجره کوچک XTerminal اجرا میکند و بهراحتی تمام قابلیتهای متداول bash مانند readline، تکمیل با کلید Tab و تاریخچه را فراهم میسازد، در حالی که ویژگیهای بیشتری مانند نشانکها (bookmarks)، گردانندههای مبتنی بر عبارات باقاعده (regexp)، جستجو در فرهنگ لغت و جستجوی گوگل را نیز اضافه میکند.
bashrun بسته به اینکه آیا xdotool(1) روی سیستم نصب شده باشد یا خیر، دو حالت عملکرد پایه را ارائه میدهد.
اگر xdotool(1) در دسترس باشد، پنجره ترمینال میزبان نشست bash در پسزمینه و پنهان از دید در حال اجرا باقی میماند. فراخوانی bashrun یا bashrun --show پنجره را نمایان کرده و فوکوس را به آن میدهد؛ پس از صدور یک دستور، پنجره ترمینال دوباره از دید پنهان خواهد شد. این روش زمان راهاندازی را کاهش داده و در منابع سیستم صرفهجویی میکند.
اگر xdotool(1) نصب نشده باشد، در هر بار فراخوانی یک نمونه جدید ایجاد میشود و بلافاصله پس از اجرای اولین دستور خاتمه مییابد.
گزینهها (OPTIONS)
- -v, --version
- چاپ اطلاعات نسخه
- -h, --help
- چاپ اطلاعات نحوه استفاده
- -d, --debug
- شروع در حالت اشکالزدایی (debug)
اگر xdotool(1) در دسترس باشد، گزینههای زیر یک نمونه در حال اجرای bashrun را از فراخوانیهای بعدی کنترل میکنند. توجه داشته باشید که اگر نمونه قبلی از bashrun یافت نشود، گزینههای --show، --toggle، --restart، --su و --debug یک نشست جدید bashrun را آغاز خواهند کرد.
- --show
- نمایش پنجره و فوکوس روی آن
- --hide
- پنهان کردن پنجره
- --toggle
- تغییر وضعیت نمایان یا پنهان بودن پنجره
- --exit
- خاتمه دادن به یک فرآیند موجود bashrun
- --restart
- راهاندازی مجدد bashrun (برای اعمال تغییرات فایل پیکربندی الزامی است)
- --su command
- اجرای دستور با دسترسیهای ریشه (root). پنجره ترمینال bashrun را برای ورود گذرواژه باز میکند.
- --remote type <text> key <keyseq> ...
- تایپ متن در bashrun و فراخوانی توالی کلیدها از راه دور. برای نحو ساختاری <keyseq>، به دستور key در xdotool(1) مراجعه کنید.
- --wid
- چاپ شناسه پنجره (window id) ترمینال
- --wait
- صبر کردن تا زمانی که پنجره ترمینال پنهان (unmapped) شود
- --debug
- تغییر وضعیت حالت اشکالزدایی
اجرای دستورات (RUNNING COMMANDS)
اجرای دستورات ساده سرراست است. پوسته گسترشهای معمول را انجام میدهد و دستور حاصل مطابق با کنش درخواستی و اولویتهای کاربر پردازش و راهاندازی میشود.
چندین دستور که با ; از هم جدا شدهاند به همین ترتیب متوالی پردازش میشوند.
اگر دستورات با یک علامت لوله (|) یا با عملگرهای منطقی || یا && جدا شوند، رفتار bashrun تفاوت چشمگیری با رفتار معمول پوسته خواهد داشت. برای پوسته bashrun، هر دستور ساده در یک عبارت مرکب به گونهای به نظر میرسد که گویی بلافاصله با موفقیت پایان یافته است. این بدان معنی است که جدا کردن دستورات با && یا | عملاً معادل استفاده از ; است. جدا کردن دستورات با || مانع از اجرای دستورات سمت راست عبارت خواهد شد.
برای دور زدن این رفتار، کاراکترهای ;، & و | را میتوان با یک کاراکتر بکاسلش (\) اسکیپ کرد. لطفاً توجه داشته باشید که در این حالت قواعد ترمینال تنها بر اساس نام دستور اول اعمال میشوند.
برای نمونه، دستوری مانند
$ cat textfile | wc -l <term-page>
آنطور که در نظر گرفته شده کار نخواهد کرد و در عوض خروجی هر دو دستور را در ترمینالهای جداگانه صفحهبندی میکند، بدون اینکه لولهای میان دستورات ایجاد شود. برای اینکه تعداد خطوط موجود در textfile مطابق انتظار در یک پنجره واحد ترمینال صفحهبندی شود، باید از دستور زیر استفاده کنید:
$ cat textfile \| wc -l <term-page>
ویرایش چندخطی در bashrun کار نمیکند. اگر احیاناً بستن علامت نقلقول (quote) را در خط فرمان فراموش کنید، bashrun از شما میخواهد که C-c را فشار دهید. پس از این کار ممکن است آخرین خط تاریخچه شما نامعتبر شود.
برای اجرای دستورات در زمینه نشست پوسته bashrun به جای پردازش آنها توسط bashrun، از کنش <pass> (پیشفرض: M-w) استفاده کنید.
فایل پیکربندی صفحهکلید (KEYBOARD CONFIGURATION FILE)
کلیدهای میانبر را میتوان در فایل پیکربندی صفحهکلید $XDG_CONFIG_HOME/bashrun/keys پیکربندی کرد. این فایل شامل دستورالعملهای keymap و تعاریف keybinding است.
دستورالعمل keymap مشخص میکند که تعاریف بعدی keybinding به کدام نگاشت کلید readline متصل شوند. ساختار دستوری به صورت زیر است:
KEYMAP <keymap>
که در آن <keymap> یکی از مقادیر emacs، vi-insert یا vi-command است.
ساختار دستوری برای تعاریف keybinding به صورت زیر است:
<action> <keyseq> [<keyname>]
که در آن <action> نام کنش bashrun است (بخش کنشها (ACTIONS) در زیر را ببینید)، keyseq یک توالی کلید معتبر در readline(1) است، و <keyname> یک نام اختیاری و خوانا برای توالی کلید است (که برای نمایش میانبرها به کاربر استفاده میشود).
لطفاً توجه داشته باشید که تمام توالیهای کلیدی که با C-x[0-9] شروع میشوند و همچنین کاراکترهای دقیق \201 تا \209 برای استفاده داخلی رزرو شدهاند و قابل استفاده نیستند.
خطوطی که با # شروع میشوند توضیح (کامنت) هستند و نادیده گرفته میشوند.
کنشها (ACTIONS)
این بخش تمام کنشهایی را که میتوان به توالیهای کلید متصل کرد فهرست میکند. برای نمایش کلیدهای میانبر فعلی، از کنش <bashrun-bindings> (پیشفرض: F1) استفاده کنید.
- quit
- خروج از bashrun. نشست پوسته bashrun را خاتمه میدهد.
- abort
- پنهان کردن پنجره (با استفاده از xdotool) یا خروج.
- pass
- اجرای دستور در زمینه نشست پوسته bashrun؛ بررسی و مدیریت دستور را دور میزند.
- run
- اجرای دستور.
- term-run
- اجرای دستور در یک ترمینال.
- term-hold
- اجرای دستور در یک ترمینال و باز نگهداشتن آن پس از پایان.
- term-page
- اجرای دستور در یک ترمینال و صفحهبندی خروجی با استفاده از PAGER.
- su-run
- اجرای دستور با دسترسی ریشه (root). ابتدا گذرواژه از شما پرسیده میشود.
- su-term-run
- اجرای دستور با دسترسی ریشه در یک ترمینال.
- su-term-hold
- اجرای دستور با دسترسی ریشه در یک ترمینال و باز نگهداشتن آن پس از پایان.
- su-term-page
- اجرای دستور با دسترسی ریشه در یک ترمینال و صفحهبندی خروجی با استفاده از PAGER.
- show-manual
- نمایش صفحه راهنمای دستور در یک ترمینال.
- show-info
- نمایش صفحه info برای دستور در یک ترمینال.
- show-help
- صفحهبندی راهنمای دستورات داخلی بش (bash builtins) در ترمینال. اگر دستور از دستورات داخلی بش نباشد، تلاش میکند تا صفحه راهنما (man) را نشان دهد.
- copy
- کپی کردن خروجی دستور به کلیپبورد (با استفاده از xclip).
- copy-paste
- کپی کردن خروجی دستور و الصاق آن در پنجره زیر نشانگر ماوس (با استفاده از xclip و xdotool).
- filter
- هدایت محتویات کلیپبورد به ورودی دستور از طریق پایپ و کپی کردن خروجی به کلیپبورد (با استفاده از xclip).
- filter-paste
- هدایت محتویات کلیپبورد به ورودی دستور از طریق پایپ و کپی خروجی در کلیپبورد، سپس الصاق آن در پنجره زیر نشانگر ماوس (با استفاده از xclip و xdotool).
- browse
- مرور کلمات در BROWSER، بخش فایل پیکربندی (CONFIGURATION FILE) را ببینید.
- google-search
- جستجوی کلمات در گوگل با استفاده از BROWSER، بخش فایل پیکربندی (CONFIGURATION FILE) را ببینید.
- dict-lookup
- جستجوی کلمات در فرهنگ لغت، نیازمند dict(1) یا ابزار مشابه است. برای استفاده از کلاینت دیگر، از گزینه پیکربندی DICT_CLIENT استفاده کنید، بخش فایل پیکربندی (CONFIGURATION FILE) را ببینید.
- bashrun-bindings
- نمایش کلیدهای میانبر فعلی در یک ترمینال.
- bashrun-manual
- نمایش این راهنما در یک ترمینال.
- bashrun-handlers
- نمایش HANDLERS فعلی در یک ترمینال.
- bashrun-debug
- فعال یا غیرفعال کردن پیامهای اشکالزدایی. متغیر KEEP_OPEN را تنظیم کرده و در صورت پشتیبانی، اندازه ترمینال را به 80x24 تغییر میدهد.
- toggle-size
- جابهجایی بین اندازههای "کوچک" (small) و "بزرگ" (large) (فقط برای xterm و rxvt*). بخش فایل پیکربندی (CONFIGURATION FILE) را ببینید.
- resize-[up|down|left|right]
- تغییر اندازه ترمینال (فقط برای xterm و rxvt*).
فایل پیکربندی (CONFIGURATION FILE)
فایل پیکربندی کاربر $XDG_CONFIG_HOME/bashrun/rc به عنوان فایل rc برای نشست bash مورد استفاده توسط bashrun بارگذاری (source) میشود. به غیر از متغیرهای محیطی شرح داده شده در اینجا، میتوانید هر چیزی را که معمولاً به فایل ~/.bashrc خود اضافه میکنید به این فایل نیز بیافزایید. به عنوان مثال، ممکن است بخواهید توابع یا نامهای مستعار اضافه کنید، کلیدهای تابعی دیگر را اختصاص دهید یا به سادگی فایل ~/.bashrc موجود خود را source کنید.
لطفاً اطمینان حاصل کنید که با تنظیمات tty/bash و میانبرهای رزرو شده توسط bashrun تداخلی ایجاد نمیکنید. بخشهای فایل پیکربندی صفحهکلید (KEYBOARD CONFIGURATION FILE) و متغیرهای محیطی (ENVIRONMENT) را ببینید یا نگاهی به $PREFIX/share/bashrun/bashrc بیندازید.
XTERM=[xterm|rxvt|urxvt|urxvtc|mrxvt|aterm|mlterm] (پیشفرض: xterm)
XTERM_OPTIONS=[...] (پیشفرض: خالی)
KEEP_OPEN=[yes|no] (پیشفرض: no)
SMALL_COLUMNS=n, SMALL_LINES=n (پیشفرض: 40x1)
LARGE_COLUMNS=n, LARGE_LINES=n (پیشفرض: 40x8)
FGCOLOR=color, BGCOLOR=color (پیشفرض: grey on black)
PS1=[...] (پیشفرض: '>')
HISTCONTROL (پیشفرض: ignoredups:erasedups)
COMPLETION_TYPE=[complete|menu-complete|quiet-complete] (پیشفرض: menu-complete)
page-completions off
print-completions-horizontally on
completion-query-items -1
حالت quiet-complete زمانی مفید است که میخواهید تکمیل خودکار رفتاری شبیه به complete داشته باشد اما خطوط اعلان readline مزاحم آن نشوند. اگرچه گزینههای تکمیل در واقع چاپ میشوند، اما در یک ترمینال تکخطی عملاً آنها را نخواهید دید.
ALTERNATIVE_COMPLETION_TYPE=[complete|menu-complete|quiet-complete] (پیشفرض: complete)
COMPLETION_THRESHOLD=[num_lines] (پیشفرض: LARGE_LINES)
(نکته: تنظیمات پیشفرض برای این گزینهها منجر به استفاده از menu-complete در حالت "کوچک" و complete در حالت "بزرگ" میشود.)
USE_EXTENDED_BASH_COMPLETION=[yes|no] (پیشفرض: no)
EXTENDED_BASH_COMPLETION_PATH=[path]
POST_MAP_COMMAND=[command] (پیشفرض: تنظیم نشده)
DICT_CLIENT=[command] (پیشفرض: dict --pager $PAGER)
DIRHANDLER=[command] (پیشفرض: تنظیم نشده)
BROWSER=[command] (پیشفرض: firefox)
GOOGLE_FALLBACK=[yes|no] (پیشفرض: no)
TERMINAL_RULES=('RUN:[progs]' 'PAGE:[progs]' 'HOLD:[progs]')
مثال:
TERMINAL_RULES=(
"RUN:watch top htop less man info ncftp links"
"HOLD:ps su"
"PAGE:echo ls which uname lsusb lshal lsmod fortune"
)
HANDLERS=([regexp handler]...) (پیشفرضها: در زیر آمده است)
اگر تعداد زیرالگوهای منطبق برای جایگزینی هر رخداد $[0-9] در رشته گرداننده کافی نباشد، گرداننده اجرا نخواهد شد و یک پیام خطا برای کاربر صادر میشود.
رشته گرداننده علاوه بر این میتواند با یک عبارت آزمون فایل پیشوند شود که مجموعهای از آزمونهای فایل را تعیین میکند که باید پیش از اعمال گرداننده روی محتویات خط فرمان انجام شوند. اگر هر یک از این آزمونها شکست بخورد، گرداننده اعمال نخواهد شد.
عبارت آزمون مجموعهای از کاراکترها است که متناظر با عملگرهای آزمون تکعضوی فایل تعریفشده در بخش عبارات شرطی (CONDITIONAL EXPRESSIONS) راهنمای bash(1) است و با علامت : خاتمه مییابد. آزمونهای فایل را میتوان با قرار دادن یک پیشوند ! منفرد نقیض کرد. به عنوان مثال، یک گرداننده با پیشوند f!x: تنها زمانی اعمال میشود که خط فرمان مسیری به یک فایل معمولی و غیرقابل اجرا باشد.
به عنوان مثال، برای تعریف ارتباط فایلها برای فایلهای jpeg میتوانید از یک الگو و گرداننده مانند زیر استفاده کنید:
'\.jpe?g$' 'f!x:gimp'
این الگو خطوطی را که به .jpg یا .jpeg ختم میشوند با استفاده از gimp(1) باز میکند. آزمون فایل تضمین میکند که همچنان میتوانید خطی مانند
$ convert foo.tif foo.jpg
را تایپ کنید و پردازش نشود، اگرچه این خط نیز به .jpg ختم میشود. این به این دلیل است که عبارت آزمون روی کل خط اعمال میشود، بنابراین آزمون f!x ناموفق خواهد بود.
برای باز کردن خطوطی که با http یا https شروع میشوند در BROWSER، خطی مانند زیر را به آرایه HANDLERS اضافه کنید:
'^https?' "$BROWSER"
برای پیادهسازی میانبرهای وب شبیه به مرورگر konqueror در KDE، از الگویی حاوی زیرالگو مانند زیر استفاده کنید:
'^gg:(.+)'
و از خطی مانند این به عنوان رشته گرداننده استفاده کنید:
"$BROWSER 'http://www.google.com/search?q=\$1'"
ابزار bashrun بخش $1 در رشته گرداننده را با هر آنچه کاربر پس از gg: وارد کرده باشد جایگزین خواهد کرد.
برای مثالهای بیشتر به فایل پیکربندی پیشفرض کاربر مراجعه کنید. اگر گردانندههای شما طبق انتظار کار نمیکنند، حالت اشکالزدایی را فعال کنید تا متوجه شوید چه روندی در جریان است.
اگر از فایل پیکربندی پیشفرض استفاده شود یا HANDLERS در فایل پیکربندی کاربر تنظیم نشده باشد، گردانندههای زیر به طور پیشفرض تنظیم میشوند:
- ^www, ^https?
- باز کردن خطوط شروعشده با www، http یا https در BROWSER
- ^gg:(.+)
- جستجو در گوگل
- ^ggl:(.+)
- جستجو در گوگل با استفاده از "I'm feeling lucky"
- ^fm:(.+)
- جستجوی پروژه در freshmeat.net
- ^sf:(.+)
- مشاهده صفحه پروژه در sourceforge.net
- ^sfw:(.+)
- مشاهده وبسایت پروژه در sourceforge.net
- \.jpe?g$
- باز کردن فایلهای JPEG در gimp، با استفاده از f!x به عنوان عبارت آزمون
- ^ftp:(.+)
- شروع ncftp $1 در xterm
- ^\?(.+)
- صفحهبندی $1 --help در xterm
- ^\?\?(.+)
- نمایش man $1 در xterm
BOOKMARKS=([bookmark]...) (پیشفرض: مثال را ببینید)
BOOKMARKS=(
www.google.com
www.archlinux.org
www.slashdot.org
www.linux.com
http://bashrun.sourceforge.net
)
ثبت وقایع (لاگینگ) برای دستوراتی که با دسترسی ریشه اجرا میشوند غیرفعال است.
فایلها (FILES)
$XDG_CONFIG_HOME/bashrun/rc
$XDG_CONFIG_HOME/bashrun/keys
اگر از xdotool(1) استفاده میشود، برای اعمال تغییرات این فایلها باید bashrun مجدداً راهاندازی شود.
اگر XDG_CONFIG_HOME
تنظیم نشده
یا خالی
باشد، در
عوض از ~/.config
استفاده
خواهد شد.
$XDG_DATA_HOME/bashrun/history
$XDG_CACHE_HOME/bashrun/
متغیرهای محیطی (ENVIRONMENT)
- X11
- مشخصههای مدیر پنجره WM_CLASS و WM_NAME روی "bashrun" تنظیم میشوند. این مشخصهها میتوانند با امکانات مدیر پنجره شما برای پیکربندی بیشتر ظاهر bashrun استفاده شوند. توجه داشته باشید که اگر از xdotool(1) استفاده میکنید، توصیه میشود پنجره bashrun را چسبان (sticky) کنید تا مطمئن شوید همیشه در دسکتاپ فعلی ظاهر میشود.
- BASH
ارسال ^D (eof) روی یک خط خالی در صورتی که از xdotool(1) استفاده شود، پوسته را خاتمه نمیدهد. به stty(1) مراجعه کنید.
کنترل جریان XON/XOFF (تعلیق/ازسرگیری ترمینال از طریق C-s و C-q) غیرفعال است. در صورت استفاده از میانبرهای پیشفرض، C-s در بافر تاریخچه به سمت جلو جستجو میکند (پیشفرض readline) در حالی که C-q به کنش <quit> متصل است. به stty(1) مراجعه کنید.
مشکلات شناختهشده (KNOWN ISSUES)
برخی از ترمینالها نیاز به نقلقول (quoting) خط فرمان در حال اجرا دارند. این بدان معنی است که اجرای خطوط فرمان با تعداد زیادی نقلقول ممکن است در این ترمینالها با شکست مواجه شود، هرچند دو سطح از نقلقول معمولاً باید کار کند. میتوانید از حالت اشکالزدایی برای یافتن دقیق دلیل و چگونگی شکست یک دستور با نقلقولهای سنگین استفاده کنید.
تنها xterm(1) و *rxvt(1) از تغییر اندازه با استفاده از میانبرها پشتیبانی میکنند. مشاهده شده است که xterm گاهی اوقات در حین تغییر اندازه دچار انجماد (freeze) میشود که برای بستن آن دستکم به سیگنال SIGTERM نیاز است.
برای XTerm، منبع allowWindowOps باید روی True تنظیم شود تا امکان تغییر اندازه پنجره فراهم گردد. این قابلیت از نسخه 0.14 bashrun در پیکربندی پیشفرض xterm فعال شده است. توجه داشته باشید که تنظیم allowSendEvents روی True، منبع allowWindowOps را در XTerm اجباراً غیرفعال خواهد کرد.
برای اینکه کلیدهای میانبر متا (پیشوند با \e یا \M-) با کلید Alt یا Meta کار کنند، ترمینال باید طوری پیکربندی شود که کلید meta را به یک escape ترجمه کند. برای XTerm، این ویژگی را میتوان با تنظیم منبع metaSendsEscape روی True فعال کرد. این ویژگی از نسخه 0.14 bashrun در پیکربندی پیشفرض xterm فعال است. برای URxvt، منبع meta8 باید روی False تنظیم شود (که تنظیم پیشفرض URxvt است).
گزارش خطاها (BUGS)
لطفاً هرگونه خطایی را که پیدا میکنید با استفاده از نشانی رایانامه زیر گزارش دهید. نظرات و پیشنهادات نیز با کمال میل پذیرفته میشوند.
نویسنده (AUTHOR)
Henning Bekel <h.bekel at googlemail dot com> (انگلیسی و آلمانی)
مشارکتکنندگان (CONTRIBUTORS)
- Daniel J. Griffiths (aka Ghost1227) <ghost1227 at archlinux dot us>
- میزبانی Sourceforge، طراحی وبسایت، بستهبندی ArchLinux
- Shapeshifter
- پیشنهادات، کد، گزارش خطاها
- Bernard Walle
- گزارش خطاها، بستهبندی OpenSuse
- Dieter Plaetinck
- گزارش خطاها
- Wouter Koersen
- پیشنهادات، کد
- Mathias Dahl
- پیشنهادات، گزارش خطاها
- Reuben Thomas
- پیشنهادات، گزارش خطاها
منابع (REFERENCES)
bashrun - http://bashrun.sourceforge.net
xdotool - http://www.semicomplete.com/projects/xdotool
dict - http://www.dict.org
همچنین ببینید (SEE ALSO)
Xorg(1), xterm(1), xdotool(1), dict(1), stty(1), bash(1), readline(3)
| June 2009 | Linux |