Sometimes I think I’m the only linux user who doesn’t care about their terminal emulator. I use whatever came installed. I assume it’s bash? I don’t know, but anything i want to do is supported by all of them.
The terminal emulator is the window displaying the text. That used to be a physical screen called a terminal. The program that decides what text to show is the shell.
A terminal emulator (such as xterm, tmux, or emacs) is responsible for displaying a pseudoterminal in a different context (such as an x server, another terminal, or an emacs buffer respectively). Terminals are divided into three types: virtual terminals (on boot or as presented by [C-]A-F<N>), ‘true’ terminals (exposed on serial ports), and pseudoterminals (controlled by other programs). Essentially, you have a virtual terminal running X running Xterm which controls a pseudoterminal with tmux attached controlling another pseudoterminal.
Login shells are a special flag set when launching shells, sometimes. They typically read different settings (e.g. Bash reads ~/.bash_profile instead of ~/.bashrc). Most shells will launch as a login shell if their command name (argv[0]) begins with a hyphen; Bash also allows explicit bash -l to run a login shell.
Sometimes I think I’m the only linux user who doesn’t care about their terminal emulator. I use whatever came installed. I assume it’s bash? I don’t know, but anything i want to do is supported by all of them.
Akchually, those are shells, not terminal emulators.
Which I guess confirms that you really don’t care. Whatever works for you, works for you :)
What’s the difference.
How does the virtual terminal factor in.
Why are some shells not login shells
What is a terminal these days and why does it mess up keypresses
The terminal emulator is the window displaying the text. That used to be a physical screen called a terminal. The program that decides what text to show is the shell.
A terminal emulator (such as xterm, tmux, or emacs) is responsible for displaying a pseudoterminal in a different context (such as an x server, another terminal, or an emacs buffer respectively). Terminals are divided into three types: virtual terminals (on boot or as presented by [C-]A-F<N>), ‘true’ terminals (exposed on serial ports), and pseudoterminals (controlled by other programs). Essentially, you have a virtual terminal running X running Xterm which controls a pseudoterminal with tmux attached controlling another pseudoterminal.
Login shells are a special flag set when launching shells, sometimes. They typically read different settings (e.g. Bash reads ~/.bash_profile instead of ~/.bashrc). Most shells will launch as a login shell if their command name (argv[0]) begins with a hyphen; Bash also allows explicit
bash -lto run a login shell.Yesh, I’m a not spending time configuring (and fixing) the shell.
If I want something hairy I’ll use Python (or even C/C++).
You might have more luck with a hamster, pythons are not hairy