сряда, 14 януари 2009 г.

Променяне на bash промпта

Преди да започнем да променяме bash промптa е добре да запазим старата му стойност, за всеки случай. Стойността на промптa се пази от променливата на обкръжението PS1. За да запазим тази стойност е добре да я присвоим на друга променлива. Това става по следният начин:


[slaff@atlantis slaff]$ SAVE=$PS1

Сега старата стойност на PS1 променливата се пази от променливата SAVE. PS1 променливата определя как да изглежда нашият промпт. Нека да направим първата промяна и да присвоим на PS1 променливата стойност "command>":

[slaff@atlantis slaff]$ PS1="command>"

В резултат на тази опреция ще имаме следния промпт:


command>

Сега нека се опитаме да възстановим стария промпт

command> PS1=$SAVE
[slaff@atlantis slaff]$

Bash позволява използването и на специални символи, който да стоят в нашият промпт. Ето и някой от тези специални символи:

\a предизвиква пиукане на спикера
\d показва дата във формат "Ден от седмицата" "Месец" Ден от месеца" (примерно "Tue May 26")
\h името на хоста до първата точка (пр. хост subdomain.domain.org -> името на хоста до първата точка = subdomain)
\H цялото име на хоста
\n нов ред
\r нов ред
\s името на шелът, който използваме
\t времето за 24 часа в следния формат HH:MM:SS (HH-час, MM-минути, SS-секунди)
\T време за 12 часа в следния формат HH:MM:SS
\u потребителското име (username)
\v версия на bash шела(примерно 2.00)
\w пълният път до текущата директория
\W само името на текущата директория
\! коя подред е тази команда
\nnn oсмично число
\\ обратно наклонена черта (т.е. \)
\[ начало на последователност от "контролни символи"
\] край на последователност от "контролни символи"

Промптът, който използвахме до момента е съставен от следните специални символи:

\u (потребителско име) т.е slaff
\h името на хоста до първата точка т.е atlantis
\W името на текущата директория т.е slaff

[slaff@atlantis slaff]$ PS1="\u@\h \W> "
slaff@atlantis slaff> ls
bin mail
slaff@atlantis slaff>


Този промпт е най-често използван в повечето Linux дистибуции.
Нека сега да променим промпта така, че да показва и часът:


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]\$ "

Няма коментари:

Публикуване на коментар