⚠️ Pre-requisites


Package Manager

Daily Apps


Terminal & Shell Setup


Terminal Productivity Tools


Display of Icons

Make sure you install one of the Nerd Fonts to have icons display correctly inside your terminal. It is strongly recommended to complete Terminal & Shell Setup first!

  • eza - ls replacement
  • xcp - cp replacement
  • zoxide - cd replacement
  • bat - cat replacement
  • Atuin - history replacement
  • joshuto - Terminal File Manager
  • dua - Disk Usage Analyser
  • brew install btop - htop/top replacement
  • brew install xh - partial curl replacement
  • navi - interactive command cheatsheet, man replacement
brew install navi # Installation
 
echo "# === navi configuration by Xinyang ===" >> ~/.zshrc
# To have the ability to override default parameter values 
echo 'navi="navi --fzf-overrides-var '\''--no-select-1'\''"' >> ~/.zshrc 
# Shell integration, so can we use Ctrl-G to run the program
echo -e 'eval "$(navi widget zsh)" \n' >> ~/.zshrc
 
# Add my cheatsheets, re-run this command for updates!
navi repo add https://github.com/xy-241/cli-cheat
 
navi fn welcome # Config Page
  • brew install tealdeer - man replacement
  • fzf - grep replacement
brew install fzf # Installation 
 
cat <file_name> | fzf -m # multi-line select
 
# Fuzzy search files with file preview
brew install chafa # To have image rendered in terminal
fzf --preview '<path_to_preview.sh> {}' # Refer to https://github.com/junegunn/fzf?tab=readme-ov-file#previewing-an-image for more information
  • procs - ps replacement
  • brew install pueue & pueued -d to start - cli process manager
  • fastfetch
brew install fastfetch
# Add the following to the start of .zshrc
fastfetch --logo <ABSOLUTE_PATH_TO_LOGO_FILE> --logo-width 70 --logo-height 30 --logo-type iterm
  • stow - dotfile manager
brew install stow
  • asciinema & agg - terminal recording & convert .cast to gif
# asciinema Installation 
brew install asciinema 
 
asciinema rec demo.cast # Record
asciinema play demo.cast # Play a recorded session
 
 
# agg Installation
cargo install --git https://github.com/asciinema/agg 
 
# Convert .cast to gif, --font-family should be the same font as the terminal font
agg --font-family "FiraMono Nerd Font" demo.cast a.gif
  • brew install watch
  • Custom bash commands (to be added to .zshrc)
# cht.sh shortcut
h() {
	curl cht.sh/$1
}

Programming Language Setup


Software Engineering Tools


Virtualisation Tools


Cloud Computing


#!/bin/bash
brew install awscli
echo >> ~/.zshrc
echo "# === AWS Cli configuration by Xinyang" >> ~/.zshrc
echo "export AWS_PROFILE=<DEFAULT_PROFILE_NAME>" >> ~/.zshrc
echo "export AWS_REGION=ap-southeast-1" >> ~/.zshrc
echo >> ~/.zshrc
aws configure # Auth CLi
  • pipx install checkov
  • pipx install ddtrace

Networking


  • cloudflared
  • q - dig replacement
  • Ngrok
  • File Sharing
  • brew install telnet
  • basher install rauchg/wifi-password - get the password for the WiFi you’re currently logged onto, make the following changes to the installed bash script at $HOME/.basher/cellar/bin/wifi-password.sh$
# Comment out the below
ssid="`$airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'`"
 
# Add in the following
ssid=`networksetup -getairportnetwork en0 | awk -F": " '{print $2}'`
# Generate a random MAC address
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
 
# Assign new MAC address to a network interface card
# MAC address reverts to the original after rebooting
sudo ifconfig <interface_name> ether <new_MAC_address>

Some other useful tools

Hardware Tools


OS Config


#!/bin/bash
sudo scutil --set HostName mac
sudo scutil --set LocalHostName mac

Cheatsheet