Kako prilagoditi (in Colorize) vaš Bash Prompt
Večina distribucij Linuxa konfigurira Bash prompt, da izgleda nekaj podobnega username @ hostname: imenika $
. Lahko pa konfigurirate Bashov poziv, da vsebuje vse, kar želite, in celo izberete barve, ki jih želite.
Primeri tukaj so bili izvedeni na Ubuntu 16.04 LTS. Postopek mora biti enak na drugih distribucijah Linuxa, čeprav je privzeti Bash poziv in nastavitve v datoteki .bashrc morda nekoliko drugačna.
Kjer je shranjena pozivna spremenljivka
Konfiguracija Bash odzivnika je shranjena v datoteki .bashrc vašega uporabniškega računa, ki je na ~ / .bashrc
. Torej, če je vaše uporabniško ime bob, je datoteka na /home/bob/.bashrc
.
Datoteko lahko odprete, da si ogledate trenutno spremenljivko Bash. Uporabili bomo nano kot naš zgled urejevalnika besedila, čeprav lahko uporabite tudi vi, emacs ali kateri koli drug urejevalnik besedila, ki vam je všeč. Odprite terminal in zaženite:
nano ~ / .bashrc
Pomaknite se navzdol do PS1 =
. Prva spremenljivka je precej zapletena, ker vključuje informacije o barvah - to bomo razložili kasneje. Druga spremenljivka, brez informacij o barvi, se glasi:
$ debian_chroot: + ($ debian_chroot) u @ h: w \ t
To je še vedno malo zapleteno zaradi $ debian_chroot: + ($ debian_chroot)
bitov. To samo pove Bashu, da vas obvesti, če uporabljate okolje Debian chroot in običajno ne bo prikazano. Če jih ne upoštevate, je to privzeta struktura spremenljivke Bash prompt:
u @ h: w
u
označuje vaše uporabniško ime, @
označuje znak @, h
označuje ime gostitelja (ime računalnika), :
označuje znak:, w
označuje delovni imenik in \ $
označuje $, če ste običajni uporabniški račun ali #, če ste root. Torej, tako da vse skupaj, dobiš uporabniško ime @ ime gostitelja: working_directory $
.
Če želite spremeniti svoj Bash poziv, morate dodati, odstraniti ali preurediti posebne znake v spremenljivki PS1. Obstaja pa veliko več spremenljivk, ki jih lahko uporabite kot privzete.
Pustite urejevalnik besedila za zdaj-in nano, pritisnite Ctrl + X za izhod. Pokazali vam bomo, kako eksperimentirati s spremenljivkami, preden dejansko zapišete novo v vašo datoteko .bashrc.
Kako ustvariti Bash Prompt po meri
Konfiguracija Bash prompta je shranjena v spremenljivki PS1. Če želite vsebino spremenljivke PS1 shraniti v novo spremenljivko, zaženite ta ukaz:
DEFAULT = $ PS1
Zdaj lahko nastavite spremenljivko PS1 na različne vrednosti, da poskusite. Na primer, prva vrstica bo nastavila vaš poziv na osnovni poziv »uporabnik $«, drugi pa bo vaš poziv nastavil na osnovni poziv »uporabnik: delovni_direktorij«.
PS1 = "u: w:" \ t
Če se kdaj želite vrniti na privzeti poziv, zaženite naslednji ukaz.
PS1 = $ DEFAULT
Bash bo obnovljen v privzeti poziv, ker ste prej shranili te privzete nastavitve. Upoštevajte, da so vse spremembe, ki jih naredite tukaj, le začasne za trenutno sejo Bash, tako da se lahko vedno odjavite in se ponovno prijavite ali zaprete ter ponovno odprete terminalsko okno, da se vrnete v privzeti poziv. Zgornja vrstica pa omogoča preprosto vrnitev na privzeti Bashov poziv brez težav pri odjavi ali zapiranju okna.
V spremenljivko lahko dodate vse znake ali besedilo. Če želite prednastaviti privzeti poziv s »Hello World«, lahko uporabite:
PS1 = "Zdravo Svet, u @ h: w"
Zdaj, ko imate osnove, morate vedeti, kaj so vsi posebni znaki. Verjetno vam ne bo mar za veliko teh, toda tukaj je celoten seznam, kot je prikazan v priročniku Bash:
- Znak zvonca:
a
- Datum v obliki zapisa »Dan v tednu v mesecu« (npr. »Torej, 26. maj«):
d
- Format se prenese na strftime (3) in rezultat se vstavi v niz pozivov; prazen format ustvari časovno reprezentacijo, ki je odvisna od jezika. Potrebne so:
D format
- Znak za izhod v sili:
e
- Ime gostitelja do prvega ".":
h
- Ime gostitelja:
H
- Število opravil, ki jih trenutno upravlja lupina:
j
- Osnovno ime terminalske naprave ukazne lupine:
l
- Nova vrstica:
n
- Povrnitev vozička:
r
- Ime lupine, osnovno ime $ 0 (del, ki sledi zadnji poševnici):
s
- Čas v 24-urni obliki HH: MM: SS:
. \ t
- Čas v 12-urni obliki HH: MM: SS:
A. \ t
- Čas v 12-urni obliki:
@
- Čas v 24-urni obliki HH: MM:
A. \ t
- Uporabniško ime trenutnega uporabnika:
u
- Različica Bash (npr. 2.00):
v
- Izdaja Bash, različica + patchlevel (npr. 2.00.0):
V
- Trenutni delovni imenik, kjer je $ HOME skrajšan z tildo (uporablja se spremenljivka $ PROMPT_DIRTRIM):
w
- Osnovno ime $ PWD, s $ HOME okrajšano z tildo:
W
- Številka zgodovine tega ukaza:
\!
- Številka ukaza tega ukaza:
. \ T
- Če je dejanski uid 0, #, sicer $:
\ $
- Znak, katerega ASCII koda je oktalna vrednost nnn:
nnn
- Poševnica nazaj:
. \ T
- Začnite zaporedje znakov brez tiskanja. To se lahko uporabi za vgradnjo zaporedja krmiljenja terminala v poziv:
[] \ T
- Konča zaporedje znakov, ki niso tiskani:
. \ T
Torej, če želite dodati datum in uro v svoj Bash odzivnik in uvrstiti delovni imenik na ukaz v drugo vrstico, lahko uporabite naslednjo konstrukcijo:
PS1 = "[d] u @ h \ t
Oglati oklepaji tukaj sploh niso potrebni, ampak pomagajo razčleniti vidno in narediti vrstico lažjo za branje. Kot smo prej opisali, lahko spremenljivki, ki jo želite, dodate katero koli besedilo ali normalne znake, zato se lahko prepustite uporabiti vse, kar vam ustreza.
Obstaja še en zmogljiv trik, o katerem bi morali vedeti: izpisu katerega koli ukaza lahko dodate pozivu. Vsakič, ko se prikaže poziv, Bash izvede ukaz in izpolni trenutne informacije. To storite tako, da vključite vse ukaze, ki jih želite pognati med dvema "
znakov. To ni apostrof - to je grob naglas, ki se pojavi nad tipko Tab na tipkovnici.
Recimo, da želite v pozivu videti različico jedra Linuxa. Uporabite lahko vrstico, kot je ta:
U @ h na 'uname -s -r' \ t
Kot drug primer, recimo, da si želite ogledati uptime sistema in povprečno obremenitev, kot ga prikazuje uptime
ukaz. Uporabite lahko naslednjo konstrukcijo, ki postavi uptime na svojo linijo pred preostalim pozivom.
PS1 = "(" uptime ") \ t
Vas prosimo, da eksperimentirate z različnimi posebnimi znaki in ukazi za sestavljanje vašega idealnega ukaznega poziva.
Kako dodati barve vašemu Bash pozivu
Ko ugotovite želeni poziv, mu lahko dodate barve. To je pravzaprav zelo preprosto, vendar je spremenljivka videti zelo grd in zapletena, če ne razumete, kaj gledate.
Privzeta spremenljivka barvnega pozivnika iz prejšnjih je bila na primer:
$ debian_chroot: + ($ debian_chroot) [03 [01; 32m] u @ h [033 [00m: [033 [01; 34m] w \ t [00m]
Ali pa znova odstranite bitove debian_chroot:
[03 [01; 32m]: [@ [035] [033]
To je pravzaprav samo u @ h: w $
spremenljivka od prejšnje, vendar z informacijami o barvah. Res lahko razčlenimo na nekaj odsekov:
[03 [01; 32 m] \ tu @ h [[00m] \ t: [03 [01; 34 m] \ tw [[00m] \ t\ $
Prvi del je u @ h
pred barvnimi informacijami, ki jih spremeni v zeleno. Drugi je :
pred barvnimi informacijami, ki odstranijo vse barve. Tretji je w
pred barvnimi informacijami, ki postanejo modre. Četrti je \ $
pred barvnimi informacijami, ki odstranijo vse barve.
Ko boste razumeli, kako lahko ustvarite lastne barvne oznake, lahko v poljubne odseke Bash odzivnika, ki vam je všeč, dodate poljubne barve.
To morate vedeti: Vsebovati morate celotne informacije o barvni kodi med [] \ T
in znak
s. Znotraj oznake morate začeti z njo 033 [
ali e \ t
, da Bashu sporočite, da so to barvne informacije. Oboje 033 [
in e \ t
storite isto. e \ t
je krajši, zato je lahko bolj primeren za uporabo, vendar ga bomo uporabili 033 [
tukaj, ker ustreza privzetemu. Na koncu oznake morate končati z m
, da označite konec barvne oznake.
Razbijte to, tako bo izgledala vsaka barvna oznaka. Edina razlika je v podatkih, ki jih dodate namesto COLOR, da določite dejansko barvo:
[3 \ tBARVAm
Bash vam omogoča, da spremenite barvo besedila v ospredju, v besedilo dodate atribute, kot sta »krepko« ali »podčrtano«, in nastavite barvo ozadja.
Tu so vrednosti za besedilo v ospredju:
- Črna: 30
- Modra: 34
- Cijan: 36
- Zelena: 32
- Vijolična: 35
- Rdeča: 31
- Bela: 37
- Rumena: 33
Na primer, ker je vijolično besedilo barvna koda 32, jo uporabite [3 \ t32m
za vijolično besedilo.
Določite lahko tudi atribut za besedilo. Ta atribut mora biti dodan pred številko barve, ločeno s podpičjem (;). Besedilo s temi atributi bo v različnih terminalnih emulatorjih drugačno.
Tu so vrednosti za atribute besedila:
- Običajno besedilo: 0
- Krepko ali svetlo besedilo: 1 (odvisno od emulatorja terminala.)
- Dim Text: 2
- Podčrtano besedilo: 4
- Utripajoče besedilo: 5 (to ne deluje v večini terminalskih emulatorjev.)
- Obrnjeno besedilo: 7 (To obrne barve ospredja in ozadja, tako da boste videli črno besedilo na beli podlagi, če je trenutno besedilo belo besedilo na črnem ozadju.)
- Skrito besedilo: 8
Dejansko ne potrebujete običajnega atributa besedila. To je vsekakor privzeto.
Na primer, ker je rdeče besedilo koda 31 in krepko besedilo je koda 1, bi jo uporabili [3 \ t1;m
za krepko rdeče besedilo.
Določite lahko tudi barvo ozadja, vendar v barvo ozadja ne morete dodati atributa.
Tu so vrednosti za barve ozadja:
- Črno ozadje: 40
- Modro ozadje: 44
- Modro ozadje: 46
- Zeleno ozadje: 42
- Vijolično ozadje: 45
- Rdeča podlaga: 41
- Bela podlaga: 47
- Rumeno ozadje: 43
Na primer, ker je modro ozadje koda 44, [3 \ t44m
bi določili modro ozadje.
Določite lahko oznake za ospredje in barvo ozadja. Na primer, 42 predstavlja zeleno ozadje, 31 pa rdeče besedilo. Če želite, da bo privzeti poziv postal rdeče besedilo na zelenem ozadju, uporabite:
PS1 = "[\ t42m [3] \ t31m = u @ h: w \ t
Tukaj podamo samo eno barvo ozadja in nato eno barvo besedila v ospredju, ki se začne na začetku poziva in se uporablja za celotno besedilo v pozivu. Vendar pa lahko v spremenljivki določite toliko barvnih oznak, kot želite, da barvate različne odseke svojega poziva, kakor želite.
Barve ozadja in besedila v ospredju se nadaljujejo po pozivu, razen če določite barvno kodo 00, ki zbriše informacije o barvi. To oznako lahko uporabite tudi v spremenljivki, da ponastavite formatiranje na privzeto mesto v vašem pozivu. Na primer, naslednja vrstica bi končala vse barve pred \ $
znak.
PS1 = "[\ t42m [3] \ t31m @ u: h: w [\ t00m \ t
Kako nastaviti vaš novi privzeti poziv
Ko končate eksperimentiranje z barvami, morate imeti v trenutni seji všeč Bash poziv. Ampak verjetno želite, da bo ta nov poziv stalen, tako da bo samodejno uporabljen v vseh vaših Bash sejah.
Če želite to narediti, morate spremeniti vsebino spremenljivke PS1 v datoteki .bashrc, ki smo jo pregledali prej..
Odprite datoteko .bashrc v želenem urejevalniku besedila, tako kot:
nano ~ / .bashrc
Pomaknite se navzdol in poiščite razdelek PS1 =. Samo zamenjajte privzeto spremenljivko s prilagojeno spremenljivko. Verjetno boste želeli zapustiti $ debian_chroot: + ($ debian_chroot)
samo bitov, vendar se ne bodo prikazali, razen če ste v okolju chroot.
Vnesite barvno spremenljivko PS1 pod če ["$ color_prompt" = yes]; potem
vrstico. Vnesite spremenljivko brez barv pod drugače
vrstico.
Shranite datoteko in zaprite urejevalnik besedila. Če želite datoteko na primer shraniti v nano, pritisnite Ctrl + O, pritisnite Enter in pritisnite Ctrl + X za izhod.
Naslednjič, ko boste zagnali novo lupino Bash - na primer s prijavo na terminalu ali z odpiranjem novega okna terminala - boste videli svoj prilagojen poziv.