nl.phhsnews.com


nl.phhsnews.com / Hoe u uw Bash-prompt aanpast (en inkleurt)

Hoe u uw Bash-prompt aanpast (en inkleurt)


De meeste Linux-distributies configureren de Bash-prompt om er zo uit te zien alsgebruikersnaam @ hostnaam: map $. Maar u kunt de Bash-prompt zo configureren dat deze alles bevat wat u maar wilt en zelfs kiezen welke kleuren u wilt.

De voorbeeldstappen hier werden uitgevoerd op Ubuntu 16.04 LTS. Het proces zou hetzelfde moeten zijn op andere Linux-distributies, hoewel de standaard Bash-prompt en -instellingen in het .bashrc-bestand een beetje anders kunnen zijn.

Waar de promptvariabele is opgeslagen

Uw Bash-promptconfiguratie is opgeslagen in uw gebruiker het .bashrc-bestand van de account, dat zich op~ / .bashrcbevindt. Dus als uw gebruikersnaam bob is, bevindt het bestand zich op/home/bob/.bashrc.

U kunt het bestand openen om de huidige Bash-variabele te bekijken. We gebruiken nano als onze voorbeeldteksteditor, maar je kunt ook vi, emacs of een andere teksteditor gebruiken waar je je prettig bij voelt. Open een Terminal en voer uit:

nano ~ / .bashrc

Ga naar het gedeeltePS1 =. De eerste variabele ziet er nogal ingewikkeld uit omdat deze kleurinformatie bevat, we zullen dat later uitleggen. De tweede variabele, zonder kleurinformatie, luidt als volgt:

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

Dit is nog steeds een beetje gecompliceerd vanwege de$ {debian_chroot: + ($ debian_chroot)}bits. Deze vertellen gewoon Bash om je te laten weten of je een Debian-chroot-omgeving gebruikt en deze wordt normaal niet getoond. Negeer deze, dit is de standaardstructuur van de Bash-promptvariabele:

 u @  h:  w  $
ugeeft uw gebruikersnaam aan,@geeft het @ -teken aan, hgeeft de hostnaam (computernaam) aan,:geeft het teken aan: wgeeft de werkdirectory aan en $geeft een $ aan als u een normaal gebruikersaccount bent of # als u root bent. Dus, alles bij elkaar opgeteld, krijgt ugebruikersnaam @ hostnaam: werkdirectory $.

Om uw Bash-prompt te wijzigen, hoeft u alleen maar de speciale tekens in de PS1-variabele toe te voegen, te verwijderen of opnieuw in te delen. Maar er zijn veel meer variabelen die u kunt gebruiken dan de standaard variabelen.

Laat de teksteditor voor nu in nano staan, druk op Ctrl + X om af te sluiten. We laten u zien hoe u met variabelen moet experimenteren voordat u daadwerkelijk een nieuwe in uw .bashrc-bestand schrijft.

Een aangepaste bash-prompt maken

Uw Bash-promptconfiguratie wordt opgeslagen in de PS1-variabele. Als u de inhoud van de PS1-variabele wilt opslaan in een nieuwe variabele, voert u de volgende opdracht uit:

DEFAULT = $ PS1

U kunt de PS1-variabele nu instellen op verschillende waarden om te experimenteren. Bijvoorbeeld, de eerste regel hier zou uw prompt instellen op een basis "user $" prompt, terwijl de tweede uw prompt zou instellen op een basis "user: working_directory $" prompt.

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

Voer de volgende opdracht uit als u ooit terug wilt naar uw standaardprompt.

PS1 = $ DEFAULT

Bash wordt hersteld naar de standaardprompt dankzij aan het feit dat je die standaardinstellingen eerder hebt opgeslagen. Merk op dat alle wijzigingen die u hier aanbrengt, slechts tijdelijk zijn voor de huidige Bash-sessie, zodat u zich altijd kunt afmelden en weer kunt aanmelden of het terminalvenster kunt sluiten en weer kunt openen om terug te gaan naar uw standaardprompt. Maar de bovenstaande regel maakt het mogelijk om gemakkelijk terug te gaan naar uw standaard Bash-prompt zonder dat u zich hoeft af te melden of een venster te sluiten.

