DEV Community

Cover image for Top Productivity CLI Tools I Use on Linux
Zoo Codes
Zoo Codes

Posted on

Top Productivity CLI Tools I Use on Linux

Introduction

Are you ready to unlock the power of the Linux command line? As an avid Arch Linux user, I have discovered a treasure trove of exceptional CLI tools that have significantly enhanced my experience. From boosting productivity to streamlining tasks, these top-notch tools have become my trusted companions. Join me as we delve into a hand-picked selection of command-line gems that will revolutionize your Linux journey. Get ready to embark on a path of efficiency, flexibility, and command-line mastery. Welcome to the world of Linux's finest CLI tools!

Although this article geared towards Linux users, most of the tools mentioned here are cross platform and can be used on Windows (WSL2) and MacOS as well. Feel free to try them out and let me know what you think.

1. Bat

Bat is a cat clone with syntax highlighting and Git integration. It has helped me iimmensely when I want to view the contents of a file. It is a drop in replacement for cat and it has syntax highlighting for a lot of languages. It also has a pager mode which is enabled by default when output is piped to another command. It also has a lot of other features which you can read about in the documentation. In my case I have aliased it to cat in my .fish config file.

alias cat bat
Enter fullscreen mode Exit fullscreen mode

bat screenshot

2. Fish Shell

Fish is a acronyn for friendly interactive shell. It is a smart and user friendly shell for Unix-like operating systems like Linux. There are a lot of features that make it stand out from other shells like bash. It has a lot of features like autosuggestions, syntax highlighting, tab completions and a lot more. You can read more about it in the documentation. I have been using it for a while now and I it configured to my liking. In terms of plugins I use fisher to manage my plugins. I have a couple of plugins that I use on a daily basis. I have listed them below:

3. Fzf

Fzf is a command line fuzzy finder. It is a general purpose command line fuzzy finder. It can be used for a lot of things like searching for files, searching for processes, searching for git commits and a lot more. It is a very powerful tool and I use it on a daily basis. I have it aliased to ctrl + r in my .fish config file.

alias ctrl + r fzf
Enter fullscreen mode Exit fullscreen mode

FzF screenshot

4. Zoxide

Zoxide is a blazing fast alternative to z. It is a tool that helps you navigate your filesystem faster. It is a tool that I use on a daily basis. It provides a lot of features that make it stand out from other tools. It has a lot of features like autojump, autoenv, z and a lot more. It is a tool that I use on a daily basis. I have it aliased to z in my .fish config file.

alias z zoxide
Enter fullscreen mode Exit fullscreen mode

Zoxide screenshot

5. Exa

Exa, a powerful file management tool, is gaining popularity as a modern replacement for the traditional "ls" command. With its impressive set of features and user-friendly interface, Exa offers a superior file listing experience. It supports colorized output, making it easier to identify file types at a glance. The built-in Git integration feature provides valuable insights into the status of files and directories within a repository. Additionally, Exa boasts a convenient tree view option, allowing users to visualize the directory structure in a hierarchical format.

Excitingly, Exa can be seamlessly integrated into the Fish shell environment by adding an alias to the .fish configuration file. This way, users can enjoy the enhanced functionality of Exa while using the familiar "ls" command in their daily workflow. Discover the potential of Exa and elevate your file management capabilities today. I have it aliased to ls in my .fish config file.

alias ls exa
Enter fullscreen mode Exit fullscreen mode

exa screenshot

6. Tide

The Tide theme for the Fish shell is an aesthetically pleasing and highly customizable option that can transform your command-line experience. With its clean and minimalist design, Tide brings a sense of elegance to your terminal. The theme combines a soothing color palette with well-defined prompt elements, enhancing readability and reducing visual clutter.

The Tide theme offers a range of customization options, allowing users to personalize their prompt appearance, such as adjusting colors, adding informative segments, and even incorporating Git status indicators. Whether you prefer a sleek and minimalistic look or want to add a touch of flair to your terminal, the Tide theme for Fish shell delivers a visually appealing and personalized command-line interface. Elevate your Fish shell experience with Tide and enjoy a fresh and stylish approach to your everyday workflow.

To install the Tide theme, simply clone the repository and run the install script. Then, add the theme to your .fish configuration file. I have it configured in my .fish config file.

tide configure
Enter fullscreen mode Exit fullscreen mode

Tide prompt

7. Bpytop

Bpytop is a powerful and visually appealing resource monitor for the command-line interface. You can find the bpytop project on GitHub. The repository provides detailed information about bpytop, including installation instructions, usage examples, and documentation.

