پوسته Bash

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از بش (پوسته))
پرش به ناوبری پرش به جستجو
بَش
Gnu-bash-logo.svg
Bash demo.png
تصویر بش در حال نمایش برخی از ویژگی‌هایش
نویسنده (های) اصلی Brian Fox
توسعه‌دهنده(ها) Chet Ramey
انتشار پایدار ۴٫۱٫۷ / ۱۴ مه، ۲۰۱۰؛ ۹ سال پیش (۲۰۱۰-۰۵-14)
وضعیت توسعه فعال
نوشته‌شده به سی
سیستم‌عامل چندسکویی
موجود به چندزبانه
گونه پوسته یونیکس
پروانه جی‌پی‌ال نسخهٔ ۳

بَش (به انگلیسی: Bash) یک پوسته یونیکس است که به صورت آزاد توسط برایان فاکس (به انگلیسی: Brian Fox) برای پروژهٔ گنو و برای جایگزینی پوسته بورن نوشته شده‌است. این پوسته اولین بار در سال ۱۹۸۹ ارائه شده و تا الآن در بسیاری از نسخه های لینوکس و سیستم عامل مک به عنوان پوسته ورود توزیع شده است. یک نسخه از بَش در ویندوز ده هم موجود است. همینطور بَش پوسته پیش فرض در سیستم عامل سولاریس ۱۱ می‌باشد.

بَش یک پردازنده ی فرمان است که معمولا در یک پنجره ی متنی اجرا می‌شود، جایی که کاربر فرمان‌هایی را تایپ می‌کند. بَش همین‌طور می‌تواند فرمان‌های خود را از یک فایل دریاف کند. مثل همه ی پوسته‌های یونیکس از این ویژگی ها پشتیبانی می‌کند: بسط اسم فایل‌ها، پایپ‌ها، «سند همین‌جا»، جایگزینی فرمان، ساختار‌های کنترلی. بَش کلمات اساسی، قواعد دستوری، و بقیه ی ویژگی‌های اساسی را از پوسته ی بورن کپی کرده است. ویژگی‌های دیگری مثل تاریخ از پوسته ی سی و پوسته ی کورن کپی شده‌است. بَش منطبق با استاندارد پازیکس است اما با تعدادی افزونه و بسط استاندارد پازیکس.


نام بَش سرنام Bourne-again shell در انگلیسی است که یک بازی با کلمات و ایهام است به این ترتیب که هم اشاره به پوسته ی بورن می‌کند و هم به کلمهٔ born again اشاره دارد که به معنی «دوباره متولد شده» است.


یک حفرهٔ امنیتی موجود در پوستهٔ بَش از زمان ورژن ۱/۰۳ (آگست ۱۹۸۹)، معروف به «شوک پوسته» در سپتامبر سال ۲۰۱۴ کشف شد و به سرعت باعث یک سری حمله در پهنهٔ اینترنت شد. وقتی محل اشکال پیدا شد، زود تغییرات به روزرسانی انجام شد و مسئله رفع شد.


تاریخ[ویرایش]

برایان فاکس دهم ژانویهٔ ۱۹۸۸ از طرف ریچارد اِستالمَن به کار گرفته شد. استالمن و بنیاد نرم‌افزار آزاد به قدری یک پوستهٔ رایگان که توانایی اجرا کردن اسکریپت‌های پوسته‌ای موجود آن زمان را می‌داشت را مهم و راهبردی می‌دیدند که این پروژه یکی از پروژه‌های معدود و کمی بود که آنها خودشان سرمایه‌گذاری و تأمین اعتبار کردند.

فاکس ماه ژوئن ۱۹۸۹ ورژن ۰/۹۹ را به عنوان نسخهٔ بتا عرضه کرد و تا زمانی که توسط بنیاد نرم‌فزار آزاد تعدیل نیرو شد نگهدارندهٔ اصلی این پوسته بود. بعد از او این مسئولیت به یکی دیگر از توسعه‌دهنده‌های اولیهٔ بَش یعنی چت رامی سپرده شد.

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

ویژگی‌ها[ویرایش]

