o que você quer dizer com shell interativo?

22

UNIX: a referência completa, segunda edição por Kenneth H. Rosen et al.

You can start another shell after you log in by using the name of the shell as a command; for example, to start the Korn shell, you could type ksh at the command prompt. This type of shell is not a login shell, and you do not have to log in again to use it, but it is still an interactive shell, meaning that you interact with the shell by typing in commands (as opposed to using the shell to run a script, as discussed in Chapter 20). The instances of the shell that run in a terminal window when you are using a graphical interface are also interactive non-login shells. When you start a non-login shell, it does not read your .profile, .bash_profile, or .login file (or your .logout file), but it will still read the second shell configuration file (such as .bashrc). This means that you can test changes to your .bashrc by starting another instance of the shell, but if you are testing changes to your .profile or .login, you must log out and then back in to see the results.

Eu estava passando por cima das linhas e não entendo o que isso significa por shell interativo. É verdade que o .profile não é lido se eu estiver usando terminal?

Além disso, o que significa quando você diz que o bourne não é um shell interativo enquanto o bash / csh é um shell interativo?

    
por munish 18.07.2012 / 15:37

1 resposta

24

Um shell interativo é simplesmente qualquer processo de shell que você usa para digitar comandos e obter a saída desses comandos. Ou seja, um shell com o qual você interage.

Assim, seu shell de login é interativo, assim como qualquer outro shells que você iniciar manualmente, conforme descrito no trecho que você citou em sua pergunta. Por outro lado, quando você executa um script de shell, é iniciado um shell não interativo que executa os comandos no script e, em seguida, sai quando o script é concluído.

O shell Bourne pode ser usado como um shell interativo, assim como bash ou tcsh . De fato, muitos sistemas, como o FreeBSD, usam sh como o shell padrão do usuário. Conchas modernas como bash , zsh , tcsh , etc possuem muitos recursos que o Bourne shell não possui, que os tornam mais confortáveis e convenientes para uso interativo (histórico de comandos, conclusão, etc).

Shells interativos não-login (isto é, shells que você inicia manualmente a partir de outro shell ou abrindo uma janela de terminal) não lê seus arquivos .login ou .profile . Estes são apenas lidos e executados por shells de login (shells iniciados pelo processo de sistema login , ou pelo seu gerenciador de exibição X), portanto os comandos e configurações que eles contêm são aplicados apenas uma vez, no início de sua sessão de login. Então, quando você inicia um terminal, o shell que ele gera para você não lê seus arquivos de login ( .login para shells de estilo c, .profile para shells de estilo bourne), mas lê o .cshrc ,% arquivos.bashrc etc.

    
por 18.07.2012 / 16:03

Tags