Comprender los archivos de inicialización de shell y los perfiles de usuario en Linux

Comprender los archivos de inicialización de shell y los perfiles de usuario en Linux

Linux es un sistema multiusuario de tiempo compartido, lo que implica que más de un usuario puede iniciar sesión y usar un sistema. Y los administradores del sistema tienen la tarea de administrar varios aspectos de cómo los diferentes usuarios pueden operar un sistema en términos de instalación/actualización/eliminación de software, programas que pueden ejecutar, archivos que pueden ver/editar, etc.

Linux también permite que los entornos de los usuarios se creen o mantengan de dos maneras principales: el uso de configuraciones de todo el sistema (globales) y específicas del usuario (personales). Normalmente, el método básico de trabajar con un sistema Linux es el shell, y el shell crea un entorno dependiendo de ciertos archivos que lee durante su inicialización después de un inicio de sesión exitoso del usuario.

Leer sugerido: Cómo establecer variables de entorno en Linux

En este artículo, explicaremos los archivos de inicialización de shell en relación con los perfiles de usuario para la administración local de usuarios en Linux. Le informaremos dónde mantener funciones de shell personalizadas, alias, variables y programas de inicio.

Importante: Para el propósito de este artículo, nos centraremos en intento, a mierda Shell compatible, que es el shell más popular/usado en los sistemas de Linux.

Si está utilizando un programa de Shell (ZSH, Ash, Fish, etc.) diferente, lea su documentación para obtener más información sobre algunos de los archivos relacionados de los que hablaremos aquí.

Inicialización de shell en Linux

Cuando se invoca el shell, hay ciertos archivos de inicialización/inicio que lee que ayudan a configurar un entorno para el shell y el usuario del sistema; que son funciones predefinidas (y personalizadas), variables, alias, etc.

Hay dos categorías de archivos de inicialización leídos por el shell:

  • Archivos de inicio de todo el sistema - Las tesis contienen configuraciones globales que se aplican a todos los usuarios del sistema, y ​​generalmente se encuentran en el /etc directorio. Incluyen: /etc/perfiles y /etc/bashrc o /etc/bash.bashrc.
  • Archivos de inicio específicos del usuario - Estas configuraciones de tiendas que se aplican a un solo usuario en el sistema y normalmente se encuentran en el directorio de inicio de los usuarios como archivos DOT. Pueden anular las configuraciones de todo el sistema. Incluyen: .perfiles, .bash_profile, .bashrc y .bash_login.

Nuevamente, el caparazón se puede invocar en tres modos posibles:

1. Shell de inicio de sesión interactivo

El shell se invoca después de que un usuario inicie sesión con éxito en el sistema, utilizando /bin/inicio de sesión, Después de leer credenciales almacenadas en el /etc/passwd archivo.

Cuando el shell se inicia como un shell de inicio de sesión interactivo, lee el /etc/perfil y su equivalente específico del usuario ~/.bash_profile.

Shell de inicio de sesión interactivo de Linux

2. Caparazón no login interactivo

El shell se inicia en la línea de comandos utilizando un programa de shell, por ejemplo, $/bin/bash o $/bin/zsh. También se puede iniciar ejecutando el /bin/su dominio.

Además, una carcasa interactiva no login también puede invocarse con un programa terminal como konsole, Terminator o Xterm desde un entorno gráfico.

Cuando se inicia el shell en este estado, copia el entorno del shell principal y lee el usuario específico ~/.bashrc Archivo para instrucciones de configuración de inicio adicionales.

$ su # ls -la 
Caparazón no login interactivo

3. Caparazón no interactivo

Se invoca el shell cuando se ejecuta un script de shell. En este modo, está procesando un script (conjunto de comandos/funciones del sistema de shell o genérico) y no requiere la entrada del usuario entre comandos a menos que lo contrario. Opera usando el entorno heredado del shell principal.

Comprensión de los archivos de inicio de shell de todo el sistema

En esta sección, sombrearemos más luz en los archivos de inicio de shell que almacenan configuraciones para todos los usuarios en el sistema y estos incluyen:

