~2 min read • Updated Jul 15, 2025


اعلان شِل، که اغلب نادیده گرفته می‌شود، قابلیتی قدرتمند و قابل تنظیم در خط فرمان لینوکس است. این اعلان توسط متغیر محیطی PS1 در bash تعریف می‌شود و اطلاعاتی نظیر نام کاربر، نام میزبان و مسیر جاری را نمایش می‌دهد. با تغییر PS1، کاربران می‌توانند اعلان را به‌شکل دلخواه طراحی کنند و اطلاعات دینامیک، رنگ‌ها یا حتی ساعت را در آن قرار دهند.


ساختار اعلان


اعلان پیش‌فرض bash ممکن است به‌صورت زیر باشد:


[me@linuxbox ~]$

این اعلان توسط PS1 تعریف می‌شود. برای مشاهده مقدار آن:


echo $PS1

[\u@\h \W]\$

این اعلان از کدهای خاصی استفاده می‌کند که bash آن‌ها را تفسیر می‌کند:


SequenceDescription
\aصدای زنگ (beep)
\dتاریخ
\hنام میزبان
\uنام کاربر
\wمسیر کامل جاری
\Wنام پوشه جاری
\tساعت (HH:MM:SS)
\@ساعت (AM/PM)
\!شماره فرمان در تاریخچه
\$نماد اعلان ($ یا #)
\[شروع کاراکترهای غیرچاپی
\] پایان کاراکترهای غیرچاپی

طراحی‌های مختلف اعلان


پشتیبان‌گیری از اعلان فعلی


ps1_old="$PS1"

اعلان ساده


PS1="\$ "

افزودن صدای زنگ


PS1="

\[\a\]

\$ "

اعلان اطلاعاتی با ساعت و میزبان


PS1="\A \h \$ "

17:33 linuxbox $

بازگرداندن اعلان اصلی


PS1="$ps1_old"

افزودن رنگ


رنگ متن


SequenceColor
\033[0;31mقرمز
\033[1;32mسبز روشن
\033[0;33mقهوه‌ای
\033[1;34mآبی روشن

رنگ پس‌زمینه


SequenceBackground Color
\033[0;41mپس‌زمینه قرمز
\033[0;42mپس‌زمینه سبز

مثال: اعلان با متن قرمز


PS1="

\[\033[0;31m\]

<\u@\h \W>\$

\[\033[0m\]

 "

مثال: پس‌زمینه قرمز


PS1="

\[\033[0;41m\]

<\u@\h \W>\$

\[\033[0m\]

 "

کنترل مکان نما (cursor)


Escape CodeAction
\033[sذخیره موقعیت مکان‌نما
\033[uبازگردانی موقعیت
\033[0;0Hحرکت به بالا-چپ

مثال: اعلان با نوار بالایی قرمز و ساعت زرد


PS1="

\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]

<\u@\h \W>\$ "

ذخیره دائمی اعلان


برای دائمی‌کردن اعلان جدید، آن را به ~/.bashrc اضافه کنید:


# اعلان سفارشی با ساعت و نوار رنگی
PS1="..."
export PS1

سپس با اجرای دستور زیر، تغییرات اعمال شود:


source ~/.bashrc

نتیجه‌گیری


سفارشی‌سازی اعلان شِل توسط PS1 این امکان را می‌دهد که تجربه‌ای کاربردی‌تر و زیباتر از خط فرمان داشته باشیم. ترکیب رنگ‌ها، ساعت، و موقعیت مکان‌نما باعث تعامل بهتر با محیط bash شده و درک بهتری از ترمینال به‌دست می‌دهد.


Written & researched by Dr. Shahin Siami