Inicie zsh interactivo sin ejecutar ningún archivo de configuración como .zshrc

Inicie zsh interactivo sin ejecutar ningún archivo de configuración como .zshrc

¿Cómo puedo iniciar un zsh interactivo sin ejecutar ningún archivo de configuración como .zshrc?

Lo intenté zsh -d -f -i, pero el mensaje era el mismo que el especificado en ~/.zshrc, por lo que esas opciones no parecen haber funcionado.

Estoy ejecutando zsh 5.8 en macOS 10.15.4.

Respuesta1

zsh -d -f -ies correcto para eso, aunque -d(implícito en -f) y -i( zshse ejecuta interactivamente de todos modos cuando no se proporciona ningún script/código para ejecutar en la línea de comando y stdin es una terminal) sería redundante.

Sin embargo, tenga en cuenta que eso /etc/zsh/zshenvtodavía se interpreta y no creo que haya ninguna forma de desactivarlo. Ver info zsh RCSpara más detalles.

En su caso, PS1fue heredado del entorno. PS1es una de las muchas variables de entorno que también pueden personalizar el shell.

Tenga en cuenta que los primeros shells no tenían un archivo rc, la personalización se realizaba solo con variables de entorno (que se configuraban en ~/.profileor ~/.login, interpretadas por el shell de inicio de sesión).

Hay una gran cantidad de variables que se utilizan para configurar el shell. Ver:

info zsh 'Parameters Used By The Shell'

para obtener más detalles (tenga en cuenta que, para algunos de ellos, se ignora el valor encontrado en el entorno).

Algunas de esas variables de entorno, como HOME, PATH, SHELL, COLUMNS, son utilizadas por muchos LANGotros LC_*programas además del shell, por lo que no es una buena idea desarmarlas o usarlas env -ipara desarmarlas todas.

La mayoría de las variables enumeradas en esa documentación no querrás colocarlas en el entorno, sino declararlas en tu ~/.zshrclugar como variables de shell normales. PS1es uno de ellos. PS1se utiliza como variable de personalización de solicitud en muchos shells, pero la sintaxis varía mucho entre shells.

Desafortunadamente, algunas distribuciones GNU/Linux configuran y exportan la PS1variable en algún archivo de inicio del sistema y la definen con un valor específico de la sintaxis del bashshell (el shell GNU), lo que significa que si inicia cualquier shell que no sea bashen un entorno con eso PS1, aparece un mensaje de basura.

Para iniciar un shell PS1eliminado del entorno, puede hacer:

(unset -v PS1; zsh -f)

Con algunas envimplementaciones, también puedes hacer:

env -u PS1 zsh -f

Para iniciarlo sin ninguna variable de entorno (aunque, como se indicó anteriormente, probablemente no sea una buena idea):

env -i zsh -f

información relacionada