U kunt tekens of tekst aan de variabele toevoegen. Dus als u de standaardprompt voorvoegsel met "Hallo wereld", kunt u het volgende gebruiken:

PS1 = "Hallo wereld  u @  h:  w  $"

Nu dat u de basis hebt, kunt u hoeft alleen maar te weten wat alle speciale tekens zijn. U zult waarschijnlijk niet om veel van deze geven, maar hier is de volledige lijst zoals deze in de handleiding Bash staat:

  • Een bel-teken: a
  • De datum in het formaat "Weekday Month Date" ( bijv. "Tue May 26"): d
  • Het formaat wordt doorgegeven aan strftime (3) en het resultaat wordt ingevoegd in de promptstring; een leeg formaat resulteert in een locale-specifieke tijdsrepresentatie. De accolades zijn vereist: D {format}
  • Een escape-teken: e
  • De hostnaam, tot de eerste '.': h
  • De hostnaam: H
  • Het aantal taken dat momenteel door de shell wordt beheerd: j
  • De basenaam van de terminalapparaatnaam van de shell: l
  • Een nieuwe regel: n
  • Een regelterugloop: r
  • De naam van de shell, de basename van $ 0 (het gedeelte na de laatste schuine streep): s
  • De tijd, in 24-uurs UU: MM: SS-indeling: t
  • De tijd, in 12 uur HH : MM: SS-indeling: T
  • De tijd in 12-uurs am / pm-indeling: @
  • De tijd, in 24-uurs UU: MM-indeling: A
  • De gebruikersnaam van de huidige gebruiker: u
  • De versie van Bash (bijv. 2.00): v
  • De release van Bash, versie + patchniveau (bijv. 2.00. 0): V
  • De huidige werkdirectory, met $ HOME afgekort met een tilde (gebruikt de variabele $ PROMPT_DIRTRIM): w
  • De basename van $ PWD, met $ HOME afgekort met a tilde: W
  • Het geschiedenisnummer van deze opdracht:!
  • Het opdrachtnummer van deze opdracht: #
  • Als de effectieve uid 0 is , #, anders $: $
  • Het teken waarvan de ASCII-code de octale waarde nnn: nnn
  • Een backslash:\
  • Begin een reeks niet-gekoppelde tekens karakters afdrukken. Dit kan worden gebruikt om een ​​terminalbesturingsreeks in te voegen in de aanwijzing: [
  • Een reeks niet-afdrukbare tekens beëindigen:]

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

PS1 = "[ d  t]  u @  h  n  w  $"

De vierkante haken zijn hier helemaal niet nodig, maar helpen visueel de zaken stuk te maken en de lijn leesbaarder te maken. Zoals we eerder hebben besproken, kunt u tekst of normale tekens toevoegen aan de variabele die u leuk vindt, dus u kunt alles wat voor u werkt gebruiken.

Er is nog een andere krachtige truc die u moet weten: u kunt de uitvoer van elk commando toevoegen om de prompt. Wanneer de prompt verschijnt, voert Bash de opdracht uit en vult de huidige informatie in. Om dit te doen, neemt u gewoon elke opdracht op die u wilt uitvoeren tussen twee'tekens. Dat is geen apostrof - dat is het ernstige accent dat boven de Tab-toets op je toetsenbord verschijnt. Stel bijvoorbeeld dat je de Linux-kernelversie in de prompt wilt bekijken. U kunt een regel als de volgende gebruiken:

PS1 = " u @ h op 'uname -s -r' w $"

Als een ander voorbeeld, laten we zeggen dat u de uptime van het systeem wilt bekijken en gemiddelde laden, zoals weergegeven met de opdracht

uptime. U kunt de volgende constructie gebruiken, die de uptime op een eigen regel plaatst vóór de rest van de prompt.PS1 = "('uptime') n u @ h: w $"

Voel u vrij om te experimenteren met verschillende speciale tekens en opdrachten om uw ideale opdrachtprompt samen te stellen.

Kleuren toevoegen aan uw basismap

