Så här anpassar du zsh-prompten i macOS-terminalen

By rik

Viktiga punkter

  • macOS ger dig möjligheten att skräddarsy din zsh-prompt i Terminal, så att den blir unik och anpassad efter dina önskemål.
  • Skapa en .zshrc-profil för att lagra samtliga ändringar och inställningar du vill ha för din zsh-prompt.
  • Du kan modifiera zsh-prompten genom att lägga till önskade värden för variabler som %n (användarnamn), %m (Macens modellnamn), %W (datum) och %T (tid).

Oavsett om du vill att din zsh-prompt ska ha en annan färg, visa mer information eller ha ett minimalistiskt utseende för att optimera utrymmet, så kan macOS hjälpa dig med det. Lär dig hur du skräddarsyr din zsh-prompt i Terminal så att den sticker ut, oberoende av din bakgrund.

Grunderna i zsh-prompten

När du startar Terminal-applikationen på din Mac, presenteras en del relevant information, inklusive din senaste inloggning och kommandoprompten. Standardutseendet på prompten är oftast följande:

 Last login: Wed Feb 3 22:00:40 on console
alvin@MacBook-Air ~ %

Zsh-prompten visar en textsträng som inkluderar ditt användarnamn och datorns modell, som till exempel MacBook Air, MacBook Pro, Mac mini och så vidare. Tecknet tilde (~) visar promptens position i hemkatalogen.

Om du navigerar till en annan mapp i filsystemet via Terminal, kommer den aktuella mappens namn att visas istället för tilden.

Skapa en Z Shell-profil för att lagra alla inställningar

Vanligtvis krävs det manipulation av systemfiler för att ändra standardutseendet. Det beror på att macOS-uppdateringar återställer alla systemfiler till standard, och du riskerar att förlora alla dina ändringar. Därför kan du skapa en separat inställningsfil (en så kallad dotfil) för din zsh-profil för att spara alla ändringar och inställningar du vill ha för din zsh-prompt.

