Kotisivu » miten » Bash Promptin mukauttaminen (ja väritys)

    Bash Promptin mukauttaminen (ja väritys)

    Useimmat Linux-jakelut määrittävät Bash-kehotteen näyttämään jotain käyttäjätunnus @ hostname: hakemisto $ . Mutta voit määrittää, että Bash-kehote sisältää mitä haluat, ja jopa valita haluamasi värit.

    Tässä esimerkkivaiheet suoritettiin Ubuntu 16.04 LTS: llä. Prosessin pitäisi olla sama muissa Linux-jakeluissa, vaikka Bashrc-tiedoston oletusarvoinen Bash-kehote ja asetukset voivat olla hieman erilaisia.

    Jos pikavalinnan muuttuja on tallennettu

    Bash-kehotteen asetukset on tallennettu käyttäjän tilisi .bashrc-tiedostoon, joka on osoitteessa ~ / .Bashrc. Jos käyttäjätunnuksesi on bob, tiedosto on /home/bob/.bashrc.

    Voit avata tiedoston tarkastelemaan nykyistä Bash-muuttujaa. Käytämme nanoa esimerkkitoimittajana, vaikka voit myös käyttää vi, emacsia tai muuta tekstieditoria, johon olet tyytyväinen. Avaa terminaali ja suorita:

    nano ~ / .bashrc

    Vieritä alas kohtaan PS1 = osiossa. Ensimmäinen muuttuja näyttää melko monimutkaiselta, koska se sisältää väritietoa - selitämme sen myöhemmin. Toinen muuttuja ilman väritietoja on seuraava:

    $ Debian_chroot: + ($ debian_chroot) \ u @ \ h: \ w \ $

    Tämä on vielä hieman monimutkainen $ Debian_chroot: + ($ debian_chroot) bittiä. Nämä kertovat vain, että Bash kertoo, että käytät Debian-chroot-ympäristöä eikä sitä yleensä näytetä. Niiden jättäminen huomiotta, tässä on Bash-kehotteen muuttujan oletusrakenne:

    \ U @ \ h: \ w \ $

    \ u osoittaa käyttäjänimesi, @ ilmaisee @ -merkin, \ h ilmaisee isäntänimen (tietokoneen nimi), : ilmaisee: merkin, \ w ilmaisee työhakemiston ja \ $ ilmaisee $, jos olet normaali käyttäjätili tai # jos olet root. Joten, saatat kaiken yhteen, saat käyttäjätunnus @ hostname: working_directory $.

    Jos haluat vaihtaa Bash-kehotteen, sinun tarvitsee vain lisätä, poistaa tai järjestää PS1-muuttujan erikoismerkkejä. Mutta on olemassa monia muita muuttujia, joita voit käyttää kuin oletukset.

    Jätä tekstieditori nyt nano-tilaan, poistu painamalla Ctrl + X. Näytämme, miten voit kokeilla muuttujia ennen kuin kirjoitat uuden .bashrc-tiedostoon.

    Mukautetun Bash Promptin luominen

    Bash-kehotteen asetukset on tallennettu PS1-muuttujaan. Jos haluat tallentaa PS1-muuttujan sisällön uuteen muuttujaan, suorita seuraava komento:

    Oletus = $ PS1

    Nyt voit asettaa PS1-muuttujan kokeilemaan eri arvoja. Esimerkiksi ensimmäisellä rivillä voit asettaa kehotteen peruskäyttäjälle $ user, kun taas toinen asettaa kehotteen peruskäyttäjälle: user_direct_directory $.

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

    Jos haluat koskaan palata oletuskehotteeseen, suorita seuraava komento.

    PS1 = $ DEFAULT

    Bash palautetaan oletuskehotteeseen, koska olet tallentanut nämä oletusasetukset aikaisemmin. Huomaa, että muutokset, jotka teet täällä, ovat vain väliaikaisia ​​nykyiselle Bash-istunnolle, joten voit aina kirjautua ulos ja kirjautua takaisin sisään tai sulkea ja avata pääteikkunan palataksesi takaisin oletuskehotteeseen. Yllä oleva rivi mahdollistaa kuitenkin helposti palata oletusarvon Bash-kehotteeseen ilman vaivaa kirjautua ulos tai sulkea ikkunaa.

    Voit lisätä muuttujaan merkkejä tai tekstiä. Niinpä etukäteen oletuskehote "Hello World" -toiminnolla voit käyttää:

    PS1 = "Hello World u @ h: w"

    Nyt kun sinulla on perusasiat, sinun tarvitsee vain tietää, mitä kaikki erikoismerkit ovat. Et todennäköisesti välitä monista näistä, mutta tässä on täydellinen luettelo Bash-käsikirjassa:

    • Kellon merkki: \
    • Päivämäärä "Viikonpäiväkuukauden" muodossa (esim. "Toukokuu 26"): \ d
    • Muoto siirretään strftime (3): een ja tulos lisätään kehotettuun merkkijonoon; tyhjän formaatin tuloksena on paikalliskohtainen aikaesitys. Kiinnikkeet ovat pakollisia: \ D muodossa
    • Poistu-merkki: \ e
    • Isäntänimi, ensimmäiseen kohtaan asti. \ h
    • Isäntänimi: \ H
    • Kuoren parhaillaan hallinnoimien töiden määrä: \ j
    • Kuoren päätelaitteen nimi: \ l
    • Uusi rivi: \ n
    • Vaunun palautus: \ r
    • Kuoren nimi, $ 0 perusnimi (lopullisen viivan jälkeinen osa): \ s
    • Aika, 24 tunnin HH: MM: SS-muodossa: \ t
    • Aika, 12 tunnin HH: MM: SS-muodossa: \ T
    • Aika, 12 tunnin am / pm-muodossa: \ @
    • Aika, 24 tunnin HH: MM-muodossa: \
    • Nykyisen käyttäjän käyttäjätunnus: \ u
    • Bashin versio (esim. 2.00): \ v
    • Bashin, version + patchlevelin (esim. 2.00.0) julkaisu: \ V
    • Nykyinen työhakemisto, jossa $ HOME on lyhennetty tildellä (käyttää $ PROMPT_DIRTRIM muuttujaa): \ w
    • $ PWD: n perusnimi, jossa $ HOME on lyhennetty tildellä: \ W
    • Tämän komennon historian numero: \!
    • Tämän komennon komentonumero: \ #
    • Jos tehokas uid on 0, #, muuten $: \ $
    • Merkki, jonka ASCII-koodi on oktaaliarvo nnn: \ nnn
    • Taivutusviiva: \\
    • Aloita sarja ei-tulostavia merkkejä. Tätä voidaan käyttää päätelaitteen ohjaussekvenssin upottamiseen kehotteeseen: \ [
    • Lopeta tulostamattomien merkkien sarja: \]

    Jos siis haluat lisätä päivämäärän ja kellonajan Bash-kehotteeseen ja laittaa työhakemiston komentoon toiseen riviin, voit käyttää seuraavaa rakennetta:

    PS1 = "[d] n" \ t

    Tässä olevat neliösulkeet eivät ole lainkaan välttämättömiä, mutta auttavat rikkomaan asioita visuaalisesti ja helpottavat lukemista. Kuten aiemmin käsiteltiin, voit lisätä haluamaasi muuttujaan mitä tahansa tekstiä tai normaaleja merkkejä, joten voit vapaasti käyttää mitä tahansa työtä.

    Sinun pitäisi tietää vielä yksi tehokas temppu: Voit lisätä minkä tahansa komennon lähdön kehotteeseen. Aina kun kehote tulee näyttöön, Bash suorittaa komennon ja täyttää nykyiset tiedot. Voit tehdä tämän tekemällä vain minkä tahansa komennon, jota haluat käyttää kahden välillä ' merkkiä. Se ei ole apostroofi, se on vakava aksentti, joka näkyy Tab-näppäimen yläpuolella.

    Oletetaan esimerkiksi, että haluat tarkastella Linux-ytimen versiota kehotteessa. Voit käyttää seuraavaa riviä:

    PS1 = "u @ h" uname -s -r ": ssa \ t

    Toisena esimerkkinä oletetaan, että haluat tarkastella järjestelmän käyttöaikaa ja kuorman keskiarvoa käytettävyys komento. Voit käyttää seuraavaa rakennetta, joka asettaa käyttöajan omalle rivilleen ennen muuta kehotusta.

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

    Voit kokeilla erilaisia ​​erikoismerkkejä ja komentoja koottaaksesi ihanteellisen komentokehotteen.

    Värien lisääminen Bash Promptiin

    Kun olet havainnut haluamasi kehotteen, voit lisätä värejä. Tämä on oikeastaan ​​hyvin yksinkertaista, mutta muuttuja näyttää hirvittävän sotkuiselta ja monimutkaiselta, jos et ymmärrä mitä katsot.

    Esimerkiksi oletusarvoinen värivalikoimamuuttuja aikaisemmin oli:

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

    Tai poista debian_chroot-bitit jälleen kerran:

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

    Tämä on oikeastaan ​​vain \ U @ \ h: \ w $ muuttujaa aikaisemmin, mutta väritiedoilla. Todella, voimme hajottaa sen muutamiin osiin:

    \ [\ 033 [01, 32m \]\ U @ \ h \ [\ 033 [00m \]: \ [\ 033 [01, 34m \]\ w \ [\ 033 [00m \]\ $

    Ensimmäinen osa on \ U @ \ h bitti, jota edeltää väritiedot, jotka muuttavat sen vihreäksi. Toinen on : merkki, jota edeltää väritiedot, jotka poistavat värit. Kolmas on \ w bitti, jota edeltää väritiedot, jotka muuttavat sen siniseksi. Neljäs on \ $ bitti, jota edeltää väritiedot, jotka poistavat värit.

    Kun ymmärrät, miten voit rakentaa omia väritunnisteita, voit lisätä haluamasi värit mihin tahansa Bash-kehyksen osaan, jota haluat.

    Tässä on tiedettävä: Sinun on sisällytettävä koko värikooditiedot \ [  ja merkkis. Merkin sisällä sinun on aloitettava joko \ 033 [ tai \ E [ ilmoittaa Bashille, että tämä on väritietoja. molemmat \ 033 [ ja \ E [ tee sama asia. \ E [ on lyhyempi, joten se voi olla kätevämpää käyttää, mutta käytämme \ 033 [ täällä, koska se vastaa oletusarvoisesti käytettyä. Tunnuksen lopussa sinun on lopetettava m \ merkitä värileiman loppu.

    Rikkoutuminen, mitä jokainen värimerkki näyttää. Ainoa ero on niiden tietojen lisääminen, jotka olet lisännyt COLORin sijasta todellisen värin määrittämiseksi:

    \ [\ 033 [VÄRIm \]

    Bash-toiminnolla voit muuttaa etualan tekstin väriä, lisätä tekstin ominaisuuksia, kuten “lihavoitu” tai ”alleviivata”, ja asettaa taustavärin.

    Seuraavassa on etualan tekstin arvot:

    • Musta: 30
    • Sininen: 34
    • Syaani: 36
    • Vihreä: 32
    • Violetti: 35
    • Punainen: 31
    • Valkoinen: 37
    • Keltainen: 33

    Esimerkiksi, koska violetti teksti on värikoodi 32, voit käyttää sitä \ [\ 033 [32m \]  violetti teksti.

    Voit myös määrittää tekstin määritteen. Tämä määrite on lisättävä ennen värien numeroa, erotettuna puolipisteellä (;). Näillä ominaisuuksilla varustettu teksti näyttää erilaiselta eri päätelaitteiden emulaattoreissa.

    Tässä on tekstin määritteiden arvot:

    • Normaali teksti: 0
    • Lihavoitu tai kevyt teksti: 1 (Se riippuu päätelaitteen emulaattorista.)
    • Dim Teksti: 2
    • Alleviivattu teksti: 4
    • Vilkkuva teksti: 5 (tämä ei toimi useimmissa pääteemulaattoreissa.)
    • Käänteinen teksti: 7 (tämä kääntää etualan ja taustavärit, joten näet mustan tekstin valkoisella taustalla, jos nykyinen teksti on valkoista tekstiä mustalla taustalla.)
    • Piilotettu teksti: 8

    Sinun ei tarvitse sisällyttää normaalia tekstiä. Se on joka tapauksessa oletusarvo.

    Esimerkiksi koska punainen teksti on koodi 31 ja lihavoitu teksti on koodi 1, voit käyttää sitä \ [\ 033 [1; 31m \] lihavoitu punainen teksti.

    Voit myös määrittää taustavärin, mutta et voi lisätä attribuuttia taustaväriin.

    Tässä on taustavärin arvot:

    • Musta tausta: 40
    • Sininen tausta: 44
    • Syaani tausta: 46
    • Vihreä tausta: 42
    • Violetti tausta: 45
    • Punainen tausta: 41
    • Valkoinen tausta: 47
    • Keltainen tausta: 43

    Esimerkiksi, koska sininen tausta on koodi 44, \ [\ 033 [44m \] sininen tausta.

    Voit määrittää sekä etualan että taustavärin tunnisteet. Esimerkiksi 42 edustaa vihreää taustaa ja 31 kuvaa punaista tekstiä. Jos haluat tehdä oletuskehotteen punaiseksi tekstiksi vihreällä taustalla, käytät:

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m] u @ h: w "

    Määritämme täällä vain yhden taustavärin ja sitten yhden etualan tekstin värin, joka alkaa kehotteen alusta ja jota sovelletaan kaikkiin kehotteen tekstiin. Voit kuitenkin määrittää niin monta väritunnistetta kuin haluat muuttujaan, jotta voit värittää eri kehotuksen osia haluamallasi tavalla.

    Taustan ja etualan tekstivärit jatkuvat kehyksen ohi, ellet määritä värikoodia 00 tyhjentämään väritiedot. Voit myös käyttää tätä tunnistetta muuttujaan palauttamaan muotoilun takaisin oletusarvoiseksi jossakin kehotteessa. Esimerkiksi seuraava rivi lopettaisi kaikki värit ennen \ $ merkki.

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \\ [\ 033 [00m \ t

    Uuden oletuspyynnön määrittäminen

    Kun olet kokeillut värejä, sinun pitäisi olla haluamasi Bash-kehote nykyisessä istunnossa. Mutta luultavasti haluat tehdä tämän uuden kehotuksen pysyväksi, joten sitä käytetään automaattisesti kaikissa Bash-istunnoissa.

    Tätä varten sinun tarvitsee vain muuttaa PS1-muuttujan sisältöä .bashrc-tiedostossa, jota tarkastelimme aikaisemmin.

    Avaa .bashrc-tiedosto haluamassasi tekstieditorissa, kuten:

    nano ~ / .bashrc

    Selaa PS1 = osiota alaspäin. Vaihda oletusmuuttuja mukautetun muuttujan kanssa. Haluat luultavasti lähteä $ Debian_chroot: + ($ debian_chroot)  bittiä yksin, mutta ne eivät näy, ellei olet chroot-ympäristössä.

    Syötä värillinen PS1-muuttujasi kohtaan jos ["$ color_prompt" = kyllä]; sitten linja. Syötä muuttuja ilman värejä kohtaan muu linja.

    Tallenna tiedosto ja sulje tekstieditori. Jos haluat esimerkiksi tallentaa tiedoston nano, paina Ctrl + O, paina Enter ja paina sitten Ctrl + X poistuaksesi.

    Kun seuraavan kerran käynnistät uuden Bash-kuoren, esimerkiksi kirjautumalla terminaaliin tai avaamalla uuden terminaalin ikkunan, näet mukautetun kehoteesi.