Intentando entender el comando “w” en macOS

Intentando entender el comando “w” en macOS

Actualmente, estoy aprendiendo algunos comandos de UNIX y encontré varias preguntas inexplicables. Gracias por tu respuesta.

  1. Cuando ejecuto el comando wdesde la terminal, recibí algunos mensajes que se muestran en la imagen a continuación. Sé s000significa la terminal en la que escribí el comando w. Pero estoy confundido acerca del tty cuyo nombre es consoley por el cual, decía, inicié sesión en el sistema. Y decía que consolellevaba algún tiempo inactivo. ¿Puedo cambiar a consoleactivar este tty para que ya no esté inactivo?

  2. También hice otro experimento intentando iniciar el usuario invitado que estaba iniciando sesión. Sabía que podía finalizar el proceso bash que estaba ejecutando el invitado, pero de alguna manera tengo problemas para finalizar el proceso de bash que consoleestaba ejecutando el invitado. ¿Cómo puedo iniciar completamente el invitado sin reiniciar la computadora? No puedo matar el console. La raíz de este problema es más o menos la misma que la del primero: ¿qué significa "consola"? Absolutamente no representa la terminal en la que escribí el comando w.

  3. Este problema también se puede encontrar en sistemas Linux como Ubuntu 14.04 y este último nombra el archivo consolecon un número como 0o 1. Me pregunto qué significa 0 o 1 en la columna tty. Pero puedo estar seguro de que tienen un significado similar console.

aquí está la imagen

Respuesta1

No estoy familiarizado con macOS, pero espero que los conceptos sean bastante similares a los de Linux. Esto es una simplificación excesiva, pero básicamente, en este contexto, la "consola" se refiere a toda la computadora. O, para ser algo más específico, la pantalla y los dispositivos de entrada humana (teclado, dispositivo(s) señalador(es), etc.) (los inicios de sesión de red están excluidos de la “consola”).

Cuando inicia sesión en su computadora (localmente, no a través de la red), está iniciando sesión en la consola.

Ahora obviamente estás familiarizado con las terminales: ventanas en las que puedes ejecutar comandos como lsy w. Cuando inicias sesión en la consola, automáticamente ejecuta un comando (o un grupo de comandos) que te brinda la interfaz de ventana a la que estás acostumbrado. Algunos sistemas operativos hacen visible el mecanismo por el cual esto sucede y, a veces, incluso ajustable; otros lo hacen completamente “bajo el capó”.

Dado que la consola no ejecuta ningún comando, excepto el propio sistema de ventanas, parece estar inactiva. En la mayoría de los sistemas operativos (y espero que macOS sea uno de ellos), la única opción para cambiar a la consola es salir del sistema de ventanas, pero eso te devuelve a la consola, que luego automáticamente te desconecta.

Hay otra arruga:

  • El wcomando lee un archivo del sistema, formatea bien los datos para que una persona pueda verlos y los escribe en la salida estándar.
  • Se escribe una entrada en el archivo cada vez que alguien inicia sesión en la consola o en la red. Algunos sistemas (¿la mayoría? ¿todos?) también escriben una entrada cuando el usuario en la consola inicia una nueva ventana de terminal.
  • Las entradas normalmente se borran cuando un usuario cierra sesión o cierra una ventana de terminal.
  • La palabra clave en el punto anterior es "normalmente". En algunos casos, si matas un proceso (especialmente si lo haces como superusuario), puedes interferir con el mecanismo que borra los datos antiguos. Por lo tanto, wpodría reportar información que ya no es válida.

Si no sabes cómo usarlo ps, deberías aprender. Puedes usarloen cambiode w, pero probablemente sea mejor usarlos juntos. Úselo wpara brindarle una hoja de ruta de qué buscar en el psresultado. No creas ciegamente todo lo wque te dice; Cree sólo en la información con la que puedas verificar ps. Por ejemplo, si ha eliminado todos los procesos "invitados" y wtodavía dice que "invitado" ha iniciado sesión, probablemente le esté proporcionando información obsoleta y no válida.


Podrías encontrar¿Cuál es la diferencia entre shell, consola y terminal? y ¿Cuál es la diferencia exacta entre un 'terminal', un 'shell', un 'tty' y una 'consola'? para que valga la pena leerlo.

información relacionada