¿Cómo restablezco la variable $ PATH en Mac OS X?

17

He estropeado mi variable de ruta, y ahora algunas aplicaciones que ejecuto generan errores que dicen Comando no encontrado (error 127) para comandos como fecha y suspensión . Estos comandos funcionan bien cuando se ejecutan directamente en el shell.

Supongo que esto tiene algo que ver con una variable $ PATH malformada, y necesito saber cómo restablecerla. He eliminado los archivos ~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrc , y ~ / .bashrc y ~ / .profile .

¿Qué otros archivos podrían contener mi $ PATH ? ¿Hay alguna forma más sencilla de restablecer la ruta que cavar en la miríada de archivos que podrían contener mi ruta?

Tenga en cuenta que este problema de ruta es solo con mi usuario. Hice un usuario de prueba en mi sistema, y ​​el camino estaba bien, de vuelta a la normalidad.

ACTUALIZACIÓN: Gracias. No sé cuál de los archivos que eliminé lo hizo, pero las cosas están funcionando nuevamente. Ustedes hicieron lo que los 'Expertos' no pudieron. Y sí, Chris, tenías razón. Las personalizaciones de PATH que había hecho estaban en bash_login. Pero de alguna manera funcionó sin que yo eliminara esas personalizaciones. Creo que podría haber sido porque estaba usando este prefpano llamado 'RCEnvironment', y había ingresado en un camino con comillas y: RUTA en él. No sé si toma comillas y no reemplaza: $ PATH, por lo que probablemente esa sea la raíz del error. ¡Olvidé que incluso tenía ese prefpano!

Neil
fuente
1
/ etc / profile es el lugar más probable para la configuración de valores iniciales para PATH, pero algo allí afectaría a todos los usuarios. También hay ~ / .bash_login, que no enumeró (aunque es posible que ya lo haya eliminado).
Chris Johnsen

Respuestas:

19

Si tiene un archivo ~ / .MacOSX / environment.plist, verifíquelo para ver si proporciona un valor de RUTA predeterminado.

Si está en formato XML (las listas pueden estar en muchos formatos), puede editar con cualquier editor de texto. Compruébalo plutil -lint ~/.MacOSX/environment.plistsi lo editas a mano.

O bien, puede usar comandos como valores predeterminados o PlistBuddy para realizar modificaciones controladas en XML o en archivos binarios de formato binario.


Siempre puede establecer su propia RUTA en cualquiera de los archivos de inicialización de su shell.

Ponga algo como lo siguiente en sus archivos de inicio de su shell ( .bashrc, o .bash_profile/ .bash_login/ .profile):

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

Eso anulará cualquier RUTA predeterminada establecida cuando se inicie el shell (el primero PATH=no se usa $PATH, por lo que siempre comenzará solo con lo que le des).

Sólo se utiliza en todo caso uno de los archivos de la 'login' (el primero que existe y es legible ~/.bash_profile, ~/.bash_loginy ~/.profileserá utilizado). .profilees para compatibilidad con versiones anteriores de otros shells; si lo usa, asegúrese de mantenerlo libre de sintaxis específica de bash . Si utiliza .bash_logino .bash_profile(son funcionalmente equivalentes, excepto los nombres), use una línea como [[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]cerca de la parte superior para que los shells de inicio de sesión también obtengan las personalizaciones realizadas en su .bashrc.

Si desea que todas las instancias de bash tengan la misma RUTA, úsela .bashrc. Si a menudo te encuentras modificando interactivamente la RUTA de un solo shell desde la línea de comando y quieres usar esa RUTA modificada en subcapas (un caso que probablemente no sea terriblemente común), entonces debes colocar las declaraciones en uno de los archivos de 'inicio de sesión'. . Elija solo uno de los archivos de inicio de sesión y úselo.

Chris Johnsen
fuente
8

1. Abra su terminal

2.En primer lugar, solo puede verificar su $PATHtipo actual

echo $ RUTA

a la terminal

3. Si el $PATHterminal que devolvió es el camino que desea, entonces está bien; si no, escriba

RUTA de exportación = / usr / bin: / bin: / usr / sbin: / sbin

, luego escriba

toque ~ / .bash_profile

y luego escriba

abrir ~ / .bash_profile

, encontrará un EditText abierto, ahora escriba la ruta que desea en ese EditText; Por ejemplo, escriba

RUTA = / usr / bin: / bin: / usr / sbin: / sbin

(que es el valor predeterminado $PATHpara mac, teniendo en cuenta que desea restablecer el, $PATHpor lo que probablemente debería escribir esto), guárdelo y luego cierre EditText, luego cierre Terminal.

4.¡Ahora ya has cambiado $PATHo restablecido los valores predeterminados de la Mac $PATH!

rObOtAndChalie
fuente
2
Siento que hay mucho más arriba que no tiene ningún efecto. ¿Por qué crees que touchse requiere? Además, como está cerrando Terminal de todos modos, ¿por qué ejecutar el exporten la línea de comando, en lugar de solo agregarlo ~/.bash_profile(que exporttambién necesita ) y terminar con él? (Alternativamente, ejecute source ~/.bash_profilepara aplicar los cambios a la ventana actual.)
Arjan
Es cierto que parte de esto es redundante. Guardar cualquier valor de RUTA en .bash_profile debería hacer.
ThinkCode
1

Las rc/profileediciones de Chris Johnson que se muestran también funcionan bien /etc/profile.

Acabo de agregar:

export PATH="/usr/local/mariadb/bin:$PATH"

a mi /etc/profilearchivo en Mac OS X 10.9 Mavericks para completar la instalación de MariaDB (que funciona como un excelente reemplazo directo para MySQL).

zigmoo
fuente