An opinionated guide to an ideal command line environment
- Terminator
- Linuxbrew: http://linuxbrew.sh/
- Iterm
- Brew: https://brew.sh/
ZSH
https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH
Linux
# Linux
sudo apt-get install zsh
# MacOS
brew install zsh zsh-completions
chsh -s $(which zsh)
Oh-my-zsh
https://github.com/robbyrussell/oh-my-zsh#basic-installation
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Essential Oh-my-ZSH plugins
plugins=(
docker
docker-compose
git
sudo
zsh-autosuggestions
mvn
node
kubectl
zsh-better-npm-completion
spring
golang
)
## TODO: split this into language specific section
-
zsh-autosuggestions:
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
JQ: JSON prettifier, powerful data extraction tool (built with C)
https://stedolan.github.io/jq/download/
sudo apt install jq
brew install jq
Pup: HTML data extraction (built with Golang)
https://github.com/ericchiang/pup#install
go get github.com/ericchiang/pup
brew install https://raw.githubusercontent.com/EricChiang/pup/master/pup.rb
XMLStarlet: XML data extraction (written in C)
(do not recommend because its not very intuitive)
sudo apt search xmlstarlet
FZF: Fuzzy search over commandline history and file path (built with Golang)
https://github.com/junegunn/fzf#installation
brew install fzf
# To install useful key bindings and fuzzy completion:
$(brew --prefix)/opt/fzf/install
RipGrep: Faster `grep` (built with Rust)
https://github.com/BurntSushi/ripgrep#installation
brew install ripgrep
sudo apt install ripgrep
FD: Faster `find` (built with Rust)
https://github.com/sharkdp/fd#installation
brew install fd
# Linux
# https://github.com/sharkdp/fd/releases
- Note: This can be use in combination with FZF to search and navigate through directory tree even faster
Exa / LSD: Improved `ls` (built with Rust)
Both Exa and LSD are rust implementation of gnu `ls` command The different is that Exa is **NOT** in active development thus I would recommend using LSD insteadhttps://github.com/Peltoche/lsd#installation
brew install lsd
cargo install lsd
alias ls=lsd
https://github.com/ogham/exa#installation
brew install exa
cargo install exa
Bat: Improved `cat` (built with Rust)
https://github.com/sharkdp/bat#installation
brew install bat
cargo install bat
FastMod: Improved `sed` (built with Rust)
Facebook awesome code refactoring tool using Rust regex (same lib as FD and Ripgrep)See Also: https://github.com/facebook/codemod, https://github.com/facebookarchive/pfff/
https://github.com/facebookincubator/fastmod
cargo install fastmod
Mycli: Commandline `mysql` with autocorrect (built with Python)
https://github.com/dbcli/mycli#quick-start
brew install mycli
sudo apt install mycli
-
MSSQL / SQL Server: https://github.com/dbcli/mssql-cli#mssql-cli
- More information on usages, tips and tricks HERE