Úvodná » ako » Ako prispôsobiť (a farbiť) Váš Bash Prompt

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

    Väčšina linuxových distribúcií nakonfiguruje výzvu Bash tak, aby vyzerala niečo podobne username @ hostname: adresár $ . Môžete však nakonfigurovať výzvu Bash tak, aby obsahovala všetko, čo sa vám páči, a dokonca si vyberte akékoľvek farby, ktoré sa vám páčia.

    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á v súbore .bashrc vášho používateľského konta, 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žiť aj vi, emacs, alebo akýkoľvek iný textový editor, ktorý vám vyhovuje. Otvorte terminál a spustite:

    nano ~ / .bashrc

    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 $ Debian_chroot: + ($ debian_chroot) bitov. To len hovorí Bashovi, aby vám oznámil, či používate prostredie chrootu Debianu 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 skôr, než vlastne píšete nový súbor do vášho .bashrc súboru.

    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:

    Predvolené = $ 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ú výzvu "user: working_directory $".

    PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"

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

    PS1 = $ DEFAULT

    Bash sa obnoví na predvolenú rýchlosť vďaka tomu, ž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 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 uvedený riadok umožňuje ľahko dostať späť na predvolené výzvy 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 "Hello World", môžete použiť:

    PS1 = "Dobrý deň svet \ u @ \ h: \ w \ $"

    Teraz, keď máte základné informácie, musíte 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 vedie k reprezentácii časového úseku špecifickej pre daný región. Požadované zárezy: \ D formát
    • Ú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: \ n
    • Výnos z prepravy: \ r
    • Názov shell, názov pozície $ 0 (časť nasledujúca po poslednej lomítko): \ s
    • Čas, v 24-hodinovom formáte HH: MM: SS: \ t
    • Č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, pričom $ HOME je 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 osemčia hodnota nnn: \ nnn
    • Spätné lomítko: \\
    • Začnite sériu znakov bez tlače. Toto by sa mohlo použiť na vloženie riadiacej sekvencie terminálu do výzvy: \ [
    • Ukončenie sekvencie znakov bez tlače: \]

    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 \ t] \ u @ \ h \ n \ w \ $"

    Hranaté zátvorky tu vôbec nie sú 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 do premennej, ktorá sa vám páči, a preto môžete využiť všetko, čo pre vás funguje.

    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 spusti príkaz a vyplní aktuálne informácie. Ak chcete to urobiť, stačí pridať akýkoľvek príkaz, ktorý chcete spustiť medzi dvoma ' znaky. To nie je apostrof - to je vážny prízvuk, ktorý sa objavuje 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 na 'uname -s -r' \ w \ $"

    Ako ďalší príklad, povedzme, že chcete zobraziť prevádzkový čas a priemer zaťaženia systému, ako to zobrazuje uptime Príkaz. Mohli by ste použiť nasledujúcu konštrukciu, ktorá pred uplynutím zvyšku výzvy uloží dobu prevádzky na vlastnú linku.

    PS1 = "(uptime) \ n \ u @ \ h: \ w $"

    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

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

    Napríklad predvolená predvolená predvolená farba bola:

    $ Debian_chroot: + ($ debian_chroot) \ [\ 033 [01, 32 m \] \ u '\ h \ [\ 033 [00 m \]: \ [\ 033 [01, 34 m \] \ w \ [\ 033 [00M \] \ $

    Alebo znova odstránite bity debian_chroot:

    \ [\ 033 [01, 32 m \] \ u '\ h \ [\ 033 [00 m \]: \ [\ 033 [01, 34 m \] \ w \ [\ 033 [00 m \] \ $

    Toto je vlastne len \ U '\ h: \ w $ premennú od predchádzajúcej, ale s farebnými informáciami. Naozaj môžeme rozdeliť do niekoľkých častí:

    \ [\ 033 [01; 32 mil \]\ U '\ h \ [\ 033 [00 m \]: \ [\ 033 [01; 34 m \]\ w \ [\ 033 [00 m \]\ $

    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ý odstráni 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.

    Tu je to, čo potrebujete vedieť: Musíte zahrnúť celé informácie o farebnom kóde medzi \ [  a \]s. Vo vnútri štítku musíte začať buď s \ 033 [ alebo \ E [ aby Bash uviedol, že ide o farebné informácie. oba \ 033 [ a \ E [ robte to isté. \ E [ je kratšia, takže môže byť pohodlnejšie, ale budeme používať \ 033 [ tu, pretože zodpovedá tomu, čo sa používa predvolene. Na konci značky musíte skončiť m \ na označenie konca farebnej značky.

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

    \ [\ 033 [COLORm \]

    Bash 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 fialový text je farebný kód 32, ktorý by ste použili \ [\ 033 [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ť inak 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áleží na emulátora terminálu.)
    • Dim Text: 2
    • Podčiarknutý text: 4
    • Blikajúci text: 5 (Toto nefunguje vo väčšine terminálových emulátorov.)
    • Opačný text: 7 (Toto invertuje 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ť \ [\ 033 [1; 31m \] pre odvážny červený text.

    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, \ [\ 033 [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:

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [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í pokračujú v prekročení výzvy, pokiaľ 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šetky sfarbenia pred \ $ znak.

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u '\ h: \ w \\ [\ 033 [00m \] \ $ "

    Ako nastaviť nový predvolený

    Keď dokončíte experimentovanie 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 táto nová výzva trvalá, takže sa automaticky použije vo všetkých vašich stretnutiach Bash.

    Aby ste to urobili, stačí zmeniť obsah premennej PS1 v súbore .bashrc, na ktorý sme sa pozreli predtým.

    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 ak ["$ color_prompt" = yes); potom linka. Zadajte premennú bez farieb pod inak riadok.

    Uložte súbor a zatvorte textový editor. Napríklad, ak chcete súbor uložiť do programu nano, stlačte klávesy Ctrl + O, stlačte kláves Enter a stlačením klávesov Ctrl + X opustíte.

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