DEV Community

Cover image for My Favorite Linux Tools

My Favorite Linux Tools

Antonin J. (they/them) on June 12, 2019

This post was cross-posted to my personal blog for archival purposes. I wanted to list a few utilities that either help my productivity on Linux...
Collapse
 
ashleemboyer profile image
Ashlee (she/her)

notify-send looks like a good one! I like the example you gave. Might have to give this one a try.

Collapse
 
darksmile92 profile image
Robin Kretzschmar

Yes this one particually is interesting because we all know the struggle of long running processes where we end up surfing or doing something else and totally forget to check back if it is done 😅

Collapse
 
jrohatiner profile image
Judith

That is so true! Good to know other people do it too! 😂

Collapse
 
antjanus profile image
Antonin J. (they/them)

It's sooo easy to use. I tried to make an alternative for powershell on windows and had to install an additional tool 😞.

I do believe it's Ubuntu only but other systems should have something similar available

Collapse
 
scottharwoodtech profile image
ScottHarwoodTech • Edited

Since you use ZSH, you can enable hooks which will automatically notify you when your command takes more than a certain amount of time gist.github.com/jpouellet/5278239 this was my starting point, I expanded it to send me a notifiy-send message with the info instead of just triggering a alert.

Collapse
 
flrnd profile image
Florian Rand

That statement ubuntu only is dangerous sir!

Collapse
 
ghost profile image
Ghost

in fact notify-send is part of libnotify which at least in Gentoo is a dependency of wxGTK, in Linux if it works in one distro it works on all of them (with different levels of difficulty)

Thanks for the tip, I wasn't aware of this and is much more elegant than my current way, appending mpv (CLI media player) with some noise after the long command :D

Thread Thread
 
antjanus profile image
Antonin J. (they/them)

oooh interesting. Thanks for chiming! i went to check if it works on Arch (I switch between Arch/Ubuntu every couple of years) and it looks like it's required by gnome and a bunch of other packages. So, cool! :)

Glad I could help!

Collapse
 
alexsasharegan profile image
Alex Regan

I didn't find it on Pop!_OS by default. Installing it was confusing since you actually install libnotify-bin... so heads up for anyone looking for it!

Collapse
 
antjanus profile image
Antonin J. (they/them)

Yeah, I guess I should specify to check out what kind of notification utilities your specific flavor of Linux supports/has. notify-send is dead-simple in usage so I hope other OSes are as well.

I was remarking on the fact that Windows/Powershell still sucks with this because you gotta make a whole script for it.

For anyone interested in how PS handles this: you can install BurntToast and write a 1-liner function function letmeknow {New-BurntToastNotification -Text "I'm letting you know!", "Something you wanted to happen, happened"} in your ps1 profile script.

Thread Thread
 
jrohatiner profile image
Judith

@antoninjanuska u bring up a good point here. There are so many mitigating factors in configuring a shell env. For me, this took time to really grasp this concept and once I did, game changer! 👏👏

Collapse
 
flrnd profile image
Florian Rand

You can download the Source Code from here and compile It for your distro: galago-project.org/downloads.php although maybe it's not so straight forward, never tried to compile it since Debian has binary packages. There is a shell scrip version from Arch Linux users you can also try.

Collapse
 
biros profile image
Boris Jamot ✊ /

Have a look at fish shell, notifications for long running processes are built-in !

Collapse
 
spike008t profile image
Tieu Philippe KHIM • Edited

tmux is the big missing one for my point of view.

Otherwise, an alternative of htop is glances.

Collapse
 
anpos231 profile image
anpos231 • Edited

This is so useful when trying to find runaway node processes.
Why not use killall -9 node?

I'd like to add 'screen' to the list. Useful when you want to leave your terminal session running after leaving VPS.

Collapse
 
moopet profile image
Ben Sinclair • Edited

You usually don't want to kill all your node processes, just the one that's running away...
and using SIGKILL like a hammer is a slippery slope.

Collapse
 
antjanus profile image
Antonin J. (they/them)

yep! VSCode and other processes spin up their own node processes. I'd want to kill a specific one.

What doesn't help is that if you're using webpack or nodemon, or a combination of tools, they'll just spin up another node process as soon as you kill it.

Collapse
 
wrecklass profile image
Steven Martin

Quicky bash function using AppleScipt Engine to provide notify-send with macOS notifications:

function notify-send() {
  /usr/bin/osascript -e "display notification \"$*\" with title \"Notice\" sound name \"Tick\""
}
Enter fullscreen mode Exit fullscreen mode

Now you can just do: notify-send "This is a notice"

To get a popup notification on your Mac.

Note you can change the sound by looking for sounds in /System/Library/Sounds on the Mac

Collapse
 
dgreene profile image
Dan Greene

multitail, jq, and htop (worth a 2nd mention) are some of the best, underrated cli tools out there

Collapse
 
antjanus profile image
Antonin J. (they/them)

I think the big reason they're so good is because they're cross-linux available. While GUI tools might need GTK, KDE, or whatever else. And on top of that, Linux users don't always have a GUI available.

I definitely love those utils!

Collapse
 
ivolimmen profile image
Ivo Limmen

jq is a very handy tool; just like httpie.

