Ako prispôsobiť (a farbiť) Váš Bash Prompt

Obsah:

Ako prispôsobiť (a farbiť) Váš Bash Prompt
Ako prispôsobiť (a farbiť) Váš Bash Prompt
Anonim
Väčšina distribúcií Linuxu nakonfiguruje výzvu Bash, aby vyzerala niečo podobne
Väčšina distribúcií Linuxu nakonfiguruje výzvu Bash, aby vyzerala niečo podobne

username@hostname:directory$

Môžete však nakonfigurovať výzvu Bash tak, aby obsahovala všetko, čo sa vám páči, a dokonca si môžete vybrať akékoľvek farby, ktoré sa vám páči.

Príklady krokov tu boli vykonané na Ubuntu 16.04 LTS. Proces by mal byť rovnaký aj v iných distribuciách Linuxu, hoci predvolená výzva Bash a nastavenia v súbore.bashrc môžu byť trochu iné.

Kde je uložená riadka Prompt

Vaša konfigurácia výzvy Bash je uložená vo vašom súbore.bashrc vo vašom účte, na ktorom je

~/.bashrc

Takže, ak je vaše užívateľské meno bob, súbor je na

/home/bob/.bashrc

Súbor môžete otvoriť na zobrazenie aktuálnej premennej Bash. Budeme používať nano ako náš príklad textový editor, aj keď by ste mohli používať aj vi, emacs, alebo akýkoľvek iný textový editor, ktorý vám vyhovuje. Otvorte terminál a spustite:

nano ~/.bashrc

Prejdite nadol na
Prejdite nadol na

PS1=

oddiel. Prvá premenná je pomerne zložitá, pretože obsahuje informácie o farbe - vysvetlíme to neskôr. Druhá premenná, bez informácií o farbe, znie takto:

${debian_chroot:+($debian_chroot)}u@h:w$

Toto je stále trochu komplikované kvôli
Toto je stále trochu komplikované kvôli

${debian_chroot:+($debian_chroot)}

bitov. Títo hovoria len Bashovi, aby vám oznámil, či používate prostredie Debian chrootu a zvyčajne sa nezobrazí. Ak ich ignorujete, je tu predvolená štruktúra premennej Bash prompt:

u@h:w$

u

označuje vaše používateľské meno,

@

označuje znak @,

h

označuje názov hostiteľa (názov počítača),

:

označuje znak:

w

označuje pracovný adresár a

$

označuje hodnotu $, ak ste normálny používateľský účet alebo # ak ste root. Takže, všetko dohromady, dostanete

username@hostname:working_directory$

Ak chcete zmeniť výzvu Bash, stačí pridať, odstrániť alebo zmeniť usporiadanie špeciálnych znakov v premennej PS1. Existuje však mnoho ďalších premenných, ktoré môžete použiť ako predvolené.

Ponechajte textový editor pre teraz-in nano, stlačte klávesy Ctrl + X na ukončenie. Ukážeme vám, ako experimentovať s premennými predtým, než vlastne napíšete novú do vášho súboru.bashrc.

Ako vytvoriť vlastný riadok Bash

Vaša konfigurácia výzvy Bash je uložená v premennej PS1. Ak chcete uložiť obsah premennej PS1 na novú premennú, spustite nasledujúci príkaz:

DEFAULT=$PS1

Teraz môžete nastaviť premennú PS1 na rôzne hodnoty, aby ste mohli experimentovať. Napríklad, prvý riadok tu nastaví výzvu na základnú výzvu "user $", zatiaľ čo druhý nastaví výzvu na základný riadok "user: working_directory $".

PS1='u$ ' PS1='u:w$ '

Ak sa chcete vrátiť späť k predvolenému výzve, stačí spustiť nasledujúci príkaz.

PS1=$DEFAULT

Bash sa obnoví na predvolenú rýchlosť vďaka skutočnosti, že ste predtým uložili predvolené nastavenia. Upozorňujeme, že akékoľvek zmeny, ktoré vykonáte tu, sú pre aktuálnu reláciu Bash len dočasné, takže sa môžete vždy odhlásiť a prihlásiť sa alebo zavrieť a opätovne otvoriť okno terminálu a vrátiť sa k predvolenému výzve. Ale vyššie uvedený riadok umožňuje ľahko vrátiť sa k predvolenému výzve Bash bez ťažkostí s odhlásením alebo zatvorením okna.

