Skip to content

Instantly share code, notes, and snippets.

@Chord-Chen-30
Last active May 28, 2025 08:40
Show Gist options
  • Save Chord-Chen-30/5d84883ffe02c255f2e82199316d564e to your computer and use it in GitHub Desktop.
Save Chord-Chen-30/5d84883ffe02c255f2e82199316d564e to your computer and use it in GitHub Desktop.
Install zsh without root. Also, oh-my-zsh and 2 plugins (zsh-autosuggestions zsh-syntax-highlighting).
#!/bin/bash
# Referenced from https://gist.github.com/ZhaofengWu/f345652e994e3b68c309352a7610460f. Nice scripts.
# New feature: Add plugins zsh-autosuggestions and zsh-syntax-highlighting
# Set up your $HOME variable
# HOME=...
set -e
# OPTIONAL: zsh will not install without ncurses. IF your machine doesn't have ncurses, you need to install it first.
export CXXFLAGS=" -fPIC" CFLAGS=" -fPIC" CPPFLAGS="-I${HOME}/include" LDFLAGS="-L${HOME}/lib"
wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.2.tar.gz
tar -xzvf ncurses-6.2.tar.gz
cd ncurses-6.2
./configure --prefix=$HOME --enable-shared
make
make install
cd .. && rm ncurses-6.2.tar.gz && rm -r ncurses-6.2
# install zsh itself
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1
cd zsh
./configure --prefix=$HOME
make
make install
cd .. && rm zsh.tar && rm -r zsh
# OPTIONAL
echo -e "export SHELL=~/bin/zsh\nexec ~/bin/zsh -l" >> ~/.bash_profile # or chsh
# To make shell find newly installed zsh for this time.
export PATH=$HOME/bin:$PATH
# OPTIONAL: install oh-my-zsh
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
# Add plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# Modify your ~/.zshrc:
# plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
@Hanson-Liuhx
Copy link

Wonderful!

@MrPetrichor
Copy link

Good job, Chord-Chen. Catch you torching fish during working!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment