I don't know about you, but I don't enjoy spending lots of time installing stuff.
So here is my executive summary
PROGRAMS="hub httpie ripgrep bat fzf fd fd-find jq autojump direnv tig tmux neovim exa just lazygit jump"NPM="how-2 tldr"export INSTALLER="sudo apt-get"# on Debian/Ubuntuexport INSTALLER="something else"# on another Linuxexport INSTALLER="brew"# on macOSfor program in$PROGRAMS;do$INSTALLERinstall$program;done
for program in$NPM;do npm install-g$program;done
You may want to configure your .profile
## Put in .bash_profile or .zshrc
alias ls=exa
alias cat=bat
Try, adopt or uninstall
Try out the CLI tools. If you don't like them, uninstall them the same way
PROGRAMS="neovim exa"export INSTALLER="brew"# on macOSfor program in$PROGRAMS;do$INSTALLER uninstall $program;done
This being done, let's move on to the tools!
The 15 Command Line Tools which Spark Joy in Your Terminal
*tldr-pages/tldr: 📚 Collaborative cheatsheets for console commands
A must have
The man page is too long, didn't read.
Replace $ man git-checkout by $ tldr git-checkout
You will find what you need in 5s or less, 80% of the time or more
The tldr-pages project is a collection of community-maintained help pages
for command-line tools, that aims to be a simpler, more approachable complement
to traditional man pages.
Maybe you're new to the command-line world? Perhaps you're just a little rusty or can't always recall the arguments for commands like lsof, or tar?
It certainly doesn't help that, in the past, the first option explained in man tar was:
$ man tar...-b blocksize Specify the block size, in 512-byte records, for tape drive I/O. As a rule, this argument is only needed when reading from or writing to tape drives, and usually not even then as the default block size of 20 records (10240 bytes) is very common....
There seems to be room for simpler help pages, focused on practical examples.
How about:
This repository is just that: an ever-growing collection of examples…
jq is a lightweight and flexible command-line JSON processor akin to sed,awk,grep, and friends for JSON data. It's written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.
direnv is an extension for your shell. It augments existing shells with a
new feature that can load and unload environment variables depending on the
current directory.
Create per-project isolated development environments
Load secrets for deployment
How it works
Before each prompt, direnv checks for the existence of a .envrc file (and
optionally a .env file) in the current
and parent directories. If the file exists (and is authorized), it is loaded
into a bash sub-shell and all exported variables are then captured by
direnv and then made available to the current shell.
It supports hooks for all the common shells like bash, zsh, tcsh and fish.
This allows project-specific environment variables without cluttering the
~/.profile file.
Because direnv is compiled into a single static executable, it is fast enough
to be unnoticeable on each prompt. It is…
Tig is an ncurses-based text-mode interface for git. It functions mainly
as a Git repository browser, but can also assist in staging changes for
commit at chunk level and act as a pager for output from various Git
commands.
Bugs and feature requests can be reported using the
issue tracker or by mail to either
the Git mailing list or directly to the maintainer. Ensure that the word
"tig" is in the subject. For other Tig related questions please use
Stack Overflow: https://stackoverflow.com/questions/tagged/tig.
tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.
tmux is a terminal multiplexer: it enables a number of terminals to be created
accessed, and controlled from a single screen. tmux may be detached from a
screen and continue running in the background, then later reattached.
This release runs on OpenBSD, FreeBSD, NetBSD, Linux, macOS and Solaris.
how2 finds the simplest way to do something in a unix shell
It's like man, but you can query it in natural language. It uses a mix of AI code-completion and StackOverflow search.
It effectively replaces Chrome => New Tab => Google => Click on StackOverflow => Scroll Down to first answer.
ripgrep recursively searches directories for a regex pattern while respecting your gitignore
ripgrep (rg)
ripgrep is a line-oriented search tool that recursively searches the current
directory for a regex pattern. By default, ripgrep will respect gitignore rules
and automatically skip hidden files/directories and binary files. (To disable
all automatic filtering by default, use rg -uuu.) ripgrep has first class
support on Windows, macOS and Linux, with binary downloads available for every
release. ripgrep is similar to
other popular search tools like The Silver Searcher, ack and grep.
This example searches the entire
Linux kernel source tree
(after running make defconfig && make -j8) for [A-Z]+_SUSPEND, where
all matches must be words. Timings were collected on a system…
fzf is a general-purpose command-line fuzzy finder.
It's an interactive filter program for any kind of list; files, command
history, processes, hostnames, bookmarks, git commits, etc. It implements
a "fuzzy" matching algorithm, so you can quickly type in patterns with omitted
characters and still get the results you want.
Highlights
📦 Portable — Distributed as a single binary for easy installation
⚡ Blazingly fast — Highly optimized code instantly processes millions of items
🛠️ Extremely versatile — Fully customizable via an event-action binding mechanism
🔋 Batteries included — Includes integration with bash, zsh, fish, Vim, and Neovim
Sponsors ❤️
I would like to thank all the sponsors of this project who make it possible for me to continue to improve fzf.
fd is a program to find entries in your filesystem
It is a simple, fast and user-friendly alternative to find
While it does not aim to support all of find's powerful functionality, it provides sensible
(opinionated) defaults for a majority of use cases.
If you are having an issue with the ngrok cloud service please open an issue on the ngrok community on GitHub
This repository is archived
This is the GitHub repository for the old v1 version of ngrok which was actively developed from 2013-2016.
This repository is archived: ngrok v1 is no longer developed, supported or maintained.
Thank you to everyone who contributed to ngrok v1 it in its early days with PRs, issues and feedback. If you wish to continue development on this codebase, please fork it.
ngrok's cloud service continues to operate and you can sign up for it here: https://ngrok.com/signup
What is ngrok?
ngrok is a globally distributed reverse proxy that secures, protects and accelerates your applications and network services, no matter where you run them. You can think of ngrok as the front door to your…
A command-line tool that makes git easier to use with GitHub.
hub is a command line tool that wraps git in order to extend it with extra
features and commands that make working with GitHub easier.
For an official, potentially more user-friendly command-line interface to GitHub
see cli.github.com and
this comparison.
This repository and its issue tracker is not for reporting problems with
GitHub.com web interface. If you have a problem with GitHub itself, please
contact Support.
Usage
$ hub clone rtomayko/tilt
#=> git clone https://github.com/rtomayko/tilt.git# or, if you prefer the SSH protocol:
$ git config --global hub.protocol ssh
$ hub clone rtomayko/tilt
#=> git clone git@github.com:rtomayko/tilt.git
Maintenance of this project is made possible by all the contributors and sponsors. If you'd like to sponsor this project and have your avatar or company logo appear below click here. 💙
Elevator Pitch
Rant time: You've heard it before, git is powerful, but what good is that power when everything is so damn hard to do? Interactive rebasing requires you to edit a goddamn TODO file in your editor? Are you kidding me? To stage part of a file you need to use a command line program to step…
Linux, MacOS, and Windows are supported with no additional dependencies
(Although if your system doesn't have an sh, you'll need to
choose a different shell.)
Errors are specific and informative, and syntax errors are reported along
with their source context.
Jump integrates with your shell and learns about your navigational habits by
keeping track of the directories you visit. It gives you the most visited
directory for the shortest search term you type.
Installation
Jump comes in packages for the following platforms.