5 votos

¿Este comando hizo algo a mi Sistema Operativo?

introducir descripción de la imagen aquí

Solo estaba intentando escribir este comando: echo "export PATH=$PATH:~/Escritorio/nand2tetris/tools" >> ~/.zshrc ; source ~/.zshrc

Pero llegué a echo "export PATH=$PATH:~/Des antes de presionar TAB para autocompletar y de repente apareció esta gran cantidad de directorios como puedes ver. Presioné ENTER accidentalmente un par de veces (sé que soy muy torpe).

Entonces, ¿es esto algo grave? ¿Hizo algo al sistema?

Por lo que entiendo, solo está listando todos los directorios donde están los ejecutables, pero mi conocimiento es muy limitado sobre el comando echo "export PATH=$PATH.

macOS Sonoma 14.4

M2 MBA 2023

Gracias

11voto

Oskar Puntos 1242

Sin daños con lo que se ha pegado en su sistema. Simplemente dijo "hola" mediante la impresión de algún contenido en la ventana. Incluso si ejecutó la exportación, puede solucionarlo cerrando la terminal y abriendo una nueva ventana de línea de comandos en la aplicación de terminal que prefiera.

6voto

ItDepends Puntos 61

Esta es una buena oportunidad de aprendizaje y parece que nadie ha desglosado lo que estaban haciendo tus comandos, así que lo haré:

echo "export PATH=$PATH:~/Desktop/nand2tetris/tools" >> ~/.zshrc ; source ~/.zshrc

Los anteriores son dos comandos separados, separados por un punto y coma (como los comandos en 'shell tipo bash' (como la shell Zsh) siempre están). El primero es este:

echo "export PATH=$PATH:~/Desktop/nand2tetris/tools" >> ~/.zshrc

En primer lugar, echo es como un comando tonto, simplemente imprime lo que se le proporciona como entrada (entre comillas) en la 'salida estándar'. Pero lo que lo hace poderoso es que puedes tomar esa salida y redirigirla a otro lugar; en este caso particular, estás redirigiendo su salida al archivo "~/.zshrc" usando el comando > (añadir al archivo). Es decir, si hago echo "Hola" >> file1.txt, entonces > simplemente añadirá "Hola" a un archivo llamado file1.txt (creando el archivo primero, si no existe aún).

Ahora centrémonos en la entrada que proporcionaste a echo (recuerda que las comillas se usaron solo porque 'echo' las necesita, pero el comando real es lo que está dentro de las comillas):

export PATH=$PATH:~/Desktop/nand2tetris/tools

El comando export ayuda a "actualizar" la variable de entorno $PATH. La variable de entorno PATH especifica todos los directorios que se deben buscar cuando escribes cualquier comando. Por ejemplo, si escribes python, tu shell (zsh) buscará en todos los directorios de PATH para ver si hay algún "python" en tu sistema. (Los comandos 'echo' y 'export' serían buscados de la misma manera, pero son un poco especiales, por lo que están integrados/reservados. ¡Pero es la misma idea!)

Ahora, ¿a qué se está actualizando el PATH? Primero, nota que export PATH=$PATH actualizará PATH a la variable PATH ya existente; es decir, no actualiza nada en absoluto. Para ver tu PATH existente, escribe echo $PATH. Debería darte una cadena de directorios separados por ":" en tu ruta existente (igual a lo que mostraste en tu captura de pantalla arriba).

Pero en realidad estás pidiendo añadir "~/Desktop/nand2tetris/tools" a tu PATH existente cuando dices export PATH=$PATH:~/Desktop/nand2tetris/tools (nota los dos puntos aquí).

Estás viendo una "plelta de directorios que aparecen de repente" porque la shell autocompletó lo que significa $PATH y está simplemente expandiendo esa parte (echo $PATH) fuera.

Entonces, ¿qué debería ocurrir después de que ejecutes este primer comando? Debería añadir la línea export PATH=$PATH:~/Desktop/nand2tetris/tools en tu archivo .zshrc. ¡Asegúrate de que sea así: cat ~/.zshrc!

Finalmente, source ~/.zshrc simplemente actualiza tu archivo zshrc para que se ejecuten todos los comandos en él (incluidos los comandos de exportación) (añadir un comando no es suficiente; también debes ejecutarlo para que tenga efecto, en este caso, añadiendo la nueva ruta a la variable de entorno PATH ).

0voto

Bailey S Puntos 171

El comando "echo" solo muestra lo que estaba en la línea de comandos en la salida estándar. Eso es lo que viste con toda la basura repetida nuevamente (sin los caracteres de "echo" y de escape). El comando que ejecutaste no hizo ningún cambio en tu sistema en absoluto.

Si hubieras llegado a la parte >> ~/.zshrc ; source ~/.zshrc habría añadido la salida estándar a ese archivo .zshrc y no habrías visto la repetición en la terminal (estarían en el archivo en su lugar).

Es divertido ser todo un leet-haxor acerca de eco a redirección y tuberías y demás, pero también puedes simplemente abrir .zshrc en un editor de texto completamente normal y pegar export PATH=$PATH:~/Desktop/nand2tetris/tools al final. ¡Esto tiene la ventaja adicional de que puedes hacer comprobaciones de cordura como asegurarte de que no esté allí ya!

También, si no quieres complicarte modificando tu ruta (y los riesgos involucrados al ser writable por el usuario) puedes hacer ~/Desktop/nand2tetris/tools/whatever-command-you-would-run

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