43 votes

Comment vérifier le tty que j'utilise actuellement?

Il y a 7 terminaux qui peuvent être utilisés dans notre système. tty7 est basé sur l'interface graphique.

Comment puis-je vérifier quel tty j'utilise actuellement ?

45voto

Ravexina Points 50599

Il existe plusieurs façons de le découvrir. Je choisirais la commande who am i (pas who) :

$ who am i
ravexina    tty2        2017-04-10 11:19 (:0)

Lorsque je suis dans un terminal graphique, cela renverrait quelque chose comme :

ravexina    pts/0        2017-04-10 1:19 (:0)

Sous une session ssh utilisant un terminal graphique, le résultat est le même, mais au lieu de (:0), je vais obtenir l'IP de ma machine (192.168.x.x). D'autres commandes comme w, who, pgrep, ps, etc sont également utiles.

Par exemple, pour savoir sur quel tty mon interface graphique est en cours d'exécution :

ps $(pgrep Xorg)

Ce qui, dans mon cas, parce que je n'utilise aucun gestionnaire d'affichage comme gdm ou slim, produira :

 PID  TTY      STAT   TIME COMMAND
 1693 tty1     Sl     0:05 /usr/lib/xorg/Xorg

29voto

lithium_js Points 409

Utilisez la commande tty.

Si je ne me trompe pas, voici la référence :

/dev/tty1 - tty1
/dev/tty2 - tty2
/dev/tty3 - tty3
/dev/tty4 - tty4
/dev/tty5 - tty5
/dev/tty6 - tty6

10voto

Kraken Points 2659

