Hoe aan te Passen (en Inkleuren) Uw Bash Prompt

0
685

De meeste Linux-distributies configureren van de Bash-prompt te zien zoals username@hostname:directory$ . Maar u kunt configureren van de Bash-prompt te bevatten wat je wilt, en zelfs kiezen welke kleuren je wilt.

Het voorbeeld stappen hier werden uitgevoerd op Ubuntu 16.04 LTS. Het proces moet hetzelfde op een andere Linux-distributies, hoewel de standaard Bash-prompt en instellingen .bashrc bestand kan worden een beetje anders.

Waar de Aanwijzing Variabele is Opgeslagen

Uw Bash prompt configuratie is opgeslagen in uw gebruikers-account .bashrc bestand, die op ~/.bashrc. Dus, als uw gebruikersnaam is bob, wordt het bestand in /home/bob/.bashrc.

U kunt het bestand openen om de huidige Bash variabele. We zullen gebruik maken van nano als ons voorbeeld tekst editor, maar je kon ook met vi, emacs, of een andere tekst editor je je prettig bij voelt. Open een Terminal en voer in:

nano ~/.bashrc

Scroll naar beneden naar de PS1= sectie. De eerste variabele ziet er nogal ingewikkeld, want het bevat informatie over kleur—we leggen dat later. De tweede variabele, zonder kleur informatie, luidt als volgt:

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

Dit is nog steeds een beetje bemoeilijkt door de ${debian_chroot:+($debian_chroot)} bits. Deze vertellen Bash om u te laten weten als u een Debian chroot omgeving en normaal gesproken niet getoond worden. Het negeren van deze, hier is de standaard structuur van de Bash-prompt variabele:

u@h:w$

u geeft uw gebruikersnaam, het @ geeft het @ – teken h geeft de hostname (computernaam), : geeft aan dat het : teken, w geeft de directory, en $ geeft een $ als je een normaal gebruiker account of # als je root bent. Zo, dat alles bij elkaar krijgen username@hostname:working_directory$.

Het wijzigen van uw Bash-prompt, moet u enkel het toevoegen, verwijderen of de volgorde van de speciale tekens in de PS1-variabele. Maar er zijn veel meer variabelen die u kunt gebruiken dan de standaard items.

Laat de tekst-editor voor nu—in de nano, drukt u op Ctrl+X om af te sluiten. Wij laten u zien hoe om te experimenteren met variabelen voor het daadwerkelijk schrijven van een nieuwe in je .bashrc bestand.

Het Maken van een Aangepaste Bash Prompt

Uw Bash prompt configuratie wordt opgeslagen in de PS1-variabele. Sla de inhoud van de PS1-variabele in een nieuwe variabele, voer je het volgende commando:

STANDAARD=$PS1

U kunt nu instellen op de PS1-variabele voor verschillende waarden om te experimenteren. Bijvoorbeeld, de eerste regel, hier zou je prompt een gewone “gebruiker$” prompt, terwijl het tweede zou je prompt een gewone “gebruiker:working_directory$” prompt.

PS1=”u$”

PS1=”u:w\$ ”

Als je ooit terug wilt naar uw standaard prompt, voer de volgende opdracht.

PS1=$STANDAARD

Bash zal worden hersteld naar de standaard aanwijzing dankzij het feit dat u deze standaardinstellingen eerder. Wijzigingen die u hier aanbrengt, zijn alleen maar tijdelijk voor de huidige Bash-sessie, dus u kunt altijd afmelden en opnieuw aanmelden in of sluit en open het terminal venster om terug te gaan naar de standaard aanwijzing. Maar de bovenstaande regel maakt het mogelijk om gemakkelijk terug te keren naar de standaard Bash prompt zonder het gedoe van het afmelden of sluiten van een venster.

U kunt toevoegen tekens of tekst in de variabele. Dus, als prefix voor de standaard vraag met “Hallo Wereld”, kan je dit gebruiken:

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