Nadat u uw voorkeursprompt hebt bepaald, kunt u er kleuren aan toevoegen. Dit is eigenlijk heel eenvoudig, maar het maakt de variabele er rommelig en ingewikkeld uitzien als je niet begrijpt waar je naar kijkt.

Bijvoorbeeld, de standaard kleurpromptvariabele van vroeger was:

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

Of door de debian_chroot-bits nogmaals te verwijderen:

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

Dit is eigenlijk alleen de

u @ h: w $variabele van vroeger, maar dan met kleurinformatie. Echt, we kunnen het opsplitsen in een paar secties: [ 033 [01; 32m ]

 u @  h   [ 033 [00m ]  :   [ 033 [01; 34m ]   w   [ 033 [00m ]   $  De eerste sectie is de 

u @ hbit, voorafgegaan door kleurinformatie die groen wordt. De tweede is het:teken, voorafgegaan door kleurinformatie die elke kleur verwijdert. De derde is het wbit, voorafgegaan door kleurinformatie die hem blauw maakt. De vierde is het $bit, voorafgegaan door kleurinformatie die elke kleur verwijdert.Zodra u begrijpt hoe u eigen kleurtags kunt bouwen, kunt u de kleuren die u leuk vindt toevoegen aan de gedeelten van uw Bash prompt dat je leuk vindt.

Dit moet u weten: u moet de volledige kleurcodegegevens opnemen tussen het

[en] tekens. In de tag moet u beginnen met 033 [of e [om aan te geven dat dit kleurgegevens zijn. Zowel 033 [en e [doen hetzelfde. e [is korter dus misschien handiger in gebruik, maar we gebruiken 033 [hier omdat het overeenkomt met wat standaard wordt gebruikt. Aan het einde van de tag moet u eindigen metm om het einde van een kleurtag aan te geven.Als u dat opgeeft, ziet u hier hoe elke kleurtag eruit zal zien. Het enige verschil is de informatie die u in plaats van KLEUR toevoegt om de werkelijke kleur te definiëren:

[ 033 [

KLEUR  m ]  Met Bash kunt u de kleur van voorgrondtekst wijzigen, voeg kenmerken zoals "vet" of "onderstrepen" toe aan de tekst en stel een achtergrondkleur in.

Dit zijn de waarden voor voorgrondtekst:

Zwart: 30

  • Blauw: 34
  • Cyaan: 36
  • Groen: 32
  • Paars: 35
  • Rood: 31
  • Wit: 37
  • Geel: 33
  • Omdat paarse tekst bijvoorbeeld kleurcode 32 is, gebruikt u

[ 033 [32 m ] voor paarse tekst.U kunt ook een attribuut voor de tekst opgeven. Dit kenmerk moet vóór het kleurnummer worden toegevoegd, gescheiden door een puntkomma (;). Tekst met deze kenmerken ziet er anders uit in verschillende terminalemulators.

Dit zijn de waarden voor tekstkenmerken:

Normale tekst: 0

  • Vetgedrukte tekst of Light Text: 1 (afhankelijk van de terminalemulator.)
  • Dim Text: 2
  • Onderstreepte tekst: 4
  • Knipperende tekst: 5 (Dit werkt niet in de meeste terminalemulators.)
  • Omgekeerde tekst: 7 (Hiermee worden de voorgrond- en achtergrondkleuren omgekeerd, zodat u zie zwarte tekst op een witte achtergrond als de huidige tekst witte tekst op een zwarte achtergrond is.)
  • Verborgen tekst: 8
  • U hoeft het normale tekstkenmerk eigenlijk niet op te nemen. Dat is de standaardwaarde.

Omdat rode tekst bijvoorbeeld code 31 is en vetgedrukte tekst code 1 is, gebruikt u

[ 033 [1; 31 m ] voor vetgedrukte rode tekst.U kunt ook een achtergrondkleur opgeven, maar u kunt geen kenmerk aan een achtergrondkleur toevoegen.

Dit zijn de waarden voor achtergrondkleuren:

Zwarte achtergrond: 40

  • Blauwe achtergrond: 44
  • Cyaan achtergrond: 46
  • Groene achtergrond: 42
  • Paarse achtergrond: 45
  • Rode achtergrond: 41
  • Witte achtergrond: 47
  • Gele achtergrond: 43
  • Omdat een blauwe achtergrond bijvoorbeeld code 44 is, zou

[ 033 [44 m ] een blauwe achtergrond aangeven.U kunt zowel voor- als achtergrondkleur opgeven -tags. 42 vertegenwoordigt bijvoorbeeld een groene achtergrond en 31 vertegenwoordigt rode tekst. Dus om de standaardprompt rode tekst op een groene achtergrond te maken, gebruikt u:

PS1 = " [ 033 [

42  m ]  [ 033 [ 31  m ]  u @  h:  w  $ " We geven hier alleen een enkele achtergrondkleur en dan een enkele voorgrondkleur op, die begint aan het begin van de prompt en die wordt toegepast op alle tekst in de prompt. U kunt echter zoveel kleurtags als u wilt in de variabele opgeven om de verschillende secties van uw prompt in te kleuren, zoals u zelf wilt.

De achtergrondkleuren en voorgrondkleuren blijven voorbij de aanwijzing, tenzij u de kleurcode opgeeft 00 de kleurinformatie wissen . U kunt deze tag ook binnen de variabele gebruiken om de opmaak opnieuw in te stellen naar de standaardwaarde ergens in uw prompt. Met de volgende regel eindigt bijvoorbeeld alle kleuren vóór het teken

$.PS1 = " [ 033 [

42  m ]  [ 033 [ 31  m ]  u @  h:  w \ [ 033 [ 00  m ]  $ " Uw nieuwe standaardprompt instellen

Zodra u bent klaar met het experimenteren met kleuren, je zou een Bash-prompt moeten hebben die je leuk vindt in de huidige sessie. Maar je wilt waarschijnlijk die nieuwe prompt permanent maken, zodat deze automatisch wordt gebruikt in al je Bash-sessies.

Om dit te doen, hoef je alleen de inhoud van de PS1-variabele in het .bashrc-bestand te wijzigen, waar we eerder naar hebben gekeken.

Open het .bashrc-bestand in de teksteditor van uw voorkeur, bijvoorbeeld:

nano ~ / .bashrc

Scroll naar beneden en zoek het gedeelte PS1 =. Vervang gewoon de standaardvariabele door uw aangepaste variabele. Je zult waarschijnlijk de

willen verlaten$ {debian_chroot: + ($ debian_chroot)}alleen, echter, ze verschijnen alleen als je in een chroot-omgeving bent.Geef je gekleurde PS1-variabele op onder de

als [" $ color_prompt "= yes]; vervolgens oplijn. Voer de variabele zonder kleuren in onder de regelelse.Sla het bestand op en sluit uw teksteditor. Als u het bestand bijvoorbeeld in nano wilt opslaan, drukt u op Ctrl + O, drukt u op Enter en drukt u vervolgens op Ctrl + X om af te sluiten.

De volgende keer dat u een nieuwe Bash-shell start, bijvoorbeeld door u aan te melden bij de terminal of door een nieuw terminalvenster te openen, ziet u uw aangepaste prompt.


Downloads op uw Mac, iPhone en iPad versnellen met Content Caching

Downloads op uw Mac, iPhone en iPad versnellen met Content Caching

Zijn er meerdere iPhones en iPads in uw huis? Hoe zit het met Macs of Apple TV's? Heeft u er weleens aan gedacht hoeveel bandbreedte al die individuele Apple-apparaten gebruiken om dezelfde updates, media en iCloud-inhoud te downloaden? Content Caching is de oplossing van Apple hiervoor. Deze functie is voornamelijk bedoeld voor grote instellingen.

(how-top)

Intel's nieuwe X-serie enthousiaste CPU's, uitgelegd

Intel's nieuwe X-serie enthousiaste CPU's, uitgelegd

Naast een gloednieuwe reeks consument-grade processoren, de Core i9-familie, introduceerde Intel onlangs ook de "X-serie". Hier komen zaken verwarrend, omdat Core X-processors niet in een enkele lijn, familie of zelfs chiparchitectuur passen - het is puur een marketingterm, vergelijkbaar met de vorige "Extreme Edition" -processors die Intel een paar jaar geleden heeft aangeboden.

(how-top)