Re: Terminal Programs I Like

Inspired by [Kelbot's list], [Www-gem's list] and [Agk's article].

My daily routines include working in many different environments. So I'm working on a Windows platform at work, an Android platform on work mobile, an Apple platform on all home mobiles and one home computer, a GNU/Linux platform on my home laptop.

For the last two years, I'm also using the command line and text-only user interface (aka. TUI) in my free time, when I'm browsing the small-net. Each platform is built on different goals and purposes. But the most attention now I'm paying to the TUI environment, which I'm building from the scratch, solving new and new needs, and exploring the new functionalities. I'm GNU/Linux user for about two decades, but working only in text mode is a new challenge. It isn't a sort of ascetic experience, but it requires a change of point of view. Which then leads to surprising conclusions and convenient processes.

While I'm getting into the TUI, I'm thinking about how to bring people closer to that idea. It seems to be the basis of computer use, what is forgotten. Probably it isn't too many places, where people could be teach taught. For me, the most inspiring things were the list of using software, so I made the list as below.

ssh, ssh-keygen, sshfs, sftp

It's obvious but maybe would be helpful for some newcomers. Rather than setting up your own computer, you can obtain a free shell account (for eg.,, and connect to it via SSH. You should use the public key authenticate method, instead of ordinary password. You could also use remote directories via sshfs, or publish to them by sftp.

git, gitui

After a while, it is a good idea to backup your text files to the remote repository. Git could do that, and at the same time, it's solving things with files version control or automation (hooks could for example publish after commit, etc.).

I'm using gitui for TUI for git.

mutt, gpg

The first thing to work in TUI is to set up an e-mail client for an e-mail account, which probably exists on the system from the beginning. I'm using mutt for it.

You should use Pretty Good Privacy via gpg and communicate with public and private keys to sign or encrypt your messages.


To create messages in mutt you will need a text editor. I am using vim as the default one, so I set in $EDITOR environment variable. Vim could extend its functionalities with options in a configuration file or by plugins. For mutt it's a good idea to set `set textwidth=72` for wrapping text after the 72nd character in a line.

Every editor could also use system spelling, by setting for eg. `set spell spelllang=en`.


As a text editor, I'm using also emacs. You could use it, but emacs is far more than only a text editor, what you can explore later.


The next built-in command is finger. It's a forgotten technology from the past century, which could provide information for users on every machine on the net. Because you could also publish content of a .plan and .project file people are saying that it's the first social network in the world.

You could check my last status via finger


The easiest way to publish on the Internet is to publish a text file. If you have a possibility to use a Gemini server you could put a diary into the so-called Tinylog format. I'm using a gtl aggregator to read many tinylogs in one place.


To surf the text-Internet you will need a browser for several protocols like Gopher, Gemini, and WWW. To unify that world, I've set up a Bash [script] in the $BROWSER environment variable.


Geminispace browser.


Gophersphere and Geminispace browser mode for emacs.


WWW text browser with the ability to render images.


For browsing Fediverse, I'm using toot with tui option.


For real-time communication, I'm using XMPP/Jabber client mcabber.


The next forgotten and ancient technology, which I try to use is Usenet. For it I'm using slrn client.

Bash scripting, less

I've written several [scripts] to process output from the above commands for my convenience. It is easy to write into a temporary file and look at it via less command (where you can scroll up and down, or search for text).


It is convenient to know the basics of sed command to process a line of text.


It is convenient to know the basics of awk command to process tabular text data.


You could use it to read Gemini page from the command line or script.


The last word must be about managing many windows. In TUI environment we have tmux, which is the same thing as any graphical windows manager (especially tilled one), but made in text. So I write the next obvious thing, that you can have many windows, split main view into several windows, have many views, switch between views and windows, select text and do copy&paste... without mouse and drawing fancy icons or decorations.

[Kelbot's list]

[Www-gem's list]

[Agk's article]



@ Sun 26 Jun 2022 01:18:33 PM CEST

tags: #cli, #howto, #tmux, #life