My Favorite Linux Tools
Tags: linux, productivity, tools
Published: 2019-06-12 21:52:14

---
title: My Favorite Linux Tools
published: true
description: 
tags: linux, productivity, tools
cover_image: https://antjanus.com/wp-content/uploads/2019/06/archey.png
canonical_url: https://antjanus.com/blog/web-development-tutorials/my-favorite-linux-tools/
---

> This post was [cross-posted to my personal blog](https://antjanus.com/blog/web-development-tutorials/my-favorite-linux-tools/) for archival purposes.

I wanted to list a few utilities that either help my productivity on Linux or make working in Linux more pleasant in some way. 

I really enjoy setting up tools so that they're easier to use *when* I use them -- so instead of just saying "this tool is great", it's also worth noting how some tools can be very powerful once you spend the time to set them up, even if you don't use them often.

You might notice that most of these are terminal based utilities. I primarily interact with Linux via the terminal and almost everything that's not terminal based is just the usual cross-platform applications (Discord, Opera, Slack, VSCode, etc.) so I'm not mentioning any of those.

> I [asked the community](https://dev.to/antjanus/what-are-your-favorite-linux-utility-productivity-tools-57al) for everyone's recommendations.

## [NeoVIM](https://neovim.io)

![neovim text editor screenshot](https://antjanus.com/wp-content/uploads/2019/06/nvim-screen.png)


From git messages to quick file changes (or full development), it's totally worth setting up NeoVIM with at least syntax highlighting. I often reach for VIM when I don't want to bother opening VSCode or when VSCode is just too much for a quick edit.

Why NeoVIM and not VIM? NeoVIM retains full backward compatibility with VIM and exposes some new features. Either one works! :)

## [ZSH](https://www.zsh.org)

![zsh shell screenshot](https://antjanus.com/wp-content/uploads/2019/06/zsh.png)

I've had my bash config setup just the way I liked it but recently switched to ZSH. Why?

1. it's quick and easy to setup
2. you don't have to be a power user to take advantage of it
3. zsh command highlighting makes things easier to read
4. theme support is much better than bash/terminal theme support
5. lots of plugins

Make sure to check out [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) which gives you the theme support and plugin support.

## [nmtui](https://developer.gnome.org/NetworkManager/stable/nmtui.html)

![nmtui network manager screenshot](https://antjanus.com/wp-content/uploads/2019/06/nmtui.png)

A TUI (terminal UI) for network management. I reach for it more so than any other built-in utilities because of how simple and straightforward it is. For some reason, I also trust it more. When a GUI network manager freezes, I'm always paranoid that the GUI froze -- not that the network manager is doing its job. With NMTUI, there's more trust on my part for sure.

I know, I know, it looks like it's from the 80s BUT, it allows you to manage all of your saved wifi settings, your ethernet connections, and so much more. It is fully-featured and lacking nothing as far as I can tell.

## [ncdu](https://dev.yorhel.nl/ncdu)

![ncdu disk usage utility screenshot](https://antjanus.com/wp-content/uploads/2019/06/ncdu.png)

NCDU is a terminal UI (an `ncurses` UI to be more specific) for the `du` command. What does `du` do? du is a `disk usage` utility. What's cool about `ncdu` is that it scans everything in a folder or on your system and allows you to explore your file system with all of the computed size values. 

This is *so* useful when you're trying to figure out what's taking up so much space on your drive, or when you're trying to delete the space hogs.

## [htop](https://hisham.hm/htop/)

![htop process viewer screenshot](https://antjanus.com/wp-content/uploads/2019/06/htop.png)

Another terminal utility. This one is an interactive process viewer. Think of it as your Activity Manager or Task Manager. It can filter, search, and sort through processes. It displays all of the relevant process information included full command path which started the process. This is so useful when trying to find runaway node processes.

You can then send commands to the processes but the only one I really use is the `kill` command to close stuck processes.

## [notify-send](http://manpages.ubuntu.com/manpages/xenial/man1/notify-send.1.html)

![notify-send terminal and notification example screenshot](https://antjanus.com/wp-content/uploads/2019/06/lmk.png)

`notify-send` is a utility that allows you to send notifications to yourself. This is super useful -- so much so that I aliased it in my `.bashrc`:

```
alias lmk="notify-send 'Something happened!'"
```

Might seem useless but if you're running a long-running process, it's great to have a notification system that lets you know when it's done. So I tend to use `notify-send` in conjunction with other commands, like `npm install && lmk`. 

## [Rofi](https://github.com/davatorium/rofi)

![rofi application launcher screenshot](https://antjanus.com/wp-content/uploads/2019/06/rofi-1.png)

Unlike others, this one isn't a terminal application. This is an application launcher/window switcher/so much more. If you're using something like i3, it is a perfect replacement for dmenu. If you're using something else, it's still a power tool.

What makes it special is that it handles command line utilities and GUI apps at the same time AND it'll switch you over to a running instance of an app as well. On top of that, it's insanely fast.

## Other notable tools

I don't want to go off to the deep end with every single tool I use so here are a few I'd check out:

1. [bat](https://github.com/sharkdp/bat) - an alternative to `cat` with syntax highlighting and better display of file contents. Install and alias it to `cat`
2. [notepadqq](https://notepadqq.com/s/) - inspired by the Windows-only Notepad++, a easy-to-use auto-draft-saving text editor
3. [emacs org-mode](https://orgmode.org) - Emacs is a powerful text editor and org-mode is a plain-text productivity/task-management tool
4. [conky](https://github.com/brndnmtthws/conky) - a desktop system monitoring tool - tells you CPU/RAM loads, active processes, etc. on your desktop
5. [Archey](https://github.com/HorlogeSkynet/archey4) - a cool utility that tells about your machine. It was used to generate the screenshot at the top of this post

> **Note:** If you use any of my screenshots for anything, please let me know and credit me somehow. Especially if it's used as a texture for [computer hacker monitors in a AAA video game](https://twitter.com/AntJanus/status/800825075880448000)

> Like my content? [Follow me on Twitter](https://twitter.com) or just [buy me a coffee](https://www.buymeacoffee.com/CKdpP4G)