Tentando entender o comando “w” no macOS

0

Atualmente, estou aprendendo alguns comandos do UNIX e encontrei várias perguntas inexplicadas. Obrigado pela sua resposta.

  1. Quando executo o comando w do terminal, recebi algumas mensagens mostradas na figura abaixo. Eu sei que s000 significa o terminal no qual digitei o comando w . Mas estou confuso sobre o tty cujo nome é console e pelo qual, ele disse, eu entrei no sistema. E ele disse que console ficou inativo por algum tempo. Posso mudar para console para ativar este tty para não ficar mais inativo?

  2. Eu também fiz outro experimento tentando iniciar o usuário convidado que estava efetuando login. Sabia que posso matar o processo bash que o convidado estava executando, mas de alguma forma estou com um problema matando o console do convidado estava correndo. Como posso iniciar o convidado completamente sem reiniciar o computador? Eu não posso matar o console . A raiz deste problema é praticamente a mesma que a primeira: o que significa "console"? Absolutamente não significa o terminal em que eu digitei o comando w .

  3. Esse problema também pode ser encontrado no sistema Linux, como o Ubuntu 14.04, com o último nomeando o console com o número como 0 ou 1 . Eu me pergunto o que 0 ou 1 na coluna tty significa. Mas posso ter certeza de que eles têm um significado semelhante com console .

    
por Han XIAO 01.10.2017 / 03:23

1 resposta

0

Eu não estou familiarizado com o macOS mas espero que os conceitos sejam bem parecidos com os do Linux. Isto é um pouco de simplificação, mas basicamente, neste contexto, o “console” refere-se ao computador inteiro. Ou, para ser um pouco mais específico, a exibição e os dispositivos de entrada humanos (teclado, dispositivo (s) apontador (es), etc.) (Logins de rede são excluídos do "console").

Quando você faz login no seu computador (localmente, não através da rede), você está logando no console.

Agora você está obviamente familiarizado com terminais - janelas nas quais você pode executar comandos, como ls e w . Quando você faz o login no console, automagicamente executa um comando (ou um grupo de comandos) que fornece a interface com janelas à qual você está acostumado. Alguns sistemas operacionais fazem o mecanismo pelo qual isso acontece visível, e às vezes até ajustável; outros fazem isso inteiramente "sob o capô".

Como o console não executa nenhum comando, exceto pelo próprio sistema de janelas, parece estar ocioso. Na maioria dos sistemas operacionais (e espero que o macOS seja um deles), o único foi para mudar para o console é para sair do sistema de janela - mas isso te leva de volta ao console, que automaticamente faz seu logout.

Há outra ruga:

  • O comando w lê um arquivo de sistema, formata bem os dados para uma pessoa olhar para ela, e grava-o na saída padrão.
  • Uma entrada é gravada no arquivo sempre que alguém faz login no console ou através da rede. Alguns (a maioria - todos?) Sistemas 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 faz logout ou fecha uma janela de terminal.
  • A palavra-chave no marcador acima é "normalmente". Em alguns casos, se você matar um processo (especialmente se você fizer isso como superusuário), você pode 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 souber como usar o ps , deverá aprender. Você pode usar em vez de w , mas provavelmente é melhor usá-los juntos. Use w para fornecer um roteiro do que procurar na saída ps . Não acredite cegamente em tudo que w lhe disser; acredite apenas nas informações que você pode verificar com ps . Por exemplo, se você matou todos os processos de "convidado", e w ainda diz que "convidado" está logado, provavelmente está dando informações obsoletas e inválidas.

Você pode encontrar Qual é a diferença entre shell, console, e terminal? e Qual é a diferença exata entre um 'terminal', um 'shell', um 'tty' e um 'console'? valer a pena ler.

    
por 01.10.2017 / 03:59