Entendendo os arquivos de inicialização do shell e perfis de usuário no Linux

Entendendo os arquivos de inicialização do shell e perfis de usuário no Linux

O Linux é um sistema de compartilhamento de tempo multiusuário, implicando que mais de um usuário pode fazer login e usar um sistema. E os administradores do sistema têm a tarefa de gerenciar vários aspectos de como diferentes usuários podem operar um sistema em termos de instalação/atualização/remoção de software, programas que eles podem executar, arquivos que eles podem visualizar/editar e assim por diante.

O Linux também permite que os ambientes dos usuários sejam criados ou mantidos de duas maneiras principais: usando configurações específicas (globais) e específicas do usuário (pessoal) (pessoal). Normalmente, o método básico de trabalhar com um sistema Linux é o shell, e o shell cria um ambiente, dependendo de certos arquivos que lê durante sua inicialização após um usuário bem -sucedido de login.

Leia sugerida: Como definir variáveis ​​de ambiente no Linux

Neste artigo, explicaremos os arquivos de inicialização do Shell em relação aos perfis de usuário para gerenciamento local de usuários no Linux. Informaremos você onde manter funções, aliases, variáveis ​​e programas de inicialização personalizados.

Importante: Para os fins deste artigo, vamos nos concentrar Bash, a sh Shell compatível, que é o shell mais popular/usado em sistemas Linux por aí.

Se você estiver usando um shell diferente (zsh, cinzas, peixes etc ...), leia sua documentação para saber mais sobre alguns dos arquivos relacionados sobre os quais falaremos aqui.

Inicialização da concha no Linux

Quando o shell é chamado, existem certos arquivos de inicialização/inicialização que lê que ajudam a configurar um ambiente para o próprio shell e o usuário do sistema; isso é predefinido (e personalizado) funções, variáveis, aliases e assim por diante.

Existem duas categorias de arquivos de inicialização lidos pelo shell:

  • Arquivos de inicialização em todo o sistema - Teses contêm configurações globais que se aplicam a todos os usuários no sistema e geralmente estão localizados no /etc diretório. Eles incluem: /etc/perfis e /etc/Bashrc ou /etc/bash.Bashrc.
  • Arquivos de inicialização específicos do usuário - Essas configurações de armazenamento que se aplicam a um único usuário no sistema e normalmente estão localizadas no diretório inicial dos usuários como arquivos de ponto. Eles podem substituir as configurações em todo. Eles incluem: .perfis, .Bash_profile, .Bashrc e .Bash_login.

Novamente, a concha pode ser invocada em três modos possíveis:

1. Shell de login interativo

O shell é invocado depois que um usuário faz login com sucesso no sistema, usando /bin/login, Depois de ler as credenciais armazenadas no /etc/passwd arquivo.

Quando o shell é iniciado como um shell de login interativo, lê o /etc/perfil e seu equivalente específico do usuário ~/.Bash_profile.

Linux Interactive Login Shell

2. Concha interativa não logina

O shell é iniciado na linha de comando usando um programa de shell, por exemplo $/BIN/BASH ou $/bin/zsh. Também pode ser iniciado executando o /bin/su comando.

Além disso, uma concha interativa não logina também pode ser invocada com um programa de terminal, como Konsole, Terminator ou Xterm de dentro de um ambiente gráfico.

Quando o shell é iniciado neste estado, ele copia o ambiente do shell pai e lê o usuário específico ~/.Bashrc Arquivo para instruções de configuração de inicialização adicionais.

$ su # ls -la 
Concha interativa não logina

3. Concha não interativa

A concha é invocada quando um script de shell está funcionando. Nesse modo, ele está processando um script (conjunto de comandos/funções de shell ou sistema genérico) e não requer entrada do usuário entre comandos, a menos que o contrário. Ele opera usando o ambiente herdado da concha pai.

Entendendo os arquivos de inicialização do shell em todo o sistema

Nesta seção, deixaremos mais de luz nos arquivos de inicialização do shell que armazenam configurações para todos os usuários no sistema e incluem:

O /etc/arquivo de perfil - Ele armazena configurações de ambiente em todo o sistema e programas de inicialização para configuração de login. Todas as configurações que você deseja aplicar a todos os ambientes dos usuários do sistema devem ser adicionados neste arquivo.

Por exemplo, você pode definir sua variável de ambiente de caminho global aqui.

# gato /etc /perfil 
Arquivo de configuração ampla do sistema

Observação: Em certos sistemas como RHEL/CENTOS 7, Você receberá avisos como “não é recomendável alterar este arquivo, a menos que saiba o que está fazendo. É muito melhor criar um costume .sh script de shell in /etc/perfil.d/ Para fazer alterações personalizadas em seu ambiente, pois isso impedirá a necessidade de fusão em atualizações futuras ”.

O /etc/perfil.d/ Diretório - armazena scripts de shell usados ​​para fazer alterações personalizadas em seu ambiente:

# cd /etc /perfil.d/ # ls -l 
Armazena scripts de shell personalizados

O /etc/Bashrc ou /etc/bash.Bashrc Arquivo - contém funções e aliases em todo o sistema, incluindo outras configurações que se aplicam a todos os usuários do sistema.

Se o seu sistema tiver vários tipos de conchas, é uma boa ideia colocar configurações específicas para o Bash neste arquivo.

# gato /etc /baashrc 
Funções e aliases do sistema

Entendendo os arquivos de inicialização do shell específicos do usuário

Em seguida, explicaremos mais os arquivos de pontos de inicialização do Shell (Bash) específicos do usuário, que armazenam configurações para um usuário em particular no sistema, eles estão localizados no diretório inicial de um usuário e incluem:

# ls -la 
Arquivos de configuração específicos do usuário

O ~/.Bash_profile Arquivo - Isto armazena o ambiente específico do usuário e configurações de programas de inicialização. Você pode definir sua variável de ambiente de caminho personalizado aqui, conforme mostrado na captura de tela abaixo:

# cat ~///.Bash_profile 
Perfil do usuário do usuário

O ~/.Bashrc Arquivo - Este arquivo armazena aliases e funções específicas do usuário.

# cat ~///.Bashrc 
Arquivo BASHRC do usuário

O ~/.Bash_login Arquivo - Ele contém configurações específicas que normalmente são executadas apenas quando você faz login no sistema. Quando o ~/.Bash_profile está ausente, este arquivo será lido por Bash.

O ~/.perfil Arquivo - Este arquivo é lido na ausência de ~/.Bash_profile e ~/.Bash_login; Ele pode armazenar as mesmas configurações, que também podem ser acessíveis por outras conchas no sistema. Porque falamos principalmente sobre o Bash aqui, observe que outras conchas podem não entender a sintaxe do Bash.

Em seguida, também explicaremos dois outros arquivos importantes específicos do usuário que não são necessariamente arquivos de inicialização de bash:

O ~/.Bash_history Arquivo - Bash mantém um histórico de comandos que foram inseridos por um usuário no sistema. Esta lista de comandos é mantida no diretório inicial de um usuário no ~/.Bash_history arquivo.

Para visualizar esta lista, digite:

$ HISTÓRIA OU $ HISTÓRIA | menos 
Ver os últimos comandos executados

O ~/.Bash_logout Arquivo - Não é usado para inicialização do shell, mas armazena instruções específicas do usuário para o procedimento de logout. É lido e executado quando um usuário sai de um shell de login interativo.

Um exemplo prático, limpando a janela do terminal após o logout. Isso é importante para conexões remotas, que deixarão uma janela limpa depois de fechá -las:

# Cat Bash_logout 
História clara após o logout

Para insights adicionais, consulte o conteúdo desses arquivos de inicialização do shell em várias distritos do Linux e também leia a página do Bash Man:

É tudo por agora! Neste artigo, explicamos arquivos de inicialização/inicialização do shell no Linux. Use o formulário de comentário abaixo para escrever de volta para nós.