it.phhsnews.com


it.phhsnews.com / Come personalizzare (e colorare) il tuo prompt Bash

Come personalizzare (e colorare) il tuo prompt Bash


La maggior parte delle distribuzioni Linux configura il prompt di Bash in modo che assomigli ausername @ hostname: directory $. Ma puoi configurare il prompt di Bash in modo che contenga tutto ciò che ti piace e persino scegliere i colori che preferisci.

I passaggi di esempio qui sono stati eseguiti su Ubuntu 16.04 LTS. Il processo dovrebbe essere lo stesso su altre distribuzioni Linux, anche se il prompt Bash predefinito e le impostazioni nel file .bashrc potrebbero essere leggermente diversi.

Dove viene memorizzata la variabile del prompt

La configurazione del prompt di Bash è memorizzata nel tuo utente file .bashrc dell'account, che è~ / .bashrc. Quindi, se il tuo nome utente è bob, il file è/home/bob/.bashrc.

Puoi aprire il file per visualizzare la variabile Bash corrente. Useremo nano come nostro editor di testo di esempio, sebbene tu possa usare anche vi, emacs o qualsiasi altro editor di testo con cui ti trovi a tuo agio. Apri un Terminale ed esegui:

nano ~ / .bashrc

Scorri verso il basso fino alla sezionePS1 =. La prima variabile sembra piuttosto complicata perché include le informazioni sul colore: lo spiegheremo più tardi. La seconda variabile, senza informazioni sul colore, legge come segue:

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

Questo è ancora un po 'complicato a causa del$ {debian_chroot: + ($ debian_chroot)}bit. Questi dicono semplicemente a Bash di farti sapere se stai usando un ambiente chroot di Debian e normalmente non verrà mostrato. Ignorando quelli, ecco la struttura predefinita della variabile prompt Bash:

 u @  h:  w  $
uindica il tuo nome utente,@indica il simbolo @, hindica il nome host (nome computer),:indica il carattere:, windica la directory di lavoro e $indica $ se sei un normale account utente o # se sei root. Quindi, mettendo tutto insieme, ottieniusername @ hostname: working_directory $.

Per cambiare il tuo prompt di Bash, devi solo aggiungere, rimuovere o riorganizzare i caratteri speciali nella variabile PS1. Ma ci sono molte più variabili che puoi usare rispetto a quelle predefinite.

Lascia l'editor di testo per ora-in nano, premi Ctrl + X per uscire. Ti mostreremo come sperimentare le variabili prima di scriverne una nuova nel tuo file .bashrc.

Come creare un prompt di Bash personalizzato

La configurazione del prompt di Bash è memorizzata nella variabile PS1. Per salvare il contenuto della variabile PS1 in una nuova variabile, eseguire il seguente comando:

DEFAULT = $ PS1

Ora è possibile impostare la variabile PS1 su valori diversi per sperimentare. Ad esempio, la prima riga qui imposterà il prompt a un prompt di base "utente $", mentre il secondo imposterà il prompt a un prompt di base "user: working_directory $".

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

Se desideri tornare al prompt predefinito, esegui il seguente comando.

PS1 = $ DEFAULT

Bash verrà ripristinato al prompt predefinito grazie al fatto che hai salvato quelle impostazioni predefinite in precedenza. Tieni presente che qualsiasi modifica apportata qui è solo temporanea per la sessione Bash corrente, quindi puoi sempre uscire e accedere o chiudere e riaprire la finestra del terminale per tornare al prompt predefinito. Ma la riga sopra rende possibile tornare facilmente al prompt Bash predefinito senza il fastidio di uscire o chiudere una finestra.

È possibile aggiungere caratteri o testo alla variabile. Pertanto, per aggiungere il prefisso predefinito a "Hello World", puoi utilizzare:

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

Ora che hai le nozioni di base, ho solo bisogno di sapere quali sono tutti i personaggi speciali. Probabilmente non ti interesseranno molti di questi, ma ecco l'elenco completo come appare nel manuale di Bash:

  • Un carattere di campana: a
  • La data, nel formato "Data del giorno della settimana" ( es. "Tue May 26"): d
  • Il formato viene passato a strftime (3) e il risultato viene inserito nella stringa di richiesta; un formato vuoto produce una rappresentazione temporale specifica della locale. Le parentesi sono obbligatorie: D {formato}
  • Un carattere di escape: e
  • Il nome host, fino al primo '.': h
  • Il nome host: H
  • Il numero di lavori attualmente gestiti dalla shell: j
  • Il nome base del nome del dispositivo terminale della shell: l
  • Una nuova riga: n
  • Un ritorno a capo: r
  • Il nome della shell, il basename di $ 0 (la parte che segue la barra finale): s
  • L'ora, nel formato HH: MM: SS di 24 ore: t
  • L'ora, in HH di 12 ore : MM: formato SS: T
  • L'ora, nel formato 12 / am / pm: @
  • L'ora, nel formato HH: MM di 24 ore: A
  • Il nome utente dell'utente corrente: u
  • La versione di Bash (ad esempio, 2.00): v
  • La versione di Bash, versione + patchlevel (ad esempio, 2.00. 0): V
  • La directory di lavoro corrente, con $ HOME abbreviato con una tilde (usa la variabile $ PROMPT_DIRTRIM): w
  • Il nome di base di $ PWD, con $ HOME abbreviato con una tilde: W
  • Il numero di cronologia di questo comando:!
  • Il numero di comando di questo comando: #
  • Se l'uid effettivo è 0 , #, altrimenti $: $
  • Il carattere il cui codice ASCII è il valore ottale nnn: nnn
  • Un backslash:\
  • Inizia una sequenza di non- caratteri di stampa. Questo potrebbe essere usato per incorporare una sequenza di controllo terminale nel prompt: [
  • Termina una sequenza di caratteri non stampabili:]

