GNU/Linux >> Tutoriales Linux >  >> Linux

Diferencia entre /bin y /usr/bin

¿Qué? sin /bin/ no es un enlace simbólico a /usr/bin en cualquier sistema compatible con FHS. Tenga en cuenta que todavía hay Unices y Linux populares que ignoran esto, por ejemplo, /bin y /sbin están vinculados a /usr/bin en Arch Linux (el razonamiento es que no necesita /bin para rescate/modo de usuario único, ya que simplemente iniciaría un CD en vivo).

/bin

contiene comandos que pueden usar tanto el administrador del sistema como los usuarios, pero que son necesarios cuando no hay otros sistemas de archivos montados (por ejemplo, en modo de usuario único). También puede contener comandos que son utilizados indirectamente por scripts

/usr/bin/

Este es el directorio principal de comandos ejecutables en el sistema.

esencialmente, /bin contiene ejecutables que el sistema requiere para reparaciones de emergencia, arranque y modo de usuario único. /usr/bin contiene archivos binarios que no son necesarios.

Notaré que pueden estar en discos/particiones separados, /bin debe estar en el mismo disco que / . /usr/bin puede estar en otro disco, aunque tenga en cuenta que esta configuración se ha roto por un tiempo (por eso, por ejemplo, systemd advierte sobre esta configuración en el arranque).

Para mayor corrección, algunos unices pueden ignorar FHS, ya que creo que es solo un estándar de Linux, no tengo conocimiento de que aún se haya incluido en SUS, Posix o cualquier otro estándar de UNIX, aunque debería ser en mi humilde opinión. Sin embargo, es parte del estándar LSB.


Actualización:para un poco de historia y la verdadera razón por la que hay /usr , lea esto:http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. También esto.

/sbin - Binarios necesarios para el arranque, la reparación del sistema de bajo nivel o el mantenimiento (nivel de ejecución 1 o S)

/bin - Binarios necesarios para el funcionamiento normal/estándar del sistema en cualquier nivel de ejecución.

/usr/bin - Binarios de aplicación/distribución destinados a ser accedidos por usuarios registrados localmente

/usr/sbin - Binarios de aplicación/distribución que admiten o configuran cosas en /sbin.

/usr/share/bin - Archivos binarios o scripts de aplicación/distribución destinados a ser accedidos a través de la web, es decir, aplicaciones web Apache

*local* - Binarios que no forman parte de una distribución; compilado localmente o instalado manualmente. Por lo general, nunca hay un /local/bin pero siempre un /usr/local/bin y /usr/local/share/bin .


Algún tipo de "actualización" sobre este tema:

Recientemente, algunas distribuciones de Linux están fusionando /bin en /usr/bin y relacionado /lib en /usr/lib . A veces también (/usr)/sbin a /usr/bin (Arch Linux). Así que /usr se espera que esté disponible al mismo tiempo que / .

La distinción entre las dos jerarquías se considera una complejidad innecesaria ahora. La idea alguna vez fue tener solo /bin disponible en el arranque, pero tener un ramdisk inicial lo vuelve obsoleto.

Sé que Fedora Linux (2011) y Arch Linux (2012) van por este camino y Solaris lo ha hecho durante mucho tiempo (> 15 años).

  • escritorio gratuito:TheCaseForTheUsrMerge
  • fedora:función UsrMove
  • arch:combine /bin, /sbin, /lib en /usr/bin y /usr/lib

Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿Cuál es la diferencia entre /sbin/nologin y /bin/false?

  3. ¿Por qué /bin/sh apunta a /bin/dash y no a /bin/bash?

  4. Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

  5. ¿Cuál es la diferencia entre /tmp y /run?

¿Cuál es la diferencia entre #!/usr/bin/env bash y #!/usr/bin/bash?

cmake --version apunta a /usr/bin/cmake mientras que cmake apunta a /usr/local/bin

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

¿Cuáles son los significados de /usr/sbin, /usr/local/sbin y /usr/local/bin?

¿Cuándo debo usar #!/bin/bash y cuándo #!/bin/sh?

Se movió el contenido de /bin a /usr/bin, ¿es posible deshacerlo?