新windows机器配置linux和终端
💻 环境配置指南
1. 安装 Scoop (Windows 包管理器)
在 非管理员终端 执行以下命令进行 Scoop 的安装:
1.1. 设置执行策略并安装
# 设置执行策略为 RemoteSigned,仅对当前用户有效
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 执行安装脚本
Invoke-RestMethod -Uri [https://get.scoop.sh](https://get.scoop.sh) | Invoke-Expression
1.2. 配置 Aria2 加速下载
ℹ️ 提示: 使用 Aria2 可以显著加速
scoop install git等大型软件包的下载速度。
# 安装 Aria2 下载器
scoop install aria2
# 配置 Aria2:单任务最大连接数设置为 32
scoop config aria2-split 32
# 配置 Aria2:单服务器最大连接数设置为 16
scoop config aria2-max-connection-per-server 16
# 配置 Aria2:最小文件分片大小设置为 1M
scoop config aria2-min-split-size 1M
2. Windows Subsystem for Linux (WSL) 2. Windows 子系统 for Linux (WSL)
在终端输入 wsl,若未安装任何发行版,系统会提示安装。
PS C:\Users\kwz> wsl
适用于 Linux 的 Windows 子系统没有已安装的分发。
可通过安装包含以下说明的分发来解决此问题:
使用 “wsl.exe --list --online” 列出可用的分发
和 “wsl.exe --install <Distro>” 进行安装。
2.1. 列出可用发行版
⚠️ 注意: 可能需要配置网络代理 ('一些魔法') 才能成功列出发行版。
wsl.exe --list --online
2.2. 安装发行版 (以 Debian 为例)
通过命令行安装(可能需要重启才能生效):
wsl.exe --install Debian
或者,直接通过 Microsoft Store 搜索 Debian 并安装 (安装时请确保关闭网络代理)。
2.3. 检查安装状态
PS C:\Users\kwz> wsl -l -v
NAME STATE VERSION
* Debian Running 2
2.4. 启动特定发行版
如果有多个发行版,可以使用 -d 选项指定启动:
wsl -d <name>
3. Zsh 配置 (以 Debian/WSL 为例)
3.1. 安装 Zsh
sudo apt update
sudo apt install zsh -y
# 检查版本
zsh -v
安装后,系统会跳出一个界面,通常选择 2 进行格式化安装(创建默认配置文件)。
3.2. 检查可用 Shell
cat /etc/shells
# output (示例)
# /etc/shells: valid login shells
/bin/sh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dash
/usr/bin/tmux
/bin/zsh
/usr/bin/zsh
3.3. 设置 Zsh 为默认 Shell
chsh -s /usr/bin/zsh
3.4. 核心 .zshrc 配置要点
以下是需要替换到 .zshrc 文件中的核心配置要求:
1. 提示符 (Prompt) 设置
3.4. 核心 .zshrc 配置要点
以下是需要替换到 .zshrc 文件中的核心配置要求:
1. 提示符 (Prompt) 设置
- 自定义颜色显示:
- 绿色用户名 (
filament) - 黄色主机名 (
EVO-X1) - 蓝色当前路径 (如
~或/home/filament)
- 绿色用户名 (
2. 历史记录管理
目的: 高效管理命令历史,避免重复,提升搜索体验。
- 内存历史: 最多保存 10,000 条命令历史。
- 磁盘历史: 写入磁盘的历史也保留 10,000 条。
- 历史文件路径:
~/.zsh_history - 启用优化选项:
histignorealldups:新命令若已存在,则删除旧重复项。sharehistory:多个终端窗口共享历史(实时同步)。hist_save_no_dups:保存时不保留重复。hist_reduce_blanks:自动去除命令前后的多余空格。
3. 快捷键绑定 (Key Bindings) - Emacs 风格
Ctrl+A→ 跳转到行首Ctrl+E→ 跳转到行尾Ctrl+U→ 删除从光标到行首Ctrl+K→ 删除从光标到行尾Ctrl+R→ 反向搜索历史命令Ctrl+W→ 删除前一个单词Alt+Backspace→ 按词向前删除
4. 补全系统 (Completion)
- 高亮显示: 补全过程启用颜色高亮(目录蓝色、可执行文件绿色等)。
- 选择菜单: 自动进入选择菜单模式(按
Tab可上下选择)。 - 匹配策略:
- 支持模糊匹配和大小写不敏感补全。
- 小写匹配大写(如
git co→git commit)。 - 支持
.、_、-分隔符模糊匹配。
- 特殊命令优化:
kill命令补全时显示进程列表,并红色高亮 PID。
5. 语法高亮 (Syntax Highlighting)
- 加载插件:
zsh-syntax-highlighting - 实时着色:
- 正确命令 → 绿色
- 错误/不存在命令 → 红色
- 文件名、参数等 → 不同颜色区分
# ===================================================
# 提示符设置:显示用户名、主机名和当前路径
# ===================================================
# 加载颜色支持
autoload -U colors
colors
# 自定义 PS1 提示符
# 格式说明:
# %F{green}%n%f - 用户名 (绿色)
# @ - 分隔符
# %F{yellow}%m%f - 主机名 (黄色)
# : - 分隔符
# %F{blue}%~%f - 当前路径 (~ 表示 HOME 目录) (蓝色)
# $ - 普通用户提示符(root 显示 #)
PS1='%F{green}%n%f@%F{yellow}%m%f:%F{blue}%~%f$ '
# ===================================================
# 历史记录设置
# ===================================================
# 设置内存中保存的历史命令数量
HISTSIZE=10000
# 设置写入磁盘的最大历史命令数量
SAVEHIST=10000
# 指定历史记录文件的存储位置
HISTFILE=~/.zsh_history
# 启用历史选项:
# histignorealldups - 新命令若已在历史中,则删除旧的重复项
# sharehistory - 多个终端共享历史记录(实时同步)
# hist_save_no_dups - 保存时自动去重
# hist_reduce_blanks - 删除命令前后空格再记录
setopt histignorealldups sharehistory hist_save_no_dups hist_reduce_blanks
# ===================================================
# 快捷键设置
# ===================================================
# 使用 Emacs 风格的快捷键(即使 EDITOR 设为 vi)
# 常用组合:
# Ctrl+A → 跳转到行首
# Ctrl+E → 跳转到行尾
# Ctrl+U → 删除从光标到行首的内容
# 但是我这里的Ctrl+U 是删除整行的内容 需要在下面手动指定
# Ctrl+K → 删除从光标到行尾的内容
# Ctrl+R → 反向搜索历史命令
bindkey -e
bindkey '^U' backward-kill-line
# ===================================================
# 补全系统设置(现代智能补全)
# ===================================================
# 加载 zsh 的自动补全系统
autoload -Uz compinit
# 初始化补全系统(必须调用,否则 Tab 补全功能受限)
compinit
# 启用 dircolors 颜色规则(用于 ls 和补全着色)
eval "$(dircolors -b)"
# 补全过程中显示描述信息,例如 "specify: directory name"
zstyle ':completion:*' auto-description 'specify: %d'
# 定义补全器顺序:
# _expand - 展开别名或 ~ 等
# _complete - 正常补全
# _correct - 拼写纠错(如 git commt → commit)
# _approximate - 模糊匹配(允许打字错误)
zstyle ':completion:*' completer _expand _complete _correct _approximate
# 当找到补全项时,显示提示文字:"Completing xxx"
zstyle ':completion:*' format 'Completing %d'
# 不对补全组使用额外名称分组显示
zstyle ':completion:*' group-name ''
# 自动进入选择菜单模式
#zstyle ':completion:*' menu select=2
zstyle ':completion:*' menu select=2
# 默认使用菜单模式进行补全 ,直接使用方向键选择
#zstyle ':completion:*:default' menu yes select
# 使用 LS_COLORS 中的颜色规则对补全列表进行着色
# (例如:目录蓝色、可执行文件绿色等)
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
# ❗注意:以下这行已被移除,因为它会清空所有颜色!
# zstyle ':completion:*' list-colors '' ← 错误配置,会导致无颜色
# 在补全列表较多时显示提示信息
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
# 匹配策略:
# '' - 精确匹配
# m:{a-z}={A-Z} - 小写可匹配大写(大小写不敏感)
# m:{a-zA-Z}={A-Za-z} - 支持驼峰/下划线互换(部分模糊)
# r:|[._-]=* r:|=* l:|=* - 允许部分模糊匹配,如 "git co" 匹配 "git checkout"
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
# 在滚动选择时显示当前选中项的位置
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
# 禁用旧式的 compctl 命令(推荐使用新的 zstyle 方式)
zstyle ':completion:*' use-compctl false
# 启用详细输出模式,显示更多补全信息
zstyle ':completion:*' verbose true
# 为 kill 命令定制补全:显示进程颜色(红色高亮 PID)
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
# 为 kill 命令指定要显示的进程信息格式
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
# ===================================================
# 语法高亮(输入命令时实时着色)
# ===================================================
# 加载 zsh-syntax-highlighting 插件
# 功能:正确命令绿色,错误命令红色,提升可读性和安全性
# 原始 https://github.com/zsh-users/zsh-syntax-highlighting.git
# 镜像站 git clone https://githubfast.com/zsh-users/zsh-syntax-highlighting.git
# 在 ~/.zsh/zsh-syntax-highlighting 目录下,需要创建.zsh文件夹
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# ===================================================
# 别名与实用工具
# ===================================================
# 启用 ls 命令的颜色高亮显示
alias ls='ls --color=auto'
# 常用别名:以长格式列出文件,并启用颜色
alias ll='ls -l --color=auto'
# >>> mamba initialize >>>
# !! Contents within this block are managed by 'micromamba shell init' !!
export MAMBA_EXE='/mnt/hdd-ws/users/filament/.local/bin/micromamba'
export MAMBA_ROOT_PREFIX='/mnt/hdd-ws/users/filament/.local/share/mamba'
__mamba_setup="$("$MAMBA_EXE" shell hook --shell zsh --root-prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__mamba_setup"
else
alias micromamba="$MAMBA_EXE" # Fallback on help from micromamba activate
fi
unset __mamba_setup
# <<< mamba initialize <<<
# 绑定 Ctrl+Left 和 Ctrl+Right 用于跳过单词
bindkey "\e[1;5D" backward-word # Ctrl+Left
bindkey "\e[1;5C" forward-word # Ctrl+Right

浙公网安备 33010602011771号