Bpytop offers a feature-rich and customizable interface for monitoring system resources such as CPU usage, memory usage, network activity, disk I/O, and more. It provides real-time graphs, color-coded statistics, and a user-friendly layout, making it easy to visualize and analyze system performance at a glance. With its intuitive keybindings, you can navigate through different sections and access detailed information about specific processes or system components.

Additionally, bpytop offers a variety of customization options, allowing you to personalize the appearance and behavior of the resource monitor according to your preferences. Whether you are a system administrator, developer, or power user, bpytop is a valuable tool for monitoring and understanding system performance.

Bpytop

8. Neofetch

Neofetch is a popular command-line tool that displays system information in a visually appealing and informative manner. With Neofetch, you can quickly retrieve details about your operating system, kernel version, CPU, memory, and other hardware components. It also fetches information about the desktop environment or window manager, providing a comprehensive overview of your system configuration.

Neofetch offers various customization options, allowing you to personalize the displayed information, choose ASCII art logos, and even integrate additional functionality using plugins.

Neofetch

9. Fd

Fd, the efficient and user-friendly filesystem search tool that offers a simple and fast alternative to the traditional "find" command. Designed to provide a streamlined search experience, fd prioritizes speed and ease of use while offering sensible defaults for most common use cases. While it may not encompass all the advanced features of "find," fd's optimized approach delivers quick and intuitive file searching. Discover fd on GitHub and enhance your filesystem search capabilities with this lightweight and versatile tool that meets the majority of user requirements.

FD screenshot

10. lazydocker

Lazydocker is a terminal UI for the Docker engine that offers a convenient and user-friendly alternative to the Docker CLI. With its intuitive interface and streamlined workflow, lazydocker simplifies the process of managing Docker containers, images, volumes, and networks. It provides a comprehensive overview of your Docker environment, allowing you to monitor and control your containers with ease.

Lazydocker offers a range of features, including the ability to view logs, attach to running containers, and execute commands. Additionally, it provides a built-in terminal emulator, allowing you to run commands directly from the lazydocker interface. Whether you are a Docker beginner or an experienced user, lazydocker is a valuable tool for managing your Docker environment.

lazydocker screenshot

11. act

Introducing Act, the indispensable command-line tool that empowers you to execute your GitHub Actions locally. Act provides a seamless solution for testing workflows directly on your local machine before deploying them to GitHub. With Act, you can ensure the accuracy and efficiency of your workflows without the need for constant commits and pushes.

Act goes beyond local testing by enabling the execution of workflows on self-hosted runners. This feature proves invaluable when running workflows on machines disconnected from the internet, such as Raspberry Pi devices. With Act, you have the flexibility to effortlessly run your workflows on a variety of environments, improving productivity and expanding the possibilities of your GitHub Actions. Embrace Act and take control of your GitHub Actions workflow development today. Read more about Act on my blog post.

Act-run

Honorable Mentions

  • lazygit - A simple terminal UI for git commands, written in Go with the gocui library.
  • yay is a robust and user-friendly AUR (Arch User Repository) helper for Arch Linux and Arch-based distributions written in Go.
  • ytop - A TUI system monitor written in Rust.
  • bottom - A cross-platform graphical process/system monitor with a customizable interface and a multitude of features.
  • Neovim: Modern version of the Vim text editor.
  • taskwarrior: Feature-rich command-line task manager.
  • tmux: Terminal multiplexer for managing multiple terminal sessions.

next-time gif

Top comments (7)

Collapse
 
h_sifat profile image
Muhammad Sifat Hossain

Thanks for sharing. As a hardcore fan of CLI and TUI applications, I must try them out. Also talking about productivity tools, I've built my own CLI/TUI time tracking application called productivity-timer. I would love to know your thoughts about it.

Collapse
 
hartley94 profile image
Hartley94

Great build (productivity-timer) Sifat.

Collapse
 
h_sifat profile image
Muhammad Sifat Hossain

Thanks 💝

Collapse
 
icolomina profile image
Nacho Colomina Torregrosa

What a great tools! Thanks for sharing
Looking forward testing act

Collapse
 
ken_mwaura1 profile image
Zoo Codes

Awesome Thank you for your feedback

Collapse
 
yvs2014 profile image
yvs2014

Thanks for sharing too, very helpful tools

Collapse
 
comdotlinux profile image
Guruprasad Kulkarni

Thanks for the post and appreciate you taking the time to collect the tools you use.
Just wanted to add that no such list is complete without the Command line for the 21st century 🔗