Nu heb je de basis naar beneden, je moet alleen weten wat de speciale tekens. U zult waarschijnlijk niet de zorg over veel van deze, maar hier is de volledige lijst zoals deze wordt weergegeven in de handleiding van Bash:

  • Een bell karakter: a
  • De datum, in “Weekdag Maand, Datum” indeling (bijvoorbeeld, “Tue May 26”): d
  • De indeling is doorgegeven aan strftime(3) en het resultaat is geplaatst in de prompt string; een leeg format resultaten in een locale-specifieke tijd vertegenwoordiging. De haakjes zijn nodig: D{notatie}
  • Een escape-teken: e
  • De hostnaam, het eerste ‘.’: h
  • De hostnaam: H
  • Het aantal taken dat momenteel beheerd door de shell: j
  • De basename van de shell terminal op de naam van het apparaat: l
  • Een nieuwe regel: n
  • Een carriage return: r
  • De naam van de shell, de basename van $0 (het gedeelte na de laatste slash): n
  • De tijd, in 24-uur HH:MM:SS formaat: t
  • De tijd in 12-uur HH:MM:SS formaat: T
  • De tijd in 12-uurs am/pm-indeling: @
  • De tijd, in 24-uur notatie UU:MM: A
  • De gebruikersnaam van de huidige gebruiker: u
  • De versie van Bash (bijv., 2.00): v
  • De release van Bash, versie + patchlevel (bijv., 2.00.0): V
  • De huidige directory, met $HOME wordt afgekort met een tilde (gebruikt de $PROMPT_DIRTRIM variabele): w
  • De basename van $PWD, met $HOME wordt afgekort met een tilde: W
  • De geschiedenis van deze commando: !
  • De opdracht nummer van dit commando: #
  • Als het de effectieve uid is 0, #, anders $: $
  • Het karakter waarvan de ASCII code is de octale waarde nnn: nnn
  • Een backslash: \
  • Beginnen met een reeks niet-afdrukbare tekens. Dit kan worden gebruikt voor het insluiten van een terminal control sequence in de prompt: [
  • Het einde van een reeks niet-afdrukbare tekens bevatten: ]

Dus, als u wilt toevoegen van de datum en tijd van uw Bash-prompt en zet de werkmap op commando op een tweede lijn, kunt u de volgende constructie:

PS1=”[d t] u@hnw\$ ”

De vierkante haken hier helemaal niet noodzakelijk, maar helpen bij het doorbreken van de dingen visueel maken en de lijn gemakkelijker te lezen. Zoals we eerder gezegd, kunt u het toevoegen van tekst of normale tekens van de variabele die u wilt, dus voel je vrij om te gebruiken wat voor jou werkt.

Er is een meer krachtige truc die u moet weten over: U kunt de output van een commando naar de prompt. Wanneer de aanwijzing wordt weergegeven, Bash zal de opdracht uitvoeren en vul in de huidige informatie. Om dit te doen, alleen maar om een opdracht die u wilt uitvoeren tussen twee tekens. Dat is niet een apostrof—dat is de grave, die verschijnt boven de Tab-toets op uw toetsenbord.

Bijvoorbeeld, laten we zeggen dat je wilt weergeven op de Linux-kernel versie in de aanwijzing. U kan gebruik maken van een regel als de volgende:

PS1=”u@h op `uname -s-r` w\$ ”

Als een ander voorbeeld, laten we zeggen dat je wilt bekijken het systeem uptime en belasting gemiddelde, zoals weergegeven door het uptime commando. U kunt de volgende constructie, waardoor de uptime op zijn eigen regel voor de rest van de aanwijzing.

PS1=”(`uptime`)nu@h:w$ ”

Voel je vrij om te experimenteren met verschillende speciale tekens en commando ‘ s te monteren van uw ideale opdrachtprompt.

Hoe Kleuren Toevoegen aan Uw Bash Prompt

Als je eenmaal hebt bedacht van uw voorkeur aanwijzing, kunt u kleuren toevoegen. Dit is eigenlijk heel simpel, maar het maakt de variabele kijk erg rommelig en ingewikkeld als je niet precies begrijpt wat u aan het bekijken bent.

Bijvoorbeeld, de standaard kleur prompt variabele uit eerder was:

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

Of, is het verwijderen van de debian_chroot bits nogmaals:

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

Dit is eigenlijk gewoon de u@h:w$ variabele van eerder, maar met de kleur van de informatie. Echt, we kunnen het af te breken in een aantal secties:

