Нека сега да променим промпта, така че да показва и часът:
slaff@atlantis slaff> PS1="[t][u@h:w]$ "
[21:52:01][slaff@atlantis:~]$ ls
bin mail
Ако не искаме всеки път да променяме промта, а той да се променя още с
влизането ни, трябва да променим файлът .bash_profile, който се намира
във нашата главна директория. Ако такъв файл не съществува трябва да го
създадем. Ако имате root права и искате да промените на всички
потребители промпта редактирайте файлът /etc/profile или /etc/bashrc .
Имайте предвид, че този файл може да се намира на друго място за
различните Linux дистрибуции. Самото редактиране се състои в добавянето
на този ред:
PS1="[t][u@h:w]$ "
Alias представлява псевдоним (алтернативно име) на дадена команда или
последователности от команди и се използва за улеснение. Ако например
искате всеки път вместо да пишете командата "cd /usr/local/share/" да
напишете само GO трябва да направите следния псевдоним:
alias GO="cd /usr/local/share/"
За да не го пишете всеки път най-добре да го добавите във файлът
.bash_profile.
Прменливата PROMPT_COMMAND се показва или изпълнява преди да се покаже самият промпт. Разгледайте следният пример:
[21:55:01][slaff@atlantis:~] PS1="[u@h:w]$ "
[slaff@atlantis:~] PROMPT_COMMAND="echo 2155"
2155
[slaff@atlantis:~] d
bin mail
2156
[slaff@atlantis:~]
Това което се случва е да се показва числото 2155 винаги преди показването на самият ред. Проблемът тук е, че 2155 не се
показва на същия ред на който се показва и промпта. За целта ще използваме опцията -n на командата
echo.
[slaff@atlantis:~] PROMPT_COMMAND="echo -n 2155"
2156[slaff@atlantis:~]$
2156[slaff@atlantis:~]$ d
bin mail
Вече нещата изглеждат по-добре.
Сега ще ви покажа как можете да накарате промта да показва размера който заема текущата директория.
Запишете следния Bash скрипт в /usr/local/bin директорията под името
lsbytesum. Директория може и да е друга, стига да е посочена в променливата
PATH.
___________________________________________________
#!/bin/bash
# lsbytesum - sum the number of bytes in a directory listing
TotalBytes=0
for Bytes in $(ls -l | grep "^-" | cut -c30-41)
do
let TotalBytes=$TotalBytes+$Bytes
done
TotalMeg=$(echo -e "scale=3 n$TotalBytes/1048576 nquit" | bc)
echo -n "$TotalMeg"
___________________________________________________
Направете този файл изпълним.
Променяме промпта:
[2158][slaff@atlantis:~]$ PS1="[u@h:w ($(lsbytesum) Mb)]$ "
[slaff@atlantis:~ (0 Mb)]$ cd /bin
[slaff@atlantis:/bin (4.498 Mb)]$
Това е. Вече имаме промпт, който показва колко е големината на текущата директория.
Нищо не пречи да се създадат и други промптове. Опитайте сами да създадете нов.
Може би сте забелязали цветните съобщения при стартирането на
RedHat.
Писането на цветни съобщения е елементарно. Нека да си направим наше цветно съобщение. Опитайте следния пример:
echo -e "�33[41;33;1m Welcome to Linux�33[m"
Тази команда ще изпечата "Welcome to Linux" с жълти букви на червен
фон. Забележете, че текста е обграден от "�33[bg;fg;1m �33[m".
Числото 41 указва, че фонът на буквите трябва да е червен, а 33 указва,
че цвета на буквите трябва да е жълт.
Кодовете на цветовете са следните:
За цвят на фона: 30=черно, 31=червено, 32=зелено, 33=жълто, 34=синьо, 35=пурпурно, 36=тюркоазено, 37=бяло
За цвят на буквите: 0=прозрачно, 40=черно, 41=червено, 42=зелено, 43=жълто, 44=синьо 45=пурпурно, 46=тюркоазено, 47=бяло
Ако искаме да променим нашия надпис и да го направим с бели букви на син фон трябва да напишем следното
echo -e "�33[44;37;1m Welcome to Linux�33[m"
Ето и една примерна програма за Slackware дистрибуцията на Linux
___________________________________________________
#/bin/bash
version="`cat /etc/slackware-version`"
echo -e "�33[41;33;1m Welcome to Slackware $version�33[m"
___________________________________________________
Освен цветни съобщения може да имате и цветен промпт. Оцветяването на
промпта става по същия начин както и нормален текст с тази разлика, че
трябва да заградим текста с [�33[ и m]. За да получим светло син
промпт трябва да направим следното
PS1="[�33[1;34m][$(date +%H%M)][u@h:w]$[�33[0m] "
Ето и кодовете за цвят на буквите:
Черно 0;30 Тъмно сиво 1;30
Синьо 0;34 Светло синьо 1;34
Зелено 0;32 Светло зелено 1;32
Цикламено 0;36 Светло цикламено 1;36
Червено 0;31 Светло червено 1;31
Пурпурно0;35 Светло пурпурно 1;35
Кафяво 0;33 Жълто 1;33
Светло сиво 0;37 Бяло 1;37
Ако искате вашият промпт да бъде със светло синьо на червен фон трябва да
използвате следната комбинация:
[�33[44;1;31m]
или
[�33[44m][�33[1;31m]
Допълнителни кодове:
4: Подчертан, 5: Мигащ, 8: Невидим