ANSI Control Sequences
کدهای کنترل انسی
کدهای کنترل انسی برای تغییر عملکرد ترمینال، اعم از رنگ، استایل، شکل و مکان نشانگر و بسیاری دیگر استفاده میشوند.
تمام کدهای این صفحه با
echo -e
اجرا میشوند.
جدول زیر مشخصات رایجترین کدها را نشان میدهد
رنگ | کد متن پیشزمینه | کد پسزمینه |
مشکی | \033[0;30m | \033[40m |
قرمز | \033[0;31m | \033[41m |
سبز | \033[0;32m | \033[42m |
زرد | \033[0;33m | \033[43m |
آبی | \033[0;34m | \033[44m |
بنفش | \033[0;35m | \033[45m |
فیروزه | \033[0;36m | \033[46m |
سفید | \033[0;37m | \033[47m |
ریست کردن رنگها | \033[0m | |
مثال:
echo -e "\033[0;31mHello World\033[0m"
این دستور "درود جهان" را با رنگ قرمز چاپ میکند.
همانطور که میبینید در مثال بالا ما فقط رنگ پیشزمینه را تغییر دادیم
اگر بخواهیم فقط رنگ پسزمینه را تغییر دهیم مانند زیر عمل میکنیم
echo -e "\033[0;41mHello World\033[0m"
این دستور "درود جهان" را با رنگ قرمز در پسزمینه چاپ میکند
و اگر بخواهیم هردو رنگ پیش و پس زمینه را تغییر دهیم به شکل زیر عمل می کنیم
echo -e "\033[30;42mHello World\033[0m"
این دستور "درود جهان" را با رنگ مشکی در پسزمینه سبز چاپ میکند
تغییر رنگ تمام ترمینال
دستور زیر رنگ زمینهی تمام ترمینال را به بنقش تغییر میدهد.
echo -ne "\033]11;#53186f\007"
دستور بعدی رنگ پیشزمینهی تمام ترمینال را به سبز تغییر میدهد.
echo -ne "\033]10;#00ff44\007"
کارهای دیگری که میتوان با کدهای انسی انجام داد
جابجایی نشانگر
میتوانید موقعیت نشانگر را در پنجره ترمینال کنترل کنید
--- | --- |
\033[A | حرکت نشانگر به بالا |
\033[B | حرکت نشانگر به پایین |
\033[C | حرکت نشانگر به جلو (راست) |
\033[D | حرکت نشانگر به عقب (چپ) |
\033[<row>;<column>H | تنظیم موقعیت نشانگر |
پاک کردن متن
میتوانید بخشهایی از صفحه یا کل صفحه را پاک کنید
--- | --- |
\033[0J | پاک کردن صفحه از نشانگر تا انتها |
\033[1J | پاک کردن صفحه از ابتدا تا نشانگر |
\033[2J | پاک کردن کل صفحه |
\033[0K | پاک کردن خط از نشانگر تا انتها |
\033[1K | پاک کردن خط از ابتدا تا نشانگر |
\033[2K | پاک کردن کل خط |
اسکرول
میتوانید اسکرول را درون ترمینال کنترل کنید*
--- | --- |
\033[S | اسکرول به بالا یک خط |
\033[T | اسکرول به پایین یک خط |
نشانگر
ذخیره و بازیابی موقعیت نشانگر
میتوانید موقعیت فعلی نشانگر را ذخیره کرده و بعدا بازیابی کنید
--- | --- |
\033[s | ذخیره موقعیت نشانگر |
\033[u | بازیابی موقعیت نشانگر |
مخفی کردن و نمایش نشانگر
ر میتوانید نشانگر را مخفی یا نمایش دهید
--- | --- |
\033[?25l | مخفی کردن نشانگر |
\033[?25h | نمایش نشانگر |
شکل نشانگر
میتوانید نشانگر را به بلاک یا خط صاف تغییر دهید
--- | --- |
\e[0 q | (پیشفرض) شکل یک بلوک |
\e[1 q | شکل یک بلوک چشمکزن |
\e[3 q | شکل یک خط زیرین چشمکزن |
\e[4 q | شکل یک خط زیرین |
\e[5 q | شکل یک خط عمودی چشمکزن |
\e[6 q | شکل یک خط عمودی چشمکزن |
افکتهای متن
--- | --- |
\e[1m | Bold |
\e[3m | Italic |
\e[4m | Underline |
\e[5m | Blink |
\e[7m | Invert colors |
echo -e "\033[30;42;3mHello World\033[0m"
این دستور "درود جهان" را با رنگ مشکی در پسزمینه سبز بهصورت ایتالیک چاپ میکند