¿Cómo puedo restablecer $ PATH a su valor predeterminado en Ubuntu?

31

Accidentalmente desactivé todos los directorios $PATHal intentar agregar uno nuevo ~/.bashrc. Abrí una nueva ventana de terminal cuando estaba editando y ahora $PATHestá vacía. Me preocupa si inicio desde otra unidad para encontrar $PATHque no podré iniciar nuevamente en esta unidad.

Básicamente, ¿cuál es el resultado predeterminado de echo $PATH?

Cee
fuente
1
Comente o arregle esa línea de exportación y debería estar listo.
Panther
~/.bashrcSin embargo, es el lugar equivocado para establecer variables de entorno. Deberías hacer eso en su ~/.profilelugar.
geirha
Sí, lo descubrí. PATH todavía está bien en la otra ventana de terminal que estaba abierta antes de la nueva, por lo que solo arreglando la línea de exportación agregando :$PATHal final se restauró la PATH. Y sí, ~/.profilehay un código para "establecer PATH para que incluya el bin privado del usuario si existe", es decir$HOME/bin
Cee

Respuestas:

35

La respuesta a tu pregunta es:

PATH=$(getconf PATH)

y funciona en cualquier sistema compatible con POSIX. La respuesta seleccionada es la forma correcta de aumentar el camino sin borrar el contenido existente anterior. Si usa bash, podría considerar:

PATH+=:$mynewdir
Bruce
fuente
Tuve problemas para usar muchos comandos ( sed: No such file or directorytipo de problema) después de establecer accidentalmente mi PATH en nada durante un proceso de ejecución muy largo (es decir, no pude reiniciar). No pude usar getconf. Para restablecer mi camino, solía $(export $(cat /etc/environment)":/usr/bin/additional:/usr/bin/paths"). Para los curiosos: /etc/environmentes donde la variable PATH se establece inicialmente en muchos sabores de Linux.
Nick Bull
2
Ese trabajo me sorprendería. Quizás "exportar" sin el material "$ (...)" que lo rodea podría, pero será lo que sea que esté allí. Utilice "fuente / etc / ..". De todos modos, intente "/ usr / bin / getconf" si ni siquiera puede encontrar "getconf".
Bruce
¡Prefiera su idea final usando la ruta completa mucho más que la mía en retrospectiva! Gracias por la respuesta
Nick Bull
1
Si la variable PATH está vacía, PATH=$(getconf PATH)no será útil, pero solo dará como resultadobash: getconf: No such file or directory
Max N
1
Si PATH está vacío, tenga en cuenta el comentario anterior: intente "/ usr / bin / getconf". Si eso no funciona, entonces necesita saber dónde guarda su sistema sus comandos POSIX y usar ese directorio.
Bruce
17

Puede encontrarlo en / etc / environment:

$ /usr/bin/cat /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Entonces, solo búscalo:

$ source /etc/environment 
$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Manuel Jesus Rodriguez
fuente
1
cat no funcionará de la misma manera que en su respuesta, ya que no hay $ PATH
Josef Klimuk
Tienes razón. Acabo de modificar la respuesta. ¡Gracias!
Manuel Jesús Rodríguez
8

Agregar: $ PATH al final de la línea de exportación solucionó el problema, por ejemplo export PATH=<directory to be added>:$PATH

Agrego esta línea al ~/.bash_rcarchivo en lugar del ~/.profilearchivo para que pueda ver el efecto inmediatamente en un nuevo terminal y, por otros motivos, según la información aquí: https://superuser.com/questions/176404/linux-bash-not- cargando-perfil-en-nueva-sesión

Para mí, la salida predeterminada de echo $PATHantes de agregar el nuevo directorio es:

/ usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games

Cee
fuente
3

La ruta predeterminada es

/home/_username_/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games 

Espero que esto te ayude

Pantalón Vibhav
fuente
Eso difiere de mi RUTA predeterminada. Vea abajo.
Cee