Mi terminal tiene un formato de solicitud predeterminado como este:
username @ boxname / path / to / current / directory $
El código que lo produce tiene este aspecto: (también tiene algunas definiciones de color)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]'
Si la ruta al directorio actual se alarga demasiado, resulta desagradable trabajar con el terminal porque constantemente se interrumpen las líneas. En tales casos, preferiría un formato que produzca una cadena más corta como esta:
username @ boxname current_dir_name $
El código que lo produce se vería así (de nuevo con color):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] $(basename ${PWD}) \$ \[\033[00m\]'
¿Alguien sabe cómo podría alternar fácilmente el formato de la ventana de terminal actual de un estilo a otro simplemente escribiendo, por ejemplo prompttoggle
:?
bash
gnome-terminal
Rotareti
fuente
fuente
PROMPT_DIRTRIM=0
yPROMPT_DIRTRIM=1
parece más simple que alternar entre diferentes valores paraPS1
y el resultado es casi el mismo. Gracias por la info!PROMPT_DIRTRIM
uno también podría agregar argumentos al comando. Si pasa ningún argumento alternar entrePROMPT_DIRTRIM=0
yPROMPT_DIRTRIM=1
y si pasa un número como argumento se establecePROMPT_DIRTRIM
a ella.promptlen
sería un nombre más apropiado para el comando entonces.Respuestas:
Almacene sus
PS1
variables largas y cortas con un nombre diferente:Asegúrese de establecer
PS1
uno de ellos inicialmente:Luego puede hacer un alias como este para alternar entre los dos valores de PS1:
Agregar las cuatro líneas a su
~/.bashrc
archivo tendrá el comando disponible en sus sesiones de Bash, aquí están nuevamente para facilitar la copia:fuente
Puedes usar una pequeña
bash
función:La función anterior coincide si la corriente
$PS1
contienebasename
, en caso afirmativo, se establece elPS1
sin; debasename
lo contrario, se establece el quebasename
tienePonga la función en su
~/.bashrc
para que esté disponible en todas las sesiones interactivas.Ejemplo:
fuente
O ... haz dos funciones muy pequeñas y agrégalas al final de tu
~/.bashrc
para una solicitud abreviada, escriba
promptshort
, para volver a la ruta completa, escribapromptlong
\W
muestra el directorio de trabajo actual solo así que$(basename ${PWD})
es excesivo en mi humilde opiniónPodría combinarse en una función, pero "largo" y "corto" son descriptivos y ambos tienen menos pulsaciones de teclas que "alternar";)
En lugar de agregar una línea para anular PS1, prefiero ajustar el código que lo establece (por ejemplo, descomentar
force_color_prompt=yes
y editar la línea después[ "$color_prompt" = yes ]; then
)fuente
Aquí hay una
~/.bashrc
definición de función que yo personalmente uso para restablecer / alternar mi solicitud de solicitud regular a solo$
. Adaptarlo según sea necesario para satisfacer sus necesidades.fuente
Esta es una respuesta a su problema (los directorios largos rompen la línea de comando) y no específicamente a su pregunta (cómo cambiar el símbolo del sistema sobre la marcha).
Resolví este problema hace años con este mensaje:
Qué hace esto:
Esto le brinda todo el espacio que necesita para su comando, no lo desplaza correctamente cuando se encuentra en una estructura de directorio profunda, no estropea la línea de mecanografía con códigos de color (evitando errores extraños que a veces suceden), mientras le da el color Indique dónde terminó la salida de un comando y comenzó el siguiente:
fuente