sv.phhsnews.com


sv.phhsnews.com / Så här anpassar du (och färgar) din basprompt

Så här anpassar du (och färgar) din basprompt


De flesta Linux-distributioner konfigurerar Bash-prompten för att se något somanvändarnamn @ värdnamn: katalog $. Men du kan konfigurera Bash-prompten för att innehålla vad du vill, och till och med välja vilka färger du vill.

Exemplet steg här utfördes på Ubuntu 16.04 LTS. Processen ska vara densamma på andra Linux-distributioner, även om standard-Bash-prompten och inställningarna i .bashrc-filen kan vara lite annorlunda.

Var snabbvariabeln lagrad

Din konfiguration för bashantering sparas i din användare kontoens .bashrc-fil, som ligger vid~ / .bashrc. Så, om ditt användarnamn är Bob, är filen på/home/bob/.bashrc.

Du kan öppna filen för att visa aktuell Bash-variabel. Vi använder nano som vår textredigerare, även om du också kan använda vi, emacs eller någon annan textredigerare som du är bekväm med. Öppna en terminal och kör:

nano ~ / .bashrc

Rulla ner till avsnittetPS1 =. Den första variabeln ser ganska komplicerad ut eftersom den innehåller färginformation-vi kommer att förklara det senare. Den andra variabeln, utan färginformation, lyder som följer:

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

Detta är fortfarande lite komplicerat på grund av$ {debian_chroot: + ($ debian_chroot)}bitar. Dessa berättar bara att Bash ska meddela om du använder en Debian chroot-miljö och normalt inte visas. Ignorerar dessa, här är standardstrukturen för Bash-snabbvariabeln:

 u @  h:  w  $ @
uanger att ditt användarnamn,@indikerar @ -tecknet, hanger värdnamnet (datornamn),:indikerar: tecknet, windikerar arbetsmappen och $Indikerar en $ om du är ett normalt användarkonto eller # om du är root. Så, sätta allt ihop, du fåranvändarnamn @ värdnamn: work_directory $.

För att ändra din Bash-prompten behöver du bara lägga till, ta bort eller omordna specialtecken i PS1-variabeln. Men det finns många fler variabler du kan använda än standard.

Lämna textredigeraren för nu - i nano, tryck Ctrl + X för att avsluta. Vi visar dig hur du experimenterar med variabler innan du faktiskt skriver en ny i din .bashrc-fil.

Skapa en anpassad basfråga

Konfigurationen av bashantering sparas i PS1-variabeln. För att spara innehållet i PS1-variabeln i en ny variabel, kör följande kommando:

DEFAULT = $ PS1

Du kan nu ställa in PS1-variabeln till olika värden för att experimentera. Till exempel skulle den första raden här ställa in din prompt till en grundläggande "user $" -prompt, medan den andra skulle ställa din fråga till en grundläggande "användare: working_directory $" -prompten.

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

Om du någonsin vill komma tillbaka till standardinställningen, kör bara följande kommando.

PS1 = $ DEFAULT

Bash återställs till standardinställningen tack till det faktum att du sparat dessa standardinställningar tidigare. Observera att alla ändringar du gör här bara är tillfälliga för den aktuella Bash-sessionen så att du alltid kan logga ut och logga in igen eller stänga och återuppta terminalfönstret för att återgå till standardinställningen. Men ovanstående rad gör det möjligt att enkelt komma tillbaka till din standard Bash-prompten utan att behöva logga ut eller stänga ett fönster.

Du kan lägga till några tecken eller text till variabeln. Så, för att prefixa standardprompten med "Hello World" kan du använda:

PS1 = "Hej världen  u @  h:  w  $"

