The non-GUI interface is called a virtual console (VC) or virtual terminal (VT) and it runs on a virtual device called a TTY; see:
https://unix.stackexchange.com/questions/4126/what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-con
There are actually 6 of them instantiated at boot and you can cycle through them with Alt-Ctrl-F[1-6] (this works from the GUI desktop too, which occupies one of the VCs when running). There are historical and wide ranging hardware/software compatibility reasons for this interface stack, and it is not unique to linux (although the specific implementation is referred to as "the linux console").
A GUI CLI interface is called a terminal emulator1 and there are a variety of them, I believe the default on Rpi OS is the LXTerminal, part of the LXDE environment the RpiOS GUI is derived from. You will often see these referred to as "virtual terminals" by people who don't know/understand/care about the difference.
how can I make the boot CLI look the same as the GUI one (same colours/font etc)
You probably can't exactly, although you may be able to come close. Although in theory the non-GUI console supports 24-bit color (as the GUI consoles do), there isn't a lot of application for it (and some of the libraries in Raspbian are compiled for only 8 or 256 color). The fonts are also more limited; you can set that via setupcon
(see man setupcon
), although this may (or may not, I don't know) get overriden by systemd
at boot; that font is set in /etc/vconsole.conf
where you can set FONT
to the basename of a file from /usr/share/consolefonts
(eg. for Uni1-VGA32x16.psf.gz
use Uni1-VGA32x16
). You may find some fonts to install with apt search font | grep -iB 1 console
although I think most of them are there already.
- Might be more accurate to say a terminal emulator provides a text console interface in accord with some specific standards, and the shell provides the CLI proper. Really this is true of the virtual consoles too.