[33[01;32m]u@h

[33[00m]:

[33[01;34m]w

[33[00m]$

Het eerste gedeelte is de u@h bit, voorafgegaan door informatie over kleur verandert het groen. De tweede is het : teken, voorafgegaan door de kleur van de informatie die verwijdert alle kleuren. De derde is de w bit, voorafgegaan door informatie over kleur verandert het blauw. De vierde is de $ bit, voorafgegaan door de kleur van de informatie die verwijdert alle kleuren.

Als je eenmaal begrijpt hoe het construeren van kleur-tags van uw eigen, kunt u toevoegen wat kleuren die u graag welke gedeelten van de Bash prompt die u wilt.

Hier is wat je moet weten: Je moet de hele kleurcode informatie tussen [ en ] karakters. In de tag, je moet beginnen met 33[ of e[ om aan te geven aan Bash dat dit de kleur van de informatie. Zowel 33[ en e[ hetzelfde doen. e[ is korter, zodat het wellicht handig om te gebruiken, maar gebruiken we 33[ hier als het overeenkomt met wat standaard gebruikt. Aan het einde van de tag, je moet eindigen met m aan het einde van een kleur-tag.

Het breken van dat hier is wat elke kleur label er zal uitzien. Het enige verschil is de informatie die u toevoegt, in plaats van de KLEUR te bepalen van de werkelijke kleur:

[33[KLEURm]

Bash kunt u de kleur van de voorgrond tekst, toevoegen van attributen zoals “vet” of “onderstrepen” aan de tekst, en een achtergrond kleur.

Hier zijn de waarden voor de voorgrond tekst:

  • Zwart: 30
  • Blauw: 34
  • Cyaan: 36
  • Groen: 32
  • Paars: 35
  • Rood: 31
  • Wit: 37
  • Geel: 33

Bijvoorbeeld, sinds de paarse tekst in kleur code 32, zou je het gebruik van [33[32m] voor de paarse tekst.

U kunt ook een kenmerk voor de tekst. Dit kenmerk moet worden toegevoegd voor de kleur nummer, gescheiden door een puntkomma (;). Tekst met deze kenmerken zal er anders uitzien in verschillende terminal emulators.

Hier zijn de waarden voor tekst kenmerken:

  • Normale Tekst: 0
  • Vet of Licht Tekst: 1 (afhankelijk van het terminal-emulator.)
  • Dim Tekst: 2
  • Onderstreepte Tekst: 4
  • Knipperende Tekst: 5 (Dit werkt niet in de meeste terminal emulators.)
  • Omgekeerd Tekst: 7 (Dit keert de voorgrond en achtergrond kleuren, zo zie je zwarte tekst op een witte achtergrond als de huidige tekst is een witte tekst op een zwarte achtergrond.)
  • Verborgen Tekst: 8

Je hoeft niet echt nodig om de normale tekst kenmerk. Dat is de standaard, toch.

Bijvoorbeeld, omdat de tekst rood is code 31 en vette tekst is 1 van de code, die u zou gebruik maken van [33[1;31m] voor vette rode tekst.

Ook kunt u een achtergrond kleur, maar je kunt niet een kenmerk toevoegen van een achtergrond kleur.

Hier zijn de waarden voor achtergrond kleuren:

  • Zwarte achtergrond: 40
  • Blauwe achtergrond: 44
  • Cyaan achtergrond: 46
  • Groene achtergrond: 42
  • Paarse achtergrond: 45
  • Rode achtergrond: 41
  • Witte achtergrond: 47
  • Gele achtergrond: 43

Bijvoorbeeld omdat op een blauwe achtergrond is de code 44, [33[44m] geeft een blauwe achtergrond.

U kunt opgeven voorgrond-en achtergrondkleur tags. Bijvoorbeeld, 42 vertegenwoordigt een groene achtergrond en 31 vertegenwoordigt een rode tekst. Dus, om de standaard prompt worden rode tekst op een groene achtergrond die u wilt gebruiken:

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

We hebben net geeft een achtergrond kleur en dan een enkele voorgrond kleur van de tekst, die begint bij de start van de aanwijzing en wordt toegepast op alle tekst in de aanwijzing. U kunt echter zoveel kleur labels toevoegen als u wilt in de variabele kleur verschillende secties van je gevraagd maar je wilt.

De achtergrond en de voorgrond tekst kleuren te gaan langs de aanwijzing, tenzij u opgeeft kleur code 00 duidelijke informatie over de kleuren. U kunt ook gebruik maken van deze tag binnen de variabele reset opmaak terug naar standaard ergens in je prompt. Bijvoorbeeld, de volgende regel zou het einde betekenen van alle kleuren voordat de $ – teken.

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

Het Instellen van Uw Nieuwe Standaard Prompt

Zodra je klaar bent met experimenteren met kleuren, moet je een Bash-prompt als u in de huidige sessie. Maar u wilt waarschijnlijk te maken dat de nieuwe aanwijzing permanent, dus het is automatisch gebruikt in al uw Bash sessies.

Om dit te doen, je hoeft alleen maar naar de inhoud van de PS1-variabele in de .bashrc bestand, dat we eerder naar keken.

Open het .bashrc bestand in een teksteditor, zoals:

nano ~/.bashrc

Scroll naar beneden en zoek de PS1= sectie. Vervang gewoon de standaard variabele met uw aangepaste variabele. U zult waarschijnlijk willen verlaten van het ${debian_chroot:+($debian_chroot)} bits alleen, maar ze worden niet weergegeven, tenzij u bent in een chroot omgeving, hoe dan ook.

Voer uw gekleurde PS1-variabele onder de if [ “$color_prompt” = ja ]; vervolgens de lijn. Voer de variabele zonder kleuren onder de else-regel.

Sla het bestand op en sluit de teksteditor. Bijvoorbeeld, het bestand op te slaan in de nano, drukt u op Ctrl+O, druk op Enter, en druk vervolgens op Ctrl+X om af te sluiten.

De volgende keer dat u start een nieuwe Bash-shell—bijvoorbeeld door aan te melden op de terminal of door het openen van een nieuwe terminal—venster ziet u uw maat prompt.