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


Attualmente è:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

Oltre a rinominare la mia macchina e la struttura delle directory ...

Come potrei renderlo qualcosa di più simile a:

michael:controllers$

148
2018-06-02 18:48


origine


askubuntu.com/questions/816068/... - nazar2sfive


risposte:


Per cambiarlo solo per l'istanza del terminale corrente

Basta inserire PS1='\u:\W\$ ' e premere invio.


Per cambiarlo "permanentemente"

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

se ["$ color_prompt" = yes]; poi
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
altro
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $'
fi

Rimuovi il @\he sostituire il \w con una maiuscola \W, in modo che diventi:

se ["$ color_prompt" = yes]; poi
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
altro
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u: \ W \ $'
fi

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


Tonnellate più opzioni!

  • Vedere Qui per un howto più ampio, con molte più opzioni
  • Vedere questa risposta per utilizzare un piccolo script Python per impostare il prompt in modo che l'accorciamento avvenga solo quando ci si trova in una struttura di directory profonda.

213
2018-06-02 19:04



Puoi anche avere molte informazioni ... e poi un ritorno a capo alla fine come in unix.stackexchange.com/q/88780/10043 - Michael Durrant
C'è un modo per rendere questo globale? In altre parole, se prendo in considerazione un altro utente, è possibile riportare questa impostazione, ma solo per me stesso (ad esempio, non per l'utente quando normalmente utilizza il proprio account)? - ctote
Per avere un .bashrc condiviso che funziona sia su Linux che su OSX da quando sono passato a unix.stackexchange.com/a/127800/10043 - Michael Durrant
cioè HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g"' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>' - Michael Durrant
ma vedi la risposta per il codice effettivo da usare. - Michael Durrant


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 renderlo permanente, aggiungi la seguente linea a ~/.bashrc all'inizio:

PROMPT_DIRTRIM=3

o un altro numero maggiore di zero.


83
2018-05-02 06:49



Solo un sidenote: questo richiede Bash 4. - Stefan Lasiewski
Bello ... Ho aggiunto un bach_alias per questo (con una funzione) promptdir() { PROMPT_DIRTRIM=$1; } solo per rendere più facile vivere ... - dgoosens


Questa è la mia impostazione di prompt preferita:

aggiunto in ~/.bashrc 

PS1='[\u@\h \W]\$ '    

sembra così:

[user@hostname dirname]$

(con uno spazio dopo il $ cartello)


15
2017-10-10 03:08



Come aggiungerei uno spazio tra ogni parola? Inoltre, posso colorarlo? - Dani Springer


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.


6
2018-05-20 11:01





Mi rendo conto che è super vecchio, ma dal momento che nessuno ha suggerito di creare un alias, ho pensato di pubblicare. utilizzando Sequenza di escape di Bash Prompt Ho fatto un alias shorten 

In ~/.bash_aliases qui noterai la variabile $ Blue per impostare il colore del 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 definito i colori in ~/.bashrccopia e incollato da https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Da un lato, che cosa sono i colori dei codici ansi? Sono confuso solo a guardarlo.

Blue='\e[0;34m'         # Blue

1
2017-10-26 21:03



Una guida passo passo per questo sarebbe molto utile in quanto non ho idea di come arrivare a .bash_aliases. Grazie - Kayote
"" prefisso indica una directory o un file nascosto. La tilde "~" è una forma abbreviata di $ HOME variabile. Quindi "~ / .bash_aliases" è una forma abbreviata di "/home/$USER/.bash_aliases". Per aprire ".bash_aliases" puoi aprire un terminale e digitare "gedit /home/$USER/.bash_aliases" o "gedit ~ / .bash_aliases" o nella tua directory home digitare ctrl-h per mostrare i file nascosti e aprire il file direttamente . Spero possa aiutare. Puoi anche fare una ricerca su Google per utili alias. - Allie Carver