Revenons en arrière et commençons par la confusion : qu'est-ce qu'un tty ? À l'origine, tty était une abréviation de teletype qui est devenu glass teletype qui est devenu n'importe quel terminal ou la connexion à celui-ci, spécifiquement un port série (Ils sont encore autour, les plus courants étant /dev/ttyS0, /dev/ttyUSB0 et parfois /dev/ttyacm0). Ensuite, vous avez eu des pseudo ttys et des ttys virtuels. Les vieux habitués d'Unix sont familiers avec les pseudo ttys, ils 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 nommage au fil du temps, mais l'actuel utilise des noms comme /dev/pts/0. Les ttys virtuels, en revanche, sont associés aux consoles virtuelles, spécifiquement lorsque vous utilisez les touches de contrôle alt fonction vous basculez entre les consoles virtuelles, chacune étant associée à un tty virtuel. Le tty virtuel le plus célèbre est /dev/tty7 qui est souvent utilisé pour les sessions graphiques (parce que les six premiers sont généralement des connexions textuelles) il n'y a rien de spécial à propos de tty7 car vous pouvez exécuter des serveurs X sur n'importe quelle console virtuelle (bien que lancer un sur /dev/tty1 soit vraiment difficile car le noyau l'ouvre pour l'enregistrement du démarrage, mais je l'ai fait) et vous pouvez effectuer des connexions textuelles sur n'importe quel tty virtuel y compris tty7 (bien que la configuration initiale soit nécessaire et l'allocation dynamique de systemd rend les choses intéressantes et basculer vers tty13 et plus peut nécessiter un changement de la carte clavier).

Donc, si vous devez trouver votre pseudo tty (ou tty virtuel lors de l'utilisation du 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 découvrir étant donné que le pseudo tty est ouvert sur le standard io dans la plupart des cas et il existe d'autres méthodes qui fonctionnent même lorsque io est redirigé. Cela a aussi l'avantage de faire également ce qu'il faut lors de l'utilisation des ports série et des ttys virtuels tant que vous n'utilisez pas d'émulateurs de terminal graphique ou de multiplexeurs de terminal.

Mais que faire si vous voulez identifier la console virtuelle ? sudo fgconsole peut être utile pour les cas interactifs. Ou ce que je fais, c'est simplement passer d'une console à l'autre car le basculement est généralement assez rapide. Je ne connais pas de méthode programmatique qui fonctionne de manière fiable dans les cas non interactifs ou non en premier plan.

Penchons-nous sur un exemple qui est garanti de ne jamais être en mesure de répondre de manière fiable à la console virtuelle. L'ordinateur devant lequel je suis assis (alpha) a un serveur X qui fonctionne sur tty2(:1), j'ai trois fenêtres ouvertes, deux xterms et un vncviewer (connecté à bravo:2). Un xterm exécute screen, l'autre exécute ssh charley. Screen a deux fenêtres ouvertes, ssh delta et who (who identifie correctement le pseudo tty dans la colonne deux et fournit l'indice (:1:S0) dans la colonne cinq qui nous indique que le pseudo tty est connecté à la première session screen qui est connectée au deuxième serveur X, mais ne donne aucune information sur la console virtuelle). L'exécution de who sur l'une ou l'autre session ssh donne l'indice (alpha) qui identifie la machine à partir de laquelle la session ssh provient ce qui est relativement bon pour les sessions à distance. Bien qu'il y ait peu d'informations sur ce qui est connecté au pseudo tty (et absolument aucune information sur la console virtuelle ou même sur le tty distant n'est disponible) au moins l'hôte distant est identifié. les informations sur screen peuvent être incorrectes car les sessions screen sont détachables, et vnc ne fournit aucune information utile du tout car la seule différence entre une session vnc et une session locale est le numéro d'affichage. Dans de nombreux cas, on peut 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 (qui confond who car il pense que c'est la console locale) et aucun des ordinateurs n'utilise tty7 comme session graphique, car je (non pas juste pour être contraire) décharge les journaux sur tty7 (et tty5, tty6, et tty8 également) reléguant les sessions graphiques ailleurs. Mais attendez screen peut aussi agir comme un programme de terminal vous permettant d'établir une session via un câble série. Que rapporte une telle session lors de l'exécution de who ? Rien d'autre que le port série que ce soit via vnc, xterm, ssh, screen et un adaptateur série usb tous à la fois ou qu'il soit connecté à mon televideo.

7voto

karel Points 97032

Lorsque vous vous êtes connecté à une tty, elle affiche automatiquement sur la première ligne la tty que vous utilisez.


Si en appuyant sur la combinaison de touches Ctrl+Alt+F3 ne montre qu'un écran noir, comme vous l'avez écrit dans un commentaire, il existe une autre façon d'accéder à un shell root lors du démarrage de l'ordinateur sans appuyer sur Ctrl+Alt+F3 pour afficher une tty.

  1. Immédiatement après l'apparition de l'écran de démarrage du logo du fabricant de la carte mère / de l'ordinateur lors du démarrage de l'ordinateur, avec le BIOS, appuyez rapidement et maintenez enfoncée la touche Shift, ce qui affichera le menu GNU GRUB. (Si vous voyez le logo Ubuntu, vous avez raté le moment où vous pouvez accéder au menu GRUB.) Avec l'UEFI, appuyez (peut-être plusieurs fois) sur la touche Esc pour accéder au menu GRUB. Parfois, l'écran de démarrage du fabricant fait partie du chargeur de démarrage de Windows, donc lorsque vous allumez la machine, elle passe directement à l'écran GRUB, et appuyer sur la touche Shift est inutile.

  2. Depuis le premier écran GNU GRUB violet, sélectionnez Options avancées pour Ubuntu avec les touches et et appuyez sur Enter. Vous serez alors invité par un autre menu GNU GRUB violet qui comporte une liste d'options de noyau.

    Menu GNU GRUB

  3. Appuyez sur la touche fléchée vers le bas jusqu'à ce que vous sélectionniez la deuxième entrée en partant du haut (celle avec le mode de récupération dans la description) et appuyez ensuite sur Enter.

    Vous devriez maintenant voir ce menu de récupération :

    menu de récupération

  4. Utilisez les touches fléchées pour descendre jusqu'à root, puis appuyez sur Enter.

    Vous devriez maintenant voir un invite root, quelque chose comme ceci :

     root@ubuntu:~#
  5. À ce stade, vous devriez avoir un système de fichiers en lecture seule. Vous devez le remonter avec les autorisations d'écriture :

     mount -o rw,remount /  

    Maintenant, vous pouvez exécuter des commandes comme dans un terminal.

5voto

marian adam Points 51

Je suppose que vous cherchez autre chose que les autres réponses fournies. Exécutez sudo fgconsole pour découvrir quel vrai tty est actuellement actif.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X