¿Cómo reiniciar una ventana de terminal en lugar de cerrarla y comenzar una nueva?

49

Cuando realizo algunos cambios en el comportamiento de shell / bash, como configurar un alias, ¿hay un comando rápido para reiniciar la ventana de terminal en lugar de cerrar y abrir una nueva ventana?

NES
fuente

Respuestas:

51

Si quiere recargar su configuración .bashrc, entonces:

source ~/.bashrc

Para escribir menos, puede reemplazar sourcecon un punto:. ~/.bashrc

narkisr
fuente
2
Aquí hay una pregunta, ¿cómo se comporta esto de manera diferente source ~/.bashrc?
crasic
No lo hace. Al mirar la página de manual de bash, verá que los comandos se enumeran como equivalentes.
Carsten Thiel
2
sourcees un específico para bash. .Es más estándar. Ambos funcionan igual en bash.
Michael Terry
1
Esto solo recarga su RUTA y algunas variables de entorno. No "restablece" nada. La respuesta de @ NES es la correcta.
Cerin
2
Esto no restablece nada, si tenía actualizaciones para su RUTA ahora tendrá sus actualizaciones antiguas y nuevas.
Constantin
39

Alguna adición que encontré en la página de manual del comando reset / tset

tset reset terminal de inicialización

mando: reset

Tset inicializa terminales. Tset primero determina el tipo de terminal que está utilizando. Esta determinación se realiza de la siguiente manera, utilizando el primer tipo de terminal encontrado.

Parece ser una ventaja, que es independiente del shell utilizado. También funciona con peces aquí.

Entonces, para reiniciar cualquier terminal, simplemente haga

$ tset

O

$ reset
NES
fuente
Lamentablemente, esto también está mal. No restablece las variables de entorno existentes.
isarandi
9

Una opción adicional exec bashes que si cambiaste tu .profile(o .bash_profile), puedes hacer

$ exec bash --login

Eso también leerá tu perfil nuevamente. No estaría de más agregar también la -iopción de decirle explícitamente a bash que este es un shell interactivo, pero normalmente puede resolverlo por sí mismo.

Tony Ledford
fuente
para mí también funciona sin ejecutivo
Armen Sanoyan
Lamentablemente mal también. Las variables de entorno ya establecidas siguen ahí y no se restablecen.
isarandi
6

Debe reemplazar la aplicación / shell en ejecución con una nueva instancia. Por ejemplo, si está utilizando bashsu shell preferido, escriba la siguiente línea en su línea de comando ( $ es el marcador de posición para el comienzo de su línea de comando):

> $ exec bash

La aplicación / shell en ejecución se reemplaza por una nueva instancia de bashlike que comienza desde cero. Todas tus modificaciones anteriores se han ido.

Observación: No olvide que su aplicación de terminal puede ser reprogramada. Debe restablecer su aplicación de terminal manualmente.

Raphael Bossek
fuente
2
¿Qué quieres decir con "reprogramado"?
Eliah Kagan
0

su shell es un ejecutable al que puede llamar. Entonces, si está usando bash, puede llamar bashy si está usando algo más como zsh, puede ingresarzsh

Almiar
fuente
0

Uso exec sudo --login --user $USER.

Si también desea que los comandos introducidos con anterioridad a disapper (reinicio completo de la terminal), combinarlo con resetloreset; exec sudo --login --user $USER

Hay muchas respuestas en la web, pero la mayoría no funciona. La forma fácil de probar es configurar y export SOMEVAR=42luego ejecutar el comando supuestamente de reinicio y hacer echo $SOMEVAR. Si es 42, el entorno no se restableció.

También hay exec -c bash -lo exec env -i bash -l, pero estos están rotos, de alguna manera la variable $ HOME no se establece después de esto.

isarandi
fuente