¿Qué es $PATH?
¿Cómo puedo tener comandos / programas que solo están disponibles para mí?
He visto este camino ~/binmencionado anteriormente, pero ¿para qué se utiliza y cómo lo uso?
environment-variables
Braiam
fuente
fuente

Respuestas:
$ PATH es una variable de entorno utilizada para buscar comandos. El ~ es su directorio de inicio, por lo que ~ / bin será / home / user / bin; Es un directorio normal.
Cuando ejecuta "ls" en un shell, por ejemplo, realmente ejecuta el programa / bin / ls; la ubicación exacta puede variar según la configuración de su sistema. Esto sucede porque / bin está en su $ PATH.
Para ver la ruta y encontrar dónde se encuentra cualquier comando en particular:
Para tener su propio directorio bin privado, solo necesita agregarlo a la ruta. Haga esto editando ~ / .profile (un archivo oculto) para incluir las siguientes líneas. Si las líneas están comentadas, solo tiene que descomentarlas; si ya están allí, ¡ya está todo listo!
Ahora necesita crear su directorio ~ / bin y, dado que .profile se ejecuta al iniciar sesión y solo agrega ~ / bin si existe en ese momento, debe iniciar sesión nuevamente para ver la RUTA actualizada.
Probémoslo:
fuente
typepara ver cómo el shell resolverá un comando real; por ejemplo:which echoetype echoinformará cosas diferentes,whichdevuelve '/ bin / echo' pero 'type' devuelve que es un shell incorporado, que el shell preferirá al archivo en '/ bin'.whichse reemplaza mejor portypeocommanden shells interactivos, y es completamente inútil en scripts.$HOMEvariable$PATHpor alguna razón no funciona, es decir, uno tiene que usar el~signo en su lugar.En cuanto a los
~/bincomandos / programas solo disponibles para su usuarioLas versiones recientes de Ubuntu incluyen el
~/bindirectorio en su$PATH, pero solo si el~/bindirectorio existe.Si no existe:
Asegúrese de que su
~/.profilecontiene la siguiente estrofa (el valor predeterminado~/.profileya lo tiene):Crea el
~/bindirectorio:Reinicie su computadora u obligue a bash a volver a leer
~/.profile:fuente
exec -l bashconsejo "reiniciar ". ¿Qué hace la-lbandera? No estoy encontrando una explicación enman exec.exec -lejecutará bash como un shell de inicio de sesión [ wiki.bash-hackers.org/commands/builtin/exec] . En resumen, obliga a bash a volver a leer/etc/profiley~/.profile. Solo ejecutarexec bashsolo volverá a leer~/.bashrc.