Comprender los archivos de inicialización de shell y los perfiles de usuario en Linux
- 4961
- 1097
- Claudia Baca
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 Linux2. 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 -laCaparazó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 /perfilArchivo 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 -lAlmacena 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 /BASHRCFunciones 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 -laArchivos 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_profilePerfil de Bash de usuario
El ~/.bashrc Archivo: este archivo almacena alias y funciones específicas del usuario.
# Cat ~/.bashrcArchivo 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 | menosVer 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_logoutHistoria 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.
- « Shellcheck una herramienta que muestra advertencias y sugerencias para scripts de shell
- Cómo actualizar desde Ubuntu 16.10 a Ubuntu 17.04 »