Come posso ridurre il prompt della mia riga di comando (bash)?

147

Attualmente è:

[email protected]:~/Dropnot/webs/rails_v3/linker/spec/controllers$

Al di fuori della ridenominazione della mia macchina e della struttura delle directory ...

Come potrei renderlo qualcosa di più simile a

michael:controllers$
    
posta Michael Durrant 02.06.2012 - 20:48

5 risposte

212

Per cambiarlo solo per l'istanza del terminale corrente

Inserisci PS1='\u:\W$ ' e premi invio.

Per cambiarlo "permanentemente"

Nel tuo ~/.bashrc , trova la seguente sezione:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\[email protected]\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w$ '
fi

Rimuovi @\h e sostituisci \w con \W in maiuscolo, in modo che diventi:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\]:\[3[01;34m\]\W\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u:\W$ '
fi

Salva, esci, chiudi il terminale e inizia un altro per vedere il risultato.

Tonnellate più opzioni!

  • Vedi qui per un howto più esteso, con molti altri opzioni
  • Vedi questa risposta per utilizzare un piccolo script Python per impostare il prompt in modo che l'accorciamento avvenga solo quando sei in profondità in una struttura di directory.
risposta data ish 02.06.2012 - 21:04
83

Esegui questo codice nel terminale corrente

PROMPT_DIRTRIM=3

Ora il prompt di bash mostrerà solo gli ultimi 3 nomi di directory. Puoi scegliere 1 per mostrare solo la directory corrente. Ulteriori informazioni sono disponibili nella documentazione GNU .

L'effetto:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Se vuoi farlo in modo permanente, aggiungi la seguente riga a ~/.bashrc all'inizio:

PROMPT_DIRTRIM=3

o un altro numero maggiore di zero.

    
risposta data santosh Mahto 02.05.2014 - 08:49
15

Questa è la mia impostazione prompt preferita:

aggiunto in ~/.bashrc

PS1='[\[email protected]\h \W]$ '    

assomiglia a questo:

[[email protected] dirname]$

(con uno spazio dopo il segno $ )

    
risposta data unwastable 10.10.2014 - 05:08
6

Personalmente preferisco vedere solo la cartella corrente nel prompt di bash. Posso farlo con il seguente comando:

PS1='\W$ '

Se vuoi che diventi effettivo dopo ogni avvio, aggiungi il comando sopra nel tuo ~ / .bashrc.

    
risposta data Rajeev Jayaswal 20.05.2017 - 13:01
1

Mi rendo conto che questo è super vecchio, ma dal momento che nessuno ha suggerito di creare un alias, ho pensato di pubblicare. Utilizzo di Sequenze di escape del prompt di Bash Ho creato un alias shorten

In ~/.bash_aliases qui noterai la variabile $ Blue per impostare il colore prompt che puoi omettere o modificare in base alla preferenza. Svendo anche il terminale quando chiamo abbreviazione.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Per ottenere la stringa di richiesta desiderata dall'OP:

alias shorten='PS1="$USER:\W$ "'

Ho colori definiti in ~/.bashrc copiati e incollati da link . Da un lato, che cosa sono i colori dei codici ansi? Sono confuso solo a guardarlo.

Blue='\e[0;34m'         # Blue
    
risposta data Allie Carver 26.10.2015 - 22:03

Leggi altre domande sui tag