قواعد دستوری فرمان‌های بَش ابر مجموعهٔ قواعد دستوری فرمان‌های پوستهٔ بورن هستند. بَش از بسط آکولادی، تکمیل خط فرمان، اشکال‌زدایی کردن ابتدایی، رفع‌ و روجوع استثناها و بقیهٔ موارد پشتیبانی می‌کند. بَش می‌تواند اکثریت بسیار بالایی از اسکریپت‌های پوستهٔ بورن را بدون نیاز به تغییر اجرا کند. بش بعضی از ایده‌ها را از پوستهٔ کورن و بعضی را از پوستهٔ سی گرفته‌است. از جملهٔ این ایده‌ها و ویژگی‌ها تاریخ(سابقهٔ) فرمان، پشتهٔ پوشه، متغیرهای $RANDOMو ، و $PPID جایگزینیِ فرمانِ پازیکس $(...) هستند.

وقتی کاربر دکمهٔ tab را در پوستهٔ تعاملی بَش فشار می‌دهد، بَش از تکمیل خط فرمان استفاده می‌کند تا کلمهٔ تایپ شده را با اسم یک برنامه یا یک فایل یا یک متغیر مطابقت بدهد. سامانهٔ تکمیل خط فرمان خیلی انعطاف‌پذیر و قابل دلخواه‌سازی می‌باشد.

بَش به نسبت پوستهٔ بورن اضافاتی دارد که پوستهٔ بورن فاقد آنهاست. بَش توانایی انجام محاسبات اعداد کامل را بدون شاخه کردن فرآیند جدید را دارد. بَش از فرمان ((..)) و قاعدهٔ $((...)) برای این منظور استفاده می‌کند. قواعد دستوریِ بَش تغییر مسیر ورودی و خروجی را ساده‌تر کرده. مثلا بَش می‌تواند خروجی استاندارد و خطای استاندارد را با هم با عمل‌گر >& انجام دهد. معادل این عمل در پوستهٔ بورن است که کمی مُتکلّف‌تر و پیچیده‌تر از معادل بَش آن است. بش از عمل «جایگزینی فرآیند» پشتیبانی می‌کند که با دستور (command)< انجام می‌شود. دستور جایگزینی فرآیند در جایی به کار می‌رود که ورودی یا خروجی فرآیندی جایگزین یک فایل در یک دستور دیگری که فایل را به عنوان ورودی یا خروجی بگیرد بشود. مثلا دستور sort

sort filename

که فایل filename را مرتب‌سازی می‌کند، می‌تواند به جای اسم فایل خروجیِ یک فرآیند دیگر را به همراه دستور جایگزین فرآیند به عنوان یکی از پارامترهای ورودی بگیرد مثلا به طرز زیر:

 sort <(ls -l)

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

ماه فوریهٔ سال دوهزار و نه میلادی بَش ویژگی آرایه‌های شرکت‌پذیر را معرفی و پشتیبانی کرد. آرایه‌های شرکت‌پذیر امکان پشتیبانی مصنوعی از آرایه‌های چند بعدی را فراهم می‌کنند به همان صورت که ابزار AWK این‌کار را می‌کند. ورژن‌های چهار بَش به دلایل محدودیت‌های مربوط به پروانه در سیستم‌عامل مک macOS به کار گرفته نشده‌اند.

بَش از «سند همین‌جا» پشتیبانی می‌کند و از ورژن 2.05b به بعد از «رشتهٔ همین‌جا» هم پشتیبانی می‌کند.

بش دارای تعداد بسیاری افزونه است که Bourne shell فاقد آنهاست. بش می‌تواند بر خلاف Bourne shell بدون اجرا کردن پروسه‌ای بیرونی بر روی اعدا صحیح محاسباتی را انجام دهد. بش از شکل دستوری ((…)) و متغیرهایی به صورت ((…))$ برای اینکار استفاده می‌کند. شکل دستورهای بش بگونه‌ای است که امکان تغییر مسیر ورودی/خروجی را به شکل ساده‌ای به کاربر می‌دهد. به عنوان نمونه بش می‌تواند خروجی استاندارد (stdout) و خطای استاندارد (stderr) را توسط اپراتور <& در یک زمان تغییرمسیر دهد. همین کار را در Bourne shell باید توسط 'command> file 2>&1' انجام داد که نسبت به بش سخت‌تر است. به دلیل این تفاوت‌ها اسکریپت‌های نوشته شده برای بش، به ندرت در Bourne shell یا Korn Shell قابل اجرا هستند مگر اینکه در نوشتن آن‌ها به سازگاری فرمانهای مورد استفاده توجه شود. البته در حالت Posix mode خیلی بیشتر از پازیکس تبعیت می‌کند.[۱]