Quindi, se si desidera aggiungere la data e l'ora al prompt di Bash e posizionare la directory di lavoro su un comando su una seconda riga, è possibile utilizzare la seguente struttura:

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

Le parentesi quadre qui non sono affatto necessarie, ma aiutano a rompere le cose visivamente e semplificano la lettura della linea. Come spiegato in precedenza, puoi aggiungere qualsiasi testo o caratteri normali alla variabile che ti piace, quindi sentiti libero di usare qualsiasi cosa funzioni per te.

C'è un altro trucco più potente che dovresti sapere: puoi aggiungere l'output di qualsiasi comando al prompt. Ogni volta che viene visualizzato il prompt, Bash eseguirà il comando e inserirà le informazioni correnti. Per fare questo, basta includere qualsiasi comando che si desidera eseguire tra due'caratteri. Questo non è un apostrofo: questo è l'accento grave, che appare sopra il tasto Tab della tastiera.

Ad esempio, supponiamo che tu voglia visualizzare la versione del kernel Linux nel prompt. È possibile utilizzare una riga come la seguente:

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

Come altro esempio, supponiamo che tu voglia vedere il tempo di attività del sistema e carico medio, come visualizzato dal comandotempo di attività. È possibile utilizzare la seguente struttura, che mette il tempo di attività su una riga separata prima del resto del prompt.

PS1 = "('tempo di attività')  n  u @  h:  w $"

Sentiti libero per sperimentare diversi caratteri speciali e comandi per assemblare il tuo prompt dei comandi ideale.

Come aggiungere colori al tuo prompt Bash

Una volta individuato il tuo prompt preferito, puoi aggiungervi dei colori. Questo è in realtà molto semplice, ma rende la variabile estremamente complicata e complicata se non si capisce cosa si sta guardando.

Ad esempio, la variabile del prompt dei colori predefinita precedente era:

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

Oppure, rimuovendo i bit debian_chroot ancora una volta:

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

Questa è in realtà solo la u @ h: w $variabile precedente, ma con informazioni sul colore. In realtà, possiamo suddividerlo in alcune sezioni:

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

La prima sezione è u @ hbit, preceduto da informazioni sul colore che lo rendono verde. Il secondo è il carattere:, preceduto da informazioni sul colore che rimuovono qualsiasi colorazione. Il terzo è il bit w, preceduto da informazioni sul colore che lo rendono blu. Il quarto è il bit $, preceduto da informazioni sul colore che rimuovono qualsiasi colorazione.

Una volta capito come costruire etichette a colori di tua scelta, puoi aggiungere tutti i colori che ti piacciono a qualsiasi sezione del tuo Richiesta Bash che ti piace.

