1 votos

Terminal de reinicio de medio ambiente para iniciar el estado, no perder de impresión de la historia

Esto podría parecer un duplicado a primera vista, pero tengan paciencia conmigo por un minuto.

TLDR; UN rápido camino de línea de comandos para restaurar todo el entorno de la shell a la misma como a la terminal de inicio, mientras no se pierda la impresión (flecha hacia arriba) de los comandos ejecutados y sus salidas.

Realmente me gustaría una forma rápida para restablecer el entorno de la shell a su estado inicial, como dejar de fumar el programa de terminal y comenzar de nuevo (o abrir una nueva pestaña). La razón de que yo en realidad no queremos salir del programa y empezar de nuevo, es que no quiero perder la historia, es decir, la impresión de los comandos anteriores y salidas. (Compare con claro en MATLAB, que se deshace de todas las variables, definiciones de las funciones del et.c. que usted haya establecido en esa sesión sin la eliminación de la impresión de los comandos anteriores y salidas.)

El consejo habitual que las personas tienen cuando esta pidiendo es

source ~/.bash_profile

Sin embargo, por ejemplo, esto no restaurar $PATH para el valor que tiene cuando el programa de terminal se abre por primera vez. Tengo un par de líneas como

export PATH=$PATH:/path/to/some/useful/stuff/

en mi $PATH y por cada vez que la fuente, más cosas se agrega a mi variable $PATH. Por lo tanto no se restablece a la terminal de inicio valor en source. Lo mismo ocurre con cualquier otro conjunto de variables en el período de sesiones que no se sobrescribe con alguna línea en la ~/.bash_profile

He visto a la gente recomendar el reset comando demasiado. Sin embargo, eso no restaurar mi $PATH del valor original. Se mantiene la misma de antes del reset.

Sólo estoy usando $PATH como un ejemplo aquí, la pregunta es sobre el restablecimiento de todo el entorno de la shell.

Una forma rápida y fiable para restablecer el entorno de la shell en el sentido de que yo describo más arriba, sería muy útil cuando se experimenta con las instalaciones y cosas similares. También ver lo que el $PATH variable parece me pregunto qué otras cosas no se restablece con source ~/.bash_profile, y se siente fiable para su uso como un método de restablecimiento.

Gracias por leer esto ahora!

Las soluciones a la gente?

1voto

Nate Puntos 220

Una opción para reiniciar la sesión de Terminal del estado de excepción de la historia es para guardar la historia actual a un archivo temporal con algo como history -w ~/.history_temp, a continuación, cierre la ventana de Terminal, abrir uno nuevo, a continuación, vuelva a leer la historia guardados con history -w ~/.history_temp. Opcionalmente, puede eliminar la temp de la historia archivo cuando haya terminado.

Si usted no quiere tener que recuerde y escriba los comandos cada vez, usted puede crear alias para ellos y los coloque en ~/.bash_profile:

alias savehistory='history -w ~/.history_temp`
alias loadhistory='history -r ~/.history_temp && rm ~/.history_temp`

1voto

Michael Zhou Puntos 167

Configuración de la ruta de acceso original en una variable en el inicio de su sesión de terminal sería una solución simple.

ORIG_PATH="$PATH"

A continuación, en cualquier momento puede cambiar la RUTA de la variable de volver a su estado original.

PATH="$ORIG_PATH"

Una más compleja solución sería establecer la RUTA de acceso para el estado establecido por la loginwindow de la aplicación, a continuación, ejecute path_helper como /private/etc/profile y de origen ~/.bash_profile.

# Does launchd set the PATH variable?

LPATH=$(launchctl getenv PATH)

if [ -z "$LPATH" ]
then
    PATH=$(getconf PATH)
    eval $(/usr/libexec/path_helper -s)
else
    PATH=$LPATH
    eval $(/usr/libexec/path_helper -s)
fi

. ~/.bash_profile

Ambas soluciones no requieren de una nueva sesión de terminal server.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X