# The Terminal Life

last updated: 2021-12-28

"Terminal" as in the box you can open on Linux and type funny commands in and, usually, they do the thing, not "terminal" like "a voice in my head tells me I'll probably die shortly after graduating college". There's a terminal on Windows too, but it's only useful for running `ping`. If anyone tells you to run any iteration of `sudo rm -rf /*`, don't.

- nmtui: Wi-Fi manager for those of us who haven't been forcibly upgraded to Connman. Arrow keys navigate. Connecting to a new network is as simple as going to "Activate a connection", pressing enter on the network wanted, and then typing in the password... provided that your network is a simple WPA/WPA2 one like a residential home router, and isn't doing some fucky credentials/certificate thing like a corporate network.
- pandoc: (almost) universal document converter. I write my posts in Markdown and then use Pandoc to convert them to HTML... albeit a huge chunk of HTML with no line breaks between the paragraphs. It will insist on using non-ASCII characters in otherwise-ASCII file formats unless you beat it over the head with the command-line flags `--ascii --wrap=none`, but even then it'll just use the character code instead.
- smu: another document converter, but it only goes from a subset of Markdown to HTML. It compiles in under a second on my computer and doesn't require a kajillion Haskell dependencies like `pandoc` does.
- elinks: a browser for the terminal... not to be confused with `links` or `lynx`. I used to use `lynx` because of the Gopher support that `elinks` lacks, but I've never been able to successfully compile `lynx` with TLS support. `elinks`, on the other hand, compiles in a snap with no problems. It also has slightly better text formatting and keyboard shortcuts. (The H key pops up the browsing history, for example, and G asks you which URL you want to go to next.) My only complaint is that it won't let me select text to copy to the clipboard with my mouse without an arcane keyboard combination I've already forgotten.
- cvlc: VLC, but in the terminal! I wrote a tutorial about using it a while ago. You almost certainly want to use the ncurses frontend.
- byobu: terminal multiplexer, which is a fancy way of saying "please let me run more than one program at a time in a TTY". Basically `tmux` but better, although it can use GNU `screen` as a backend too. Comes with a fancy little status bar at the bottom of the screen that displays info about your system, such as system load, disk usage, and battery status (which is a godsend when using a TTY on a laptop). The info it displays can be changed by pressing F1 or running `byobu-config`.
- tree: recursively lists all the files in a given folder... and every folder in there... and every folder in those folders... hence the recursive. If you've lost a file but know part of its name, you can run `tree -f | grep "SearchTerm"` to find it. (If you're searching by content, just use `grep -nr "SearchTerm"` instead.)
- weechat: IRC client, although plugins exist to allow it to handle XMPP and Matrix as well. Supposedly relay settings exist so that one can run it on a server or always-on computer and connect to the Weechat session on a phone or some other device with intermittent connectivity, but I only know this because someone keeps trying to hijack my session and I get at least one cannot accept client because relay password is empty, and option relay.network.allow_empty_password is off error message a day.
- htop: the Linux equivalent of the Windows Task Manager, except this is Linux so everything is automatically better than Microshaft Wangblows. (Migrosert Wendys?) Recent versions have mouse support if you're running an X11 session instead of a TTY and are using a decent terminal. I recommend sorting by `MEM` instead of `CPU`.