Recentemente descubrí este artículo: . Me gustaría compartir mi perspectiva sobre el estándar.
/bin
Contiene comandos que pueden ser utilizados tanto por administradores del sistema como por usuarios, pero que son necesarios cuando no están montados otros sistemas de archivos (por ejemplo, en modo de un solo usuario). También puede incluir comandos que se utilizan indirectamente a través de scripts.
Se espera la presencia de los siguientes comandos:
cat, chgrp, chmod, chown, cp, Muestra la fecha y hora actuales del sistema., dd, df, dmesg, echo, false, hostname, kill, ln, login, Muestra el contenido del directorio. Si no se proporciona una ruta, se muestra el contenido del directorio actual., mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, uname.
Se pueden crear enlaces simbólicos en /usr, aunque en la era de systemd, /usr en un dispositivo separado no se encuentra comúnmente, aún puede encontrarse en sistemas integrados, semáforos, cafeteras y en un PDP-11 que atiende un instrumento importante en uno de los laboratorios de la Academia de Ciencias.
/sbin
Las utilidades utilizadas para la administración del sistema (y otros comandos solo para root), /sbin contiene archivos binarios necesarios para arrancar, rescatar, recuperar y/o restaurar el sistema, además de los archivos binarios en /bin. Los programas que se ejecutan después de que /usr se monta (cuando no hay problemas) generalmente se colocan en /usr/sbin. Los programas de administración del sistema instalados localmente deben colocarse en /usr/local/sbin.
Se esperan:
fastboot, fasthalt, fdisk, fsck, getty, halt, ifconfig, init, mkfs, mkswap, reboot, route, swapon, swapoff, update.
Una forma de proteger el sistema de las manos traviesas de los usuarios es prohibir la ejecución de estas utilidades a cualquiera, estableciendo el atributo x.
Además, reemplazar /bin y /sbin con copias de un archivo (idéntico para todos los sistemas similares) es una forma rápida de reparar sistemas sin gestor de paquetes.
/usr/bin
Aquí todo es simple. Comandos similares, idénticos para todos los servidores/cafeteras de la empresa. Y el mismo /usr puede desplegarse igual para diferentes sistemas operativos (para /bin y /sbin esto generalmente no funciona), son programas arquitectónicamente independientes. Puede contener enlaces a intérpretes de perl o python que se encuentran en /opt o en alguna parte de la red.
/usr/sbin
Lo mismo que /usr/bin, pero solo para uso de administradores.
/usr/local/bin и /usr/local/sbin
Una de las ubicaciones más importantes. A diferencia de las demás, /usr no puede ser igual para toda la organización. Aquí se encuentran programas dependientes del sistema operativo, dependientes del hardware y simplemente programas que no son necesarios en todos los dispositivos. Al sincronizar /usr en las máquinas, se debe excluir /usr/local.
/home/$USER/bin
Aquí hay un caso similar al de /usr/local, donde se encuentran programas específicos para el usuario en cuestión. Se pueden transferir (o sincronizar) a otra máquina al mudarse el usuario. Lo que no se puede transferir se almacena en /home/$USER/.local/bin. Se puede usar local sin el punto. /home/$USER/sbin está ausente por razones evidentes.
Agradezco cualquier corrección o adición.
Fuente: habr.com