Ecco cosa è necessario sapere: è necessario includere l'intera informazione sul codice colore tra [e] caratteres. All'interno del tag, è necessario iniziare con 033 [o e [per indicare a Bash che si tratta di informazioni sul colore. Entrambi 033 [e e [fanno la stessa cosa. e [è più breve quindi potrebbe essere più comodo da usare, ma useremo 033 [qui come corrisponde a ciò che viene utilizzato per impostazione predefinita. Alla fine del tag, devi terminare conm per indicare la fine di un tag colore.

Scomponendo, ecco come apparirà ogni tag di colore. L'unica differenza è l'informazione che aggiungi al posto di COLOR per definire il colore effettivo:

 [ 033 [ COLORE  m ]

Bash ti permette di cambiare il colore del testo in primo piano, aggiungi attributi come "grassetto" o "sottolineatura" al testo e imposta un colore di sfondo.

Ecco i valori per il testo in primo piano:

  • Nero: 30
  • Blu: 34
  • Ciano: 36
  • Verde: 32
  • Viola: 35
  • Rosso: 31
  • Bianco: 37
  • Giallo: 33

Ad esempio, poiché il testo viola è il codice colore 32, devi usare [ 033 [ 32 m ]per testo viola.

Puoi anche specificare un attributo per il testo. Questo attributo deve essere aggiunto prima del numero del colore, separato da un punto e virgola (;). Il testo con questi attributi apparirà diverso in diversi emulatori di terminale.

Ecco i valori per gli attributi di testo:

  • Testo normale: 0
  • Grassetto o Testo chiaro: 1 (Dipende dall'emulatore di terminale.)
  • Dim Text: 2
  • Testo sottolineato: 4
  • Testo lampeggiante: 5 (Questo non funziona nella maggior parte degli emulatori di terminale.)
  • Testo invertito: 7 (Questo inverte i colori di primo piano e di sfondo, quindi vedere il testo nero su uno sfondo bianco se il testo corrente è testo bianco su sfondo nero.)
  • Testo nascosto: 8

In realtà non è necessario includere il normale attributo di testo.

Ad esempio, poiché il testo rosso è il codice 31 e il testo in grassetto è il codice 1, devi usare [ 033 [ 1; 31 m ]per il testo in grassetto rosso.

Puoi anche specificare un colore di sfondo, ma non puoi aggiungere un attributo a un colore di sfondo.

Ecco i valori per i colori dello sfondo:

  • Sfondo nero: 40
  • Sfondo blu: 44
  • Sfondo ciano: 46
  • Sfondo verde: 42
  • Sfondo viola: 45
  • Sfondo rosso: 41
  • Sfondo bianco: 47
  • Sfondo giallo: 43

Ad esempio, poiché uno sfondo blu è il codice 44, [ 033 [ 44 m ]specifica uno sfondo blu.

Puoi specificare sia il colore di primo piano che di sfondo tag. Ad esempio, 42 rappresenta uno sfondo verde e 31 rappresenta il testo rosso. Quindi, per fare in modo che il prompt predefinito diventi testo rosso su sfondo verde, devi utilizzare:

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

Si specifica solo un singolo colore di sfondo e quindi un singolo colore di testo in primo piano qui, che inizia all'inizio del prompt e viene applicato a tutto il testo nel prompt. Tuttavia, puoi specificare tutti i tag colore che desideri nella variabile per colorare diverse sezioni del prompt come preferisci.

I colori di sfondo e di primo piano continuano a superare il prompt a meno che non specifichi il codice colore 00 cancella le informazioni sul colore . È inoltre possibile utilizzare questo tag all'interno della variabile per ripristinare la formattazione di default su qualche punto del prompt. Ad esempio, la seguente riga termina tutta la colorazione prima del carattere $.

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

Come impostare il nuovo prompt predefinito

Una volta Hai fatto esperimenti con i colori, dovresti avere un prompt di Bash che ti piace nella sessione corrente. Ma probabilmente vuoi rendere quel nuovo prompt permanente in modo che venga automaticamente utilizzato in tutte le tue sessioni Bash.

Per fare ciò, devi solo cambiare il contenuto della variabile PS1 nel file .bashrc, che abbiamo visto prima.

Apri il file .bashrc nel tuo editor di testo preferito, in questo modo:

nano ~ / .bashrc

Scorri verso il basso e individua la sezione PS1 =. Basta sostituire la variabile predefinita con la variabile personalizzata. Probabilmente vorrai lasciare il$ {debian_chroot: + ($ debian_chroot)}bit da soli, tuttavia non appariranno a meno che tu non sia comunque in un ambiente chroot.

Inserisci la tua variabile PS1 colorata sottoif [" $ color_prompt "= yes]; poiLinea. Immettere la variabile senza colori sotto la rigaaltro.

Salvare il file e chiudere l'editor di testo. Ad esempio, per salvare il file in nano, premere Ctrl + O, premere Invio, quindi premere Ctrl + X per uscire.

La prossima volta che si avvia una nuova shell Bash, ad esempio, accedendo al terminale o aprendo una nuova finestra di terminale, vedrai il tuo prompt personalizzato.


Qual è l'equivalente di Ctrl + Alt + Canc su un Mac?

Qual è l'equivalente di Ctrl + Alt + Canc su un Mac?

Se passi a un Mac dopo aver acquisito familiarità con Windows, troverai rapidamente lo standard Ctrl + Alt + Canc la scorciatoia non fa nulla Mac OS X ha una sua versione del Task Manager, ma è leggermente diverso da Windows ', e puoi accedervi premendo Comando + Opzione + Esc. Mentre Task Manager di Windows contiene una grande quantità di informazioni e caratteristiche, OS X suddivide alcune di queste funzionalità in app separate.

(how-top)

Come riprogrammare l'interruttore Dimmer tonalità per fare qualsiasi cosa con le luci

Come riprogrammare l'interruttore Dimmer tonalità per fare qualsiasi cosa con le luci

L'interruttore Dimmer tonalità è un ottimo modo per aggiungere controlli fisici al sistema di illuminazione Hue, ma è un po 'rudimentale. Grazie a una comoda app, tuttavia, puoi insegnare a Hue Dimmer Switch una serie di nuovi trucchi che consentono di impostare qualsiasi scena con il semplice clic di un pulsante.

(how-top)