Antes de hacer clic, esta no es la típica pregunta "¿cómo puedo hacer que mi indicador de bash tenga color"? Ya he personalizado mi mensaje bash para que se vea así:
[user @ host]----[$(pwd)]
$
donde todo entre paréntesis es azul claro, y todo lo demás (incluido $) es negro agregando lo siguiente a mi archivo ~ / .bashrc
# Turn the prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
El objetivo es lograr que lo único que cambia cuando uso 'sudo su' es que el $ negro cambia a un # rojo. He buscado en /etc/bash.bashrc y / etc / profile para ver si solo hay una línea para comentar, pero hay un montón de cosas sobre debian_chroot que no entiendo, y no quiero arruinar algo ¿Cómo puedo lograr lo que quiero?
PD: así es como quiero que se vea el mensaje como root
[user @ host]----[$(pwd)]
(red)#
editar: Marque esto resuelto, agregando el código anterior a ~ / .bashrc mientras que root logró mi objetivo. Además, en el código anterior, $ (pwd) solo muestra el directorio de inicio (supongo que es el directorio de trabajo cuando se abre el terminal), y nunca se actualiza. Reemplazar $ (pwd) con \ w corrige esto, pero muestra el directorio de inicio como ~, que estaba tratando de evitar.
fuente

\e[01;31m, en\[...\]. Esto se explica en PROMPTING en el manual. También vea mywiki.wooledge.org/BashFAQ/053pwdque no funcionó en el indicador es que necesita escapar del signo de dólar, de lo contrario$(pwd)se ejecutará antes de que el contenido se coloque en $ PS1. Puede probar con esto:PS1="\$(pwd) ".Respuestas:
También dependerá de cómo se convierta en usuario root. Debe realizar el cambio en el .bashrc del usuario raíz si está utilizando algo como
su - rootosudo -i, donde lee en el entorno.Con
sudo -s, deberías estar leyendo tu propio .bashrc.Considere agregar algunas declaraciones printf o echo para depurar su código, para decirle cuándo se ha ejecutado.
Usa el
idcomando para asegurarte de que eres quien crees que eres:fuente
sudo susudo sulee ~ root / .bashrc (al menos como se implementa actualmente en mi sistema 13.04).Para cambiar el color del indicador a rojo para la raíz, modifiqué el
.bashrcarchivo, siguiendo los ejemplos en este hilo.Luego, en vim, busque la apariencia final de la
PS1asignación y agregue esto a continuación (tenga en cuenta que actualiza el valor de$PS1para que no sea necesario modificar otras líneas anteriores, y el cambio es fácilmente reversible):fuente
Siguiendo la respuesta válida de belacqua /ubuntu//a/305053/12218 , al emitir sudo su se carga el .bashrc de la raíz.
Puede verificar esto emitiendo
sudo suseguido decd ~que verá que está en el directorio de inicio de la raíz.Al
sudo suiniciar sesión como root (su = cambiar de usuario) al contrario quesudo do some administrative taskcomo usuario con privilegios elevados.Entonces, al usarlo,
sudo suse convierte en la raíz real y los cambios realizados en el entorno son cambios realizados específicamente en la raíz, es decir:sudo suseguidos devim .bashrc.fuente
Seguir puede ayudar
Esto se mostrará
'> 'para usuarios normales y'# 'para root. Esto todavía necesita estar en la raíz.bashrctambién.fuente