27 January 2022

The truth about the zsh

 I heard wonderful things about the zsh and the wannabe geek in me couldn't help installing it in some of my computers (including the raspi) and it might be yet too soon since I have only been able to play with it for a week or so, but I think I am ready to tell you the truth about the zsh (heed that I mean "my truth"). And bear in mind that we, wannabe-geeks, are so enthusiast that we say "play" instead of some other more appropriate, descriptive word. In the end it is all the same: Learning and having some fun.


Well, when you fire up zsh for the first time it offers you a menu. You can choose among several options, it offers to create a blank .zshrc or a default basic .zshrc according to the configuration chosen by your admin (read your distro) or configure a brand new .zshrc following some other items on the menu. Man, ain't that super cool?


I tried all the options, and my conclusion is, if you only have a basic configuration you can only do basic things, you need to add your own aliases, your own functions and this way it (apart from some enhancements on its own) behaves very similar to other shells, say bash or ksh.

When I say "basic" I mean I even had to add things like:

alias ls='ls --color'

alias grep='grep --color'

and so on and  so forth. I even had to add alias la='ls -alh' Man, that sucks. I thought zsh  was so clever and so cool...

But what happens when you add something like oh-my-zsh ? Man, that's a completely different world!!! That is where the true power of the shell comes to the fore. oh-my-zsh and probably other similar frameworks add dozens of super elegant themes and plugins (for git, for managing history...) many of he plugins add hundreds of aliases to your configuration. 

And apart from the fact that the default theme sucks big time (which really makes you want to dive in the pool of themes looking for a better one) now I can say that zsh is really and truly awesome. Much in the same way other shells can do great things if you add them great stuff.

Themes are basically customized prompts, some of them add nice info like the timestamp of commads or simply a local clock. I like the traditional user@host (+ directory) ~$ model:

For example: chals@jean:~/bin »

Here is where one of the plugins, git, is rad. When you enter a git repo it adds the branch you are in in the prompt. 

For example:     

chals@jean:~/git » cd soma/

chals@jean:~/git/soma(master○) »

Conclusion: I am enjoying zsh a lot and I really like it. I will continue playing with it to see how many good things I learn in the long run. In my raspi it is now the default shell and by the way, I need to customize the web-search plugin for my raspi.