PS1
Tutvustuseks
Enamik meist töötab shell prompt'iga. Vaikimisi kuvavad enamik Linux'i distro'sid hostinime ja jooksvat töökataloogi, kus hetkel asutakse. Prompt'i saab lihtsate vahenditega panna kuvama kasutaja erinevat informatsiooni nagu kellaaega ning lisada värve.
Kasutamine
Jooksvate prompt'i seadete kuvamine:
$ echo $PS1
Vaikimise on väljundiks:
\u@\h:\w\$
kus \u märgib kasutajanime, \h märgib hostinime, \w märgib jooksvat töökataloogi.
Bash lubab prompt'i string'e muuta sisestades kaldkriipsuga sümboleid, mis lahti selgitatuna märgivad järgnevat:
\a : prompt annab helisignaali \d : kuupäeva kuvamine formaadis nädalapäev-kuu-kuupäev \D{formaat} : formaat edastatakse käsule strftime ja tulemus sisestatakse prompt'i string'i, formaadi tühjaks jätmine märgib, et tulemus kuvatakse lokaalses aja esituses \e : ASCII kooditabeli katkestussümboli sisestamine \h : hostinimi esimese '.' \H : hostinimi \j : shellis hetkel jooksvate tööde nimekirja kuvamine \l : shell'i terminalseadme nime kuvamine \n : uue rea sisestamine \r : kursori rea algusesse viimine \s : shell'i nime kuvamine \t : hetkeaja 24-tunni tund-minut-sekund formaadis kuvamine \T : hetkeaja 12-tunni tund-minut-sekund formaadis kuvamine \@ : hetkeaja 12-tunni AM/PM formaadis kuvamine \A : hetkeaja 24-tunni tund-minut formaadis kuvamine \u : kasutajanimi kuvamine \v : bash'i versiooni kuvamine \V : bash'i versiooni ja patch'i numbri kuvamine \w : jooksva töökataloogi kuvamine \W : jooksva töökataloogi kuvamine \! : antud käsku ajaloos märkiva jäjekorranumbri kuvamine \# : antud käsu käsunumbri kuvamine \$ : juhul kui UID on 0 kuvatakse #, muul juhul $ \nnn : kuvab sümboli, mis vastab kaheksandik numbrile nnn \\ : kaldkriipsu kuvamine \[ : alustab mitte-kuvatavate sümbolite vahemikku \[ : lõpetab mitte-kuvatavate sümbolite vahemiku
Näiteks muudame prompt'i nii, et see kuvab kuupäeva ja kellaja, hostinime ning jooksva kataloogi:
PS1="[\d \t \u@\h:\w ] $ "
Nüüd näeb prompt välja järgnev:
[Sun May 01 14:42:50 student@server2:~ ] $
Värvide lisamine
Värvi lisamine prompt'i string'ile toimub järgneva käsuga:
'\e[x;ym $PS1 \e[m'
kus \e[ alustab värvi muutmise käsuga, x;y märgivad kasutatavat värvipaari, $PS1 on kasutatava shell'i prompt ja \e[m lõpetab värvi muutmise käsu.
Prompt'i värvi punaseks muutmiseks tuleb sisestada järgnev käsk:
export PS1="\e[0;31m[\u@\h \W]$ \e[mv"
Värvide tabel
0;30 : must 0;34 : sinine 0;32 : roheline 0;36 : helesinine 0;31 : punane 0;35 : lilla 0;33 : pruun
0 asendamisel 1-ga saadakse antud värvi heledam varjant
Tput käsklus
Värvide lisamisel võib kasutada ka tput käsku.
Järgnev muudab prompt'i punaseks:
export PS1="\[$(tput setaf 1)\]\]\u@\h:\w $ \[$(tput sgr0)\]"
Tput'i käske:
tput bold : paksus kirjas kuvamine tput rev : kuvab värvid ümberpööratult, taustavärv ja märkide värv on vahetuses tput sgr0 : taastab algseisud tput setaf {CODE} : märkide värvi seadmine tput setab {CODE} : taustavärvi seadmine
Tput'i värvide tabel:
0 : must 1 : punane 2 : roheline 3 : kollane 4 : sinine 5 : violetne 6 : helesinine 7 : valge
Muudatuste salvestamine
Uued shell'i seaded on ajutised, see tähendab, et väljalogimisel seaded kaovad. Selle vältimiseks piisab seadete lisamisest.bashrc või .bash_profile faili.
Avame .bashrc faili:
sudo nano .bashrc
Lisame lõppu:
export PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
Prompt on nüüd uuel sisselogimisel rohelist värvi.
Võimalik on ka keerukamate konstruktsioonide lisamine:
#If id command returns zero, you’ve root access. if [ $(id -u) -eq 0 ]; then # you are root, set red colour prompt PS1="\\[$(tput setaf 1)\\]\\u@\\h:\\w #\\[$(tput sgr0)\\]" else # normal PS1="[\\u@\\h:\\w] $" fi
Kasutaja prompt muutub root'i logimisel punaseks.
Lisaks lugemist
Bashish võimaldab teemade lisamist tekstiterminalidele Aterm võimaldab visuaalsete effektide lisamist
Kasutatud kirjandus
Koostas Juhan Liiva A21