¿Qué es $PATH
?
¿Cómo puedo tener comandos / programas que solo están disponibles para mí?
He visto este camino ~/bin
mencionado 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
type
para ver cómo el shell resolverá un comando real; por ejemplo:which echo
etype echo
informará cosas diferentes,which
devuelve '/ bin / echo' pero 'type' devuelve que es un shell incorporado, que el shell preferirá al archivo en '/ bin'.which
se reemplaza mejor portype
ocommand
en shells interactivos, y es completamente inútil en scripts.$HOME
variable$PATH
por alguna razón no funciona, es decir, uno tiene que usar el~
signo en su lugar.En cuanto a los
~/bin
comandos / programas solo disponibles para su usuarioLas versiones recientes de Ubuntu incluyen el
~/bin
directorio en su$PATH
, pero solo si el~/bin
directorio existe.Si no existe:
Asegúrese de que su
~/.profile
contiene la siguiente estrofa (el valor predeterminado~/.profile
ya lo tiene):Crea el
~/bin
directorio:Reinicie su computadora u obligue a bash a volver a leer
~/.profile
:fuente
exec -l bash
consejo "reiniciar ". ¿Qué hace la-l
bandera? No estoy encontrando una explicación enman exec
.exec -l
ejecutará 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/profile
y~/.profile
. Solo ejecutarexec bash
solo volverá a leer~/.bashrc
.