Day Background Night Background
服务器优化zsh外观简易版

服务器优化zsh外观简易版

效果说明

配置完成后,终端大概会变成下面这种效果:

(myenv)  project

如果当前目录是 git 仓库,也会显示当前分支:

(myenv)  project git:(main)

如果 conda 环境是通过完整路径激活的,例如:

conda activate /path/to/conda/envs/myenv

默认可能会显示成:

(/path/to/conda/envs/myenv)  project git:(main)

下面的配置会把它优化成只显示环境名:

(myenv)  project git:(main)

一键配置命令

这个版本同时适合两种情况:

  • 有 root / sudo 权限的服务器:优先用 apt-get
  • 没有 root 权限的服务器:自动改用 conda install
# 1. 安装依赖
# 有 root/sudo 权限时使用 apt-get
# 没有权限时使用 conda 安装,不会修改系统目录

if command -v apt-get >/dev/null 2>&1 && [ "$(id -u)" = "0" ]; then
  apt-get update
  apt-get install -y zsh git curl tmux

elif command -v apt-get >/dev/null 2>&1 && command -v sudo >/dev/null 2>&1 && sudo -n true 2>/dev/null; then
  sudo apt-get update
  sudo apt-get install -y zsh git curl tmux

else
  conda install -y -c conda-forge zsh git curl tmux
fi

# 2. 备份原来的 zsh 配置
cp ~/.zshrc ~/.zshrc.bak.$(date +%Y%m%d_%H%M%S) 2>/dev/null || true

# 3. 安装 oh-my-zsh
if [ ! -d "$HOME/.oh-my-zsh" ]; then
  git clone https://github.com/ohmyzsh/ohmyzsh.git "$HOME/.oh-my-zsh"
fi

# 4. 写入 oh-my-zsh 基础配置
cat > ~/.zshrc <<'EOF'
export ZSH="$HOME/.oh-my-zsh"

ZSH_THEME="robbyrussell"

plugins=(git)

source $ZSH/oh-my-zsh.sh

# >>> conda initialize >>>
# 让 zsh 正确识别 conda activate
if command -v conda >/dev/null 2>&1; then
    __conda_setup="$(conda shell.zsh hook 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    fi
    unset __conda_setup
fi
# <<< conda initialize <<<
EOF

# 5. 让 conda prompt 只显示环境名,不显示完整路径
conda config --set changeps1 true
conda config --set env_prompt '({name}) '

# 6. 进入 zsh
exec zsh

只修复 conda 显示完整路径

如果你已经配置好了 zsh,只是 conda 环境显示成了完整路径:

(/path/to/conda/envs/myenv)  project git:(main)

可以只执行下面这几行:

conda config --set changeps1 true
conda config --set env_prompt '({name}) '

conda deactivate
conda activate /path/to/conda/envs/myenv

修复后应该变成:

(myenv)  project git:(main)

如果你的环境本身可以直接通过名字激活,也可以这样:

conda activate myenv

Tmux 终端复用器精简操作笔记

在远程计算节点执行高负载或长周期任务时,利用 Tmux 可确保 SSH 会话断开后任务不被异常终止。

1. Session 级别控制

  1. 实例化并命名一个全新 Session:
tmux new -s <name>
  1. 打印当前正在后台挂起的所有 Session 列表:
tmux ls
  1. 重新接入指定的后台 Session:
tmux a -t <name>
  1. 强制销毁指定的 Session:
tmux kill-session -t <name>

2. 核心概念与前缀键

  1. 所有的内部快捷键触发前,均需先输入前缀组合键。
  2. 默认前缀键为 Ctrl + b。操作方式为:同时按下 Ctrl 和 b,松开后再按后续功能键。

3. Window 级别控制

  1. 创建全新 Window:前缀键后按 c
  2. 焦点切换至下一个 Window:前缀键后按 n
  3. 焦点切换至上一个 Window:前缀键后按 p
  4. 通过数字索引跳转 Window:前缀键后按数字键,例如 0 或 1
  5. 销毁当前 Window:前缀键后按 &,随后按 y 确认

4. 挂起与脱离操作

  1. 将当前 Session 剥离至后台继续运行,并返回物理机终端:前缀键后按 d

5. 回滚、鼠标与复制体验优化

  1. 将常用体验配置写入 Tmux 配置文件:
cat >> ~/.tmux.conf <<'EOF'
set -g mouse on
set -g history-limit 100000
setw -g mode-keys vi
EOF

重新加载 Tmux 配置,使其立即生效:

tmux source-file ~/.tmux.conf

即完成配置。

服务器优化zsh外观简易版

https://ryanjxy123.github.io/post/share_somethings/env_configuration/zsh_config/

Author
Ryanjxy
Published at
May 5, 2026
Copyright
Ryanjxy