login / não-login e shells interativos / não-interativos [duplicados]

20

Os conceitos de login / não-login são iguais aos conceitos de shells não interativos / interativos (respectivamente)?

Ou os conceitos ortogonais geram quatro combinações diferentes?

Estou tentando obter uma imagem clara de quais scripts .bashrc , .bash_profile são originados sob várias circunstâncias e acho que os artigos às vezes usam esses conceitos de forma intercambiável.

    
por Marcus Junius Brutus 28.11.2014 / 19:01

1 resposta

37
  • login shell: Um shell de login faz login no sistema como um usuário espiificado, necessário para isso é um nome de usuário e senha. Quando você apertar ctrl + alt + F1 para logar em um terminal virtual obtido após o login bem-sucedido: um shell de login (interativo). Arquivos de origem:

    • /etc/profile e ~/.profile para shells compatíveis com Bourne (e /etc/profile.d/* )
    • ~/.bash_profile para bash
    • /etc/zprofile e ~/.zprofile para zsh
    • /etc/csh.login e ~/.login para csh
  • shell não-login : Um shell que é executado sem efetuar login, necessário para isso, é um usuário atualmente logado. Quando você abre um terminal gráfico no gnome, ele é um shell não interativo (interativo). Arquivos de origem:

    • /etc/bashrc e ~/.bashrc para bash
  • interactive shell: Um shell (login ou não-login) onde você pode interativamente digitar ou interromper comandos. Por exemplo, um terminal gnome (não-login) ou um terminal virtual (login). Em um shell interativo, a variável de prompt deve ser definida ( $PS1 ). Arquivos de origem:

    • /etc/profile e ~/.profile
    • /etc/bashrc ou /etc/bash.bashrc para bash
  • shell não-interativo : Um shell (sub) que provavelmente é executado a partir de um processo automatizado que você não verá nem input nem outputm quando o processo de chamada não o manipula. Esse shell é normalmente um shell não-login, porque o usuário chamador já efetuou login. Um shell executando um script é sempre um shell não interativo, mas o script pode emular um shell interativo solicitando que o usuário insira valores. Arquivos de origem:

    • /etc/bashrc ou /etc/bash.bashrc para o bash (mas, na maioria das vezes, você vê isso no início do script: [ -z "$PS1" ] && return . Isso significa que não faça nada se for um shell não interativo)
    • dependendo do shell; alguns deles lêem o arquivo na variável $ENV
por 28.11.2014 / 19:42

Tags