شخصیسازی خط فرمان
در این آموزش و آموزشهای بعدی میخواهیم شخصیسازی خط فرمان را آموزش دهیم. به این منظور بایستی ابتدا ساختار کلی خط فرمان را یاد بگیریم.
شخصیسازی خط فرمان
ابتدا آناتومی خط فرمان را خواهیم آموخت، سپس شروع به تغییر خواهیم کرد:
آناتومی خط فرمان
خط فرمان پیشفرض ما به شکل زیر است:
1 |
[me@linuxbox ~]$ |
توجه کنید خط فرمان شامل نام کاربری ما، نام میزبان و پوشه فعلی که در آن قرار گرفتیم، میباشد، ولی تنظیمات از کجا آمده است؟ خط فرمان (Command Prompt) توسط یک متغیر محیطی با نام PS1 (سرنام Prompt String 1) تعریف شده است. ما میتوانیم با استفاده از فرمان echo محتویات این متغیر را نمایش دهیم: (در صورتیکه نتایج شما متفاوت بود، نگران نباشید؛ زیرا هر توزیعی از لینوکس متغیر PS1 را به شیوهای متفاوت تعریف میکند).
1 2 |
[me@linuxbox ~]$ echo $PS1 [\u@\h \W]\$ |
از نتایج بدست آمده میبینیم که متغیر PS1 دارای برخی کاراکترهاست، مثل براکت ([]) و علامت @ و …
جدول زیر این کاراکترها را توصیف میکند. در دروس بعدی نحوه شخصیسازی این متغیرها را توضیح خواهیم داد.
توالی | مقدار نمایش داده شده |
---|---|
\a | این توالی موجب میشود کامپیوتر صدای بیپ بدهد و به زنگ ASCII معروف است. |
\d | تاریخ فعلی روز. روز، ماه برای مثال 17 Sun May |
\h | نام میزبان ماشین محلی |
\H | نام میزبان کامل ماشین |
\j | تعداد جابهای در حال اجرا در نشست اخیر شل |
\l | نام دیوایس اخیر ترمینال |
\n | یک کاراکتر خط جدید |
\r | یک Carriage return |
\s | نام برنامه شل |
\t | زمان فعلی به 24 ساعت به فرمت ساعت:دقیقه:ثانیه |
\T | زمان فعلی یه 12 ساعت |
\@ | زمان فعلی به 12 ساعت با فرمت AM/PM |
\A | زمان فعلی به 24 به فرمت ساعت:دقیقه |
\u | نام کاربری کاربر فعلی |
\v | شماره نسخه شل |
\V | شمارههای نسخه و انتشار شل |
\w | نام پوشه فعلی |
\W | آخرین بخش از نام پوشه فعلی |
\! | شماره تاریخچه فرمان فعلی |
\# | تعداد فرمانهای وارد شده در طی این نشست شل |
\$ | توالی $ نشاندهنده دسترسی کاربر ارشد است |
\] | این یک سری از کاراکترها را سیگنال میکند. این توالی به منظور جای دادن کاراکترهای کنترل چاپ نشدنی استفاده میشود که شبیهسازی ترمینال را دستکاری میکند مثل جابجا کردن مکاننما یا تغییر رنگ متن |
\[ | این توالی پایان یک توالی چاپ نشدنی را مشخص میکند. |
ایجاد طراحی جایگزین برای خط فرمان
با لیست کاراکترهای ویژهای که در درس قبلی مشاهده کردید، ما اکنون میتوانیم خط فرمان را تغییر دهیم تا تاثیر آن را مشاهده کنیم. اول از همه رشته موجود در متغیر PS1 بکاپ میگیریم تا بعدها در صورت نیاز بتوانیم آن را بازیابی کنیم. به این منظور با استفاده از فرمان زیر متغیر موجود را در یک متغیر جدید که خودمان ایجاد میکنیم (با نام ps1_old) کپی میکنیم:
1 |
[me@linuxbox ~]$ ps1_old="$PS1" |
یک متغیر جدید با نام ps1_old ایجاد کردیم و مقدار آن را برابر مقدار PS1 قرار دادیم. با استفاده از فرمان echo مقدار آن را مشاهده میکنید:
1 2 |
[me@linuxbox ~]$ echo $ps1_old [\u@\h \W]\$ |
حالا هر زمان با استفاده از معکوس کردن فرمان به صورت زیر میتوانیم این مقدار را بازیابی کنیم:
1 |
[me@linuxbox ~]$ PS1="$ps1_old" |
حال که آماده پردازش هستیم، بگذارید تست کنیم ببینیم که اگر یک رشته فرمان خالی داشته باشیم چه اتفاقی میافتد.
این کار را با فرمان زیر و خالی کردن مقدار PS1 انجام میدهیم:
1 |
[me@linuxbox ~]$ PS1= |
حال که خط فرمان خالی است و از آنجایی که کمی گیجکننده است ابتدا مقدار آن را با یک مقدار حداقلی جایگزین میکنیم:
1 |
PS1="\$ " |
اکنون حداقل یک علامت دلار در خط فرمان میبینیم. میتوانیم یک خط فرمان دارای اطلاعات مفید ایجاد کنیم که نام میزبان و زمان را به ما نشان دهد:
1 2 |
$ PS1="\A \h \$ " 17:33 linuxbox $ |
اضافه کردن زمان به خط فرمان در صورتی مفید میباشد که بخواهیم زمان اجرای فرمانها را بررسی کنیم. برای بازگشت حالت قبلی خط فرمان با استفاده از فرمان زیر آن را بکاپ میگیریم:
1 2 |
17:37 linuxbox $ PS1="<\u@\h \W>\$ " <me@linuxbox ~>$ |
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
دیدگاهتان را بنویسید