1

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 Answers 2

3

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.

3

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .