Don’t fear the terminal!

I often see the comment being made that “terminals are scary” and you look like a hacker. Thing is, this couldn’t be further from the truth, using the terminal in most cases is a time-saving and generally a simpler approach to computing. Whether it is simple things like updating the system, editing configuration files, connecting over SSH or more complex things like using vim to work on a project. Learning the terminal shouldn’t be feared and in this article I’m going to show you how you can improve your experience and start enjoying the terminal.

Customisation and more!

By default, the terminal can look ugly and overwhelming, luckily it doesn’t have to be that way. Most Linux distributions ship with something called a “BASH” (Bourne Again SHell) shell. The prompt you see might look something like this:

But we can turn it to this:

I used this website to create my prompt and then I simply pasted the output into my .bashrc (located in your home-directory.) If you wish to use my bash prompt, you can go to my dotfiles repository here and simply replace your .bashrc with my one. I have a bunch of other features enabled like a git status which may come in handy if you use git.

Depending on your desktop environment of choice, they generally come with gnome-terminal , konsole or xfce4-terminal . Of course there are plenty of other “lighter weight” terminals out there like st, urxvt and kitty but for the purpose of this article, I’m going to stick with GNOME terminal because that is much easier to customise and has all the features one needs.

With these terminal emulators, you can customise the font, cell padding, colours and much more. You can simply open the profile preferences in your terminal emulator of choice and start customising things.

I went with a “Material” design palette.

If you want to use something else like st or urxvt, I suggest you check out Luke Smith’s channel on YouTube where he configures and sets up these programs. I personally think one can get by with GUI terminal emulators and everything from scrolling to clipboard management works fine but if you want to streamline your system and rely on less dependencies, there are plenty of good alternatives.

Aliases

If there is one thing that makes using the terminal or command line way of doing things, its got to be aliases. What these are are basically shortcuts for long commands you don’t want to type up. For instance, if I’m working on a git repository and I don’t want to keep writing git push origin master all the time, I can create an alias and put that in my .bashrc file and bind it to a simple word like gpom.

Some of my bash aliases

Another more useful example is with youtube-dl. If I want to download an mp3, I have to insert a bunch of flags but I can create an alias like mp3 and then append my URL after it like a normal parameter.

These time-saving features will make your overall command line experience much more usable.

Have a bit of fun

Even if you don’t want to use terminals that often other than updating your system, you can still use fun commands like cowsay, cmatrix and lolcat.

Entering the matrix…

Shells

BASH is the most common shell as it comes preinstalled by default on practically all Linux distributions, even Apple’s MacOS used to use it but they switched ZSH. There are plenty of alternatives out there if you want more features like command completion and fancy prompts. The two most popular are ZSH and Fish shell. ZSH being the most compatible with BASH commands while Fish having a few quirks here and there (mainly for scripts) but apart from that, both have welcome features that one may find useful.

By default, both of these alternatives are quite bare-bones too but you can customise them using tools like oh-my-zsh or oh-my-fish.

Any suggestions?

Hopefully you found this article useful. If you have any cool tips, be sure to post them in the comments below. If you have any issues running my bashrc or something is unclear, do post a comment and I’ll do my best to help you out.

Leave a comment

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

Blue Captcha Image
Refresh

*