📟Command line tools
Keyboard shortcuts
ctrl-r- Search previously used commandsctrl-t- Invoke FZF fuzzy file finder (see below)ctrl-l- Clear the terminal screenctrl-k- Clears the terminal screen but no-scroll back. Basically wipes thectrl-w- Cut one word backwards using white space as delimiteresc-t- Swap the last two words before the cursor
Commands
cal
Show a calendar
❯ cal
February 2020
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
date
Show the date
❯ date
Sat 7 Sep 2019 09:22:28 BST
tree
Show directory contents as a tree
❯ tree -L 1
.
├── README.md
├── example
├── gatsby-theme-code-notes
├── node_modules
├── package.json
└── yarn.lock
List global packages
# with yarn
❯ yarn global list
# with npm
❯ npm -g ls --depth=0
Flush DNS cache
1. Clear OS-level DNS cache
On Mac OS, run this in the terminal:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
On Windows:
ipconfig /flushdns
2. Clear DNS cache via Chrome
Go to chrome://net-internals/#dns and click Clear host cache.
This button sounds like it should clear the OS-level cache, but my experience just doing this isn’t enough by itself.

3. Close existing server connections
Go to chrome://net-internals/#sockets and click Flush socket pools.

Then reload the page you’re testing and you should see the DNS lookup again, as well as the time spent on establishing the TCP connection.
Custom packages
Autojump
https://github.com/wting/autojump (external site)
autojump is a faster way to navigate your filesystem. It works by maintaining a database of the directories you use the most from the command line.
❯ j code
exa
https://github.com/ogham/exa (external site)
A modern version of ls
❯ exa -l
❯ exa -T -L 2 # like tree
FZF
https://github.com/junegunn/fzf (external site)
Fuzzy find files. Use ctrl+t to access it
serve
https://github.com/zeit/serve (external site)
Static file serving and directory listing
emma
https://github.com/maticzav/emma-cli (external site)
Search for npm packages. Run emma to initialise the search, then enter your search criteria
ibrew
https://github.com/mischah/ibrew (external site)
Interactive search CLI for Homebrew
Run ibrew to initialise the search, then enter your search criteria
yalc
https://github.com/whitecolor/yalc (external site)
Work with yarn/npm packages locally like a boss.
hub
https://hub.github.com/ (external site)
# clone one of your GitHub repos
❯ hub clone dotfiles
# Same as → git clone git://github.com/YOUR_USER/dotfiles.git
# clone another project's repo
❯ hub clone github/hub
# → git clone git://github.com/github/hub.git
# open the current project's issues page
❯ hub browse -- issues
# → open https://github.com/github/hub/issues
# open another project's wiki
❯ hub browse mojombo/jekyll wiki
List the current repo’s PRs
# this is an alias
alias prs 'hub pr list -L 20 -b develop --format="%t%n - Branch: [%H]%n - %U%n - %l%n%n"'
# e.g. ❯ prs
Create a branch and switch to it
# FYI This is a fish shell function
function branch
git branch {$argv} && git checkout {$argv}
end
# e.g. ❯ branch feature/WL-88-hello
standup
https://github.com/kamranahmedse/git-standup (external site)
Shows a list of commits for the past 24 hours
❯ standup
/Users/zander/code/fairfx/fx-holiday-money-app
5315f033 - build(multi): HM-925 Improve perf for a couple of pages (16 hours ago) <Zander Martineau>
4b41c048 - index on feature/HM-925-improve-performance:
1b854d84 fix(ci): AWS-99 Remove builds/deployments associated (#845) (17 hours ago) <Zander Martineau>
cross-port-killer
https://github.com/milewski/cross-port-killer (external site)
Kill a process running on a particular port
❯ kill-port 9001
doctoc
https://github.com/thlorenz/doctoc (external site)
Generated markdown table of contents
❯ doctoc README.md --github
fx
https://github.com/antonmedv/fx (external site)
Command-line JSON processing tool
❯ fx package.json
jq
https://stedolan.github.io/jq/ (external site)
jq is like sed for JSON data - you can use it to slice and filter and
map and transform structured data with the same ease that sed, awk,
grep and friends let you play with text.
# use jq to extract just the first commit from a repos list
❯ curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'
npq
https://github.com/lirantal/npq (external site)
Safely* install packages with npm or yarn by auditing them as part of your install process
# with npm ❯ npq install express # with yarn, set an alias like so:alias npq="NPQ_PKG_MGR=yarn npq-hero"
❯ npq add express
youtube-dl
https://youtube-dl.org (external site)
# install
❯ brew install youtube-dl
# use
❯ youtube-dl d2qfa3tlgH8
https://blog.balthazar-rouberol.com/text-processing-in-the-shell (external site)