||A terminal was that what seemed like 30 kg piece of solid cast iron frame wrapped in cream-colour plastic case with a glass display and keyboard in front of you
||A shell was a program running on the main computer interpreting your commands.
||text input/output environment
|terminal emulator, pseudo-tty
||command line interpreter
||“pseudo terminal slave”: login device when connecting through the network or a console (e.g. ssh).
||“teletype”: serial or console connections (text mode)
Must Read Tutorial
The TTY demystified
What Is Tty/pty/pts
Change Content on Terminal
Overwrite last line on terminal
How to change the contents of a line on the terminal as opposed to writing a new one?
How do I keep terminal line from overwriting itself?
“The curses library (ncurses) provides a terminal-independent method of controlling character screens.”
github.com/urwid/urwid, Console user interface library for Python
Terminal codes (ANSI/VT100) introduction
What is a Terminal/Console/Shell (StackOverFlow / StackExchange)
What is the difference between **pts** and **tty** and **:0**?
Terminal vs bash? [duplicate]
What are pseudo terminals (pty/tty)?
What do pty and tty mean?
How to get the tty in which bash is running?
What is the exact difference between a ‘terminal’, a ‘shell’, a ‘tty’ and a ‘console’?
curses (programming library)
Text-based user interface
terminfo, terminal capability data base
getty, set terminal mode
agetty, alternative Linux getty