本文最后更新于 2026年4月12日 上午
zsh + Starship + Conda + uv + Zellij 配置
一、前言
1.1 背景介绍
在使用 Linux 服务器时,很多情况下我们并没有 sudo 权限,无法使用系统的包管理器安装软件。但这并不意味着我们不能拥有一个美观、功能强大的终端环境。本文将详细介绍如何在没有 sudo 权限的情况下,从零开始配置一个专业级的终端环境。
1.2 最终效果
配置完成后,你的终端将具备以下特性:
- 美观的提示符:显示用户名、主机名、当前目录、Git 分支、Python 版本、执行时间等信息
- 智能命令补全:支持语法高亮和命令建议
- 快速包管理:使用 uv 加速 Python 包安装
- 高效多会话管理:使用 Zellij 管理多个终端会话
- 优雅的环境隔离:使用 Conda 管理不同的 Python 环境
本文所有软件都将安装到用户目录下(~/.local 或 ~),无需任何系统权限。
二、环境准备
2.1 检查现有工具
首先,检查系统中是否已经安装了 zsh:
1 2 3 4 5 6 7 8
| zsh --version
git --version
curl --version
|
如果提示命令不存在也不用担心,我们可以从源码编译安装 zsh。
2.2 创建必要目录
1 2 3 4 5
| mkdir -p ~/.local/bin
mkdir -p ~/.config
|
三、安装并配置 zsh
3.1 方式一:系统已有 zsh
如果系统已经安装了 zsh,直接跳到安装 Oh My Zsh 部分。
3.2 方式二:从源码编译安装(无 sudo)
如果系统没有 zsh,我们需要从源码编译安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| curl -fsSL https://sourceforge.net/projects/zsh/files/zsh/5.9/zsh-5.9.tar.xz/download -o zsh.tar.xz
tar -xf zsh.tar.xz cd zsh-5.9
./configure --prefix=$HOME/.local
make -j$(nproc)
make install
|
编译安装完成后,zsh 可执行文件位于 ~/.local/bin/zsh。
3.3 配置 bash 自动启动 zsh
由于没有 sudo 权限,我们无法使用 chsh 命令更改默认 shell。但可以通过修改 ~/.bashrc,在 bash 启动时自动切换到 zsh。
编辑 ~/.bashrc 文件,在文件末尾添加:
1 2 3 4 5
| export PATH="$HOME/.local/bin:$PATH"
exec zsh
|
保存后,运行以下命令使配置生效:
首次启动 zsh 时,会看到 zsh 的配置向导,选择 0 退出即可。
四、安装 Oh My Zsh
4.1 Oh My Zsh 简介
Oh My Zsh 是一个开源的、社区驱动的 zsh 配置管理框架。它提供了丰富的主题、插件系统,可以大大提升终端的使用体验。
4.2 安装 Oh My Zsh
1
| sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
安装脚本会自动检测 zsh 并创建必要的配置文件。安装完成后,你的 zsh 已经可以使用基本的提示符了。
4.3 安装常用插件
Oh My Zsh 强大的插件系统可以显著提升我们的工作效率。下面安装几个最实用的插件:
zsh-autosuggestions(命令建议)
这个插件会根据你的命令历史自动建议补全命令,就像浏览器地址栏的自动补全一样。
1 2
| git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions.git \ ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
|
zsh-syntax-highlighting(语法高亮)
这个插件会在你输入命令时进行语法高亮,正确命令显示绿色,错误命令显示红色。
1 2
| git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting.git \ ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
|
4.4 配置插件
编辑 ~/.zshrc 文件,找到 plugins=(git) 这一行,修改为:
1
| plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
|
保存后,使配置生效:
现在你可以尝试输入之前使用过的命令,会看到灰色的自动建议,按 → 键即可补全。
五、安装 Starship 提示符
5.1 为什么选择 Starship
Starship 是一个用 Rust 编写的跨平台提示符工具,具有以下优势:
- 轻量快速:用 Rust 编写,启动速度极快
- 高度可定制:通过简单的配置文件即可自定义提示符样式
- 丰富的集成:原生支持 Git、Python、Node.js、Docker 等众多工具
- 跨平台:支持 Linux、macOS、Windows
5.2 安装 Starship
方法一:官方安装脚本
1
| curl -fsSL https://starship.rs/install.sh | sh -s -- -b ~/.local/bin
|
方法二:使用 npm 安装
如果官方脚本不支持你的系统架构,可以尝试:
方法三:直接下载二进制文件
1 2 3 4 5 6 7 8 9
| curl -fsSL https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-musl.tar.gz \ -o starship.tar.gz
tar -xzf starship.tar.gz
mv starship ~/.local/bin/
|
验证安装
1
| ~/.local/bin/starship --version
|
应该看到类似输出:
1 2 3 4 5
| starship 1.24.2 branch:master commit_hash:33f7077... build_time:2025-12-30 19:14:09 +00:00 build_env:rustc 1.92.0...
|
5.3 配置 Starship
初始化 Starship
编辑 ~/.zshrc 文件,在文件开头添加:
1 2
| eval "$(starship init zsh)"
|
创建配置文件
创建配置文件:
1 2
| mkdir -p ~/.config nano ~/.config/starship.toml
|
推荐配置
以下是一个美观的配置示例,显示用户名、主机名、目录、Git 分支、Python 版本和命令执行时间:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
format = """ $username$directory$git_branch$python$cmd_duration$line_break$character"""
[username] show_always = true style_user = "bold green" style_root = "bold red"
[directory] truncation_length = 3 truncate_to_repo = true format = "[$path]($style)[$read_only]($read_only_style) " style = "bold cyan" read_only = " 🔒" read_only_style = "red" home_symbol = "~"
[git_branch] symbol = " " format = "on [$symbol$branch]($style) " style = "bold purple" truncation_symbol = "" info_symbol = "" modified_symbol = ""
[git_status] format = '([\[$all_status$ahead_behind\]]($style) )' style = "bold yellow" conflicted = "⚔️ " ahead = "⇡${count}" behind = "⇣${count}" diverged = "⇕⇡${ahead_count}⇣${behind_count}" untracked = "?${count}" stashed = "📦" modified = "!${count}" staged = '+${count}' renamed = "»${count}" deleted = "-${count}"
[python] symbol = " via 🐍 v" format = "$symbol($environment)($version) " style = "bold yellow" pyenv_version_name = false pyenv_prefix = ""
[cmd_duration] min_time = 500 format = "took [$duration]($style) " style = "bold yellow"
[character] success_symbol = "[❯](bold green)" error_symbol = "[❯](bold red)" vimcmd_symbol = "[❮](bold green)"
[conda] symbol = " 🏠" format = "[$symbol$environment]($style) " style = "bold green" truncation_length = 1
[time] format = "🕐 [$time]($style) " style = "bold white" disabled = false time_format = "%H:%M" utc_time_offset = "local"
[docker_context] symbol = " 🐳 " format = "[${symbol}${context}]($style) " style = "bold blue"
[nodejs] symbol = " ⬢ " format = "[$symbol($version)]($style) " style = "bold green" disabled = true
[battery] full = " ⚡-full" charging = " ⚡charging" discharging = " ⚡discharging" unknown = " ⚡?" empty = " ⚡empty" display_gone = false format = "[$symbol$percentage]($style) " style = "bold red" threshold = 30 disabled = true
[package] symbol = " 📦 " format = "[$symbol$version]($style) " style = "208 bold" disabled = true
|
保存配置文件后,运行:
5.4 使用预设主题
Starship 提供了多种预设主题,可以快速应用漂亮的样式:
1 2 3 4 5
| starship preset --list
starship preset gruvbox-rainbow > ~/.config/starship.toml
|
常用的预设主题包括:
gruvbox-rainbow:彩虹色系,适合深色终端
Tokyo Night:东京夜主题,现代化设计
One Dark:VS Code One Dark 风格
Dracula:经典的 Dracula 主题
5.5 最终效果
配置完成后,你的提示符将显示类似以下信息:
1
| ljk in ~/projects on main via 🐍 v3.12.4 ❯
|
或者更丰富的版本:
1
| ljk in ~/projects on main via 🐍 v3.12.4 took 2s ❯
|
六、安装 Miniconda
6.1 为什么需要 Conda
Conda 是一个开源的包管理和环境管理系统,特别适合数据科学和机器学习工作:
- 环境隔离:可以为不同项目创建独立的 Python 环境
- 跨平台:支持 Linux、macOS、Windows
- 丰富生态:预编译的二进制包,无需编译
- 版本管理:轻松管理 Python 版本和包依赖
6.2 安装 Miniconda
Miniconda 是 Conda 的最小化版本,只包含必要的组件,比完整版 Anaconda 小得多。
1 2 3 4 5 6 7 8 9 10 11
| curl -fsSL https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \ -o ~/miniconda.sh
bash ~/miniconda.sh -b -p ~/.miniconda3
rm ~/miniconda.sh
|
6.3 初始化 Conda
1 2 3 4 5
| ~/.miniconda3/bin/conda init zsh
source ~/.zshrc
|
6.4 基础配置
1 2 3 4 5 6 7 8 9 10 11
| conda --version
conda config --set auto_activate_base false
conda config --add channels conda-forge
conda config --set channel_priority strict
|
6.5 常用 conda 命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| conda create -n myenv python=3.11
conda activate myenv
conda deactivate
conda env list
conda env remove -n myenv
conda install numpy pandas
conda search numpy
conda update numpy
conda env export > environment.yaml
conda env create -f environment.yaml
|
6.6 配置 conda 源(国内用户)
如果在国内使用,建议配置国内镜像源加速下载:
1 2 3 4 5 6 7 8
| conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2
conda config --set show_channel_urls yes
|
七、安装 uv 加速工具
7.1 为什么选择 uv
uv 是由 Astral 开发的超快 Python 包安装器,用 Rust 编写,性能比 pip 快 10-100 倍:
- 极速安装:并行下载和安装包
- 兼容 pip:支持 pip 的所有命令和语法
- 环境管理:内置虚拟环境管理功能
- 锁文件:支持依赖锁定,确保环境一致性
7.2 安装 uv
方法一:官方安装脚本(推荐)
1
| curl -LsSf https://astral.sh/uv/install.sh | sh
|
默认安装到 ~/.cargo/bin/uv,该目录已自动添加到 PATH。
方法二:使用 pip 安装
方法三:使用 conda 安装
1
| conda install -c conda-forge uv
|
7.3 验证安装
7.4 常用 uv 命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| uv pip install numpy pandas
uv pip install -r requirements.txt
uv venv myproject
source myproject/bin/activate
myproject\Scripts\activate
uv pip freeze > requirements.txt uv pip sync requirements.txt
uv pip uninstall numpy
uv pip install --upgrade numpy
uv pip list
|
7.5 uv 与 conda 配合使用
uv 和 conda 可以配合使用,各取所长:
1 2 3 4 5 6 7 8 9
| conda create -n ml python=3.11 pytorch torchvision -c pytorch
uv pip install black isort ruff
conda activate ml uv pip install transformers
|
八、安装 Zellij 终端复用器
8.1 为什么选择 Zellij
Zellij 是一个现代化的终端多路复用器,用 Rust 编写,比 tmux 更现代,比 screen 更强大:
- 开箱即用:零配置,智能默认设置
- 现代化 UI:支持浮动窗格、标签页分隔
- 内置布局:自动保存和恢复工作区布局
- 插件支持:可扩展的插件系统
- Web UI:可以通过浏览器访问终端会话
8.2 安装 Zellij
1 2 3
| curl -fsSL https://raw.githubusercontent.com/zellij-org/zellij/main/install.sh \ | sh -s -- -d ~/.local/bin
|
8.3 配置自动启动
为了让每次启动 zsh 时自动进入 Zellij,我们可以修改 ~/.bashrc 文件。
注意:这部分修改在 ~/.bashrc 而不是 ~/.zshrc 中,因为 Zellij 应该在 zsh 启动后立即启动。
编辑 ~/.bashrc,找到我们之前添加的 zsh 启动行,修改为:
1 2 3 4 5
| export PATH="$HOME/.local/bin:$PATH"
exec zellij attach -c -d always 2>/dev/null || exec zsh
|
保存后,运行:
8.4 配置 Zellij
创建配置文件:
1 2
| mkdir -p ~/.config/zellij nano ~/.config/zellij/config.yaml
|
推荐配置
以下是一个功能丰富的配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
theme: gruvbox
ui: pane_frames: omitted: true sessions_dir: "~/.local/share/zellij/sessions"
statusbar: enabled: true left: - session_name - mode - sync_panes right: - cpu - ram - time
tab_bar: enabled: true show_index: true show_aliases: true
mouse_mode: true
scrollbar: enabled: true symbol: " ▐"
default_shell: command: "/usr/bin/zsh" args: ["-l"]
keybinds: unbind: true
bind: "Alt-h": MoveFocus Left "Alt-j": MoveFocus Down "Alt-k": MoveFocus Up "Alt-l": MoveFocus Right
"Alt-Left": Resize Left "Alt-Down": Resize Down "Alt-Up": Resize Up "Alt-Right": Resize Right
"Alt-n": NewPane "Alt-d": NewPane Right "Alt-S-d": NewPane Down "Alt-w": ClosePane "Alt-v": TogglePaneFullscreen "Alt-f": TogglePaneFrames
"Alt-t": NewTab "Alt-q": GoToTab 0 "Alt-1": GoToTab 1 "Alt-2": GoToTab 2 "Alt-3": GoToTab 3 "Alt-4": GoToTab 4
"Alt-c": CopyToClipboard "Alt-v": PasteFromClipboard
"Alt-a": { Toggle: uiPlusZellijMode }
"Alt-a d": Detach
"Alt-Left-tab": PreviousTab "Alt-Right-tab": NextTab "Alt--": ToggleActiveSyncTab "Alt-s": ToggleStatus
"/": { Toggle: Search }
"Alt-l": ClearScreen
plugins:
|
保存配置文件后,运行:
8.5 Zellij 常用快捷键
基础操作
| 快捷键 |
功能 |
Alt-n |
新建窗格 |
Alt-d |
水平分屏(新建右窗格) |
Alt-S-d |
垂直分屏(新建下窗格) |
Alt-w |
关闭当前窗格 |
Alt-v |
切换窗格全屏 |
Alt-q |
退出 Zellij |
导航操作
| 快捷键 |
功能 |
Alt-h |
聚焦左侧窗格 |
Alt-j |
聚焦下方窗格 |
Alt-k |
聚焦上方窗格 |
Alt-l |
聚焦右侧窗格 |
Alt-t |
新建标签页 |
Alt-1~4 |
切换到指定标签页 |
会话管理
| 快捷键 |
功能 |
Ctrl-a |
进入 Zellij 命令模式 |
Ctrl-a d |
分离当前会话 |
Alt-a |
打开快捷键菜单 |