Cambiar indicador de Cygwin


Respuestas:


26

La PS1variable de entorno controla la solicitud:

PS1='\w $ '

Para obtener más información sobre este y otros temas de configuración rápida, escriba man bash(suponiendo que bashsea ​​su shell) y consulte la sección "PROMOCIÓN".

Para que este cambio sea permanente, edite su ~/.bashrcarchivo para agregar la línea anterior.


1
~ / .bashrc no se ejecuta para un shell de inicio de sesión. actualizar ~ / .bash_profile en su lugar. Uso la siguiente cadena de solicitud, que tiene otra información útil, no solo la ruta: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn

1
No olvide que normalmente .profile obtiene .bashrc, de modo que, en efecto, un shell de inicio de sesión se inicializa con el mismo material que un shell sin inicio de sesión más lo que hay en .profile. Si ese es el caso, poner su nueva solicitud en .bashrc mata dos pájaros de un tiro.

1

Un shell de inicio de sesión es aquel cuyo primer carácter del argumento cero es un -, o uno que comenzó con la opción --login. Cuando se invoca bash como un shell de inicio de sesión interactivo o como un shell no interactivo con la opción --login, primero lee y ejecuta comandos del archivo / etc / profile, si ese archivo existe. Después de leer ese archivo, busca ~ / .bash_profile, ~ / .bash_login y ~ / .profile, en ese orden, y lee y ejecuta comandos del primero que existe y es legible. La opción --noprofile se puede usar cuando se inicia el shell para inhibir este comportamiento. Cuando se inicia un shell interactivo que no es un shell de inicio de sesión, bash lee y ejecuta comandos desde ~ / .bashrc, si ese archivo existe.

Entonces depende ... no uso el --login, así que debo agregarlo a ~ / .bashrc


1

No estoy seguro de por qué tener menos contexto es mejor que tener más ... El hecho de que haya una nueva línea en la solicitud significa que la duración de la solicitud no debería ser un problema, pero intente esto:

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

o

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

Esto le da un mensaje de color:

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

De esa manera, siempre ve el contexto completo de la carpeta pero aún obtiene una línea completa para ingresar texto. (Dejé el espacio habitual después de '$' porque está coloreado para mayor claridad).

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

Para aquellos que SI quieren el contexto 'user @ hostname' también:

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\] '

Esto le da un mensaje de color:

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

Esta es mi preferencia

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, no hay errores ortográficos en esta publicación - Queen's English;))


1

.bashrc no funcionó para mí. Agregué esto al final de / etc / profile y funcionó:

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

Estoy usando la versión 2.11.2 de Cygwin (última versión a partir del 2018-12-18).


0

Pon esto en tu ~ / .bashrc. Da un mensaje de color y mantiene el estado en una sola línea.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.