Atualmente, estou aprendendo alguns comandos do UNIX e encontrei várias questões inexplicáveis. Obrigado pela sua resposta.
Ao executar o comando
w
no terminal, recebo algumas mensagens mostradas na imagem abaixo. Eu seis000
significa o terminal no qual digitei o comandow
. Mas estou confuso sobre o tty cujo nome éconsole
e pelo qual, segundo ele, entrei no sistema. E dizia queconsole
estava ocioso há algum tempo. Posso mudar paraconsole
para ativar este tty para que ele não fique mais ocioso?Também fiz outro experimento tentando iniciar o usuário convidado que estava efetuando login. Eu sabia que poderia encerrar o processo bash que o convidado estava executando, mas de alguma forma estou tendo problemas para interromper o processo que
console
o convidado estava executando. Como posso iniciar completamente o convidado sem reiniciar o computador? Eu não posso matar oconsole
. A raiz deste problema é praticamente a mesma do primeiro: o que significa “console”? Absolutamente não representa o terminal no qual digitei o comandow
.Este problema também pode ser encontrado em sistemas Linux como Ubuntu 14.04, com este último nomeando o
console
número como0
ou1
. Eu me pergunto o que significa 0 ou 1 na coluna tty. Mas posso ter certeza de que eles têm significado semelhante comconsole
.
Responder1
Não estou familiarizado com o macOS, mas espero que os conceitos sejam bastante semelhantes aos do Linux. Isso é uma simplificação exagerada, mas basicamente, neste contexto, o “console” se refere ao computador inteiro. Ou, para ser um pouco mais específico, o display e os dispositivos de entrada humana (teclado, dispositivo(s) apontador(es), etc.) (Logins de rede são excluídos do “console”.)
Ao fazer login no seu computador (localmente, não através da rede), você está fazendo login no console.
Agora você obviamente está familiarizado com terminais – janelas nas quais você pode executar comandos, como ls
e w
. Quando você faz login no console, ele executa automaticamente um comando (ou um grupo de comandos) que fornece a interface de janela com a qual você está acostumado. Alguns sistemas operacionais tornam o mecanismo pelo qual isso acontece visível e, às vezes, até ajustável; outros fazem isso inteiramente “nos bastidores”.
Como o console não executa nenhum comando, exceto o próprio sistema de janelas, ele parece estar ocioso. Na maioria dos sistemas operacionais (e espero que o macOS seja um deles), a única coisa que era mudar para o console era sair do sistema de janelas – mas isso retorna você ao console, que então o desconecta automaticamente.
Há outra ruga:
- O
w
comando lê um arquivo de sistema, formata os dados de maneira adequada para que uma pessoa os veja e os grava na saída padrão. - Uma entrada é gravada no arquivo sempre que alguém faz login no console ou na rede. Alguns sistemas (a maioria? todos?) também escrevem uma entrada quando o usuário no console inicia uma nova janela de terminal.
- As entradas normalmente são apagadas quando um usuário efetua logout ou fecha uma janela de terminal.
- A palavra-chave no item acima é “normalmente”. Em alguns casos, se você encerrar um processo (especialmente se fizer isso como superusuário), poderá interferir no mecanismo que apaga os dados antigos. Assim,
w
pode relatar informações que não são mais válidas.
Se você não sabe como usar ps
, você deveria aprender. Você pode usar issoem vez dede w
, mas provavelmente é melhor usá-los juntos. Use w
para fornecer um roteiro do que procurar na ps
saída. Não acredite cegamente em tudo w
que lhe diz; acredite apenas nas informações que você pode verificar ps
. Por exemplo, se você eliminou todos os processos “convidados” e w
ainda diz que “convidado” está logado, provavelmente isso está fornecendo informações obsoletas e inválidas.
Você pode encontrarQual é a diferença entre shell, console e terminal? e Qual é a diferença exata entre um 'terminal', um 'shell', um 'tty' e um 'console'? para valer a pena ler.