Пытаюсь понять команду «w» в macOS

Пытаюсь понять команду «w» в macOS

В настоящее время я изучаю некоторые команды UNIX и столкнулся с несколькими необъяснимыми вопросами. Спасибо за ваш ответ.

  1. Когда я запустил команду wиз терминала, я получил несколько сообщений, показанных на рисунке ниже. Я знаю, что s000означает терминал, в котором я набрал команду w. Но я не понимаю, как называется tty consoleи с помощью которого, как он сказал, я вошел в систему. И он сказал, что consoleнекоторое время был в режиме ожидания. Могу ли я переключиться на , consoleчтобы активировать этот tty, чтобы он больше не был в режиме ожидания?

  2. Я также провел еще один эксперимент, пытаясь выгнать гостя, который входил в систему. Я знал, что могу убить процесс bash, который был запущен гостем, но почему-то у меня возникла проблема с убийством consoleзапущенного гостя. Как мне полностью выгнать гостя, не перезагружая компьютер? Я не могу убить console. Корень этой проблемы во многом тот же, что и первой: что означает «console»? Это определенно не означает терминал, в котором я ввел команду w.

  3. Эту проблему можно также найти в системе Linux, например Ubuntu 14.04, где последняя называет consoleс номером, например 0или 1. Интересно, что означают 0 или 1 в столбце tty. Но я могу быть уверен, что они имеют похожее значение с console.

вот изображение

решение1

Я не знаком с macOS, но я ожидаю, что концепции довольно похожи на те, что есть в Linux. Это несколько упрощенно, но в целом в этом контексте «консоль» относится ко всему компьютеру. Или, если быть более конкретным, к дисплею и устройствам ввода для человека (клавиатура, указывающее устройство(а) и т. д.) (Сетевые входы в систему исключены из «консоли».)

Когда вы входите в систему своего компьютера (локально, а не через сеть), вы входите в консоль.

Теперь вы, очевидно, знакомы с терминалами — окнами, в которых можно запускать команды, например lsи w. Когда вы входите в консоль, она автоматически запускает команду (или группу команд), которая дает вам привычный оконный интерфейс. Некоторые операционные системы делают механизм, с помощью которого это происходит, видимым, а иногда даже регулируемым; другие делают это полностью «под капотом».

Поскольку консоль не запускает никаких команд, кроме самой оконной системы, она, похоже, простаивает. В большинстве операционных систем (и я ожидаю, что macOS — одна из них), единственным способом переключиться на консоль было выйти из оконной системы — но это вернет вас в консоль, которая затем автоматически выведет вас из системы.

Есть еще одна загвоздка:

  • Команда wсчитывает системный файл, форматирует данные так, чтобы их было удобно просматривать, и записывает их в стандартный вывод.
  • Запись записывается в файл всякий раз, когда кто-либо входит в систему с консоли или по сети. Некоторые (большинство? все?) системы также записывают запись, когда пользователь с консоли запускает новое окно терминала.
  • Записи обычно стираются, когда пользователь выходит из системы или закрывает окно терминала.
  • Ключевое слово в приведенном выше пункте — «обычно». В некоторых случаях, если вы убиваете процесс (особенно если вы делаете это как суперпользователь), вы можете помешать механизму, который стирает старые данные. Таким образом, wможет быть сообщена информация, которая больше не является действительной.

Если вы не знаете, как использовать ps, вам следует научиться. Вы можете использовать этовместоиз w, но, вероятно, лучше использовать их вместе. Используйте wдля получения дорожной карты того, что искать в psвыходных данных. Не верьте слепо всему, wчто вам говорят; верьте только той информации, которую вы можете проверить с помощью ps. Например, если вы убили все процессы «гостя», а wвсе еще говорите, что «гость» вошел в систему, он, вероятно, дает вам устаревшую, недействительную информацию.


Вы можете найтиВ чем разница между оболочкой, консолью и терминалом? и В чем именно разница между «терминалом», «оболочкой», «tty» и «консолью»? стоит того, чтобы ее прочитать.

Связанный контент