La verdadera identidad del directorio /usr en el sistema de archivos Linux
usr no es user
Si has usado Linux un poco, seguramente te has topado con el directorio /usr.
Yo también pensé de esta manera al principio:
“Ah,
/usrdebe ser user. Será un directorio relacionado con cuentas de usuario.”
Probablemente muchos principiantes en Linux hayan tenido un malentendido similar. Pero, al final:
/usrno es un directorio para datos de “usuario” individuales. El directorio de inicio de los usuarios es/home, y/usrcumple una función totalmente distinta.
En este artículo describiré la verdadera identidad y función de /usr, y cómo se diferencia de otros directorios como /home, /opt y /var.
1. Primeramente, la conclusión: /usr no es un directorio de “datos de usuario”
En la práctica moderna de Linux, la posición de /usr se resume en una frase:
/usr= zona donde se encuentran “programas, bibliotecas y datos compartidos y, en su mayoría, de solo lectura”
En otras palabras:
- Archivos ejecutables del sistema y de las aplicaciones
- Bibliotecas que utilizan esos ejecutables
- Manuales, iconos y archivos de datos comunes
En contraste, los “documentos, configuraciones y descargas personales” que imaginamos suelen estar en:
/home/usuario/usrtiene una función completamente distinta.
Así que pensar en /usr como un “directorio para usuarios” es incorrecto.
2. ¿Qué significa realmente usr?
Hay un poco de historia y debate al respecto.
- En los primeros días de Unix,
/usra veces contenía los directorios de inicio de los usuarios. - Por eso, la visión tradicional es que
usres una abreviatura de “user”. - En épocas posteriores, se reinterpretó como “Unix System Resources” u otras variantes.
Pero, para los usuarios modernos de Linux, lo importante es el rol actual más que la etimología.
El estándar de jerarquía de sistemas de archivos (FHS) define /usr de la siguiente manera (resumen):
- Área donde se encuentran datos compartibles a nivel global (asumiendo que son de solo lectura)
- Programas, bibliotecas, manuales y datos comunes
En otras palabras, en el Linux que usamos hoy:
No importa si
usrsignifica “user” o no; lo esencial es que es la zona donde se guardan los recursos compartidos del sistema y las aplicaciones.
3. ¿Qué se encuentra bajo /usr?
Si ejecutas ls /usr en tu servidor o escritorio, verás directorios típicos como:
$ ls /usr
bin lib lib64 local sbin share include ...
Cada directorio tiene un significado aproximado:
/usr/bin– Ejecutables para usuarios comunes (ej.:/usr/bin/python,/usr/bin/grep,/usr/bin/curl)./usr/sbin– Ejecutables de administración del sistema, usados principalmente por root (ej.:/usr/sbin/sshd,/usr/sbin/apachectl)./usr/lib,/usr/lib64– Bibliotecas compartidas que utilizan los programas (archivos.so)./usr/share– Datos compartidos independientes de la arquitectura (ej.: páginas de manual en/usr/share/man, iconos, datos de localización)./usr/include– Cabeceras de C/C++ usadas por las cadenas de herramientas de desarrollo./usr/local– Espacio para programas instalados manualmente por el administrador del sistema (se explicará más adelante).
En resumen:
/usres el “gran almacén” donde se agrupan los ejecutables, bibliotecas y datos compartidos del sistema.
4. /usr vs /home vs /opt vs /var — ¿qué diferencia tiene cada uno?
La estructura del sistema de archivos de Linux puede resultar confusa al principio, especialmente cuando se comparan /usr, /home, /opt y /var. Aquí tienes una comparación clara.
4.1 /home — la verdadera “casa” del usuario
- Ejemplos de ruta:
/home/alice,/home/bob - Por usuario:
- Documentos, fotos, descargas, carpetas de proyectos
- Configuraciones personales (
~/.config,~/.ssh, etc.) - Incluso si reinstalas el sistema operativo, a menudo se conserva
/home.
Datos y configuraciones personales = casi todo en
/home
4.2 /usr — los “recursos compartidos” del sistema y las aplicaciones
- Ejecutables:
/usr/bin,/usr/sbin - Bibliotecas:
/usr/lib* - Datos comunes:
/usr/share
“Programas, bibliotecas y datos usados por todo el sistema” =
/usr
No contiene archivos de cuentas de usuario individuales.
4.3 /opt — espacio para “una aplicación completa”
- Aplicaciones que no provienen del gestor de paquetes del sistema, sino que se distribuyen de forma independiente (por ejemplo,
/opt/google/chrome,/opt/mycompany/app). - Frecuentemente, una aplicación completa se instala en un solo directorio.
“Esta aplicación está completa aquí” = espacio de gestión por aplicación.
4.4 /var — datos que cambian (Variable)
- Registros:
/var/log - Cachés:
/var/cache - Cola, spool:
/var/spool - Bases de datos, archivos de estado que cambian con frecuencia
“Datos que cambian en tiempo de ejecución” =
/var
5. ¿Por qué no /bin sino /usr/bin? (Y hoy es aún más confuso)
En documentación antigua se explica la diferencia entre /bin y /usr/bin, pero las distribuciones modernas simplifican esto:
/bin→ enlace simbólico a/usr/bin/sbin→ enlace simbólico a/usr/sbin
Así que en la práctica actual:
- La mayoría de los ejecutables están en
/usr/biny/usr/sbin /biny/sbinson simplemente “puntos de entrada” para compatibilidad con versiones anteriores.
Para un usuario que lo ve por primera vez, puede resultar más confuso, pero la idea clave es:
“¿Dónde están los programas reales?” → La mayoría están en
/usr/biny/usr/sbin.
6. Cómo evitar la confusión si eres un principiante en Linux
La confusión típica al comenzar con Linux suele ser:
- “
/usres user, ¿verdad?” - “Entonces mi programa debe instalarse en
/usr?” - “¿Cuál es la diferencia con
/home?”
Conociendo los criterios siguientes, la mayoría de las dudas desaparecen.
6.1 ¿Dónde colocar scripts/ herramientas personales?
- Scripts y herramientas que uso solo yo: normalmente en
~/bino~/scripts. - Añade al PATH si lo necesitas.
mkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
Esto es un espacio personal, distinto de /usr.
6.2 ¿Y las aplicaciones que quiero usar en todo el sistema?
- Compiladas desde fuente o distribuidas como AppImage, tar.gz, etc.
- Para usarlas en todo el sistema:
- Ejecutable principal: bajo
/opt/NombreApp - Enlace simbólico de entrada:
/usr/local/bin
El patrón es limpio y organizado.
Así, el uso típico de /usr/local es:
“Espacio para programas que no vienen del gestor de paquetes del sistema (apt, dnf, pacman, etc.) y que el administrador controla directamente.”
En lugar de pensar en /usr como un todo, es más natural ver /usr/local como el “espacio de administración libre”.
7. Resumen: /usr no es la “casa del usuario”, sino el “almacén del sistema”
Para concluir, recapitulamos:
/usrno es un directorio de datos de usuario.- En Linux moderno,
/usrcontiene: - Ejecutables compartidos del sistema y las aplicaciones
- Bibliotecas que utilizan esos ejecutables
- Datos comunes: manuales, iconos, localizaciones
- Los datos personales reales están en
/home/usuario. - Las aplicaciones que instalas manualmente suelen gestionarse en
/opto/usr/local.
Entender la estructura del sistema de archivos de Linux te permite responder preguntas como:
- “¿Dónde debería colocar este archivo?”
- “¿Esta aplicación será usada por todo el sistema o solo por mí?”
- “¿Qué datos debo conservar al reinstalar el sistema?”
Y todo comienza con comprender correctamente la verdadera identidad de /usr.
No hay comentarios.