¿Qué debo hacer si quiero poder ejecutar un programa determinado independientemente de mi directorio actual? ¿Debo crear un enlace simbólico al programa en la /bin
carpeta?
command-line
aneuryzm
fuente
fuente
~/bin/
carpeta personal , agregar ESO a su ruta y crear enlaces simbólicos en esa carpeta a cualquier cosa que quisiera que fuera ejecutable desde cualquier lugar.Respuestas:
Si solo escribe
export PATH=$PATH:</path/to/file>
en la línea de comando, solo durará la duración de la sesión.Si desea cambiarlo permanentemente, agréguelo
export PATH=$PATH:</path/to/file>
a su archivo ~ / .bashrc (solo al final está bien).fuente
La respuesta corta es que para ejecutar el programa, no importa cuál sea su directorio, debe tener el directorio del programa en su ruta de búsqueda. El problema puede resolverse colocando el programa en una carpeta que ya está en esa ruta, o agregando una nueva carpeta a la ruta, ya sea que funcione. La mejor respuesta depende de:
¿Es este programa un programa descargado que usted mismo ha compilado desde la fuente?
Es muy probable que ya tenga un mecanismo de instalación. En la carpeta que compiló el programa, como root, ejecute 'make install'
¿Es este programa un programa descargado que desea que esté disponible como parte de los programas estándar en la computadora?
Tiene sentido poner este tipo de aplicación en una carpeta estándar. es bastante común usar directorios como / usr / local / bin para dichos programas. Necesitará acceso de root para hacer esto.
Este es un programa que ha escrito para usted y / o no tiene privilegios especiales en la computadora.
Creando una carpeta en su directorio de inicio llamada 'bin', y colocando el programa allí. Es posible que deba editar su secuencia de comandos de inicio de sesión para agregar la ruta completa a esta carpeta (por ejemplo, / usr / home / jeremy / bin)
Si bien puede agregar su directorio actual a la ruta de búsqueda, tendrá que seguir haciéndolo con cada nuevo programa, y es más trabajo a largo plazo.
fuente
Colocar un enlace al archivo en el
/bin
directorio no es lo mejor por múltiples razones./bin
directorio se supone que debe ser reservada para programas que son necesarios para el funcionamiento del sistema (cosas comochmod
,mkdir
, etc.).En realidad, puede colocar (instalar) el archivo ejecutable
/usr/bin/
o incluso/usr/local/bin/
. Por supuesto, ha instalado manualmente el programa en ese punto; su distribución no hará un seguimiento de la misma manera que lo hace con el resto de sus programas: tendrá que actualizarla manualmente cuando sea necesario y eliminarla manualmente si desea que desaparezca. Además, tendrá que saber de qué paquetes depende (parece que ya usa el programa, por lo que se encarga, pero en general ...).A menos que esté configurando un programa que espero que otros usuarios usen, eso no es lo que suelo hacer: creo un directorio bin solo para mí en mi directorio de inicio y edito mi perfil de shell para agregarlo
~/bin/
a miPATH
variable de entorno. Me resulta más fácil hacer un seguimiento de los programas que he instalado de esa manera, porque está separado del resto del sistema.fuente
Si desea ejecutar un comando
foo
en el directorio en el que se encuentra actualmente su shell, básicamente tiene dos opciones:Escriba
./foo
en el símbolo del sistema.Agregue el
.
directorio (.
es un nombre para "el directorio actual") a laPATH
variable de entorno; cómo hacerlo depende del shell que esté utilizando:para los shells de tipo Bourne (bash, zsh, ksh, etc.) que escriba (consulte esta página para obtener más información):
para shells de tipo csh (tcsh, csh) que escriba (consulte esta página para obtener más información):
Tenga en cuenta que 2. es un riesgo de seguridad en los sistemas multiusuario: imagínese
cd
al directorio/tmp
y un usuario malintencionado ha creado un binario de malware nombradols
allí.fuente
Jugar con esto
PATH
te permite ejecutar programas maliciosos por error. El estándar es instalar cosas "locales" debajo/usr/local
(ver FHS , que codifica el uso de Unix: un poco anticuado pero da una justificación).,/usr/local/bin
Generalmente está en elPATH
para todos los usuarios.Mis programas "instalados localmente" se encuentran
$HOME/bin
, configurados en el baile estándar./configure --prefix=$HOME ...
, junto con algunos alias (bash) para elegir, por ejemplo, git autoconstruido sobre el sistema uno (los que no chocan se encuentranPATH
al final).fuente