macOSの「w」コマンドを理解しようとする

macOSの「w」コマンドを理解しようとする

現在、UNIX コマンドを学習しているのですが、説明できない質問がいくつかありました。ご回答いただきありがとうございます。

  1. 端末からコマンドを実行するとw、下図のようなメッセージが表示されます。 は、s000コマンドを入力した端末を表しています。 しかし、 という名前の ttyと、システムにログインした ttywについてはよくわかりません。 また、はしばらくアイドル状態だったと表示されています。 に切り替えてこの tty をアクティブにし、アイドル状態でないようにすることはできますか?consoleconsoleconsole

  2. ログイン中のゲスト ユーザーを強制終了する別の実験も行いました。ゲストが実行していた bash プロセスを強制終了できることはわかっていましたが、ゲストが実行していたプロセスを強制終了できないという問題が発生consoleしています。コンピューターを再起動せずにゲストを完全に強制終了するにはどうすればよいでしょうか? を強制終了できませんconsole。この問題の根本は最初の問題とほぼ同じです。「コンソール」とは何の略ですか? コマンドを入力した端末の略であることは間違いありませんw

  3. この問題は、を やconsoleなどの番号で命名する Ubuntu 14.04 などの Linux システムでも発生します。tty 列の 0 や 1 が何を意味するのか疑問に思います。しかし、 と同様の意味を持つことは確かです。01console

これが画像です

答え1

macOS については詳しくありませんが、概念は Linux とかなり似ていると思います。これは多少単純化しすぎていますが、基本的に、この文脈では「コンソール」はコンピューター全体を指します。または、もう少し具体的に言えば、ディスプレイと人間の入力デバイス (キーボード、ポインティング デバイスなど) を指します (ネットワーク ログインは「コンソール」から除外されます)。

コンピューターにログインすると (ネットワーク経由ではなくローカルで)、コンソールにログインすることになります。

ls今では、ターミナル (やなどのコマンドを実行できるウィンドウ) についてよくご存知でしょうw。コンソールにログインすると、コマンド (またはコマンドのグループ) が自動的に実行され、使い慣れたウィンドウ インターフェースが表示されます。オペレーティング システムによっては、このメカニズムが可視化され、場合によっては調整可能になっているものもありますが、完全に「裏で」実行されるものもあります。

コンソールはウィンドウ システム自体を除いてコマンドを実行しないため、アイドル状態であるように見えます。ほとんどのオペレーティング システム (macOS もその 1 つだと思います) では、コンソールに切り替える唯一の方法はウィンドウ システムを終了することですが、これによりコンソールに戻り、自動的にログアウトされます。

もう一つ問題があります:

  • このwコマンドはシステム ファイルを読み取り、データをユーザーが確認しやすいようにフォーマットし、標準出力に書き込みます。
  • 誰かがコンソールまたはネットワーク経由でログインするたびに、エントリがファイルに書き込まれます。一部の (ほとんど? すべての?) システムでは、コンソールのユーザーが新しいターミナル ウィンドウを起動したときにもエントリが書き込まれます。
  • 通常、エントリは、ユーザーがログアウトするか、ターミナル ウィンドウを閉じると消去されます。
  • 上記の箇条書きのキーワードは「通常」です。場合によっては、プロセスを強制終了すると (特にスーパーユーザーとして実行する場合)、古いデータを消去するメカニズムに干渉する可能性があります。そのため、w有効ではなくなった情報が報告される可能性があります。

使い方が分からない場合はps、学ぶ必要があります。その代わりの もありますwが、おそらくこれらを一緒に使用した方がよいでしょう。 を使用して、w出力で何を探すべきかのロードマップを示しますps。 が示すすべてを盲目的に信じないでくださいw。 で検証できる情報だけを信じてくださいps。たとえば、すべての「ゲスト」プロセスを強制終了しても、w「ゲスト」がログインしていると表示される場合は、おそらく古くて無効な情報が表示されています。


あなたは見つけるかもしれないシェル、コンソール、ターミナルの違いは何ですか? そして 「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか? 読む価値がある。

関連情報