Charly’s Column – colorls
Color Cast
The first time in our lives we got to a black-and-white Linux or Unix shell, most of us probably typed ls first. In a mixture of nostalgia and the knowledge that life is colorful, columnist Charly Kühnast plays a colorful trump card with colorls.
colorls
[1] is written in Ruby. If you don't have this language on your system yet, install it quickly:
sudo apt install ruby ruby-dev ruby-colorize
Then you download a character set that you really like from Nerd Fonts [2] – say, Roboto Mono Nerd Font Regular. After unpacking the ZIP file, I moved the character set to the /usr/share/fonts/truetype/roboto/
directory on my Ubuntu desktop; users of other distributions may need to change this path.
Why do I even get this font when there are a few dozen others preinstalled? Because Nerd Font's character sets are more extensive, containing more symbols, special characters, glyphs, and emojis than usual (Figure 1). Now I select the new font in my terminal's preferences. This fulfills the preconditions, and I can proceed to install colorls
by typing:
sudo gem install colorls
![](/var/linux_magazin/storage/images/issues/2018/211/charly-s-column-colorls/figure-1/726494-1-eng-US/Figure-1_large.png)
The developers know that nobody types colorls
50 times a day. I recommend that you create an lc
alias in your ~/.bashrc
:
alias lc='colorls'
If you use a light terminal background, you should always specify --light
or, preferably, make it permanent by appending it to the .bashrc
alias. The output then resembles that in Figure 2 – note the cute icons and bright colors. Light-shy workers can choose a variant optimized for dark terminals by specifying --dark
.
![](/var/linux_magazin/storage/images/issues/2018/211/charly-s-column-colorls/figure-2/726497-1-eng-US/Figure-2_large.png)
No Blind Faith in Color
Speaking of the downside: colorls
is a new implementation of ls
, which does not implement all options identically and others not at all. My big favorites -l
and --sort=size
fortunately work. If you type -f
, colorls
only displays files; -d
only displays directories. If I want to see both, I have the choice between --sd
(directories first – note the two dashes!) and --sf
(files first).
If you would like a brightly colored ls
, but have problems with colorls
because of missing parameters, schedule a test run with exa
[4], which doesn't offer any fancy icons but does support almost all the ls
parameters and adds some on top. Especially with the defaults, exa
impresses – for example, the -h
parameter (human readable), which outputs file sizes in human-readable units instead of bytes, is implicit.
Infos
- colorls: https://github.com/athityakumar/colorls
- Download character sets: https://nerdfonts.com/#downloads
- Nerd Font Cheat Sheet: https://nerdfonts.com/#cheat-sheet
- exa: https://the.exa.website
Buy this article as PDF
(incl. VAT)