![ls color folder icons zsh ls color folder icons zsh](https://www.ghacks.net/wp-content/uploads/2020/08/custom-folder-icon-windows.png)
Since this guide is terminal agnostic, I want to have the same features regardless of the emulator, so it can be used anywhere. Note: Terminal emulators like iTerm2 already come with some features like split panes, history search, clipboard copy/paste, etc. Think of it as having tiles inside the same terminal instance that we can easily jump back and forth between them, instead of having several terminal windows scattered all over the screen that we need to manually click and select each of them to see what’s the correct one. The real power of the terminal comes with this very handy tool that lets us divide the current terminal window into different panes and sessions. If we open a new shell, we can see the new aliases working as expected: I also added some useful aliases that I use frequently. # ls and ll are functions aliased to use exa by the ls plugin alias llt = 'll -tree' alias llti = 'll -tree -git-ignore' alias lla = 'll -a' # Disabling conflicting oh-my-zsh aliases unalias ls 2>/dev/null Remember the zpm-zsh/ls plugin we installed earlier? Well, it will create “ls” functions using the exa command if available.Įxa is already available in the official repositories of most Linux distributions so we can just install it with the corresponding package manager: It is basically an improved “ls” command for listing files that offers additional features like git status, human readable file size, icons and colors. While the DOWN key will let you navigate to the next in the history.Īnother useful tool I want to talk about briefly is exa. So, the way this actually works is that you enter some text on the command line, then if you hit the UP key, it will search the previous command used that contains the typed string. What we are doing here is just defining the UP and DOWN arrow keys to be used for the fuzzy search. In Debian-based distributions for example, you can install it like this: To install it, you just need to install the correct package of your OS package manager. Note: For MacOS users, ZSH comes built-in by default. It is built on top of the Bash shell but with added support for plugins and themes. While this is fine for remote servers or docker containers which don't need much user interaction or customization, developers can benefit from the added features and extensibility of ZSH. Most Linux distributions come with the Bash shell by default. On MacOS I prefer iTerm2 just because I’m used to it, but the default terminal will work just fine. I usually use the one that comes by default with the system. I don’t use any specific terminal emulator, so I think whichever you prefer is fine. So, to start the customization process we need a few things first: Terminal Emulators The second one will be about optimization where I’ll touch on more advanced stuff like custom shell functions and configurations to remove the extra bloat of features and only use the things we need. I’ll go through the most useful stuff with as little configuration as possible to get you started very quickly with sane defaults. This is the first part, which is about the essentials. I have decided to make a 2 part tutorial to keep things as simple as possible and avoid cramming everything into a huge wall of text. For this, I’ve created this guide that can help you turn a boring black and white terminal into a powerful, easy-to-use tool that also looks pleasant to the eyes. It’s part of our daily lives, even if we want it or not.Over the years, I’ve seen new people using the default bash shell that comes with the OS and now I think to myself how much they are missing out on some “quality of life” features.
![ls color folder icons zsh ls color folder icons zsh](https://i.stack.imgur.com/huFC2.png)
But the only thing that hasn't changed is the terminal shell. In order to tweak any color, read Custom configurations.Throughout my career as a software developer, I’ve used a lot of IDEs, tools and operating systems. By default, the dark color scheme is chosen. With color options : -light or -dark can be passed as a flag, to choose the appropriate color scheme. With -t : Sort by modification time, newest first (NEED TO ADD IMAGE) With -sf (or) -sort-files : Shows files first, followed by directories With -sd (or) -sort-dirs or -group-directories-first : Shows directories first, followed by files With -gs (or) -git-status : Shows git status for each entry With -tree (or) -tree= : Shows tree view of the directory with the specified depth (default 3) With -report : Shows brief report about number of files and folders shown With -l (or) -long : Shows in long listing format With -help : Prints a very helpful help menu With -d (or) -dirs : Shows only directories With -A (or) -almost-all : Does not ignore entries starting with '.', except. With -a (or) -all : Does not ignore entries starting with '.'