I install these Linux terminal programs on every system


When using Linux, I practically live in the terminal. As with any living space, when I move into a new place I like to add my own touch. Here are the apps I installed on the new system to make it feel like home.

Vim

Editing a text file in Vim on a Linux terminal.

If you’re using a Linux terminal, you’ll need an editor. It happens to be my favorite Vim. It was the first Unix editor I learned (although it didn’t start out that way). It was actually in macOS, back when it was called “Mac OS X”. Currently, Debian and Ubuntu are my weapons of choice, either by themselves or as part of the Windows Subsystem for Linux.

I then switched to Emacs for a long time, but eventually returned to Vim. The main reason was that I was physically uncomfortable using Emacs key bindings on the new laptop I bought. Today, laptop keyboards favor the common “Chiclet” style. Vim’s commands, which are mostly inherited from Vi, felt more comfortable to me because they are based on the home row.

Many people complain about Vim’s modality, or the way control is split between “command” and “insert” modes. For this reason Not being able to exit Vi or Vim has become such a meme.

I also prefer the simplicity of Vim over Emacs. It’s fun though a Tetris the gameterminal emulator and therapist on call in my editor, I just prefer my trxt editor to be a text editor. I like to dip in and out and Vim is more my style.

the most

Viewing the man page "man" command in Most in the Linux terminal.

Besides the editor, I also have my favorite tool: the pager. No, not one of those old devices from the 90s, but a program that allows you to view text files. most are my pager of choice. For the greatest use read the pages.

The main reason I use it the most is because I just think it looks good.

I like how it highlights the headings, which makes it easier for me to navigate through the pages. Manpages are walls of text, so anything that can help me get through them is helpful. Highlighting makes them easier to spot, but the forward and backward commands are the main way I search through documents.

O my Zsh

Oh My Zsh with zsh ls -l List the .oh-my-zsh directory in the main directory.

zsh has become my shell of choice because it offers so many features. This is one of the first things I install on a brand new Linux system. The O my Zsh the project makes it even better.

A terminal with Oh-My-ZSH and a Linux mascot with the Apple logo in front.

Fill your command prompt with Zsh and Oh My Zsh

Teach your boring old Linux or MacOS command prompt new tricks.

All I have to do is install zsh and then paste in the Oh My Zsh install script. You’ll need to install git and curl or wget to run the script, but these are easily installed via the package manager.

I can then edit the resulting .zshrc file to further customize zsh. I am using the “lukerandall” theme. You’re better off using the preset themes because the shell theme itself is complicated and you might step on Oh My Zsh’s toes if you try to change something managed by Oh My Zsh. I just love the look of this theme. It’s on the project’s wiki a page full of themes to choose from.

I still usually have to make a few tweaks to the .zshrc file on a new system. I will set using the editor and pager environment variables the previously mentioned Vim and Mosha;

export EDITOR='vim
export PAGER='most'
Editing .zshrc in Vim.

The modified .zshrc supplied by Oh My Zsh has some options where you can uncomment and modify it. You uncomment a string by removing the “#” character. I like the autocorrect option. If you make a lot of typos while using the shell, like I did, this can save you from having to re-execute the command.

Me too usually set some nicknamessuch as setting up some shortcuts to your favorite SSH servers, as well as running other commands. One of the last is wealth, which I will mention later.

Mosh

SSH into a Linux terminal session on the remote machine.

Mosh is a tool for connecting to remote SSH servers rather than a tool for use on local terminals. That’s what I like Mosh will stay connected to dead Wi-Fi connections. If the connection is lost, it will still display characters in the terminal. When the connection comes back, I can continue as if nothing happened.

Another thing I appreciate is how the Ctrl+C command works. If you’ve tried this over a regular SSH connection, you’ve probably experienced a delay between issuing the command and stopping the program. If you start the command and realize you don’t want it, that’s a bad thing and you risk data loss. Mosh makes using SSH more secure.

Mamba, NumPy and Friends

Generating and averaging an array of random numbers with NumPy in an iPython session on a Linux terminal.

I have been interested in data analysis for some time. I was inspired by the availability of libraries for statistics to brush up on a topic confined to an introductory community college class I graduated from over 20 years ago.

I picked up some Schaum’s Outline books, and since I already had some experience with Python, it seemed like a good place to start.

Many Linux systems already include Python in their default installation, but this is more intended to support applications that depend on it. On major distributors they are usually older versions. It is possible to install newer versions by compiling from source, but then I would replace the system version. Again, many utilities depend on it, so I don’t want to mess things up if the application depends on a specific version of Python.

Mamba is an indispensable tool. Mamba is a package manager that allows me to install isolated environments. This is a version of the conda package manager, already popular in the data science community, reimplemented in C++. This allows me to install a newer version of Python on top of an older version without changing the underlying system. I can also install other libraries like NumPy and SciPyoffers many statistical calculations. This setup completely replaces my old graphing calculator from college.

TI-84+ Graphing Calculator

How I use Python as a Free Graphing Calculator

Who needs an overpriced and shoddy graphing calculator?

I have an environment called “statistics” that contains all of this. I also added Seaborn, a library that allows me to do statistical visualizations like histograms, scatterplots, and regressions.

luck

Fortune output in Linux terminal.

Fortune is a program that prints random messages from a text file in the form of funny quotes or sayings. It’s based on the messages you’d find on “fortune cookies” at a Chinese restaurant. This is one of the classics BSD is “not a complete game.”

1989 book, Life with UnixDon Libes and Sandy Ressler describe divination messages as “something you might find in a fortune cookie at a restaurant owned by George Carlin.” You won’t usually find the “seven dirty words”, or at least by default, but you can get a kind of irreverent sense of humor favored by many Unix and Linux geeks.

On Debian and Ubuntu, you can install fortune by installing the “fortune-mod” package:


sudo apt install fortune-mod

This is one I like to have in .zshrc because it’s fun. You can also install other data files to expand the range of possible messages.

cal/ncal

This was one I didn’t plan to include on this list, but apparently cal has disappeared from standard Linux installations. More people are using desktop environments with built-in calendars in panels. I guess the distro developers don’t see the need for a text-based calendar app.

I found this in an unrelated case. On Debian and Ubuntu it’s easy to install and you get ncal which can highlight the current day.

sudo apt install ncal

The Cal program is great because it can show the days of the week that the date will fall in the past or the future. With the command “Cal 3 1973” I can see what days were in March 1973. This is a handy reference. Pink Floyd’s Dark side of the moon he was released on the first of that month.

Cal team output showing the calendar for March 1973.

ncal will highlight the current date when you run it. The tutorial page has the best error message: “Assigning Julian-Gregorian transition dates to country codes is historically naive for many countries.”

ncal for June 2025, June 16 is highlighted in the Linux terminal.


Programs like these will be the ones I run my package manager on every Linux installation. I suspect they will follow me from system to system for the rest of my life.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *