ZSH

“The Z shell is a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. ZSH is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.”

- Wikipedia

Customization Features

This customization guide will do the following changes:

  • Use ZSH as your default terminal. (can be disabled by adding --install-only flag)
  • Install oh-my-zsh, a ZSH framework.
  • Install powerlevel10k, a custom theme for ZSH.
  • Install useful ZSH plugins to help you become more efficient in the terminal.
  • Replace some utilities such as cat, ls, and cd with bat, eza, zoxide, and more to increase your productivity.

This customization guide will also help you install/enable the following plugins:

PluginDescription
command-not-foundProvide suggested packages to be installed if a command is not found.
fzfEnable fuzzy auto-completion.
ghAdd completions for gh GitHub CLI.
poetryAdd completions for poetry, a Python dependency manager.
pythonAdd useful aliases for python operations.
qrcodeGenerate QR codes from your terminal.
ssh-agentAutomatically start ssh-agent.
sudoPrefix current/previous command with sudo by pressing <ESC> twice.
tmuxAdd useful aliases for tmux terminal multiplexer.
urltoolsEncode/Decode URL strings from your terminal.
wdJump or “warp” to directories quickly.
you-should-useReminds you of existing aliases .
zsh-autosuggestionsA plugin that will auto suggest commands based on your zsh history.
zsh-interactive-cdPress <TAB> when cd’ing to launch fzf.
zsh-navigation-toolsBetter navigation in zsh.
zsh-syntax-highlightingA plugin that will provide syntax highlighting in your zsh shell.

It will also install the following packages for productivity:

PackageDescription
batA modern replacement for cat. (aliased to cat by default)
ezaA modern replacement for ls. (aliased to ls by default)
fdA file searcher.
fzfA fuzzy finder.
gitA version control system.
ripgrepA text searcher.
tealdeerSimplified, example-based, and community-driven man pages.
tmuxA terminal multiplexer.
zoxideA smarter cd command. (aliased to cd by default)

Installation

The installation script has been tested on the following platforms:

Automatic Installation & Customization

TIP

It is recommended that you install a nerd font before running the customization script. I personally use JetBrainsMono Nerd Font, but you can use a different one.

mkdir -p ~/.local/share/fonts/JetBrainsMono
cd ~/.local/share/fonts/JetBrainsMono
curl -LO "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/JetBrainsMono.zip"
unzip JetBrainsMono.zip
rm JetBrainsMono.zip

After running the above commands, set the font to JetBrainsMono Nerd Font Mono in GNOME Terminal. You might need to restart your terminal for the font to show up.

Download and run the install script using either of the following commands:

  • Using curl:
    bash <(curl -sSf "https://raw.githubusercontent.com/Chris1320/SetupGuides-ZSH/main/install") install
  • Using wget:
    bash <(wget -q -O - "https://raw.githubusercontent.com/Chris1320/SetupGuides-ZSH/main/install") install

To disable changing the default shell and opening ZSH, run with --install-only flag. Example:

bash <(curl -sSf "https://raw.githubusercontent.com/Chris1320/SetupGuides-ZSH/main/install") install --install-only

0 items under this folder.