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/053pwd
que 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 - root
osudo -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
id
comando para asegurarte de que eres quien crees que eres:fuente
sudo su
sudo su
lee ~ 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
.bashrc
archivo, siguiendo los ejemplos en este hilo.Luego, en vim, busque la apariencia final de la
PS1
asignación y agregue esto a continuación (tenga en cuenta que actualiza el valor de$PS1
para 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 su
seguido decd ~
que verá que está en el directorio de inicio de la raíz.Al
sudo su
iniciar sesión como root (su = cambiar de usuario) al contrario quesudo do some administrative task
como usuario con privilegios elevados.Entonces, al usarlo,
sudo su
se 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 su
seguidos devim .bashrc
.fuente
Seguir puede ayudar
Esto se mostrará
'> '
para usuarios normales y'# '
para root. Esto todavía necesita estar en la raíz.bashrc
también.fuente