Power Up Your Command Line, Part 3
Tags: productivity, tips, unix, commandline
Published: 2019-01-07 06:31:47

---
title: Power Up Your Command Line, Part 3
published: true
description: Five lesser-known command line utilities you'll want to install right away.
tags: productivity, tips, unix, command line
cover_image: https://thepracticaldev.s3.amazonaws.com/i/zf6prmqwnzk9r0m9n96z.png
series: Power Up Your Command Line
---

This is part three of the *Power Up Your Command Line* series. In this article, I’ll showcase five utilities that make common problems a little easier to solve using the command line.

This post was originally published [on my blog](https://darrenburns.net/posts/even-more-tools).

## `tig`, for interactively browsing your git repo
`tig` ([GitHub](https://github.com/jonas/tig)) is an excellent way to browse your Git repository using an interactive interface, without leaving the command line.

![tig](https://thepracticaldev.s3.amazonaws.com/i/begtel0euvo9zd0ppire.gif)

`tig` is simple and intuitive to use, and has different views for things like your stash, staging area (which it lets you quickly alter), logs, and so on.

Thanks for Renato Suero ([@renatosuero](https://twitter.com/renatosuero)) for introducing me to `tig`  on DEV.

### Installing `tig`
* On macOS with ([Homebrew](https://brew.sh)): `brew install tig`

## PathPicker (`fpp`), for quickly selecting files
PathPicker ([GitHub](https://github.com/facebook/PathPicker)) is a library by Facebook for quickly selecting files on the command line. The animated example below is taken from the PathPicker documentation.

![fpp](https://thepracticaldev.s3.amazonaws.com/i/498ik89ukpwhiu2fxncn.gif)

From the [PathPicker website](http://facebook.github.io/PathPicker/):

> PathPicker accepts a wide range of input -- output from git commands, grep results, searches -- pretty much anything. After parsing the input, PathPicker presents you with a nice UI to select which files you're interested in. After that, you can open them in your favorite editor or execute arbitrary commands.

Thanks to Nikolay Dubina ([@nikolayid](https://twitter.com/nikolayid)) for suggesting this utility.

### Installing PathPicker
* On macOS with ([Homebrew](https://brew.sh)): `brew install fpp`

## `tldr`, for practical examples of how to use CLI tools
[`tldr`](https://tldr.sh) ([GitHub](https://github.com/tldr-pages/tldr/)) lets you quickly access practical examples (simplified, “tl;dr” versions of man pages) of how to use command line tools.

![tldr](https://thepracticaldev.s3.amazonaws.com/i/ha3htknkv4qu7uenk2qn.gif)

The examples are maintained by the community in the `tldr` [GitHub repository](https://github.com/tldr-pages/tldr).

### Installing `tldr`
* With npm (recommended): `npm install -g tldr`
* On macOS with ([Homebrew](https://brew.sh)): `brew install tldr`

## `gron`, for exploring JSON
`gron` ([GitHub](https://github.com/tomnomnom/gron)) transforms JSON text into discrete assignments, to make it easier to find what you need. I particularly like using it for interactively exploring APIs in combination with `fzf` (mentioned earlier in this series):

![gron-with-fzf](https://thepracticaldev.s3.amazonaws.com/i/l01ti86m1p15homi04na.gif)

You can also use `gron` to help you transform JSON objects ([examples](https://github.com/tomnomnom/gron/blob/master/ADVANCED.mkd)). This isn’t the main use-case of `gron` though, and you’d probably be better served using a purpose built tool like [`jq`](https://stedolan.github.io/jq/) for such things.

### Installing `gron`
* On macOS with ([Homebrew](https://brew.sh)): `brew install gron`

## thefuck, for quickly correcting command line typos
If you mistype a command, type `fuck` ([GitHub](https://github.com/nvbn/thefuck)) and you’ll be given a list of corrections to choose from.

![thefuck](https://thepracticaldev.s3.amazonaws.com/i/7f5s5xt1whw5me9ogd9k.gif)

The name of the command is unfortunately slightly NSFW, so you may wish to alias it to something else.

### Installing thefuck
* On macOS with ([Homebrew](https://brew.sh)): `brew install thefuck`

## Bonus: explainshell, for explaining shell commands
If you’re in the situation where you already have a complex shell command and want to understand what it does without browsing `man` or `tldr` pages, you can use [explainshell](https://explainshell.com):

![explain_shell](https://thepracticaldev.s3.amazonaws.com/i/3whyhkn8c3bgfwym8mn2.png)

## Conclusion
Hopefully you found something on this page that interests you! If you’re interested in more content like this, follow me on [Twitter](https://twitter.com/_darrenburns) and on [DEV](https://dev.to/_darrenburns).