0

I'm trying to understand terminal, console, tty, virtual terminal, terminal emulator and this kind of things. Below is the topology of my environment. There is a Linux server and a Windows 10 PC. I use putty on the PC and connect to the Linux server. In this case, it seems ctrl + alt + f1~6 can't bring me to other virtual terminals. I know if the Linux server has GUI installed, I can press ctrl + alt + f1~6 when I'm directly connected to the server (for example, I have a keyboard and monitor plugged in it). My question is:

  • Can I use multiple virtual terminals in my topology?
  • If the Linux server has GUI installed (like Gnome), can I use multiple virtual terminals in the same topology (connect through SSH)?
  • In this topology, is putty a terminal? A console? Or a terminal emulator?

I've actually read several articles and related sections in different books. It seems different people introduce these concepts a little bit different and I'm still confused. IMO, this is the hardest part of my Linux learning journey.

+---------------------+
|                     |
|                     |
|     Linux Server    |
| (No GUI installed)  |
|                     |
+-----------+---------+
            ^
            |
            | SSH
            |
 +----------+--------+
 |          |        |
 |      +---+---+    |
 |      | Putty |    |
 |      +-------+    |
 |                   |
 |    Windows 10 PC  |
 |                   |
 +-------------------+
2

Every computer running linux (server noGui, laptops with Gui... etc) does have tty (if you plug a keyboard and use ctrl+alt+fX you will see).

When you uses putty for ssh you use a ssh client (like openssh-client on linux and other unix-like systems).

When you connect to a server using ssh, you are connecting remotely and the ssh server provides to your client a command line interface.

Viewed by the server when you are connected, by ssh you are not on a tty /dev/ttyX but pty /dev/pts/X

Then if you want to switch to another command line interface on a server, you just have to start a new ssh connection or if you have screen or tmux installed on the server, you can split the current command line interface in two terminal.

1

You can use the tty-command to see which terminal you are currently. If you'll give it a try, you'll see that all terminal emulators and ssh-accesses lead to e.g. /dev/pts/X while when "directly" accessing the machine (i.e. monitor+keyboard plugged in) you will get /dev/ttyX. (Side note: instead of using CRTL+ALT+FX, chvt X will work in the latter case, too)

pts means pseudo-terminal and I do not know of any way to change it from the terminal itself - however it shows us that your ssh-session (i.e. putty) is in fact behaving the same way as a terminal emulator. (a bit more on this topic to be found here)

Your options are thus:

  • multiple putty-sessions that you can thus switch with ALT+TAB from Windows
  • a terminal multiplexer like screen or tmux that can start multiple pseudo-terminals ans switch between them (and even split your screen to have two or more terminals in one view)

In the GUI-case you are limited in the same way as with the CLI-case.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.