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.

Naftuli Kay
fuente

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.

Ignacio Vazquez-Abrams
fuente
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).

ktf
fuente
+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 ...

rahmu
fuente
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).

rozcietrzewiacz
fuente
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