Como mudar ttys virtuais no Linux e OpenBSD com comandos do console?

21

No Linux, pressionamos Alt- F1, Alt- F2etc para alterar ttys virtuais.

No OpenBSD, deve-se usar Ctrl- Alt- F1etc.

Existem comandos de console para esses dois sistemas operacionais que podem ser emitidos para atingir esse objetivo? O pressionamento de teclas às vezes interfere quando um sistema operacional está sendo executado como convidado dentro de outro usando alguma máquina virtual.

nerd
fonte

Respostas:

28

Sim, você pode usar o chvtcomando Isso precisa de privilégios sudo para ser executado.

CHVT(1)

NAME

chvt - change foreground virtual terminal

SYNOPSIS

chvt N

DESCRIPTION

The command chvt N makes /dev/ttyN the foreground terminal.
(The corresponding screen is created if it did not exist yet.
To get rid of unused VTs, use deallocvt )
The key combination (Ctrl-)LeftAlt-FN (with N in the range 1-12) usually has a similar effect.

Você pode encontrar o terminal virtual em que está atualmente através do fgconsolecomando Isso também requer privilégios sudo para ser executado.

Nagul
fonte
Obrigado, funciona para Linux, mas o OpenBSD não possui um comando chvt.
geek
Para o OpenBSD, tente este código: cs.cmu.edu/~joshuad/wsswitch.c . Ele usa a mesma ioctl(fd,VT_ACTIVATE,screen_no)chamada. Referido a partir de: cs.cmu.edu/~joshuad/libretto.html
nagul
Perfeito. Tentando fazer o controle remoto na minha máquina (X11VNC) e a GUI foi congelada. Acontece que foi porque eu o havia mudado para outro vt (cli) e, aparentemente, o X11 (vnc?) Congela, a menos que o VT atual seja o VT de X.
EkriirkE