Collapse
 
biros profile image
Boris Jamot ✊ / • Edited

fx is also a killer app. You can browse JSON in the terminal:

Collapse
 
derek profile image
derek

Thanks for posting and sharing! I 💚things that ++productivity 🍻

Here a few that I find myself using the majority of the day:

slack-term keeps you in your terminal longer, and it has vim bindings 😍

exa is ++ls -la

tig is a must if you have any 🐱

Collapse
 
jenshansen profile image
Jens Hansen

I really like fzf (fuzzy finder) and ranger.

ranger is a command-line based file manager with vi-bindings.

Collapse
 
jrpz profile image
Jaime Perez

+1 for ranger

Collapse
 
jeffderbyshire profile image
Jeff Derbyshire

terminator - Terminal emulator
screen - run things in background
miniconda - python virtual environments

Collapse
 
avalander profile image
Avalander

I've used notify-send to set a cron job in my work computer that reminds me to go home every workday at 5 pm, but I had never thought of your way to use it, I'm definitely going to borrow that :D

Collapse
 
antjanus profile image
Antonin J. (they/them)

That's an awesome idea! I love that. Now if only there was an easier-to-use tool for cronjobs!

 
anpos231 profile image
anpos231

For me killall proved useful when working with PHP. For example when there is this one rogue script that did not finish like it should. killall -9 php is not a problem because apache will spawn another one as soon as new request is made, but currently made request would be interrupted, so I only use in dev env.

Collapse
 
jnario profile image
Jose Nario

I have tried an ungodly number of note-taking/organizational apps & solutions across a few decades. And while many are excellent, I keep returning to org-mode, which is nothing short of unparalleled (for my brain, anyway).

My enthusiasm for Emacs has waned over the years, but org-mode will keep me entrenched. At least, until a 1:1 standalone equivalent is produced.

Collapse
 
antjanus profile image
Antonin J. (they/them)

Same experience! I've used emacs for development for a while but really, I just use it extensively for org mode.

It's basically a standalone org mode app for me 😂

What's nice is writing code snippets in org mode ❤️.

Collapse
 
ssimontis profile image
Scott Simontis

Org mode is the best kept secret of Emacs. I've been searching for the ideal KM solution for years and now I have found it! The learning curve was a little frustrating because Spacemacs changes the Meta-Enter binding's default value, but eventually I found the answer. It has inspired me to write my own org mode parser!

Collapse
 
prahladyeri profile image
Prahlad Yeri

I don't quite agree that you need to be a super power user in order to use bash. I hardly knew the "L" of linux when I first started using bash!

nmtui looks interesting, is it available in Ubuntu repos? More importantly, does it work on a totally headless installation (like ubuntu-server) where no DE is yet installed?

There are a whole lot of other excellent linux tools which I'm totally dependent on, an entire post could be made about them.

Collapse
 
antjanus profile image
Antonin J. (they/them)

I agree that you don't have to be a power user to get a lot out of bash. I'd just say that having a decent bash or zsh setup can make a beginner's life (and an expert's life) much easier. Especially the whole thing with autocompletion, syntax highlighting, and showing valuable info in the terminal.

I'm not 100% sure if nmtui is built into Ubuntu but it is in the Ubuntu packages. It does work on a server version! The first time I used nmtui was installing Arch and that process involves installing the desktop environment manually -- and for that you need network access first. :)

Make the post! That's what I did haha

Collapse
 
omrisama profile image
Omri Gabay

Archey doesn't look different from Neofetch?

Collapse
 
antjanus profile image
Antonin J. (they/them)

Oooh yeah, I haven't heard of this one. Looks pretty cool, too!

There are a bunch of tools like this.

Collapse
 
hyaovi profile image
Yaovi

I just installed nmtui, it is pretty straightforward. I like it! Thanks for sharing)

Collapse
 
antjanus profile image
Antonin J. (they/them)

I really wish it was better-known. I learned about it when I installed Arch for the first time. It's a fantastic tool.

Collapse
 
johncip profile image
jmc

Also a happy nvim & zsh user. Didn't know about ncdu, thanks!

Collapse
 
fultonbrowne profile image
Fulton Browne

I really like the the look of Neo VIM. I am installing that today.

Collapse
 
aghost7 profile image
Jonathan Boudreau

If you're ssh'ing regularly into boxes, give tmux a try.

Collapse
 
gauthamp10 profile image
Gautham Prakash

htop is too good.

Collapse
 
dougaws profile image
Doug

RE: notify-send

You can also just beep: npm install && echo -ne '\007'

Of course it doesn't help if you don't have your headphones on.

Collapse
 
ivolimmen profile image
Ivo Limmen

You are missing the excellent lsd and for file searching fzf but for the rest: nice list!

Collapse
 
pavelloz profile image
Paweł Kowalski • Edited

Wow, ncdu and bat are really cool :D

I also recommend htop :)

I would add one thing to the list: fzf
It is just great.

Collapse
 
maxdevjs profile image
maxdevjs

Nice list. As an aside, Nvim is always "nocompatible" (first screenshot, init.vim reference).

Collapse
 
phatdang profile image
PHAT DANG MINH

Thanks !