Modifica prompt Cygwin


Risposte:


26

La PS1variabile d'ambiente controlla il prompt:

PS1='\w $ '

Per ulteriori informazioni su questo e altri argomenti di configurazione del prompt, digitare man bash(supponendo che bashsia la shell) e consultare la sezione "PROMPTING".

Per rendere permanente questa modifica, modifica il tuo ~/.bashrcfile per aggiungere la riga sopra.


1
~ / .bashrc non viene eseguito per una shell di accesso. aggiornare invece ~ / .bash_profile. Uso la seguente stringa di prompt, che contiene alcune altre informazioni utili, non solo il percorso: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn,

1
Non dimenticare che normalmente .profile genera .bashrc, in modo che in effetti una shell di login sia inizializzata con le stesse cose di una shell non login più cosa c'è in .profile. In tal caso, inserendo il tuo nuovo prompt in .bashrc uccidi due piccioni con una fava.

1

Una shell di login è quella il cui primo carattere dell'argomento zero è un -, oppure uno è iniziato con l'opzione --login. Quando bash viene invocato come shell di login interattiva o come shell non interattiva con l'opzione --login, legge prima ed esegue i comandi dal file / etc / profile, se quel file esiste. Dopo aver letto quel file, cerca ~ / .bash_profile, ~ / .bash_login e ~ / .profile, in quell'ordine, e legge ed esegue i comandi dal primo che esiste ed è leggibile. L'opzione --noprofile può essere utilizzata all'avvio della shell per inibire questo comportamento. Quando viene avviata una shell interattiva che non è una shell di accesso, bash legge ed esegue i comandi da ~ / .bashrc, se quel file esiste.

Quindi dipende ... non uso il file --login, quindi devo aggiungerlo a ~ / .bashrc


1

Non so perché avere meno contesto sia meglio che avere di più ... Il fatto che ci sia una nuova riga nel prompt significa che la lunghezza del prompt non dovrebbe essere un problema, ma prova questo:

PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

o

export PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Questo ti dà un prompt colorato:

/full/path/to/current/folder
$your command text here

In questo modo, visualizzi sempre il contesto completo della cartella ma ottieni comunque una riga completa per inserire il testo. (Ho lasciato fuori lo spazio abituale seguendo '$' perché è colorato per chiarezza).

Colours are:
    1. '/full/path/...' = yellow;
    2. '$' (on next line) = cyan;
    3. 'your command text...' = light grey.

Per coloro che vogliono anche il contesto "user @ hostname":

PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

o

export PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Questo ti dà un prompt colorato:

user@hostname /full/path/to/current/folder
$your command text here

Questa è la mia preferenza

Colours are:
    1. 'user' = (light) green;
    2. '@' = pink;
    3. 'hostname' = (light) green;
    4. '/full/path/...' = yellow;
    5. '$' (on next line) = cyan;
    6. 'your command text...' = light grey.

(No, non ci sono errori di ortografia in questo post - Queen's English;))


1

.bashrc non ha funzionato per me. Ho aggiunto questo alla fine di / etc / profile e ha funzionato:

export PS1="\[\e[33m\]\w\[\e[0m\] \$ "

Sto usando la versione 2.11.2 di Cygwin (ultima versione del 18-12-2018).


0

Metti questo nel tuo ~ / .bashrc. Fornisce un prompt colorato e mantiene lo stato in un'unica riga.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.