Qual é a diferença entre essas formas de acessar o shell?

2

Pelo que sei, parece que há muitas maneiras de acessar o shell no Linux. Até agora os métodos que conheço são:

  1. Para usar um programa como Terminal ou Konsole
  2. Para usar os atalhos CTRL + ALT + F1-6
  3. Para desativar o X e inicializar diretamente na linha de comando
  4. para SSH em
por Grenville 12.01.2013 / 14:55

3 respostas

9

(1) dá-lhe uma emulação do terminal. Programas como o Gnome Terminal e o Konsole são chamados de "emulador de terminal".

(2) te dá um terminal real. Tudo bem, ainda é uma emulação de um terminal , mas é "mais real" que (1), porque a emulação é feita pelo próprio kernel.

(3) é na verdade o mesmo que (2). Quando você não tem X, você verá tty0, que é o que você obtém ao usar Ctrl Alt F1

.

(4) é um shell remoto, que deve ser usado fora da máquina. Para usar o SSH, é claro que você precisa ter uma conexão de rede com a máquina.

Essencialmente todos os métodos são os mesmos, você tem um shell na máquina que pode executar programas. Existem diferenças sutis, por exemplo:

  • Como um emulador de terminal é executado em uma GUI, você pode executar programas GUI a partir dele e o programa da GUI será aberto em sua própria janela.
  • Como o SSH permite que você execute programas em uma máquina remota, ele permite que você faça coisas quando está longe do servidor físico.

Você deve ver Qual é a diferença exata entre um 'terminal', um 'shell', um 'tty' e um 'console'? para mais.

    
por 12.01.2013 / 15:54
2

Um shell é um programa que processa comandos shell (na linguagem do shell) a partir da entrada e que pode instruir o sistema operacional a executar outros programas de várias maneiras. Ele pode fazer isso em um contexto interativo trabalhando com um dispositivo virtual; no linux estes são representados por /dev/tty[N] nós pré-existentes para VTs ou nós criados dinamicamente /dev/pts/[N] para todo o resto. Um "VT" é um Terminal Virtual, e esses são os consoles não-GUI que você pode acessar através dos seus métodos # 2 e # 3. Com relação ao # 1 (Konsole, etc.), eles são chamados de emuladores de terminal (por isso, tenha cuidado com a diferença entre um "emulador de terminal" e um "terminal virtual"). VT's são às vezes chamados VC's ("consoles virtuais").

Um shell nem sempre é interativo, no entanto; o sistema usa encarnações de casca para fazer muitos negócios. Tenha em mente que não há apenas uma instância do shell em execução que você acessa através de qualquer método; Geralmente, cada ponto de acesso é uma instância diferente. Então você pode distinguir entre "o shell" (abstratamente, o programa que serve a essa finalidade para o sistema) e "um shell" (uma instância desse programa).

    
por 12.01.2013 / 15:52
2

Existem algumas pequenas diferenças entre estas formas.

Um é quando você inicia um emulador de terminal (seus exemplos do Terminal e do Konsole), você já está logado com os outros métodos (2,3 e 4), você precisa fazer o login primeiro e geralmente fornecer uma senha. Isso é chamado de shell de login.

Outra diferença seria o tipo de terminal emulado que pode (e provavelmente irá) variar entre pelo menos os consoles (virtuais ou não) e os emuladores de terminal (Terminal, Konsole). O ssh usará qualquer terminal em que você já esteja quando o iniciar (pode ser configurado se você estiver se conectando de um cliente gráfico como putty). A usabilidade do mouse (copiar / colar) também pode estar indisponível no modo de console.

O ssh pode fazer o tunelamento do X11, permitindo que você inicie aplicativos gráficos como os emuladores de terminal. Com os consoles, não haverá um ambiente gráfico visível, embora nada proíba iniciar clientes X11 em servidores exibidos em outros lugares.

Uma maneira fora da tendência de acessar o shell que você não mencionou é o login através de uma linha serial.

    
por 12.01.2013 / 15:50