Il y a 7 terminaux qui peuvent être utilisés dans notre système. tty7
est basé sur une interface graphique.
Comment puis-je savoir quel tty est-ce que j'utilise actuellement?
comme, tty1, tty2 .... tty6?
Il y a 7 terminaux qui peuvent être utilisés dans notre système. tty7
est basé sur une interface graphique.
Comment puis-je savoir quel tty est-ce que j'utilise actuellement?
comme, tty1, tty2 .... tty6?
Réponses:
Il existe plusieurs façons de le savoir. J'irais avec la commande who am i
(pas who
):
$ who am i
ravexina tty2 2017-04-10 11:19 (:0)
Quand je suis dans un terminal graphique, cela retournerait quelque chose comme:
ravexina pts/0 2017-04-10 1:19 (:0)
Sous ssh, la session utilisant un terminal graphique est la même, mais au lieu de (: 0), j'obtiendra l'IP de ma machine (192.168.xx). d' autres commandes comme w
, who
, pgrep
, ps
, etc sont utiles aussi.
Par exemple, pour savoir à quel tty
endroit mon interface graphique fonctionne:
ps $(pgrep Xorg)
Ce qui dans mon cas, car je n'utilise aucun gestionnaire d'affichage comme gdm ou slim, il produira:
PID TTY STAT TIME COMMAND
1693 tty1 Sl 0:05 /usr/lib/xorg/Xorg
who am i
ne renvoie rien, et whoami
renvoie zanna
, (alors que who
renvoie toutes les sessions (je me souviens d'une question connexe (qui s'est avérée sans réponse) où nous avons remarqué que différents émulateurs produisaient une sortie différente de who
)).
who am i
fonctionnera toujours très bien dans un vt, et le pgrep
est très intelligent (vous voudrez peut-être utiliser la $()
syntaxe pour les sous-commandes). ...
Utilisez la tty
commande.
Si j'ai raison, c'est la référence:
/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6
pts
signifie que vous utilisez un terminal à partir de l'interface graphique ou via SSH
Prenons un peu de recul et commençons par la confusion: qu'est-ce qu'un tty? À l'origine, tty était une abréviation de télétype qui est devenu un téléscripteur en verre qui est devenu n'importe quel terminal ou la connexion à un, en particulier un port série (ceux-ci sont toujours présents, le plus souvent / dev / ttyS0, / dev / ttyUSB0 et parfois / dev / ttyacm0). Ensuite, vous avez obtenu des pseudo ttys et des ttys virtuels. les anciennes mains Unix connaissent bien les pseudo ttys qui sont utilisés pour les terminaux distants (ssh et telnet), les terminaux virtuels (xterm et similaires) et les multiplexeurs de terminaux (screen et tmux). Les pseudo-ttys ont eu différents schémas de dénomination au fil du temps, mais le schéma actuel utilise des noms comme / dev / pts / 0. Les ttys virtuels, d'autre part, sont associés aux consoles virtuelles, en particulier lorsque vous utilisez les touches de fonction de contrôle alt, vous changez de consoles virtuelles, chacune étant associée à un tty virtuel.
Donc, si vous avez besoin de trouver votre pseudo tty (ou virtuel tty lorsque vous utilisez le mode texte), il existe toutes sortes de solutions comme who am i
ou ps ax|grep $$
cela est relativement facile à faire car il existe plusieurs façons de le savoir lorsque le pseudo tty est ouvert sur io standard dans la plupart des cas et il existe d'autres méthodes qui fonctionnent même lorsque io est redirigé. cela a également l'avantage de faire la bonne chose lorsque vous utilisez des ports série et des ttys virtuels tant que vous n'utilisez pas d'émulateurs de terminaux graphiques ou de multiplexeurs de terminaux.
Mais que se passe-t-il si vous souhaitez identifier la console virtuelle? sudo fgconsole
peut être utile pour les cas interactifs. Ou ce que je fais, c'est simplement marcher sur les consoles car le changement est généralement assez rapide. Je ne connais pas de méthode programmatique qui fonctionne de manière fiable dans des cas non interactifs ou non originaux.
Regardons un exemple qui ne pourra jamais répondre de manière fiable à la console virtuelle. L'ordinateur que je suis devant (alpha) a un Xserver fonctionnant sur tty2 (: 1), j'ai trois fenêtres ouvertes deux xterms et un vncviewer (connecté à bravo: 2). Un xterm exécute l'écran, l'autre exécute ssh charley. L'écran a deux fenêtres ouvertes, ssh delta et who (qui identifie correctement le pseudo tty dans la colonne deux et fournit l'astuce (:1:S0)
dans la colonne cinq qui nous indique que le pseudo tty est connecté à la première session d'écran qui est connectée au deuxième serveur X, mais ne donne aucune information sur la console virtuelle). L'exécution de qui sur l'une ou l'autre session ssh donne l'astuce(alpha)
qui identifie la machine d'où provient la session ssh, ce qui est relativement bon pour les sessions distantes. Bien qu'il y ait peu d'informations sur ce qui est connecté au pseudo tty (et absolument aucune console virtuelle ni même d'informations tty distantes ne sont disponibles), l'hôte distant est au moins identifié. les informations sur l'écran peuvent être fausses car les sessions d'écran sont détachables et vnc ne fournit aucune information utile car la seule différence entre une session vnc et une session locale est le numéro d'affichage. Dans de nombreux cas, vous pouvez supposer que: 0 est sur tty7 mais pas toujours, et jamais sur le mien car bravo n'a pas du tout de carte graphique et: 0 est une session vnc (ce qui confond qui parce qu'il pense que c'est la console locale) et aucune des machines n'utilise tty7 comme session graphique, car je (pas seulement pour être contraire) vider les journaux vers tty7 (et tty5, tty6 et tty8 également) sessions graphiques religieuses ailleurs. Mais l'écran d'attente peut également agir comme un programme terminal vous permettant d'établir une session sur un câble série. Que signale une telle session quand qui est exécuté? Pourquoi rien d'autre que le port série, que ce soit via vnc, xterm, ssh, screen et un adaptateur série usb à la fois ou est connecté à mon téléviseur.
Lorsque vous vous êtes connecté à un terminal, il indique automatiquement le terminal que vous utilisez sur la première ligne.
Si appuyer sur la combinaison de touches Ctrl+ Alt+ F3n'affiche qu'un écran noir, comme vous l'avez écrit dans un commentaire, il existe un autre moyen d'accéder à un shell racine lors du démarrage de l'ordinateur sans appuyer sur Ctrl+ Alt+ F3pour afficher un tty.
Immédiatement après l'écran de démarrage BIOS / UEFI pendant le démarrage, avec le BIOS, appuyez et maintenez rapidement la Shifttouche, ce qui fera apparaître le menu GNU GRUB. (Si vous voyez le logo Ubuntu, vous avez raté le point où vous pouvez entrer dans le menu GRUB.) Avec UEFI appuyez (peut-être plusieurs fois) sur la Esctouche pour accéder au menu GRUB. Parfois, l'écran de démarrage du fabricant fait partie du chargeur de démarrage Windows, donc lorsque vous allumez la machine, il va directement à l'écran GRUB, puis il Shiftn'est pas nécessaire d' appuyer sur .
Dans le premier écran violet GNU GRUB, sélectionnez Options avancées pour Ubuntu avec les touches ↑ et ↓ et appuyez sur Enter. Vous serez alors invité par un autre menu violet du menu GNU GRUB qui contient une liste d'options du noyau.
Appuyez sur la flèche vers le bas jusqu'à ce que vous sélectionniez la deuxième entrée en haut (celle avec le mode de récupération dans la description), puis appuyez sur Enter.
Maintenant, vous devriez voir ce menu de récupération:
À l'aide des touches fléchées, faites défiler vers le bas jusqu'à root , puis appuyez sur Enter.
Vous devriez maintenant voir une invite racine, quelque chose comme ceci:
root@ubuntu:~#
À ce stade, vous devriez avoir un système de fichiers en lecture seule. Vous devez le remonter avec des autorisations d'écriture:
mount -o rw,remount /
Vous pouvez maintenant exécuter les commandes de la même manière que dans un terminal.
Je suppose que vous cherchez autre chose que les autres réponses fournies. Exécutez sudo fgconsole
pour découvrir quel tty réel est maintenant actif.
Utilisez la commande tty, cela fonctionne sous Linux et macOS et donne une sortie assez simple à lire, uniquement le nom du tty dans lequel vous vous trouvez.
Exemple:
$ tty
/dev/pts/0
Il est facile de l'écrire ou de l'inclure dans l'invite, par exemple:
$ PS1='`tty`: '
/dev/pts/0: _
De cette façon, vous saurez toujours dans quel terminal vous vous trouvez.