بسط آکولادی[ویرایش]

ایدهٔ بست آکولادی خاصیتی است که از پوستهٔ سی گرفته شده. این خاصیت برای تولید ترکیب‌ها استفاده می‌شود. متن‌های تولید شده الزاما اسامی فایل‌ها نیستند. این خاصیت در پوستهٔ بورن وجود ندارد.

فرمان‌های زیر کاربرد بسط آکولادی را نشان می‌دهد. توجه کنید که کارکرد بسط آکولادی شبیه اما متفاوت از بسط اسم‌فایل (Globbing یا Filename Expansion)است.

$ echo a{p,c,d,b}e
ape ace ade abe
$ echo {a,b,c}{d,e,f}
ad ae af bd be bf cd ce cf
$ ls
file1 file2 file3 file4
$ rm file{1..3}
$ ls
file4

همین‌طور توجه داشته باشید که بسط آکولادی قبل از بسط اسم فایل صورت می‌گیرد:

$ ls
xxx1 yyy2 zzz2 file4 a
$ ls ???{1..4}
xxx1 yyy2 zzz2

فرمان آخر فرمان لیست فایل‌هایی است که اسمشان شامل سه حرف دلخواه در ابتدا و یکی از شماره‌های یک، دو، سه و چهار برای حرف چهارم و آخر هست. فرمان بالا (فرمان آخر) دقیقا مساوی فرمان زیر می‌باشد.

ls ???1 ???2 ???3 ???4

همانطور که در بالا می‌بینید بسط آکولادی ابتدا فرمان را بسط داده و سپس بسط اسم فایل اجرا شده و نتیجهٔ آن به فرمان (ls) به عنوان ورودی داده می‌شود.

بسط آکولادی هم لیستی از گزینه‌ها برای بسط را پشتیبانی می‌کند و هم یک بازه را می‌پذیرد:

ls x{1,4,z,f}
ls x{2..5}

در فرمان‌های بالا، فرمان اول یک لیست را گرفته و بسط می‌دهد و فرمان دوم یک بازه را گرفته و بسط می‌دهد. بازه می‌تواند شامل دو عدد یا دو حرف به عنوان ابتدا و انتها باشد.

در ورژن‌های جدید بَش، بسط آکولادی بازه به همراه فاصله بین عناصر سری را پشتیبانی می‌کند.

$ ls
x1 x2 x3 x4 x5 x6
$ ls x{2..6..2}
x2 x4 x6

در فرمان بالا بسط آکولادی سه عدد را گرفته که اولی از سمت چپ (۲) عدد یا حرف شروع‌کنندهٔ سری بوده، عدد دوم (۶) عدد انتهایی سری، و عدد سوم (۲) فاصلهٔ بین عناصر سری هستند.

اسکریپت‌های راه‌اندازی[ویرایش]

وقتی بَش شروع به اجرا می‌شود، فرمان‌هایی را در فایل‌های مختلف مخفی (آنهایی که اسمشان با نقطه شروع می‌شود) اجرا می‌کند. با این‌که این فایل‌های راه‌اندازی شبیه به اسکریپت‌های عادی بَش هستند، مثل بقیهٔ اسرکیپت‌های عادی نیازی به احازهٔ دسترسی برای اجرا (پرچم x) ندارند.

ترتیب اجرای فایل‌های راه‌اندازی[ویرایش]

وقتی بَش به عنوان پوستهٔ تعاملیِ ورودی (ورود به سیستم) اجرا می‌شود:[ویرایش]

بَش فایل /etc/profile را اگر وجود داشته باشد خوانده و اجرا می‌کند. خیلی از مواقع این فایل فایل /etc/bash.bashrc را صدا می‌زند.

