11Jul

Come si fa a modificare il prompt di Bash quando si accede a un server?

Se si accede a più server per tutta la giornata lavorativa, è quindi molto utile sapere quale si sta lavorando a colpo d'occhio in base a una combinazione di colori. Il post di Q & A di SuperUser di oggi aiuta un lettore a raggiungere un colorito nirvana nel suo ambiente di lavoro.

Today's Question &La sessione di risposta ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.

La domanda

SuperUser reader nitins vuole sapere come modificare il prompt Bash cambiando i colori quando si accede a un server:

C'è un modo per rendere dinamico il prompt Bash in modo che cambi colore quando sono connesso a un server? Voglio che il colore sia verde quando utilizzo il mio sistema personale, ma diventa rosso ogni volta che sono connesso ai server. Ho un numero enorme di server a cui accedo e non voglio dover mettere diverso su ciascuna di esse.

Come si fa a cambiare il Bash Prompt quando si accede a un server?

La risposta

SuperUser contributore Matei David ha la risposta per noi:

Remote Bash Prompt sono impostati dal remoto ~ /. bashrc , quindi sarà comunque necessario copiarlo sui server remoti. Tuttavia, è possibile utilizzare un singolo ~ /. bashrc per tutti gli host e impostare il colore del prompt Bash in base al nome host:

Note

  • Non impostare PS1 se non è già impostato( cioè se la shell non èinterattivo).Test per vedere se PS1 è "non vuoto" è un modo molto comune per scoprire se la shell è interattiva e non si vuole confondere i programmi che lo fanno( probabilmente, un test più accurato sta controllando per vedere se $ - contiene i ).
  • Se si desidera che questo codice venga eseguito quando si accede a un server remoto, è necessario che uno dei file di profilo sia sempre ~ /. bashrc ( presumo che lo sappiate).
  • In PS1 , i codici di escape devono essere racchiusi in \ [... \] .
  • \ [033 [m ripristina il primo piano e lo sfondo ai valori predefiniti, quindi qui : \ w appare nel terminale in primo piano / sullo sfondo.
  • \ [033 [48; 5; XXXm \ 033 [38; 5; YYYm imposta lo sfondo / primo piano su XXX / YYY .
  • Per uno script che esegue il dump dei colori disponibili, provare colortest.
  • Per controllare e vedere come apparirebbe il prompt Bash, utilizzare: echo -e "& lt; \ 033 [48; 5; 16m \ 033 [38; 5; 196mhost \ 033 [m: dir & gt; $"

avere qualcosaaggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui. Immagine di

: Emx( Wikipedia)