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 /biny /sbin.
/usr/bincontiene 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 PATHvariable 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/gameses una combinación de /usr/local(que se explicará a continuación) y juegos
/usr/gamesSon 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 /usrpuede 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 /usrdirectorio general , cada una de ellas tendrá su propia /usr/localmontada dentro del común /usr.
Finalmente, eche un vistazo a PATHmi 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.