¿Por qué mi terminal MacBook Air usa sh-3.2 # en lugar de mi nombre de usuario #?

2

En mi MacBook Air Terminal, tengo el siguiente mensaje:

Zoos-MacBook-Air:~ zdm$

Cuando escribo sudo suy luego ingreso mi contraseña de root, generalmente recibo el mismo mensaje con el #signo de la siguiente manera:

Zoos-MacBook-Air:~ zdm#

Recientemente noté que cuando escribí sudo suy luego ingresé mi contraseña de root, la solicitud cambió a:

sh-3.2# 

¿Cómo volver a cambiarlo a lo habitual?

zdm
fuente
1
¿Tiene la cuenta de usuario root habilitada? ¿O ha habilitado la cuenta de usuario root y ahora ha deshabilitado la cuenta de usuario root?
fd0
Creo que nunca fue habilitado.
zdm
1
Su solicitud de shell raíz probablemente no lo fue Zoos-MacBook-Air:~ zdm#ya que cuando se encuentra en un shell raíz, el nombre de usuario siempre es root.
pixelomer

Respuestas:

0

No sé por qué cambió, pero puede anular sh-3.2#u otras indicaciones de shell predeterminadas cambiando la $PS1variable. Para hacerlo, simplemente ejecute el siguiente comando (incluido el espacio después del signo de dólar):

export PS1='\h:\w \u\$ '

Esto reemplazará su solicitud de shell con Zoos-MacBook-Air:~ root$. Sin embargo, este cambio no es persistente y desaparecerá cuando exitcierre la Terminal. Puede hacerlo persistente editando el archivo raíz .bash_profile. Ejecute el siguiente comando mientras está en un shell raíz para modificar ese archivo:

echo 'export PS1='"'"'\h:\w \u\$ '"'" >> ~/.bash_profile
echo 'export PS1='"'"'\h:\w \u\$ '"'" >> ~/.profile

o

echo "export PS1='\\h:\\w \\u\\\$ '" >> ~/.bash_profile
echo "export PS1='\\h:\\w \\u\\\$ '" >> ~/.profile

Esto hará que el cambio sea persistente.

Las pruebas se realizaron en iOS 11 con root shell, pero todo en esta respuesta también funciona en macOS.

pixelomer
fuente
2
rootEl caparazón shno es bashy shno lee .bash_profile. Todo esto se centra en si el shell es un shell de inicio de sesión interactivo o un shell de no inicio de sesión interactivo y qué archivos de configuración se leen.
fd0
@ fd0 Edité la respuesta para incluir .profile
pixelomer el
Un poco más cerca de una respuesta correcta. Le sugiero que lea la sección INVOCACIÓN en el bashmanual. Presta especial atención al párrafo sobre sh. Cuando suse invoca como sudo suse creará una interactive non-login shellcon root's cáscara, sh. shno leerá ningún archivo de configuración a menos que establezca un archivo en la ENV variable de entorno. Ahora, esto se vuelve un poco complicado declarando variables y escribiendo un nuevo archivo de configuración ... etc. Simplemente, en lugar de usar sudo su`, use sudo su -l.
fd0