بعد از خواندن و اجرا کردن این فایل، بش به ترتیب دنبال فایل‌های ~/.bash_profile و ~/.bash_login و ~/.profile می‌گردد و هرکدام را که اول از همه پیدا کرد و قابل خواندن بود اجرا می‌کند.

وقتی بَشِ ورودی خارج می‌شود:[ویرایش]

بَش فایل ~/.bash_logout را اگر وجود داشته باشد خوانده و اجرا می‌کند.

وقتی بش به عنوان پوستهٔ تعاملی ولی نه پوستهٔ ورودی به سیستم اجرا میشود:[ویرایش]

بش فایل /etc/bash.bashrc را خوانده و اجرا می‌کند. این مرحلهٔ آغازین را می‌تواند با گزینهٔ --norc جا انداخت و اجرا نکرد. گزینهٔ --rcfile file اما بَش را مجبور می‌کند به جای خواندن و اجرا کردن ~/.bashrc، فرمان‌های راه‌اندازی را از فایل file خوانده و اجرا شوند.

مقایسه بین ترتیب مراحل راه‌اندازی بَش با پوسته‌های بورن و سی.[ویرایش]

راه‌اندازی پوستهٔ ورودی[ویرایش]

پ پوستهٔ بورن از ~/.profile برای راه‌اندازی و تنظیم محیط (و انتقال و به ارث گذاشتن برای فرآیندهای فرزند) استفاده می‌کند. بَش هم می‌تواند فایل ~/.profile را در مرحلهٔ راه‌اندازی اجرا کند به شرط این‌که در فایل های ~/.bash_profile و ~/.bash_login که مختص بَش هستند دستور زیر اجرا شود:

. ~/.prifle

برای ایجاد و حفظ هم‌سازی بین پوسته‌های بَش و بورن، می‌توان فرمان‌های ناهمساز با بَش را از فایل ~/.profile به بیرون از این فایل منتقل کرد.

هم‌نام‌ها و توابع[ویرایش]

زیرپوسته‌های (پوسته‌هایی که از پوستهٔ والد منشعب می‌شوند) پوستهٔ ورودی بورن نمی‌توانند هم‌نام‌ها و توابعی را که در پوستهٔ ورودی تعریف شده‌اند را به ارث ببرند. اما با این‌که بَش امکان مستقیم این کار را نمی‌دهد، بَش خاصیتی دارد که با آن می‌توان به این هدف دست یافت.

زیرپوسته‌های بَش برای راه‌اندازی فایل ~/.bashrc را اجرا می‌کنند. به این ترتیب برای این‌که همهٔ زیرپوسته‌ها هم‌نام‌ها و توابع را به ظاهر به ارث ببرند و بشناسند، باید در فایل ~/.bashrc تعریف شوند.

فرمان‌های منحصر به ورود و خروج[ویرایش]

پوستهٔ سی هم فایل مخصوص برای اجرا به هنگام ورود (~/.login) و هم فایل مخصوص برای اجرا به هنگام خروج (~/.logout) هستند. اما برای پوسته‌های بَش و بورن قضیه به این سرراستی نیست.

پوستهٔ بورن از هیچ کدام از فایل‌های بالا (یا مشابه آن‌ها) پشتیبانی نمی‌کند. برای شبیه‌سازی فایل مخصوص خروج باید از فرمان داخلی trap و گرفتن سیگنال‌های وقفه استفاده کرد.

بَش برای خروج، راه‌کاری مشابه پوستهٔ سی دارد و فایل ~/.bash_logout برای اجرای فرامین هنگام خروج استفاده می‌شود. اما برای ورود، جون بَش ابتدا فایل ~/.profile را پیدا کرده و اجرا می‌کند فایل ~/.bash_login را اجرا نمی‌کند مگر یا فایل ~/.profile وجود نداشته باشد یا غیرقابل خواندن باشد یا وجود داشته باشد و فایل ~/.bash_login را از داخل فایل به صورت زیر فرابخواند.

. ~/.bash_login

مدیریت فرآیندها[ویرایش]

بَش دو حالت اجرا دارد: اجرای دسته‌ای، و اجرای هم‌روند.