Denna dotfil finns inte som standard på macOS, så du måste skapa den. Det rekommenderas att skapa en ny .zshrc-profil för att lagra samtliga inställningar, som hur zsh-prompten ser ut och fungerar. Så här skapar du zsh-profilen (dotfil):

  • Öppna Terminal-applikationen.
  • Skriv följande kommando och tryck på returtangenten:
     touch ~/.zshrc 
  • Kommandot ”touch” skapar endast profilfilen .zshrc om den inte redan existerar. Om filen redan finns, kommer kommandot inte att göra någonting.

    Detta skapar en .zshrc-profil i hemkatalogen för ditt användarkonto. Du kan se den under sökvägen /Användare/<användarnamn>/ i Finder, om du har aktiverat visning av dolda systemfiler på din Mac.

    Efter detta kommer zsh-profilen att vara tillgänglig för interaktiva skal utan inloggning, varje gång du startar Terminal. Den kommer dock endast att användas för inloggningsskal om andra inloggningsspecifika filer, såsom .zprofile och .zlogin, inte finns.

    Anpassa zsh-prompten i terminalen

    Standard zsh-prompt innehåller ofta information som användarnamn, maskinnamn och plats från användarens hemkatalog. Dessa detaljer finns lagrade i zsh-skalets systemfil på sökvägen /etc/zshrc:

     PS1="%n@%m %1~ %#" 

    I denna sträng av variabler:

    • %n motsvarar ditt användarkonto.
    • %m står för din Macs modellnamn.
    • %1~ visar den aktuella arbetskatalogens sökväg, där ~ tar bort sökvägen till $HOME-katalogen.
    • %# innebär att prompten visar # om skalet körs med root (administratörs)behörighet, och % om det inte gör det.

    För att göra några ändringar i standard zsh-prompten, behöver du lägga till relevanta värden så att prompten ser annorlunda ut än standardprompten.

    Gör så här: Öppna Terminal, skriv in följande kommando och tryck på Retur:

     nano ~/.zshrc 

    Om .zshrc-profilfilen har existerat tidigare, finns det en möjlighet att den inte är tom. Men om den inte fanns när du utförde kommandot ”touch” ovan, kommer den att vara tom. Du kan lägga till en ny rad med texten PROMPT=’…’ eller PS1=’…’ och inkludera de önskade värdena i stället för ellipserna.

    För en enkel ändring av zsh-prompten kan du skriva in följande värden i .zshrc-profilen:

     PROMPT='%n:~$' 

    Tryck på Ctrl + O för att bekräfta att du sparar ändringarna i filen, och tryck sedan på Ctrl + X för att avsluta nanoredigeraren.

    Öppna ett nytt terminalfönster genom att trycka på Cmd + T för att bekräfta och se de ändringar du nyss gjort. Din nya zsh-prompt kommer att visa din Macs användarnamn, hemkatalog och $-symbolen i slutet. Du kan lägga till mellanslag i PROMPT-variabeln ovan, mellan %n, ~ och $, om du föredrar att variablerna ska vara åtskilda i terminalen.

    Om du vill ha ett anpassat användarnamn, ersätt %n med ditt önskade val. Här är ett exempel:

     PROMPT='customusername~$' 

    Nu, om du öppnar ett nytt terminalfönster, kommer du att se följande:

    Om du vill ändra någon annan parameter manuellt kan du göra det genom att ersätta standardvariablerna med det format som används i PS1-variabeln ovan. Du kan lägga till eller ta bort information från zsh-prompten för att anpassa den efter dina önskemål.

    Om det här verkar för komplicerat, kan du använda en webbplats som Zsh promptgenerator för att få hjälp med att anpassa ditt Z-skal.

    Lägg till datum och tid i zsh-prompten

    Förutom ditt användarnamn kan du även lägga till aktuellt datum eller tid, så att du slipper titta bort från det aktiva terminalfönstret för att kontrollera den informationen.

    Starta terminalen och öppna .zshrc-profilen:

     nano ~/.zshrc 

    För att inkludera datumet i prompten kan du använda %D för att datumet ska visas i formatet åå-mm-dd, eller %W för att det ska visas i formatet mm/dd/åå. Då kommer den nya prompten att se ut så här:

     PROMPT='%n:%W:~$' 

    Vi använde ett kolon (:) i PROMPT-variabeln ovan för att skapa en visuell separation, men du kan lika gärna använda ett mellanslag eller något annat tecken. Till exempel kan du använda tecknet större än (>) för att separera tiden och den aktuella katalogen.

    Om du vill inkludera systemtiden i zsh-prompten, lägg till %T för aktuell tid i 24-timmarsformat, %t för att visa tiden i 12-timmarsformat, eller använd %* för att visa tiden i 24-timmarsformat tillsammans med sekunder.

     PROMPT='%n@%T>~$' 

    Visa datum och tid till höger om din zsh-prompt

    För att visa information till höger om zsh-prompten, behöver du lägga till variabeln RPROMPT i zshrc-filen. Om du till exempel vill lägga till datum och tid, anger du följande:

    RPROMPT='%D @ %T'

    Din prompt kommer nu att se ut så här:

    Lägg till färg i text i zsh-prompten

    Förutom att modifiera Terminal-appens färger, kan du lägga till lite färg till texten i din zsh-profil på Mac för att få ett behagligt visuellt avbrott. Starta Terminal och öppna .zshrc-profilen:

     nano ~/.zshrc 

    Z-skalet stöder färger och nyanser av grått för texten i prompten, för att komplettera bakgrunden. Du kan välja en förgrundsfärg (text) från dessa alternativ: svart, vit, gul, grön, röd, blå, cyan och magenta. Så här använder du dem:

     PROMPT='%F{cyan}%n%f:~$' 

    Om du vill välja en specifik zsh-färgnyans kan du välja bland 256 8-bitars färger som terminalen stöder. Så här använder du de numeriska värdena för färgerna:

     PROMPT='%F{51}%n%f:~$' 

    Du måste placera %F och %f standardvariabler för förgrundsfärg, mellan den text du vill färglägga.

    Lägga till visuella effekter i zsh-prompten

    Om det inte räcker att bara färglägga promptens text, kan du framhäva din zsh-prompt så att den sticker ut från textväggen. Till att börja med kan du göra zsh-prompten fet:

     PROMPT='%B%F{51}%n%f%b:~$' 

    Genom att lägga till %B i början och %b i slutet av den aktuella texten blir den fet.

    På samma sätt kan du använda %S i början och %s i slutet för att markera texten. Markeringen kommer att ha samma färg som du har valt ska visas mellan %S och %s variablerna.

     PROMPT='%S%F{51}%n%f%s:~$' 

    Du kan också understryka texten i zsh-prompten. För att understryka en prompt kan du inkludera variabeln %U i början och %u i slutet av den aktuella texten.

     PROMPT='%U%F{51}%n%f%u:~$' 

    Ta bort de senaste inloggningsuppgifterna från zsh-prompten

    Att dölja eller inaktivera den översta raden som visar den senaste inloggningstiden i Terminal-appen, kan ge din zsh-prompt ett renare utseende. Du kan använda följande kommando för att dölja den informationen:

     touch ~/.hushlogin 

    Nästa gång du startar Terminal, kommer du inte att se något ovanför zsh-prompten.

    Återställ din zsh-anpassning

    Om du vill börja om från början, kan du göra det genom att ange variabeln PROMPT eller PS1 till standardvärdet:

     PROMPT="%n@%m %1~ %#" 

    Om du har lagt till information till höger om zsh-prompten med RPROMPT, tar du bort det från .zshrc.

    Alternativt kan du tryggt ta bort variablerna PROMPT/PS1 och RPROMPT i .zshrc-filen. Oroa dig inte, eftersom inställningarna i .zshrc-filen endast gäller den aktuella användarprofilen. Om du tar bort dessa två, kommer standardinställningarna som lagras i Z shells systemfil på sökvägen /etc/zshrc att användas.

    Nu när du har all information om hur du anpassar din zsh-prompt, kan du experimentera och göra den till din egen. Du kan göra den fet, understryka, förkorta och till och med inkludera mer information i den. Och om du inte är nöjd med ändringarna kan du alltid snabbt återgå till standardutseendet.