Do premennej môžete pridať ľubovoľné znaky alebo text. Takže, ak chcete predpísať predvolenú výzvu s "Hello World", môžete použiť:
Do premennej môžete pridať ľubovoľné znaky alebo text. Takže, ak chcete predpísať predvolenú výzvu s "Hello World", môžete použiť:

PS1='Hello World u@h:w$ '

Teraz, keď máte základné informácie, stačí vedieť, aké sú všetky špeciálne znaky. Pravdepodobne nebudete veľa z nich zaujímať, ale tu je úplný zoznam, ako sa uvádza v príručke Bash:
Teraz, keď máte základné informácie, stačí vedieť, aké sú všetky špeciálne znaky. Pravdepodobne nebudete veľa z nich zaujímať, ale tu je úplný zoznam, ako sa uvádza v príručke Bash:
  • Zvonček:

    a

  • Dátum, vo formáte "Mesačný deň v týždni" (napr. "Tue May 26"):

    d

  • Formát je odovzdaný do strftime (3) a výsledok je vložený do výzvy reťazec; prázdny formát má za následok reprezentáciu časového úseku špecifického pre daný región. Potrebné sú presahy:

    D{format}

  • Únikový znak:

    e

  • Názov hostiteľa, až po prvé '.':

    h

  • Názov hostiteľa:

    H

  • Počet úloh, ktoré v súčasnosti spravuje shell:

    j

  • Základné meno názvu terminálu zariadenia shell:

    l

  • Nový riadok:
  • Výnos z prepravy:
  • Názov shell, základná mena $ 0 (časť po poslednej lomítko):

    s

  • Čas, v 24-hodinovom formáte HH: MM: SS:

  • Čas, v 12-hodinovom formáte HH: MM: SS:

    T

  • Čas, v 12-hodinovom formáte am / pm:

    @

  • Čas, v 24-hodinovom formáte HH: MM:

    A

  • Používateľské meno aktuálneho používateľa:

    u

  • Verzia Bash (napr. 2,00):

    v

  • Uvoľnenie Bash, verzia + patchlevel (napr. 2.00.0):

    V

  • Aktuálny pracovný adresár, s $ HOME skrátený tilde (používa premennú $ PROMPT_DIRTRIM):

    w

  • Základné meno $ PWD, s $ HOME skrátené tilde:

    W

  • Číslo histórie tohto príkazu:

    !

  • Príkazové číslo tohto príkazu:

    #

  • Ak efektívny uid je 0, #, inak $:

    $

  • Znak, ktorého ASCII kód je osmičková hodnota nnn:

    nn

  • Spätné lomítko:

  • Začnite sériu znakov bez tlače. To by sa dalo použiť na vloženie sekvencie riadenia terminálu do výzvy:

    [

  • Ukončenie sekvencie znakov, ktoré nie sú tlačené:

    ]

Takže ak by ste chceli pridať dátum a čas do výzvy Bash a vložiť pracovný adresár na príkaz na druhý riadok, môžete použiť nasledujúcu konštrukciu:

PS1='[d ] u@h

w$ '

Hranaté zátvorky tu nie sú vôbec potrebné, ale pomáhajú vám rozriešiť veci vizuálne a uľahčiť ich čítanie. Ako sme už predtým pokryli, môžete pridať ľubovoľný text alebo normálne znaky premennej, ktorú sa vám páči, takže môžete využiť všetko, čo pre vás pracuje.

Je tu jeden silnejší trik, o ktorom by ste mali vedieť: Môžete pridať výstup ľubovoľného príkazu do výzvy. Kedykoľvek sa zobrazí výzva, Bash spustí príkaz a vyplní aktuálne informácie. Ak chcete to urobiť, stačí zahrnúť ľubovoľný príkaz, ktorý chcete spustiť medzi dvoma
Je tu jeden silnejší trik, o ktorom by ste mali vedieť: Môžete pridať výstup ľubovoľného príkazu do výzvy. Kedykoľvek sa zobrazí výzva, Bash spustí príkaz a vyplní aktuálne informácie. Ak chcete to urobiť, stačí zahrnúť ľubovoľný príkaz, ktorý chcete spustiť medzi dvoma

