调整你的终端

2025-06-07

调整你的终端

你在你的终端上花费了相当多的时间(其他人也使用它)。如何定制它,让你的终端更有趣,或者至少更美观?
我会向你展示我的方法。我将使用 Fedora Linux 作为示例,但你可以使用任何发行版或 MacOS。

入门

安装 ZSH 来替换 Bash。在 Fedora 中,使用 dnf 可以轻松实现:

sudo dnf install -y zsh # Install
chsh -s $(which zsh)    # set as default
zsh                     # start zsh
Enter fullscreen mode Exit fullscreen mode

安装oh-my-shell插件框架:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Enter fullscreen mode Exit fullscreen mode

你应该处于这种状态:
哦我的天啊

定制

功率级别10k

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Enter fullscreen mode Exit fullscreen mode

然后您需要在 ~/.zshrc 中选择此主题:

ZSH_THEME="powerlevel10k/powerlevel10k"
Enter fullscreen mode Exit fullscreen mode

安装 nerd 字体以在 shell 中显示特殊字形:

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
Enter fullscreen mode Exit fullscreen mode

你的 shell 现在看起来应该是这样的:
PowerLevel9k

我的 Powerlevel9k 配置中还有一些其他设置。我把它们粘贴到这里,方便您参考或作为参考。

# Prompt elements
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon dir dir_writable vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time background_jobs nvm rvm pyenv time)
## OS Icon
POWERLEVEL9K_OS_ICON_BACKGROUND="white"
POWERLEVEL9K_OS_ICON_FOREGROUND="blue"
## VCS
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='black'
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='119'
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='black'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='202'
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='black'
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='214'

## Langs
POWERLEVEL9K_PYENV_FOREGROUND="blue"
POWERLEVEL9K_PYENV_BACKGROUND="black"
POWERLEVEL9K_RVM_FOREGROUND="red"
POWERLEVEL9K_RVM_BACKGROUND="black"
POWERLEVEL9K_NVM_FOREGROUND="green"
POWERLEVEL9K_NVM_BACKGROUND="black"
  # Use to visualize: get_icon_names
POWERLEVEL9K_PYTHON_ICON="\uf81f"
POWERLEVEL9K_RUBY_ICON="\uE791"
POWERLEVEL9K_NODE_ICON="\uE781"

# RIGHT
POWERLEVEL9K_STATUS_OK_BACKGROUND="clear"
POWERLEVEL9K_STATUS_OK_FOREGROUND="green"
POWERLEVEL9K_STATUS_ERROR_BACKGROUND="clear"
POWERLEVEL9K_STATUS_ERROR_FOREGROUND="red"

POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND="grey"
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND="white"
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0

POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=true
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND='black'
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND='178'

POWERLEVEL9K_TIME_FOREGROUND="250"
POWERLEVEL9K_TIME_BACKGROUND="grey"
POWERLEVEL9K_TIME_ICON="\uf073"
POWERLEVEL9K_TIME_FORMAT="%D{%L:%M:%S \uf017  %d.%m.%y}"

# Dir
POWERLEVEL9K_DIR_PATH_HIGHLIGHT_BOLD=true
POWERLEVEL9K_DIR_PATH_SEPARATOR_FOREGROUND="white"
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"
POWERLEVEL9K_SHORTEN_DIR_LENGTH=3
POWERLEVEL9K_DIR_HOME_FOREGROUND="white"
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND="white"
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND="white"
POWERLEVEL9K_DIR_ETC_BACKGROUND="52"
POWERLEVEL9K_DIR_ETC_FOREGROUND="white"

POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_FOREGROUND="11"
Enter fullscreen mode Exit fullscreen mode

现在它看起来应该是这样的:
我的自定义

我们快完成了,我们需要使用插件进一步定制它。

插件

您需要将插件名称添加到文件plugins中的变量中~/.zshrc。然后重新启动 shell。您也可以使用 重新加载它source ~/.zshrc

彩色手册页

安装

只需添加colored-man-pages到您的插件变量列表。

有色人页

zsh 语法高亮

zsh 语法高亮

安装

git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
Enter fullscreen mode Exit fullscreen mode

并添加zsh-syntax-highlighting到你的插件变量列表

配置

ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
# override main colors:
ZSH_HIGHLIGHT_STYLES[default]='none'
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[assign]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[alias]='fg=26'
ZSH_HIGHLIGHT_STYLES[function]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=26'
ZSH_HIGHLIGHT_STYLES[command]='fg=26'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=red,bold,standout'
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=190'
ZSH_HIGHLIGHT_STYLES[path]='fg=white,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=white,underline'
ZSH_HIGHLIGHT_STYLES[path_approx]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=yellow,bold'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=39'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=39'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=blue'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=172'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=178'
ZSH_HIGHLIGHT_STYLES[rc-quote]='fg=177'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=190'
ZSH_HIGHLIGHT_STYLES[arg0]='fg=45'

# override bracket colors:
ZSH_HIGHLIGHT_STYLES[bracket-error]='fg=red,bold'
# uniform / less distracting:
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta'
ZSH_HIGHLIGHT_STYLES[bracket-level-5]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-6]='fg=magenta'

# override pattern colors:
ZSH_HIGHLIGHT_PATTERNS+=('rm -[f,r] *' 'fg=red,bold,standout')
ZSH_HIGHLIGHT_PATTERNS+=('rm -[f,r][f,r] *' 'fg=red,bold,standout')
ZSH_HIGHLIGHT_PATTERNS+=('sudo dd *' 'fg=magenta,bold,standout')
ZSH_HIGHLIGHT_PATTERNS+=('sudo shred *' 'fg=magenta,bold,standout')
Enter fullscreen mode Exit fullscreen mode

Zsh 自动建议

zsh 自动建议

安装

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
Enter fullscreen mode Exit fullscreen mode

添加zsh-autosuggestions到你的插件变量列表

历史子串搜索

历史子串搜索

当你输入一个命令(本例中为 curl)并按下向上箭头时,你会在历史记录中看到一条搜索记录,并获取完整的命令。搜索到的字符串会以绿色高亮显示。

安装

只需添加history-substring-search到您的插件变量列表。

配置

# history-substring-search
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=green,fg=white,bold'
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'
HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'
Enter fullscreen mode Exit fullscreen mode

结论

我们已经彻底优化了 Shell。这些修改可以提高您的工作效率,让您的终端使用起来更加便捷。在这里,您可以根据自己的需求进行自定义,打造专属的 Shell。

文章来源:https://dev.to/iax/tune-up-your-terminal-112b
PREV
Gatsby 教程:从零开始构建 Gatsby 网站的分步指南
NEXT
VSCode 自定义:增强您的 IDE 扩展功能🧩常规设置⚙️最终想法👋