It's been a while since my last post, and I thought it would be a nice new year start sharing my favourite command-line tools.
Here we go:
bat, A cat(1) clone with syntax highlighting and Git integration.
ag, The silver searcher. A code-searching tool similar to ack, but faster. http://geoff.greer.fm/ag/
ripgrep, another alternative to ack and ag. (Thanks to Michael for reminding me of this great tool).
fd, A simple, fast and user-friendly alternative to 'find'.
fzf, A command-line fuzzy finder.
forgit, Utility tool powered by fzf for using git interactively. Thanks to Mr F..
ranger, A VIM-inspired file manager for the console https://ranger.github.io
tig, Text-mode interface for git https://jonas.github.io/tig/
hub, A command-line tool that makes git easier to use with GitHub. https://hub.github.com/
$ hub clone rtomayko/tilt
# expands to:
#=> git clone git://github.com/rtomayko/tilt.git
httpie, Modern command line HTTP client – user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc. https://httpie.org/
jq, A lightweight and flexible command-line JSON processor.
exa, A modern version of ‘ls’. https://the.exa.website/ (Thanks to Mr F.)
Michael Kohl Suggestions:
Top comments (21)
Most notable (and new) to me in your list are
exa
andbat
, which are both much more modern and intuitive versions of the increasingly outdatedls
andcat
.exa
's-T
option is especially useful.ag
is also a personal favorite of mine, especially for findingTODO
s in a codebase, since it ignores paths specified in the.gitignore
file.To anyone reading this: note that you can just
alias
those commands in your~/.bash_profile
to make the transition fromls
,cat
, andack
feel more seamless.I've been using HTTPie for a long time now - I think it's a very intuitive and a useful tool for web developers who prefer to stay close to the command line. The most popular GUI alternative is Postman, however in some ways its UI is clunky and unjustified when you want to do some quick & simple API tinkering. If anyone knows of a more intuitive alternative to Postman, I'd love to know.
I'd argue that these tools are most notable since they seek to be more intuitive (and in some cases performant) alternatives to their increasingly outdated but most widely-used counterparts.
If you don't mind having Node.js installed, I created this script for myself to avoid using postman for simple tasks. It reads data from a json file and executes one or more requests. It also has a somewhat limited interactive mode so you can inspect/modify the request data before sending it.
I use a few nodejs clis, I'll save yours to try it later, but httpie has me really well-covered atm.
And by the way,
Tiny Tina
, is that a Borderlands reference? Pretty cool!I hope you can find it useful.
It is a Borderlands reference. I was going to call it
tinypost
but I changed before uploading it to github.thank you for sharing, this is a great list. bat and httpie look great. I have been using exa as a replacement for
ls
. I wonder how it would compliment ranger.Thank you! I didn't know exa, added to the list :) (I must admit I have some unhealthy attraction to command-line tools written in rust :)
I installed almost all of the tools you listed. As a result ended staying up all night searching for more!
I think forgit is a great extension to
fzf
That happens to me more often than I'd admit with nvim 😂.
Interesting! right now I use the git cli directly, I'm going check it out, thanks for sharing! Cheers :D
I wrote a less thorough article similar to yours a few weeks back. Couple more things in there. My favourite is thefuck
TBH the only useful tool in this lot is
jq
- it's useful for breaking down blobs of JSON in a shell pipeline. No other real alternative.The rest of them are for developers who want the warm happy glow of working on the command line, but don't actually want to learn how to use it properly.
Don't be a lemon David! You are half right. I've been using cli tools since 1995. Awk, sed, ack, find... Are you one of those Who dictate which is the proper way of using things? Because in my opinion tools are there to fix problems, not create new ones 😜
ripgrep
makes a real difference, especially with a large codebase. I'm not surprised VSCode integrated it for its search. I can literally see the difference between grepping with ripgrep and grep on the DEV's codebase. BTW they kind have the same options so there's no re-learning there.I've aliased
exa
tols
and forgotten about it.I've ditched
httpie
because it's completely different fromcurl
.I use
hub
everyday because I review tons of PRs and it saves a lot of typing :DI tried
bat
for a while months ago but it's not that useful so I ditched it.The rest seem very specific, not particularly interesting :D
Hey @rhymes , yeah,
ripgrep
is wonderful.I use
httpie
because of its simplicity but not as substitution ofcurl
. In my opinion, in terms of versatilitycurl
is ahead ofhttpie
.tig
andranger
are a nice addition, but I admit that I don't use them a lot.I tried
exa
but after a few hours found the coloured output annoying. Weird, I know.But I agree, depending on your background and needs, some of them can be more interesting than others, or not interesting at all.
+1 for Httpie
+1 for jq
Many thanks Michael! I forgot about ripgrep (this memory of mine 😅). rq seems pretty cool also lab and broot, added to the list!
Don't forget cmus if you want to listen to some tunes. 😉
Thanks Tim, that's a good one! I used to like mpd before the streaming era, now I don't have a single mp3/ogg/flac in my computer anymore.
Check out hurl instead of httpie
Hey, thanks for the suggestion, seems pretty neat, I'll check it out!
Hi, what about Cmder? Is a very nice terminal emulator