システムで使用できる端末は7つあります。tty7
GUIベースです。
現在どのttyを使用しているかを知るにはどうすればよいですか?
tty1、tty2 .... tty6のように?
システムで使用できる端末は7つあります。tty7
GUIベースです。
現在どのttyを使用しているかを知るにはどうすればよいですか?
tty1、tty2 .... tty6のように?
回答:
これを見つけるにはいくつかの方法があります。私はwho am i
(ではないwho
)コマンドで行きます:
$ who am i
ravexina tty2 2017-04-10 11:19 (:0)
グラフィカル端末を使用している場合、次のような結果が返されます。
ravexina pts/0 2017-04-10 1:19 (:0)
グラフィカル端末を使用したsshセッションの結果は同じですが、(:0)の代わりに、マシンIP(192.168.xx)を取得します。以下のような他のコマンドw
、who
、pgrep
、ps
などは、あまりにも便利です。
たとえばtty
、私のグラフィカルインターフェイスが実行されている場所を確認するには:
ps $(pgrep Xorg)
私の場合、gdmやslimなどのディスプレイマネージャーを使用しないため、次のようになります。
PID TTY STAT TIME COMMAND
1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
who am i
では何も返さず、をwhoami
返しますzanna
(一方、who
すべてのセッションを返します(関連する質問(答えられないことが判明した)を覚えていますwho
。
who am i
vtでは常にうまく機能し、pgrep
非常にスマートです($()
コマンドサブの構文を使用したい場合があります-バックティックはマークダウンで少し混乱することがあります) ...
tty
コマンドを使用します。
私が正しい場合、これは参照です:
/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6
pts
GUIまたはSSHを介して端末を使用していることを意味します
一歩後退して混乱から始めましょう:ttyとは?もともとttyは、teletypeの略語で、ガラステレタイプになり、ターミナルまたはターミナルへの接続、具体的にはシリアルポートになりました(これらはまだ存在し、最も一般的なのは/ dev / ttyS0、/ dev / ttyUSB0、および/ dev / ttyacm0です)。次に、疑似ttyと仮想ttyを取得しました。古いUnixの手は、リモート端末(sshとtelnet)、仮想端末(xtermなど)、および端末マルチプレクサ(screenとtmux)に使用される疑似ttyに精通しています。疑似ttyには長い間さまざまな命名規則がありますが、現在の命名規則では/ dev / pts / 0などの名前を使用しています。一方、仮想ttyは仮想コンソールに関連付けられます。特に、コントロールaltファンクションキーを使用する場合、それぞれが仮想ttyとペアになる仮想コンソールを切り替えます。
あなたが(テキストモードを使用する場合、または仮想TTY)あなたの擬似端末を見つける必要があるのであればそこのようなソリューションのすべての種類があるwho am i
か、ps ax|grep $$
これは擬似ttyが標準入出力に開かれたとして、これを見つけるために複数の方法があるとして行うことは比較的容易であり、ほとんどの場合、ioがリダイレクトされる場合でも機能する他のメソッドがあります。これには、グラフィカル端末エミュレーターまたは端末マルチプレクサーを使用していない限り、シリアルポートと仮想ttyを使用するときに正しいことを行うという利点もあります。
しかし、仮想コンソールを識別したい場合はどうでしょうか?sudo fgconsole
対話型の場合に役立ちます。または、切り替えは通常十分に速いので、コンソールを歩くだけです。非対話型または非フォアグラウンドの場合に確実に機能するプログラムによる方法を知りません。
仮想コンソールに確実に応答できないことが保証されている例を見てみましょう。(alpha)の前に座っているコンピューターには、tty2(:1)で実行されているXserverがあり、2つのxtermとvncviewer(bravo:2に接続されている)を開く3つのウィンドウがあります。1つのxtermは画面を実行しており、もう1つはssh charleyを実行しています。画面には、ssh deltaとwho(列2の擬似ttyを正しく識別(:1:S0)
し、2番目のXサーバーに接続されている最初の画面セッションに擬似ttyが接続されていることを示す5列のヒントを提供する)ただし、仮想コンソール情報は提供しません)。どちらのsshセッションでも誰がヒントを提供するかを実行する(alpha)
これは、sshセッションの発信元であるマシンを識別し、リモートセッションに比較的適しています。疑似ttyに接続されているものについての情報はほとんどありませんが(仮想コンソールやリモートtty情報もまったくありません)、少なくともリモートホストが識別されます。スクリーンセッションは分離可能であるため、スクリーンに関する情報が間違っている可能性があります。vncセッションとローカルセッションの違いはディスプレイ番号のみであるため、vncは有用な情報をまったく提供しません。多くの場合、0はtty7にありますが、常にではなく、bravoにはグラフィックカードがないため、0はvncセッションであると想定できます(ローカルコンソールであると考えるため、誰が混乱するか)私は(逆にだけではなく)tty7(およびtty5、tty6、およびtty8も)他の場所でグラフィカルセッションを宗教化します。ただし、待機画面は端末プログラムとしても機能し、シリアルケーブルでセッションを確立できます。誰が実行された場合、そのようなセッションは何を報告しますか?vnc、xterm、ssh、screen、usbシリアルアダプターのいずれかを介してシリアルポートに接続するか、またはテレビデオに接続するのかを問わず、シリアルポートを使用しない理由。
ttyにログインすると、最初の行で使用しているttyが自動的に表示されます。
コメントに書いたように、キーボードの組み合わせCtrl+ Alt+ F3を押しても黒い画面しか表示されない場合、Ctrl+ Alt+ F3を押してttyを起動せずにコンピューターを起動するときにルートシェルにアクセスする別の方法があります。
起動中のBIOS / UEFIスプラッシュ画面の直後に、BIOSを使用してShiftキーをすばやく押し続けると、GNU GRUBメニューが表示されます。(Ubuntuのロゴが表示されている場合は、GRUBメニューに入ることができません。)UEFIで(おそらく数回)Escキーを押してGRUBメニューに移動します。製造元のスプラッシュ画面はWindowsブートローダーの一部である場合があるため、マシンの電源を入れると、GRUB画面に直接移動するため、押すShift必要はありません。
最初の紫色のGNU GRUB画面から、↑キーと↓キーを使用してUbuntuの詳細オプションを選択し、を押しEnterます。その後、カーネルオプションのリストを含む別の紫色のGNU GRUBメニューメニューが表示されます。
上から2番目のエントリ(説明に回復モードがあるエントリ)を選択するまで下矢印キーを押してから、を押しEnterます。
次の回復メニューが表示されます。
矢印キーを使用してルートまでスクロールし、を押しEnterます。
次のようなルートプロンプトが表示されます。
root@ubuntu:~#
この段階では、読み取り専用のファイルシステムが必要です。書き込み権限で再マウントする必要があります。
mount -o rw,remount /
これで、ターミナルと同じようにコマンドを実行できます。