Account
Create a regular user with root privileges
# Operate with root account
adduser <username>
usermod -aG sudo <username> # Add user to sudo group
# Configure passwordless sudo
visudo
# Append to end of file
<username> ALL=(ALL) NOPASSWD:ALLzsh
Install fonts first
# Mac comes with it, no installation needed
sudo apt install zsh
sudo chsh -s /usr/bin/zsh $USER
# No initial configuration needed, configure later with Powerlevel10k
# oh-my-zsh, a zsh configuration framework
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# Powerlevel10k, an oh-my-zsh theme
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
echo 'source ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
# Restart shell to enter configurationPlugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# Enable plugins in ~/.zshrc
plugins=(git sudo z zsh-autosuggestions zsh-syntax-highlighting)Vim
Install nvim
MacOS
brew install neovim
# vim ~/.zshrc
alias vim="nvim"Ubuntu
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
# Raspberry Pi is Arm
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-arm64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
# vim ~/.zshrc
export PATH="$PATH:/opt/nvim-linux-x86_64/bin"
alias vim="nvim"
# sudo nvim
sudo ln -s /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim# required
mv ~/.config/nvim{,.bak}
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
vim # Will automatically download and install after startupOther Command Line Tools
bat: Enhanced cat
# macOS
brew install bat
alias cat="bat -pp"
# Linux
sudo apt install bat
alias cat='batcat -pp'
alias bat='batcat'eza: Enhanced ls
- Community-maintained fork of exa
# macOS
brew install eza
# Linux
sudo apt install eza
alias ls='eza --color=always --icons'
alias ll='eza -la --color=always --icons --git'
alias la='eza -la --color=always --icons --git'
alias lt='eza --tree --color=always --icons'
alias tree='eza --tree --color=always --icons --level=3'
alias ltree='eza -Tla --color=always --icons --git --level=2 --git-repos'
alias bigtree='eza -Tla --total-size --sort=size --color=always --icons --level=2'ncdu: Interactive disk usage analyzer, enhanced du
- 📊 Display directory and file space usage with interactive interface
- 🔍 Quickly locate large files/directories
- 🗑️ Support direct deletion of files/directories
# macOS
brew install ncdu
# Linux
sudo apt install ncdu
cd /path/to/dir
ncdu # Use arrow keys to browse, press d to delete selected itemduf: Beautiful df
- 🌈 Display all mount points in colorful tables
- 📏 Support sorting by columns
- 🖥 Auto-adapt to terminal width and theme
# macOS
brew install duf
dufbtop: Enhanced top
brew install btoptldr: Skip lengthy man documentation
brew install tldr
# example
tldr tarSSH Key
Generate SSH Key on client
# Windows PowerShell
ssh-keygen -t ed25519 -C "razer-wsl" -f $env:USERPROFILE\.ssh\id_ed25519_razer_wsl
# Ubuntu & MacOS
ssh-keygen -t ed25519 -C "razer-wsl" -f ~/.ssh/id_ed25519_razer_wsl
cat ~/.ssh/id_ed25519_razer_wsl.pubPython
Just install uv and you’re done
curl -LsSf https://astral.sh/uv/install.sh | shPython Environment Management with UV
If you want to start a python interactive window (REPL) anytime, use uv run python
Samba
Raspberry Pi PLEX server & SMB configuration
Install plex server, download Arm64 installation package from official website
sudo dpkg -i plexmediaserver_1.41.7.9823-59f304c16_arm64.debInstall and configure SMB
sudo apt install samba samba-common-bin
sudo mkdir -p /media/plex
sudo chown isumi:isumi /media/plex
sudo vim /etc/samba/smb.confAppend to end of SMB configuration file, can additionally set up home sharing
[homes]
comment = Home Directories
browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = no
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0775
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0775
# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# The following parameter makes sure that only "username" can connect
# to \\server\username
# This might need tweaking when using external authentication schemes
valid users = %S
[plex]
comment = Plex Media
path = /media/plex
browseable = yes
writeable = yes
only guest = no
create mask = 0777
directory mask = 0777
public = no
valid users = isumiCreate SMB account and start SMB service
# isumi is an existing Linux username
sudo smbpasswd -a isumi
sudo systemctl restart smbd
sudo systemctl enable smbdAccess \\IP\plex