`

znaky. To nie je apostrof - to je vážny prízvuk, ktorý sa zobrazuje nad klávesom Tab na klávesnici.

Povedzme napríklad, že chcete zobraziť verziu jadra Linuxu v výzve. Môžete použiť riadok ako je nasledujúci:

PS1='u@h on `uname -s -r` w$ '

Ako ďalší príklad, povedzme, že chcete zobraziť prevádzkový čas a priemer zaťaženia systému podľa zobrazenia
Ako ďalší príklad, povedzme, že chcete zobraziť prevádzkový čas a priemer zaťaženia systému podľa zobrazenia

uptime

Príkaz. Mohli by ste použiť nasledujúcu konštrukciu, ktorá pred uplynutím zvyšku výzvy dáva uptime na svoju vlastnú linku.

PS1='(`uptime`)

u@h:w$ '

Nebojte sa experimentovať s rôznymi špeciálnymi znakmi a príkazmi na zostavenie ideálneho príkazového riadka.
Nebojte sa experimentovať s rôznymi špeciálnymi znakmi a príkazmi na zostavenie ideálneho príkazového riadka.

Ako pridať farby do vášho Bash Prompt

Po zistení vašej preferovanej výzvy môžete do nej pridať farby. To je vlastne veľmi jednoduché, ale robí premennú vyzerajú strašne chaotický a komplikovaný, ak nechápete, čo hľadáte.

Napríklad predvolená predvolená výzva na vyvolanie farby bola predtým:

${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$

Alebo znova odstránenie bitov debian_chroot:

[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$

Toto je vlastne len
Toto je vlastne len

u@h:w$

premennú od predchádzajúcej, ale s farebnými informáciami. Naozaj môžeme rozdeliť na niekoľko častí:

[33[01;32m] u@h [33[00m] : [33[01;34m] w [33[00m] $

Prvá časť je

u@h

bit, pred ktorým sú informácie o farbe, ktoré sa zmení na zelenú. Druhá je

:

pred znakom farieb, ktorý odstraňuje akékoľvek sfarbenie. Tretí je

w

bit, pred ktorým sú informácie o farbe, ktoré sa zmení na modrú. Štvrtý je

$

bit, pred ktorým sú zobrazené informácie o farbe, ktoré odstraňujú akékoľvek sfarbenie.

Akonáhle pochopíte, ako vytvoriť vlastné farebné značky, môžete pridať ľubovoľné farby, ktoré sa vám páčia, na akékoľvek časti vášho Bash výzvy, ktoré sa vám páčia.
Akonáhle pochopíte, ako vytvoriť vlastné farebné značky, môžete pridať ľubovoľné farby, ktoré sa vám páčia, na akékoľvek časti vášho Bash výzvy, ktoré sa vám páčia.

Tu je to, čo potrebujete vedieť: Musíte obsahovať všetky informácie o farebnom kóde medzi

[

a

] character

s. Vo vnútri tagu musíte začať buď s

33[

alebo

e[

aby Bash uviedol, že ide o farebné informácie. oba

33[

a

e[

robte to isté.

e[

je kratšia, takže môže byť pohodlnejšie, ale budeme používať

33[

tu, pretože zodpovedá tomu, čo sa používa predvolene. Na konci značky musíte skončiť

m

na označenie konca označenia farieb.

Zlomením toho, tu bude vyzerať každá farebná značka. Jediným rozdielom sú informácie, ktoré pridáte namiesto farby na definovanie aktuálnej farby:

[33[ COLORm]

Bash vám umožňuje zmeniť farbu textu v popredí, pridať atribúty ako "tučné" alebo "podčiarknuté" do textu a nastaviť farbu pozadia.

Tu sú hodnoty pre text v popredí:

  • Čierna: 30
  • Modrá: 34
  • Cyan: 36
  • Zelená: 32
  • Fialová: 35
  • Červená: 31
  • Biela: 37
  • Žltá: 33

Napríklad, pretože purpurový text je farebný kód 32, ktorý by ste použili

[33[ 32m]

pre fialový text.

Môžete tiež určiť atribút pre text. Tento atribút sa musí pridať pred číslom farby oddeleným bodkočiarkou (;). Text s týmito atribútmi bude vyzerať odlišne v rôznych emulátoroch terminálu.
Môžete tiež určiť atribút pre text. Tento atribút sa musí pridať pred číslom farby oddeleným bodkočiarkou (;). Text s týmito atribútmi bude vyzerať odlišne v rôznych emulátoroch terminálu.

Tu sú hodnoty pre atribúty textu:

  • Normálny text: 0
  • Tučný alebo ľahký text: 1 (Závisí to od emulátora terminálu.)
  • Dim Text: 2
  • Text podčiarknutý: 4
  • Blikajúci text: 5 (Toto nefunguje vo väčšine terminálových emulátorov.)
  • Text na obrátený text: 7 (Toto obráti farby popredia a pozadia, takže na bielom pozadí uvidíte čierny text, ak je aktuálny text biely text na čiernom pozadí.)
  • Skrytý text: 8

V skutočnosti nemusíte obsahovať atribút normálneho textu. To je predvolené.

Napríklad, pretože červený text je kód 31 a tučný text je kód 1, mali by ste použiť

[33[ 1;31m]

pre tučný červený text.

Môžete tiež určiť farbu pozadia, ale na farbu pozadia nemôžete pridať atribút.
Môžete tiež určiť farbu pozadia, ale na farbu pozadia nemôžete pridať atribút.

Tu sú hodnoty pre farby pozadia:

  • Čierne pozadie: 40
  • Modré pozadie: 44
  • Azúrové pozadie: 46
  • Zelené pozadie: 42
  • Fialové pozadie: 45
  • Červené pozadie: 41
  • Biele pozadie: 47
  • Žlté pozadie: 43

Napríklad, pretože modré pozadie je kód 44,

[33[ 44m]

špecifikovalo modré pozadie.

Môžete určiť značky popredia aj farby pozadia. Napríklad 42 predstavuje zelené pozadie a 31 predstavuje červený text. Ak chcete, aby sa predvolená výzva stala červeným textom na zelenom pozadí, použite:
Môžete určiť značky popredia aj farby pozadia. Napríklad 42 predstavuje zelené pozadie a 31 predstavuje červený text. Ak chcete, aby sa predvolená výzva stala červeným textom na zelenom pozadí, použite:

PS1='[33[ 42m][33[ 31m]u@h:w$ '

Jednoducho zadáme jednu farbu pozadia a potom jednu farbu textu v popredí, ktorá začína na začiatku výzvy a aplikuje sa na celý text v výzve. V premennej môžete však určiť toľko farebných značiek, ako chcete, aby farbila rôzne časti vašej výzvy, čo sa vám však páči.

Farby pozadia a textu v popredí nepretrúsia, kým nezadáte kód farby 00, vymažte informácie o farbe. Túto značku môžete použiť aj v premennej, aby ste obnovili formátovanie späť na predvolené miesto niekde vo výzve. Napríklad nasledujúci riadok ukončí všetko sfarbenie pred
Farby pozadia a textu v popredí nepretrúsia, kým nezadáte kód farby 00, vymažte informácie o farbe. Túto značku môžete použiť aj v premennej, aby ste obnovili formátovanie späť na predvolené miesto niekde vo výzve. Napríklad nasledujúci riadok ukončí všetko sfarbenie pred

$

charakteru.

PS1='[33[ 42m][33[ 31m]u@h:w\[33[ 00m]$ '

Image
Image

Ako nastaviť nový predvolený

Keď skončíte s experimentovaním s farbami, mali by ste dostať výzvu Bash, ktorá sa vám páči v aktuálnej relácii. Ale pravdepodobne budete chcieť, aby sa táto nová výzva trvalá, takže sa automaticky použije vo všetkých vašich stretnutiach Bash.

Ak to chcete urobiť, stačí zmeniť obsah premennej PS1 v súbore.bashrc, na ktorý sme sa už pozreli.

Otvorte súbor.bashrc v preferovanom textovom editore, napríklad:

nano ~/.bashrc

Prejdite nadol a vyhľadajte sekciu PS1 =.Stačí nahradiť predvolenú premennú s prispôsobenou premennou. Pravdepodobne budete chcieť opustiť

${debian_chroot:+($debian_chroot)}

bity samy osebe - ale nebudú sa objavovať, ak nie ste v chrootovom prostredí.

Zadajte farebnú premennú PS1 pod

if [ '$color_prompt' = yes ]; then

linka. Zadajte premennú bez farieb pod

else

linka.

Uložte súbor a zatvorte textový editor. Napríklad, ak chcete súbor uložiť v nano, stlačte klávesy Ctrl + O, stlačte kláves Enter a potom stlačte klávesy Ctrl + X na ukončenie.
Uložte súbor a zatvorte textový editor. Napríklad, ak chcete súbor uložiť v nano, stlačte klávesy Ctrl + O, stlačte kláves Enter a potom stlačte klávesy Ctrl + X na ukončenie.

Pri ďalšom spustení nového balíka Bash, napríklad prihlásením sa na terminál alebo otvorením nového okna terminálu, uvidíte vašu vlastnú výzvu.

Odporúča: