En Linux, las diferentes ubicaciones generalmente, cuando se mantienen bien, reflejan cierta lógica. P.ej.:
/bin
contiene las herramientas más básicas (programas)
/sbin
contiene los programas administrativos más básicos
Ambos contienen los comandos elementales utilizados por el arranque y la resolución de problemas fundamentales. Y aquí ves la primera diferencia. Algunos programas no están destinados a ser utilizados por usuarios habituales.
Entonces echa un vistazo /usr/bin
. Aquí debería encontrar una mayor selección de comandos (programas), generalmente más de 1000 de ellos. Son herramientas estándar, pero no tan esenciales como las de /bin
y /sbin
.
/usr/bin
contiene los comandos, mientras que los archivos de configuración residen en otro lugar. Esto separa las entidades funcionales (programas) y su configuración y otros archivos, pero en términos de funcionalidad del usuario, esto es útil, ya que tener los comandos no entremezclados con nada más permite el uso simple de la PATH
variable que apunta a los ejecutables. También introduce claridad. Lo que sea debe ser ejecutable.
Echar un vistazo a mi PATH
,
$ echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/home/tomas/bin
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games
Hay exactamente seis ubicaciones que contienen los comandos que puedo llamar directamente (es decir, no por sus rutas, sino por los nombres de sus ejecutables).
/home/tomas/bin
es mi directorio privado en mi carpeta de inicio para mis ejecutables privados.
/usr/local/bin
Explicaré por separado a continuación.
/usr/bin
se describe arriba.
/bin
También se describe arriba.
/usr/local/games
es una combinación de /usr/local
(que se explicará a continuación) y juegos
/usr/games
Son juegos. No deben mezclarse con ejecutables de utilidad, tienen sus ubicaciones separadas.
Ahora a /usr/local/bin
. Este es algo resbaladizo, y ya se explicó aquí: ¿Qué es / usr / local / bin? . Para comprenderlo, debe saber que la carpeta /usr
puede ser compartida por muchas máquinas y montada desde una ubicación de red. Los comandos allí no son necesarios en el arranque, como se señaló anteriormente, a diferencia de los que se encuentran allí /bin
, por lo que la ubicación se puede montar en etapas posteriores del proceso de arranque. También se puede montar de forma de solo lectura. /usr/local/bin
, por otro lado, es para los programas instalados localmente y debe poder escribirse. Entonces, si bien muchas máquinas de red pueden compartir el /usr
directorio general , cada una de ellas tendrá su propia /usr/local
montada dentro del común /usr
.
Finalmente, eche un vistazo a PATH
mi usuario root:
# echo "$PATH" | perl -F: -anlE'$,="\n"; say @F'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
Contiene estos:
/usr/local/sbin
, que contiene los comandos de administrador del tipo /usr/local
/usr/local/bin
, que son las mismas que puede usar el usuario habitual. Nuevamente, su tipo se puede describir como /usr/local
.
/usr/sbin
son las utilidades administrativas no esenciales.
/usr/bin
son la administración no esencial y las utilidades de usuario habituales.
/sbin
son las herramientas administrativas esenciales.
/bin
son las herramientas esenciales de administrador y usuario habitual.