Reiniciar completamente Bash


18

¿Hay alguna manera de reiniciar completamente Bash y recargar .bashrcy cosas .profilesimilares? Me gustaría asegurarme de que mis cambios funcionaron correctamente después de editar estos archivos.

Respuestas:


32

Haga que se reemplace por sí mismo.

exec bash -l

Tenga en cuenta que esto no afectará cosas como el cwd o las variables exportadas.


Agradable, pero me gusta especialmente hacer esto con el fin de comprobar y ver si mi PATHse está estableciendo como yo quiero o mi PS1, etc.
Naftuli Kay

1
Saque el execy obtendrá un shell que obtiene los archivos que desea. Entonces, justo exitcuando haya terminado de verificar.
Arcege

@TK: cualquier variable que asigne tendrá prioridad sobre las que quedan del shell anterior.
Ignacio Vazquez-Abrams

Entonces, ¿esto funcionará para cambiar mi aviso de Bash? Es decir, ¿volverá a cargar mi indicador de bash cada vez que lo ejecute?
Naftuli Kay

Siempre que esté configurando $PS1los archivos de inicio de bash, sí.
Ignacio Vazquez-Abrams

9

Sugiero urgentemente iniciar sesión en una ventana / pantalla separada. De esta manera, todavía tiene una sesión de trabajo si algo va mal con sus cambios en los archivos de inicio. También está seguro de tener un ambiente limpio.

Motivo: vi a demasiadas personas bloqueándose a sí mismas de un sistema debido a un simple error tipográfico en su perfil (o similar).


+10, un shell limpio donde puede cambiar las ediciones es esencial.
Sardathrion - Restablece a Monica el

Estoy en un DE, así que no debería ser tan malo, Bauhaus, sí, ten cuidado.
Naftuli Kay

3

Si su objetivo es simplemente leer los archivos modificados nuevamente, no tiene que reiniciarlo. Simplemente puede obtenerlo.

source filename

o

. filename # notice the dot

Tenga en cuenta que esto no le dará un "estado limpio" en el sentido de que no desarmará ninguna variable establecida o funciones definidas ...


2
su -l yourOwnUserName

Abrirá un nuevo shell para el yourOwnUserNameusuario con todas las configuraciones recargadas. Esto es independiente del shell, ya que se refiere a la configuración del sistema, no a su shell específico. También carga algunas configuraciones de todo el sistema que bash -lno lo hacen (como los grupos de usuarios).


nota importante: "una cáscara nueva" aquí significa una cáscara dentro de su cáscara existente, por lo que solo está anidando cáscaras, no reemplazando la original. La respuesta aceptada lo hace correctamente.
underscore_d
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.