El /etc/archivo de perfil - almacena configuraciones de entorno de todo el sistema y programas de inicio para la configuración de inicio de sesión. Todas las configuraciones que desea aplicar a todos los entornos de los usuarios del sistema se deben agregar en este archivo.

Por ejemplo, puede establecer su variable de entorno de ruta global aquí.

# gato /etc /perfil 
Archivo de configuración de todo el sistema

Nota: En ciertos sistemas como RHEL/CENTOS 7, Obtendrá advertencias como "No se recomienda cambiar este archivo a menos que sepa lo que está haciendo. Es mucho mejor crear una personalización .mierda shell script en /etc/perfil.d/ Para hacer cambios personalizados en su entorno, ya que esto evitará la necesidad de fusionarse en futuras actualizaciones ”.

El /etc/perfil.d/ DIRECTORIO - Tiendas de scripts de shell utilizados para realizar cambios personalizados en su entorno:

# CD /ETC /Perfil.d/ # ls -l 
Almacena scripts de shell personalizados

El /etc/bashrc o /etc/bash.bashrc Archivo: contiene funciones y alias de todo el sistema, incluidas otras configuraciones que se aplican a todos los usuarios del sistema.

Si su sistema tiene múltiples tipos de shells, es una buena idea poner configuraciones específicas de BASH en este archivo.

# CAT /ETC /BASHRC 
Funciones y alias de todo el sistema

Comprender archivos de inicio de shell específicos del usuario

A continuación, explicaremos más sobre los archivos DOT de inicio (BASH) específicos del usuario, que almacenan configuraciones para un usuario en particular en el sistema, se encuentran en el directorio de inicio de un usuario e incluyen:

# ls -la 
Archivos de configuración específicos del usuario

El ~/.bash_profile Archivo: esto almacena configuraciones de programas de entorno y de inicio específicos del usuario. Puede establecer su variable de entorno de ruta personalizada aquí, como se muestra en la captura de pantalla a continuación:

# Cat ~/.bash_profile 
Perfil de Bash de usuario

El ~/.bashrc Archivo: este archivo almacena alias y funciones específicas del usuario.

# Cat ~/.bashrc 
Archivo de usuarios de bashrc

El ~/.bash_login Archivo: contiene configuraciones específicas que normalmente solo se ejecutan cuando inicia sesión en el sistema. Cuando el ~/.bash_profile está ausente, este archivo será leído por Bash.

El ~/.perfil Archivo: este archivo se lee en ausencia de ~/.bash_profile y ~/.bash_login; Puede almacenar las mismas configuraciones, a las que también pueden ser accesibles por otros proyectiles en el sistema. Debido a que hemos hablado principalmente de bash aquí, tenga en cuenta que otros capas podrían no entender la sintaxis bash.

A continuación, también explicaremos otros dos archivos específicos del usuario importantes que no son necesariamente archivos de inicialización de BASH:

El ~/.bash_history Archivo: Bash mantiene un historial de comandos que ha sido ingresado por un usuario en el sistema. Esta lista de comandos se mantiene en el directorio de inicio de un usuario en el ~/.bash_history archivo.

Para ver esta lista, escriba:

$ Historia o $ Historia | menos 
Ver los últimos comandos ejecutados

El ~/.bash_logout Archivo: no se usa para el inicio de Shell, pero almacena instrucciones específicas del usuario para el procedimiento de cierre de sesión. Se lee y ejecuta cuando un usuario sale de un shell de inicio de sesión interactivo.

Un ejemplo práctico al borrar la ventana del terminal al inicio de sesión. Esto es importante para conexiones remotas, que dejará una ventana limpia después de cerrarlas:

# Cat Bash_logout 
Historia clara después del cierre de sesión

Para obtener información adicional, consulte el contenido de estos archivos de inicialización de shell en varias distribuciones de Linux y también lea a través de la página de Bash Man:

Eso es todo por ahora! En este artículo, explicamos archivos de inicio/inicialización de shell en Linux. Use el formulario de comentarios a continuación para escribirnos.