Nu när du har grunderna nere behöver bara veta vad alla specialtecken är. Du kommer nog inte att bry sig om många av dessa, men här är den fullständiga listan som den visas i Bash-handboken:

  • En klocktecken: a
  • Datumet i formatet "Veckodag Månadsdatum" t ex 26 maj): d
  • Formatet skickas till strftime (3) och resultatet sätts in i snabbsträngen; ett tomt format resulterar i en lokal-specifik tidsrepresentation. Fästena krävs: D {format}
  • En flyktig: n
  • Värdenavnet, upp till det första ".": h
  • Värdnamnet: H
  • Antalet jobb som för närvarande hanteras av skalet: j
  • Skalets namn på terminalens namn: l
  • En ny linje: n
  • En vagnretur: r
  • Skalets namn, basnamn på $ 0 (delen som följer den slutliga snedstrecket): s
  • Tiden i 24-timmars HH: MM: SS-format: t
  • Tiden i 12 timmars HH : MM: SS-format: T
  • Tiden i 12-timmars am / pm-format: @
  • Tiden i 24h HH: MM-format:A
  • Användarnamnet för den nuvarande användaren: u
  • Bashversionen (t.ex. 2.00): v
  • Utgåvan av Bash, version + patchlevel (t.ex. 2.00. 0): V
  • Den aktuella arbetsmappen, med $ HOME förkortad med en tilde (använder varianten $ PROMPT_DIRTRIM): w
  • Basnamnet på $ PWD, där $ HOME förkortas med a tilde: W
  • Historiknumret för det här kommandot:!
  • Kommandonumret för det här kommandot: #
  • Om den effektiva uid är 0 , #, annars $: $
  • Tecknet vars ASCII-kod är oktaltalet nnn: nnn
  • En backslash:\
  • Börja en sekvens av icke- utskriftstecken. Detta kan användas för att inbädda en terminal kontrollsekvens i prompten: [
  • Avsluta en sekvens av tecken som inte skrivs ut:]

Så om du vill lägga till datum och tid till din Bash-prompten och placera arbetskatalogen på kommandot på en andra rad, kan du använda följande konstruktion:

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

Korghakarna här är inte nödvändiga, men hjälper till att bryta upp saker visuellt och göra linjen lättare att läsa. Som vi tidigare täckte kan du lägga till text eller normala tecken till den variabel du gillar, så gärna använda vad som helst som fungerar för dig.

Det finns ett mer kraftfullt knep du borde veta om: Du kan lägga till utgången för ett kommando till det snabba. När prompten visas kommer Bash att köra kommandot och fylla i den aktuella informationen. För att göra detta, inkludera bara ett kommando du vill köra mellan två'tecken. Det är inte en apostrof - det är den grava accenten som visas ovanför tabulatorn på tangentbordet.

Låt oss säga att du vill se Linux-kärnversionen i prompten. Du kan använda en rad som följande:

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

Som ett annat exempel, låt oss säga att du vill se systemets upptid och belastningsgenomsnitt, som visas av kommandotuppetid. Du kan använda följande konstruktion, som ställer upptidstiden på egen linje före resten av prompten.

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

Känn dig fri att experimentera med olika specialtecken och kommandon för att montera din ideala kommandotolk.

Så här lägger du till färger i din basprompt

När du har bestämt dig för önskad prompning kan du lägga till färger på den. Det här är faktiskt väldigt enkelt, men det ser till att variabeln ser väldigt rörigt ut och komplicerat om du inte förstår vad du tittar på.

Exempelvis var standardvariabelvariabeln från tidigare:

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

Eller tar du bort debian_chroot-bitarna en gång till:

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

Detta är faktiskt bara variabeln u @ h: w $från tidigare men med färginformation. Egentligen kan vi bryta ner det i några avsnitt:

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

Den första sektionen är u @ hbit, föregås av färginformation som blir den grön. Den andra är tecknet:, föregås av färginformation som tar bort eventuell färgning. Den tredje är w-biten, föregås av färginformation som blir blå. Den fjärde är $-biten, föregås av färginformation som tar bort eventuell färgning.

När du förstår hur du själv konstruerar färgtaggar kan du lägga till vilka färger du vill ha till vilka delar av din Bash frågar dig om.