برای اجرای فرامین در حالت دسته‌ای، فرامین باید با حرف ; جدا شوند یا در خط‌های جدا از هم نوشته شوند. مثال: farman1; farman2

در مثال بالا هر موقع فرمان اول farman1 اجرا شد، کامل شد و خارج شد فرمان دوم farman2 اجرا خواه شد.

برای اجرای هم‌روند دو فرآیند، باید پوسته قابلیت اجرا کردن فرمان در پس‌زمینه را داشته باشد. بَش این قابلیت را داراست. برای اجرا کردن فرمانی در پس‌زمینه باید از علامت & به طریق زیر استفاده شود.

farman &

در فرمان بالا، بَش فرمانِ farman را در پشت زمینه اجرا می‌کند. البته چون خروجی استاندارد و خطای استاندارد این فرآیند تغییر مسیر داده نشده و هنوز به ورودی ترمینال اشاره می‌کنند، اگر فرآیند مذکور چیزی به خروجی استاندارد یا خطای استاندارد خود را برای چاپ بفرستند ترمینال آن را دریافت و چاپ خواهد کرد.

برای این‌که مسیر استاندارد خروجی را از ورودی ترمینال منحرف کنیم و تغییر بدهیم از فرمان زیر استفاده می‌کنیم.

farman > file &

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

farman >> file &

فرمان بالا استاندارد خروجی فرآیند ناشی از فرنان بالا را به انتهای فایل وصل می‌کند. اما اگر فرآیند پیغام خطایی را به استاندارد خروجی خود برای چاپ بفرستد، هنوز این پیغام به ترمینال فرستاده خواهد شد. برای تغییر مسیر خطای استانداردِ یک فرآیند از عملگرهای ویژه مانند فرمان زیر استفاده خواهد شد.

farman > file 2>1&

در فرمان بالا، عملگر ویژه‌ای به اضافهٔ اعداد یک و دو استفاده شده که دقیقاً همین عمل‌گر و همین اعداد ابتدائا در پوستهٔ بورن معرفی و استفاده شدند و می‌شوند. عدد ۲ نماد خطای استاندارد و عدد یک نماد خروجی استاندارد می‌باشد و زیر فرمانِ 2>1 به این معناست که بَش خطای استاندارد را به همان‌جا تغییر مسیر بدهد که خروجی استاندارد تغییر مسیر داده شده.

بَش عمل‌گر جدیدی را معرفی کرد که فرمان بالا را کمی ساده تر می‌کند.

farman >& file &

برای تعامل مستقیم با فرآیندها، آن‌ها باید در پیش‌زمینه باشند و فقط یک فرآیند می‌تواند در پیش‌زمینه باشد.

بَش قابلیت مدیریت و تعامل با فرآیندها را دارد. برای به پیش آوردن یک فرآیند پس‌زمینه باید از این قابلیت بَش استفاده کرد. فرمان fg شمارهٔ یک فرآیند را گرفته و آن را به پیش زمینه می‌آورد و این امکان را می‌دهد که به طرق مختلف از جمله فرستادن سیگنال به فرآیند با آن تعامل کرد.

$ farman &
$ jobs
[1]+  Running                 farman &
$ fg %1
farman

بَش با قابلیت مدیریت فرآیندها این امکان را می‌دهد که کاربر به وسیلهٔ بعضی از فرامین سیگنال‌های کنترلی را به فرآیند دلخواه بفرستد.

مثلاً برای به اصطلاح «کُشتن» یا تمام کردن یک فرآیند باید به وسیلهٔ فرمان kill به فرآیند مورد نظر سیگنال‌ها مرتبط را فرستاد. مثلاً سیگنال SIGTERM زمینهٔ «اتمام نرمِ» یک فرآیند را فرآهم می‌اورد.

اگر دو فرآیند به عنوان زیرفرآیند در بَش مشغول محاسبه بودند:

$ jobs
[1]-  Running                 farman1  
[2]-  Running                 farman2

برای اتمام نرم فرآیند شمارهٔ ۱، سیگنال شماره ۱۵ فرستاده می‌شود:

$ kill -15 %1
$ jobs
[1]-  Terminated                 farman1  
[2]-  Running                 farman2

هم‌فرآیندها[ویرایش]

