Pagrindinis » kaip » Kaip pritaikyti (ir spalvinti) „Bash Prompt“

    Kaip pritaikyti (ir spalvinti) „Bash Prompt“

    Dauguma „Linux“ versijų konfigūruoja „Bash“ raginimą, kad atrodytų panašus vartotojo vardas @ hostname: katalogas $ . Bet jūs galite sukonfigūruoti „Bash“ raginimą, kad jame būtų, ką norite, ir net pasirinkti bet kokias norimas spalvas.

    Pavyzdiniai žingsniai čia buvo atlikti Ubuntu 16.04 LTS. Procesas turi būti toks pat ir kituose „Linux“ platinimuose, nors numatytasis „Bash“ ir „bashrc“ failo nustatymai gali būti šiek tiek skirtingi.

    Kur išsaugomas užklausos kintamasis

    Jūsų „Bash“ spartos konfigūracija saugoma jūsų vartotojo paskyros .bashrc faile, kuris yra ~ / .bashrc. Taigi, jei jūsų vartotojo vardas yra bob, failas yra /home/bob/.bashrc.

    Galite atidaryti failą, kad galėtumėte peržiūrėti dabartinį „Bash“ kintamąjį. Mes naudosime nano kaip pavyzdinį teksto redaktorių, nors taip pat galėtumėte naudoti vi, emacs ar bet kurį kitą teksto redaktorių, su kuriuo esate patenkintas. Atidarykite terminalą ir paleiskite:

    nano ~ / .bashrc

    Slinkite žemyn iki PS1 = skyrius. Pirmasis kintamasis atrodo gana sudėtingas, nes jis apima spalvinę informaciją, kurią paaiškinsime vėliau. Antrasis kintamasis be spalvos informacijos yra toks:

    $ debian_chroot: + ($ debian_chroot) u @ h:

    Tai vis dar šiek tiek sudėtinga dėl $ debian_chroot: + ($ debian_chroot) bitų. Tai tiesiog pasakykite Bash, kad praneštumėte, ar naudojate Debian chroot aplinką ir paprastai nebus rodoma. Nepaisydami tų, čia yra numatytoji „Bash“ kintamojo struktūra:

    u @ h: w

    u nurodo jūsų naudotojo vardą, @ nurodo @ ženklą, h nurodo kompiuterio pavadinimą (kompiuterio pavadinimą), : nurodo: simbolį, w nurodo darbo katalogą ir $ nurodo $, jei esate įprastas vartotojo abonementas arba #, jei esate šaknis. Taigi, visa tai kartu, jūs gaunate naudotojo vardas @ hostname: working_directory $.

    Jei norite pakeisti „Bash“ užklausą, turite tiesiog pridėti, pašalinti arba pertvarkyti PS1 kintamojo specialius simbolius. Tačiau yra daug daugiau kintamųjų, kuriuos galite naudoti nei numatytieji.

    Palikite teksto redaktorių dabar nano, paspauskite Ctrl + X, kad išeitumėte. Parodysime, kaip eksperimentuoti su kintamaisiais, prieš tai faktiškai rašydami naują .bashrc failą.

    Kaip sukurti pasirinktinį „Bash Prompt“

    Jūsų „Bash“ spartos konfigūracija yra saugoma PS1 kintamajame. Norėdami išsaugoti PS1 kintamojo turinį į naują kintamąjį, atlikite šią komandą:

    DEFAULT = $ PS1

    Dabar galite nustatyti PS1 kintamąjį skirtingoms reikšmėms eksperimentuoti. Pavyzdžiui, pirmoje eilutėje jūsų užklausa būtų nustatyta į pagrindinį „vartotojo $“ eilutę, o antroji paskatins jūsų užklausą į pagrindinį „user: working_directory $“ eilutę.

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

    Jei kada nors norite grįžti į numatytąjį eilutę, tiesiog atlikite šią komandą.

    PS1 = $ DEFAULT

    Bash bus atkurtas į numatytąjį greitį, nes išsaugojote šiuos numatytuosius nustatymus anksčiau. Atminkite, kad bet kokie čia atlikti pakeitimai yra tik laikini dabartinei „Bash“ sesijai, todėl visada galite atsijungti ir vėl prisijungti arba uždaryti ir vėl atidaryti terminalo langą, kad grįžtumėte į numatytąjį raginimą. Tačiau aukščiau pateikta eilutė leidžia lengvai grįžti į numatytąjį „Bash“ raginimą, be jokių rūpesčių prisijungiant arba uždarant langą.

    Į kintamąjį galite pridėti bet kokius simbolius ar tekstą. Taigi, norėdami įvesti numatytąjį raginimą su „Hello World“, galite naudoti:

    PS1 = „Sveikas pasaulis @ @ h: w“

    Dabar, kai jūs turite pagrindus žemyn, tiesiog reikia žinoti, kas yra visi specialieji simboliai. Jūs tikriausiai nesirūpinsite daugeliu šių dalykų, tačiau čia yra visas sąrašas, kuris pateiktas „Bash“ vadove:

    • Varpas: a
    • Data, nurodyta „Savaitės dienos mėnesio“ formatu (pvz., „Tue May 26“): d
    • Formatas perduodamas strftime (3) ir rezultatas įterpiamas į eilutę; tuščias formatas lemia konkrečios vietos nustatymą. Reikalingi petnešos: D formatas
    • Gelbėjimo simbolis: e
    • Priemonės pavadinimas, iki pirmosios „.“: h
    • Prieglobos pavadinimas: H
    • Darbų, kuriuos šiuo metu valdo apvalkalas, skaičius: j
    • Korpuso terminalo įrenginio pavadinimo pavadinimas: l
    • Nauja eilutė: n
    • Vežimo grąžinimas: r
    • Korpuso pavadinimas, $ 0 pagrindinis pavadinimas (dalis po galutinio brūkšnio): s
    • Laikas, 24 val. HH: MM: SS formatas: \ t
    • Laikas 12 valandų HH: MM: SS formatu: T
    • Laikas 12 valandų am / pm formatu: @
    • Laikas, 24 val. HH: MM formatas: A
    • Dabartinio naudotojo naudotojo vardas: u
    • Bash versija (pvz., 2.00): v
    • „Bash“, versijos + patchlevel (pvz., 2.00.0) išleidimas: V
    • Dabartinis darbo katalogas su $ HOME sutrumpintas su tilde (naudoja $ PROMPT_DIRTRIM kintamąjį): w
    • $ PWD bazinis pavadinimas su $ HOME sutrumpintas su tilde: W
    • Šios komandos istorijos numeris: \ T!
    • Šios komandos komandų numeris: #
    • Jei efektyvus uid yra 0, #, kitaip $: $
    • Simbolis, kurio ASCII kodas yra oktalo vertė nnn: nnn
    • Backslash: \ T
    • Pradėkite nespausdinamų simbolių seką. Tai gali būti naudojama terminalo valdymo sekos įterpimui į užklausą: [
    • Baigti nespausdinamų simbolių seką: \ T

    Taigi, jei norite pridėti datą ir laiką į „Bash“ užklausą ir antrajame eilutėje komandą įdėti darbo katalogą, galite naudoti šią konstrukciją:

    PS1 = "[d] u @ n" \ t

    Čia esantys kvadratiniai skliausteliai nėra reikalingi, tačiau padedami vizualiai suskaidyti ir supaprastinti liniją. Kaip mes aptarėme anksčiau, jūs galite pridėti bet kokį tekstą ar įprastus simbolius į norimą kintamąjį, todėl nedvejodami naudokite bet kokius darbus.

    Yra dar vienas galingas triukas, kurį turėtumėte žinoti: į komandą galite įtraukti bet kurios komandos išvestį. Kai pasirodys užklausa, Bash atliks komandą ir užpildys dabartinę informaciją. Norėdami tai padaryti, tiesiog įtraukite bet kurią komandą, kurią norite paleisti tarp dviejų personažai. Tai ne apaštalas - tai rimtas akcentas, kuris pasirodo virš klaviatūros klavišų „Tab“.

    Pavyzdžiui, tarkime, kad norite peržiūrėti Linux branduolio versiją eilutėje. Galite naudoti tokią eilutę kaip:

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

    Kitas pavyzdys: tarkime, kad norite peržiūrėti sistemos veikimo laiką ir apkrovos vidurkį uptime komandą. Galima naudoti tokią konstrukciją, kuri priešpaskutinį laiką pateikia savo liniją.

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

    Nesivaržykite eksperimentuoti su skirtingais specialiais simboliais ir komandomis, kad surinktumėte idealų komandų eilutę.

    Kaip pridėti spalvų prie „Bash Prompt“

    Kai sužinosite pageidaujamą eilutę, galite pridėti spalvų. Tai iš tikrųjų yra labai paprasta, tačiau kintamasis atrodo baisiai nepatogus ir sudėtingas, jei nesuprantate, ką žiūrite.

    Pavyzdžiui, numatytasis spalvų spartos kintamasis nuo ankstesnio buvo:

    $ debian_chroot: + ($ debian_chroot) [033 [01; 32m] u @ h [033 [00m]: [033 [01; 34m]] [033] [00m] $

    Arba dar kartą pašalinkite debian_chroot bitus:

    [033 [01; 32 m] u @ h [033 [00m]: [033 [01; 34 m]] [033 [00;

    Tai iš tikrųjų yra tik u @ h: w $ kintamasis nuo ankstesnio, bet su spalvota informacija. Tikrai, galime suskirstyti į keletą skyrių:

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

    Pirmasis skyrius yra u @ h bitė, prieš kurią pateikiama spalvota informacija, kuri ją paverčia žalia. Antrasis yra : simbolis, prieš kurį pateikiama spalvota informacija, pašalinanti bet kokią spalvą. Trečiasis yra w bitė, prieš kurią pateikiama spalvota informacija, kuri ją paverčia mėlyna. Ketvirtasis yra $ bitė, prieš kurią pateikiama spalvota informacija, pašalinanti bet kokią spalvą.

    Suprasdami, kaip sukurti savo spalvų žymas, galite pridėti bet kokias norimas spalvas bet kokioms jūsų „Bash“ skiltims, kurias norite.

    Štai ką jums reikia žinoti: tarp „ [  ir \] charakteriss. Žymės viduje jūs turite pradėti nuo 033 [ arba e [ nurodyti „Bash“, kad tai yra spalvota informacija. Abi 033 [ ir e [ daryti tą patį. e [ yra trumpesnis, todėl gali būti patogiau naudoti, bet naudosime 033 [ čia, nes ji atitinka tai, kas naudojama pagal nutylėjimą. Žymės pabaigoje turite baigti m \ t nurodyti spalvos žyma.

    Nusilaužkite tai, ką atrodo kiekviena spalvinė žyma. Vienintelis skirtumas yra informacija, kurią pridėjote vietoj COLOR, kad apibrėžtumėte tikrąją spalvą:

    [333 [SPALVAm \ t

    „Bash“ leidžia keisti naujosios teksto teksto spalvą, pridėti teksto atributus, tokius kaip „paryškinti“ arba „pabraukti“ ir nustatyti fono spalvą.

    Čia pateikiamos pirmojo puslapio teksto vertės:

    • Juoda: 30
    • Mėlyna: 34
    • Cyan: 36
    • Žalia: 32
    • Violetinė: 35
    • Raudona: 31
    • Balta: 37
    • Geltona: 33

    Pvz., Kadangi raudonos spalvos tekstas yra spalvos kodas 32, galite naudoti [333 [32m \ t  raudonos spalvos tekstą.

    Taip pat galite nurodyti teksto atributą. Šis atributas turi būti pridėtas prieš spalvų skaičių, atskirtą kabliataškiu (;). Tekstas su šiais atributais skirtingose ​​terminalų emuliatoriuose atrodys kitaip.

    Čia pateikiamos teksto atributų vertės:

    • Normalus tekstas: 0
    • Paryškintas arba šviesus tekstas: 1 (priklauso nuo terminalo emuliatoriaus.)
    • Dim Tekstas: 2
    • Pabrauktas tekstas: 4
    • Mirksi tekstas: 5 (tai neveikia daugelyje terminalų emuliatorių).
    • Atbulinis tekstas: 7 (tai apverčia pirmąją ir fono spalvas, todėl pamatysite juodą tekstą baltame fone, jei dabartinis tekstas yra baltas tekstas juodame fone.)
    • Paslėptas tekstas: 8

    Iš tikrųjų nereikia įtraukti įprasto teksto atributo. Bet kokiu atveju tai yra numatytasis.

    Pavyzdžiui, kadangi raudonas tekstas yra kodas 31 ir paryškintas tekstas yra kodas 1, galite naudoti [333 [1; 31m \ t už paryškintą raudoną tekstą.

    Taip pat galite nurodyti fono spalvą, bet negalite pridėti atributo į fono spalvą.

    Čia pateikiamos fono spalvų vertės:

    • Juodas fonas: 40
    • Mėlynas fonas: 44
    • Ciano fonas: 46
    • Žalioji fonas: 42
    • Violetinis fonas: 45
    • Raudonas fonas: 41
    • Baltas fonas: 47
    • Geltonas fonas: 43

    Pavyzdžiui, kadangi mėlynas fonas yra kodas 44, [333 [44m \ t nurodys mėlyną foną.

    Galite nurodyti tiek pradines, tiek ir fono spalvas. Pavyzdžiui, 42 reiškia žalia foną ir 31 - raudoną tekstą. Taigi, norėdami, kad numatytasis sparčioji spalva taptų raudonu tekstu, naudokite:

    PS1 = "\ t42m] [333 [31m] u @ h: w

    Mes tiesiog nurodome vieną fono spalvą, o tada vieną pirmąjį teksto spalvą čia, kuri prasideda eilutės pradžioje ir taikoma visam eilutės tekstui. Tačiau galite nurodyti tiek spalvų žymų, kiek norite kintamajame, kad galėtumėte spalvoti skirtingus skubaus skilties skyrius.

    Fono ir naujosios teksto spalvos tęsiasi praeityje, nebent nurodote spalvų kodą 00, kad išvalytumėte spalvos informaciją. Taip pat galite naudoti šį žymeklį kintamajame, kad iš naujo nustatytumėte formatavimą į numatytąjį. Pvz., Ši eilutė baigtų visas spalvas prieš $ charakteris.

    PS1 = "\ t42m] [333 [31m] u @ h: [033 [00m \ t

    Kaip nustatyti naują numatytąjį užklausą

    Kai baigsite eksperimentuoti su spalvomis, dabartinėje sesijoje turėtumėte turėti „Bash“ raginimą. Bet tikriausiai norite, kad šis naujas greitis būtų pastovus, kad jis būtų automatiškai naudojamas visose „Bash“ sesijose.

    Norėdami tai padaryti, tiesiog reikia pakeisti PS1 kintamojo turinį .bashrc faile, kurį peržiūrėjome anksčiau.

    Atidarykite .bashrc failą pageidaujamame teksto redaktoriuje, pvz .:

    nano ~ / .bashrc

    Slinkite žemyn ir suraskite PS1 = skyrių. Tiesiog pakeiskite numatytąjį kintamąjį su savo pritaikytu kintamuoju. Jūs tikriausiai norite palikti $ debian_chroot: + ($ debian_chroot)  vien tik bitai, tačiau jie nebus rodomi, nebent jūs esate chroot aplinkoje.

    Įveskite spalvotą PS1 kintamąjį jei ["$ color_prompt" = taip]; tada linija. Įveskite kintamąjį be spalvų pagal Kitas linija.

    Išsaugokite failą ir uždarykite teksto redaktorių. Pvz., Norėdami išsaugoti failą nano, paspauskite Ctrl + O, paspauskite Enter ir paspauskite Ctrl + X, kad išeitumėte.

    Kitą kartą paleidus naują „Bash“ apvalkalą, pavyzdžiui, prisijungdami prie terminalo arba atidarę naują terminalo langą, pamatysite savo individualų spustelėjimą.