Här är vad du behöver veta: Du måste inkludera hela färgkodsinformationen mellan tecknet [och]s. Inuti taggen måste du börja med antingen 033 [eller e [för att indikera för Bash att detta är färginformation. Både 033 [och e [gör samma sak. e [är kortare så det kan vara bekvämare att använda, men vi använder 033 [här som det matchar det som används som standard. I slutet av taggen måste du avsluta medm för att ange slutet på en färgmärke.

Bryt ner det här, här är vad varje färgmärke kommer att se ut. Den enda skillnaden är den information du lägger till i stället för COLOR för att definiera den faktiska färgen:

 [ 033 [ COLOR  m ]

Med Bash kan du ändra färgen på förgrunds text,

Här är värdena för förgrundstext:

  • Svart: 30
  • Blå: 34
  • Cyan: 36
  • Grön: 32
  • Lila: 35
  • Röd: 31
  • Vit: 37
  • Gul: 33

Till exempel, eftersom lila text är färgkod 32, använder du [ 033 [ 32 m ]för lila text.

Du kan också ange ett attribut för texten. Detta attribut måste läggas till före färgnumret, åtskilda av en semikolon (;). Texten med dessa attribut kommer att se annorlunda ut i olika terminalemulatorer.

Här är värdena för textattribut:

  • Normal text: 0
  • fet eller ljustext: 1 (Det beror på terminalemulatorn.)
  • Måtttext: 2
  • Understruken text: 4
  • Blinkande text: 5 (Detta fungerar inte i de flesta terminalemulatorer.)
  • Omvänd text: 7 (Detta inverterar förgrunds- och bakgrundsfärgerna så att du se svart text på en vit bakgrund om den nuvarande texten är vit text på en svart bakgrund.)
  • Dold text: 8

Du behöver inte faktiskt inkludera det normala textattributet.

Till exempel, eftersom röd text är kod 31 och fet text är kod 1, skulle du använda [ 033 [ 1; 31 m ]för fet röd text.

Du kan också ange en bakgrundsfärg, men du kan inte lägga till ett attribut till en bakgrundsfärg.

Här är värdena för bakgrundsfärger:

  • Svart bakgrund: 40
  • Blå bakgrund: 44
  • Cyan bakgrund: 46
  • Grön bakgrund: 42
  • Lila bakgrund: 45
  • Röd bakgrund: 41
  • Vit bakgrund: 47
  • Gul bakgrund: 43

Eftersom en blå bakgrund är kod 44, [ 033 [ 44 m ]anges en blå bakgrund.

Du kan ange både förgrunds- och bakgrundsfärg taggar. Till exempel representerar 42 en grön bakgrund och 31 representerar röd text. Så, för att göra standardprompten bli röd text på en grön bakgrund, skulle du använda:

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

Vi anger bara en enda bakgrundsfärg och sedan en enda förgrunds textfärg här, som börjar vid början av prompten och tillämpas på all text i prompten. Du kan emellertid ange så många färgkoder som du vill ha i variabeln för att färga olika delar av din prompten, men du vill.

Bakgrunds- och förgrundstextfärgerna fortsätter förbi prompten om du inte anger färgkod 00 raderar färginformationen . Du kan även använda den här taggen inom variabeln för att återställa formatering tillbaka till standard någonstans i din prompten. Till exempel skulle följande rad avsluta all färgning före tecknet $.

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

Så här ställer du in din nya standardprompt

När du har Det är klart att du experimenterar med färger, du borde ha en Bash-prompten som du gillar i den aktuella sessionen. Men du vill förmodligen göra den nya prompten permanent så att den används automatiskt i alla dina Bash-sessioner.

För att göra detta behöver du bara ändra innehållet i PS1-variabeln i .bashrc-filen, som vi tittade på tidigare.

Öppna .bashrc-filen i din föredragna textredigerare, så här:

nano ~ / .bashrc

Bläddra ner och leta efter PS1 = sektionen. Byt bara ut standardvariabeln med din anpassade variabel. Du kommer noga att lämnaHur som helst, $ {debian_chroot}}bitar, men de kommer inte att visas om du inte är i en chroot-miljö.

Ange din färgade PS1-variabel underom [" $ color_prompt "= ja); därefterlinje. Ange variabeln utan färger under linjenelse.

Spara filen och stäng textredigeraren. Om du vill spara filen i nano trycker du på Ctrl + O, trycker på Enter och trycker sedan på Ctrl + X för att avsluta.

Nästa gång du startar ett nytt Bash-skal, t.ex. genom att logga in på terminalen eller genom att öppna ett nytt terminalfönster - visas din anpassade prompten.


Hur man gör ett smartphone-foto-utseende som om det togs med en DSLR

Hur man gör ett smartphone-foto-utseende som om det togs med en DSLR

Smartphone-kameror har kommit långt, men de är fortfarande ingen konkurrens om en DSLR. Det största problemet är inte faktiskt sensorn, men det är linsen. De flesta smartphones har något som motsvarar en 35 mm-lins på en DSLR. Om du tar ett foto på samma plats med en smartphone och en DSLR med en 35mm-lins på, ser bilderna ganska ut.

(how-top)

Så här styr du ditt Kodi Media Center med ett Amazon Echo

Så här styr du ditt Kodi Media Center med ett Amazon Echo

Fjärrkontrollerna är så 1950. Om du har ett Kodi mediacenter och ett Amazon Echo kan du spela alla dina favoritfilmer och visa med ett välplacerat röstkommando ... om du är villig att göra en liten inställning. Amazon Echo är enligt vår uppfattning en av de coolaste delarna av ett smart hem. Att styra dina lampor, persienner och TV med din telefon är coolt, men att kontrollera dem med din röst är verkligen framtiden.

(how-top)