هم‌فرآیندها (به انگلیسی: coprocesses) در بَش و پوسته‌های مشابه به فرآیندهایی گفته می‌شوند که با هم اجرا شوند و با هم از طریق «پایپ»ها ارتباط دارند.

یکی از راه‌های سادهٔ درست کردن دو هم‌فرآیند در بَش به این ترتیب است:

$ mkfifo ney
$ cat farman1
cat ney
$ cat farman2
echo salam > ney
$ ./farman1 & ./farman2
[3] 13794
salam
[3]+  Done                    ./farman1


میانبرهای صفحه‌کلید[ویرایش]

میانبرهای گفته شده در زیر برای حالت پیش‌فرض (ایمکس) است، میانبرهای ویم را می‌توان توسط دستور set -o vi فعال کرد.

  • Tab : تکمیل خودکار از جایی که مکان‌نما وجود دارد.
  • Ctrl+a : انتقال مکان‌نما به ابتدای خط (معادل کلید Home)
  • Ctrl+e : انتقال مکان‌نما به انتهای خط (معادل کلید End)
  • Ctrl+p: فراخوانی فرمان قبلی (معادل کلید )
  • Ctrl+n: فراخوانی فرمان بعدی (معادل کلید )
  • Ctrl+r: جستجوی آخرین فرمانی که دارای کارکتر (های) مشخصی باشد. زدن دوبارهٔ این کلید در هنگام جستجو، به فرمان قبلی‌تر رجوع می‌کند.
  • Ctrl+o: اجرای فرمانی که در جستجو یافته شد.
  • Ctrl+l: پاک کردن محتویات صفحه‌نمایش (معادل فرمان clear).
  • Ctrl+u: پاک کردن محتویاتی از خط که قبل از مکان‌نما وجود دارند و کپی کردن آن‌ها درون بریده‌دان.
  • Ctrl+k: پاک کردن محتویاتی از خط که بعد از مکان‌نما وجود دارند و کپی کردن آن‌ها درون بریده‌دان.
  • Ctrl+w: پاک کردن کلمهٔ قبل از مکان‌نما و کپی کردن آن درون بریده‌دان.
  • Ctrl+y: چسباندن محتویات بریده‌دان از جایی که مکان‌نما وجود دارد.
  • Ctrl+d: ارسال یک نشانگر EOF که باعث بسته شدن خط فرمان فعلی می‌شود (معادل دستور exit). (تنها در زمانی این اتفاق می‌افتد که متنی در خط فعلی موجود نباشد)
  • Ctrl+c: ارسال یک سیگنال از نوع SIGINT به پروسهٔ فعلی، که باعث پایان اجرا و بسته شدن آن می‌شود.
  • Ctrl+z: ارسال یک سیگنال از نوع SIGTSTP به پروسهٔ فعلی، به باعث به تعلیق درآمدن آن می‌شود؛ که برای برگشت دادن آن می‌توان از دستور fg process-name-or-job-id استفاده کرد.
  • Ctrl+x Ctrl+e: ویرایش خط فعلی در ادیتوری که توسط متغیر EDITOR$ تعریف شده‌است.
  • Alt+f: حرکت به جلو به اندازهٔ یک واژه.
  • Alt+b: حرکت به عقب به اندازهٔ یک واژه.
  • Alt+Del: برش کلمهٔ واقع در قبل از مکان‌نما
  • Alt+d: برش کلمهٔ واقع در بعد از مکان‌نما
  • Alt+u: تبدیل تمام حروف کوچک به بزرگ، واقع در بعد از مکان‌نما تا انتهای کلمهٔ فعلی
  • Alt+l: تبدیل تمام حروف بزرگ به کوچک، واقع در بعد از مکان‌نما تا انتهای کلمهٔ فعلی
  • Alt+c: تبدیل حرف واقع در زیر مکان‌نما از کوچک به بزرگ و رفتن به انتهای کلمهٔ فعلی
  • Alt+r: انصراف تغییرات و برگرداندن محتویات خط فعلی به همان شکلی که در تاریخچهٔ خط فرمان موجود بود.

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا. «‎Bash (Unix shell)‎». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۳ ژوئن ۲۰۱۰.