انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: احمد حقیقی در 24 اسفند 1395، 11:37 ق‌ظ

عنوان: نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: احمد حقیقی در 24 اسفند 1395، 11:37 ق‌ظ
درود
دوستان اگر از بش استفاده می‌کنید و مایلید، محتوای .bashrc .bash_profile, و ... بذارین (البته پس از عمومی‌سازیش و حذف موارد شخصی  ;) )
یا alias ها رو، متغیر‌های بش رو، فرمت PS هارو ...
سپاس :)
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: رسول سعیدنژاد در 25 اسفند 1395، 04:49 ب‌ظ

https://gitlab.com/RasoolSN/dotfiles/blob/master/bash_aliases
 (https://gitlab.com/RasoolSN/dotfiles/blob/master/bash_aliases)
https://gitlab.com/RasoolSN/dotfiles/blob/master/bashrc
 (https://gitlab.com/RasoolSN/dotfiles/blob/master/bashrc)

من که کل تغییرات بش رو داخل همین bash_aliases میدم. فقط یه PS هست که اونم این‌شکلیه:
    PS1='${debian_chroot:+($debian_chroot)}(\#)[$(date +%H:%M)][\W]$ '
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: احمد حقیقی در 25 اسفند 1395، 06:36 ب‌ظ

https://gitlab.com/RasoolSN/dotfiles/blob/master/bash_aliases
 (https://gitlab.com/RasoolSN/dotfiles/blob/master/bash_aliases)
https://gitlab.com/RasoolSN/dotfiles/blob/master/bashrc
 (https://gitlab.com/RasoolSN/dotfiles/blob/master/bashrc)

من که کل تغییرات بش رو داخل همین bash_aliases میدم. فقط یه PS هست که اونم این‌شکلیه:
    PS1='${debian_chroot:+($debian_chroot)}(\#)[$(date +%H:%M)][\W]$ '

سپاس دوست عزیز
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: anonym در 26 اسفند 1395، 02:46 ب‌ظ
(البته پس از عمومی‌سازیش و حذف موارد شخصی  ;) )
ببخشید من متوجه نشدم (پس از عمومی‌سازیش و حذف موارد شخصی) یعنی چی؟

ظاهر خط فرمان (ترمینال) توسط متغیر محیطی PS1 مدیریت می شود. بر اساس صفحه ی man مربوط به Bash متغیر PS1 درحقیقت استرینگ prompt اولیه (prompt string) را ارائه می دهد که زمانی که شل آماده خواندن یک دستور است این string نمایش داده می شود.

بیایید محتوای در حال حاضر PS1 را در سیستم خودمان نشان دهیم با دستور زیر. (البته این خروجی در سیستم شما متفاوت است)
echo $PS1خروجی
\[\033[0;31m\]┌─[\[\033[00m\]\[\033[0;32m\]\u@\h\[\033[0;31m\]][\[\033[00m\] \[\033[0;32m\]\d\[\033[00m\]\[\033[0;31m\]]──────────────────────────────────────────────[\[\033[00m\]\[\033[0;32m\]\t\[\033[00m\]\[\033[0;31m\]]───┐\[\033[00m\] \n\[\033[0;31m\]└─[\[\033[00m\]\[\033[0;32m\]${PWD}\[\033[00m\]\[\033[0;31m\]]─>\[\033[00m\]
شخصی سازی قالب PS1 (مربوط به هر کاراکتر خاص به شرح زیر میباشد)

/u: نام کاربر (username) جاری سیستم
/h: این کاراکتر مربوط بهHostname سیستم میباشد
/w: نام اصلی (basename) مسیر کاری جاری
/s: در صورتی که کاربر جاری root باشد علامت # و در غیر این صورت علامت $ نمایش داده می شود.(میتوانید کاراکتر \! را برای نمایش شماره دستور جاری در history و یا از \H برای نمایش FQDN (نام کامل دامنه) به جای نام کوتاه سرور استفاده کنید.)

مثال زیر:
PS1="[\u@\H \W \!]\$" 
می توانیم از 3 جهت خط فرمان را تغییردهیم.

رنگ background متن:                رنگ متن:                        قالب متن (format):
                                   
40: مشکی                                   30: مشکی                       0: متن معمولی                         
41: قرمز                                     31: قرمز                          1: bold
42: سبز                                      32: سبز                           4: underlined text
43: زرد                                      33: زرد
44: آبی                                      34: آبی
45: بنفش                                  35: بنفش
46: فیروزه ای                            36: فیروزه ای
47: سفید                                  37: سفید

از کاراکتر خاص \e در ابتدا و کاراکتر m در انتها جهت نشان دادن اینکه آنچه بین این دو کاراکتر می آید یک شماره ی رنگ است، استفاده می شود.

مثال زیر: (رنگ پس زمینه را به قرمز و رنگ متن را به زرد تبدیل میکند و زیر آن خط (underlined) می اندازد).
PS1="\e[41;4;33m[\u@\h \W]$ "  این تنظیمات فقط برای این کاربر و در این پنجره باقی خواهد ماند در صورتی که از ترمینال خارج شوید این تغییرات از بین خواهند رفت.

اگر بخواهید این تنظیمات دایمی شوند کافیست با توجه به نوع توزیع لینوکس خود خطوط بالا را به فایل bashrc. یا bash_profile. اضافه کنید.

اینهم شخصی سازی ترمینال سیستم خودم:
PS1='\[\033[0;31m\]┌─[\[\033[00m\]\[\033[0;32m\]\u@\h\[\033[0;31m\]][\[\033[00m\] \[\033[0;32m\]\d\[\033[00m\]\[\033[0;31m\]]──────────────────────────────────────────────[\[\033[00m\]\[\033[0;32m\]\t\[\033[00m\]\[\033[0;31m\]]───┐\[\033[00m\] \n\[\033[0;31m\]└─[\[\033[00m\]\[\033[0;32m\]${PWD}\[\033[00m\]\[\033[0;31m\]]─>\[\033[00m\] 'نوع ترمینال: mate terminal
size: (90 columns) (35 rows)
font: 12
سبز فسفوری :text color





عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: احسان فعالپور در 26 اسفند 1395، 03:22 ب‌ظ
http://bashrcgenerator.com/
اینجا خیلی راحت‌تر میشه هر نوع پرامتی که میخواید رو درست کنید
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: احمد حقیقی در 27 اسفند 1395، 09:59 ق‌ظ
(البته پس از عمومی‌سازیش و حذف موارد شخصی  ;) )
ببخشید من متوجه نشدم (پس از عمومی‌سازیش و حذف موارد شخصی) یعنی چی؟


منظورم این بود که اگر تنظیمات یا alias ها یا موارد شخصی دارین، حذف کنین به عبارتی data anonymization و ... :)

بابت جواب کاملت ممنونم
من برام دیدن شخصی سازی‌های خودت کافی بود :)
ولی خوب توضیح دادی، سپاس
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: احمد حقیقی در 27 اسفند 1395، 10:02 ق‌ظ
http://bashrcgenerator.com/
اینجا خیلی راحت‌تر میشه هر نوع پرامتی که میخواید رو درست کنید

سپاس دوست عزیز :)

خروجی زیر رو هم میشه برام بذاری؟
echo $PS1
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: رسول صفری در 27 اسفند 1395، 08:37 ب‌ظ
User@Hostname [ ~ ]
$> echo $PS1
\[\033[38;5;2m\]\u@\h\[\]\[\033[38;5;15m\] [ \[\]\[\033[38;5;197m\]\w\[\]\[\033[38;5;15m\] ]\n\$> \[\]
عنوان: پاسخ : نمونه‌های شخصی سازی شده‌ی BASH
ارسال شده توسط: احسان فعالپور در 27 اسفند 1395، 09:15 ب‌ظ
http://bashrcgenerator.com/
اینجا خیلی راحت‌تر میشه هر نوع پرامتی که میخواید رو درست کنید

سپاس دوست عزیز :)

خروجی زیر رو هم میشه برام بذاری؟
echo $PS1


خدمت شما:
➜  ~ echo $PS1
${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)