TL;DR
This article lists six great tools for developers to install on their Linux machines. ๐
Feel free to explore these tools, and star these repositories. Opensource projects need your help! ๐๐ป
Are you ready to become a 10X Linux user? ๐ง Just kidding, you will not be, ๐ but these tools can definitely speed up your daily workloads. ๐๐ปโโ๏ธ๐จ
1. Ngrok
๐ก Securely expose local servers online.
Ngrok helps create a public URL ๐ for your local web server so you can share your work-in-progress with teammates, clients, or the world. ๐
Just by running a simple command, Ngrok spins up a secure tunnel from a public endpoint to your computer. This lets you test websites, apps, and APIs on your localhost
without having to deploy anything.
Ngrok supports HTTP and TCP traffic so you can tunnel almost anything ๐คฏ - web servers, or even databases indirectly. It also offers useful features like custom subdomains and replaying/inspecting traffic.
Ngrok helps in these major areas:
- Temporarily share a website that is only running on your development machine ๐ฅ๏ธ.
- Develop any services that consume webhooks ๐ช.
- Debug ๐งโ๐ป a web service by inspecting web traffic.
โจ I don't use this tool very often, but I remember I used this tool for the very first time a few years back to show my friend the website I had created locally.
2. fzf
๐ก A command-line fuzzy finder.
Fzf is a useful tool for anyone who spends a lot of time working in the terminal ๐ฅ๏ธ. It acts as a fuzzy finder, allowing you to quickly search ๐ and filter through data lists like files, command history, git commits, and more.
Here's how it works. When you run an fzf
command, it instantly filters the list below as you type to show only matching results.
Here's a possible use case. ๐ฏ
ls -la | fzf
This interactive approach makes it fast and easy to find what you're looking for, even on long lists. Fuzzy matching means it will find partial matches, so you don't have to type the full name. ๐คฏ
3. Z
๐ก Jump around directories without knowing the entire path.
Have you ever been working on a project with a deeply nested folder structure and had to constantly type out long directory ๐ paths using the cd command? Z solves that problem. ๐
Once you install and start using Z, it tracks the directories you access most often. Then, instead of typing the full path, you can enter a short name to instantly jump ๐ฆ to that folder.
Z uses two factors to determine which directories to track for you: how frequently you access a folder and how recently you accessed it.
So the folders you use the most will get the shortest names.
4. Ranger
๐ก A VIM-inspired file manager for the console.
Ranger is a vim-inspired file manager ๐ฎ๐ป with a console interface. It provides an easy-to-use and efficient way to navigate and view the file system.
Some major features of Ranger are:
- Multi-column โจ display
- Preview ๐ of the selected file/directory
- Common file operations (
create/chmod/copy/delete
/...)
- Renaming multiple files at once
- VIM-like console and hotkeys โจ๏ธ
5. Ncdu
๐ก Review files and the disk space being used on Linux systems.
Ncdu is a useful command line tool that helps you manage your disk space efficiently.
It shows you a visual representation of how space is used on your disk drives, making it easy to identify large files and folders that are taking up the most space.
When you run Ncdu, it scans ๐ your file system and displays an interactive list in your terminal, showing you each folder on your disk drives and how much space they are using. You can navigate this list to drill down and see the space usage of subfolders ๐.
Its simple interface makes it easy to use yet powerful for analyzing your disk usage and optimizing your storage.
If you struggle with your disk space ๐พ filling up, Ncdu can be a handy tool to identify the culprits and take action. ๐ฎ๐ป
6. Exa - Good to have
๐ก Colorful replacement of
ls
command.
๐จ Exa is now unmaintained, use eza. It is a fork of exa with a couple of features added. But I am still using Exa and it works pretty fine. They are pretty much the same.
Exa is a modern replacement for the old ls
command that you use in the terminal to list files and folders. It gives you a more colorful ๐จ, detailed, and easy-to-read listing of the files in your current directory.
When you run exa instead of ls
, you'll see a few nice improvements. First, it color codes the file types using different colors and icons (enable or disable) ๐ฌ making it easier to visually distinguish files at a glance.
It also shows you extra information like file permissions, owners, sizes, and more.
If you think of any other handy tools that I haven't covered in this article, please share them in the comments section below. ๐๐ป
So, that is it for this article. Thank you so much for reading! ๐๐ซก
Top comments (60)
McFly McFly replaces your default ctrl-r shell history search with an intelligent search engine that takes into account your working directory and the context of recently executed commands. McFly's suggestions are prioritized in real time with a small neural network.
Oh My ZSH! Unleash your terminal like never before.
Can you provide few use cases where Oh My ZSH unleashes the terminal like never before? :) I installed it, but only pressing Y to update it every time i start the terminal... Never had time to research why I really installed it, but someone recommended to get it :)
There's many little things, but one of the best quality of life improvements of zsh is the vastly improved tab-completion.
Ok, tried to press Tab twice, got selectable list of directories... ok, pretty cool, but only for one level, after selecting on directory, had to double Tab again for the next level....
have a look at: pythonbytes.fm/episodes/show/281/o...
It's important to note that if you use ngrok in your job, you need to pay for a license per-seat.
I've personally not seen the appeal of
exa
beyond its git integration. Everything else people talk about it doing is done by GNU grep anyway!About Exa, I use it with an alias, so I don't need to use the command
exa ...
, I just usels
as I used to, and it will use exa under the hood. Exa's output looks appealing and is good to work with, and the git integration is a cherry on top.Those arguments are all copied from GNU
ls
anyway, so you could do the same thing withalias ls='ls -al --color=always --group-directories-first
.Is there a difference in the output that couldn't be configured with flags or setting environment variables like
LSCOLORS
, etc.?And what's the difference between
ls
andlla
?That's a customization specific to me. Just ignore that. I use
ls
andlla
interchangeably sometimes. ๐ฅดOne tool that has helped me enormously with keeping my mind on the right topic is
atuin
, which makes it a lot easier to find old commands, so instead of trying to sift through my history and losing track of my actual task, I can just fuzzy-find stuff without wasting too much thought of it.And speaking of tasks, I've recently started using taskwarrior and timewarrior to track what needs to be done and how much time I spend on it. I even have it integrated into my zsh prompt so any active task is listed there because otherwise I'd just get distracted and leave the timer running while doing something completely unrelated.
My way of searching history was to use
hs | fzf
, wherehs
is an alias for thehistory
command. Atuin is definitely going to come in handy. I am a WSL guy, and for now, my approach works well for me. I don't want to add too many tools to the system as it's already a bit slower.Really great article, Shrijal!
I use ngrok all the time, I love it. ๐ฅ
I'll have to check out some of these other tools though, they look pretty nice - I haven't heard of some of these before.
Keep up the good work!
Glad you liked it. ๐ I would definitely recommend you give almost all these tools a try, with one exception. Ranger is probably not as nice in recent times, and I've replaced it with yazi.
I'll keep that in mind. Thanks again for the tips!
The last 2 just seem to pretty up the existing commands, I probably won't use since the flags are hardcoded in my brain from years of use. Instead of Z I use autojump github.com/wting/autojump may not have all the features of Z but I'm commonly somewhere in my home directory anyway.
autojump definitely seems to be a great alternative to z. z seems to be unmaintained for years. I guess it's time to switch for me as well. I am surprised they both have the same star count. ๐
If anyone is interested there is also zoxide ๐ฟ And it looks to be active maintained, and build in Rust.
I second this, zoxide is just superior to z, autojump, and else.
Nice ๐๐พ. I found bat,
cat
with wings, enriching my terminal life.Such a handy tool. Added to my toolkit. Now, no more 'cat' only 'bat'. ๐
Great post! I personally use both fd and fzf in my workflow, so glad to see that fzf is up there.
fzf is a pretty handy little tool that definitely speeds up my daily workflow. It had to be mentioned! ๐
I only started using
fzf
sometime around early 2023 but it's already become a central part of how I use linux.When I want to open a project, I just type
p projectname
which lists all git repos in my$HOME/workspace
and lets me fuzzy-find the one I want. Then I edit a file by typinge filename
which does the same but for files and opens them innvim
. I even use it to check out git branches. Great tool! ๐๐fzf
is a must-have gem for any Linux user I guess. ๐Good! I'll try z and exa! Thanks for sharing
Glad to hear that Nelson! ๐
Awesome list! Knew it was gonna be great when I saw Ngrok mentioned first
Absolutely! Ngrok is a game-changer. How could I not mention it right? ๐ I think it's a must-have tool for easily exposing local servers and testing webhooks. What's been your standout experience with it so far?
Nice List. Thanks for the thoughtful composition.
Glad I could help! ๐
Some comments may only be visible to logged-in visitors. Sign in to view all comments.