награвся і повернувся до стандартного, — не зовсім, але майже:
- додав номер команди в історії;
- додав кольорове кодування запрошення для root'а;
- додав кольорове кодування залежно від коду завершення попередньої команди;
- додав індикатор кількості фонових процесів.
export PS1='\[\e[2;37m\]\! \[\e[1;32m\]\u@\H\[\e[0m\] \w $(if [[ $? != 0 ]]; then echo "\[\e[31m\]"; fi)$([ \j -gt 0 ] && echo "\[\e[2;37m\][\j]\[\e[0m\] ")\$\[\e[0m\] 'виглядає трохи складно. але якщо врахувати, що всі фрагменти «
\[\e[2;37m\]» — то лише кодування кольорів тексту, залишається основа, яка теж працюватиме:export PS1='\! \u@\H \w $(if [[ $? != 0 ]]; then echo "(Error)"; fi)$([ \j -gt 0 ] && echo "[\j] ")\$ 'її нескладно розібрати на елементи:
\!— номер команди в історії (див. history);\u— ім'я користувача;\H— ім'я машини (повністю);\w— поточна директорія (повністю);$(if [[ $? != 0 ]]; then echo "(Error)"; fi)— перевірка коду завершення ($?) попередньої команди;$([ \j -gt 0 ] && echo "[\j] ")— перевірка (так, в bash можна без if), чи є фонові процеси (\j);\$— запрошення ($, або ж # для root'а)
деякі питання й відповіді:
де перевірка root чи не root?
немає. root використовує свій .bashrc, тому йдемо в його профіль (
su root) і прописуємо все те саме йому в PS1, лише міняємо колір частини \u@\H (або лише \u, кому як більше до вподоби).навіщо номери команд?
для зручності:
!! в баш перезапускає останню команду, !<номер> ще раз запускає команду з певним номером, history 10 покаже десять останніх команд з номерами.звісно, найпростіше тиснути стрілки вгору (ctrl+p) та вниз (ctrl+n), якщо потрібно знайти щось дуже неглибоко в історії — гадаю, більшість початківців так і роблять (особливо ті, хто в термінал зазирає лише раз на рік, коли щось поламається).
стоп! а де котики?!
простенький варіант з котиком, котрий посміхається або хмуриться залежно від результату виконання попередньої команди:
PS1='$(if [[ $? == 0 ]]; then echo "\[\e[32m\]😺"; else echo "\[\e[31m\]🙀"; fi)\[\e[0m\] \u@\H \w $ 'проблема в тому, що символ котика в деяких шрифтах може мати нестандартну ширину, це трохи збиває bash з пантелику.
що з цим робити?!
це стосується лише linux та командної оболонки bash. відкрити текстовим редактором (nano, micro, geany, gedit тощо) файл .bashrc:
nano ~/.bashrcта додати останнім рядком:
export PS1='\[\e[2;37m\]\! \[\e[1;32m\]\u@\H\[\e[0m\] \w $(if [[ $? != 0 ]]; then echo "\[\e[31m\]"; fi)$([ \j -gt 0 ] && echo "\[\e[2;37m\][\j]\[\e[0m\] ")\$\[\e[0m\] 'після цього перезавантажити .bashrc:
source ~/.bashrcвсе, має працювати, і навіть після перезавантаження.
я поліз в .bashrc і поламав своє запрошення!
просто в терміналі, не зважаючи на кракозябли, друкуємо (див. вище пояснення елементів):
export PS1='\u@\H:\w\$ 'і маємо мінімалістичний промпт — тоді гуглимо і навчаємося робити аварійні копії важливих файлів перед редагуванням =)
ти що, збоченець? хто у 21 столітті користується цими командами?
так. велика, величезна кількість збоченців користується.
