22.9 配置 Shell
Zsh
安装 Zsh
使用 pkg 安装:
# pkg install zsh zsh-completions zsh-autosuggestions zsh-syntax-highlightingzsh
zsh shell
zsh-completions
自动补全
zsh-autosuggestions
类 Fish shell 的 Zsh 自动补全
zsh-syntax-highlighting
类 Fish shell 的 Zsh 语法高亮
使用 ports 安装:
# cd /usr/ports/shells/zsh/ && make install clean
# cd /usr/ports/shells/zsh-completions && make install clean
# cd /usr/ports/shells/zsh-autosuggestions/ && make install clean
# cd /usr/ports/shells/zsh-syntax-highlighting/ && make install clean查看安装后说明
# pkg info -D zsh
zsh-5.9_5:
On install:
==========================================================
By default, zsh looks for system-wide defaults in
/usr/local/etc.
If you previously set up /etc/zprofile, /etc/zshenv, etc.,
either move them to /usr/local/etc or rebuild zsh with the
ETCDIR option enabled.
==========================================================
# pkg info -D zsh-autosuggestions
默认情况下,zsh 会在 /usr/local/etc 中查找系统范围的默认设置。
如果你之前设置了 /etc/zprofile、/etc/zshenv 等,
要么将它们移到 /usr/local/etc,要么在启用 ETCDIR 选项的情况下重新构建 zsh。
==========================================================配置 Zsh
将当前用户的默认登录 Shell 修改为 Zsh:
编辑 ~/.zshrc,添加下面几行:
立即使用:
使用主题美化
重新加载 Zsh 配置文件,使 Powerlevel10k 主题生效:
回答几个问题即可完成配置。重启后完成配置。
参考文献
Powerlevel10k。主题项目官网
Bash
安装 Bash
使用 pkg 安装:
软件包说明:
bash
Bash shell 主程序
bash-completion-freebsd
针对 FreeBSD 的 Bash 补全库扩展,安装时会自动安装 shells/bash-completion 作为依赖
bash-completion-zfs
针对 OpenZFS 的 Bash 补全库扩展
使用 ports 安装:
查看安装后配置
配置 Bash
写入所需变量:
编辑 ~/.bash_profile,写入下行。
如果是交互式 shell 且 bash-completion 存在,则加载 Bash 补全功能:
立即使用:
配置 csh/tcsh
csh(C shell,灵感来自 C 语言,语法也类似,作者是 Bill Joy)是 FreeBSD 基本系统内置的 shell,以前是 root 用户的默认 shell。
技巧
csh 与 tcsh 的关系
需要注意的是,FreeBSD 中 csh 实际上就是 tcsh,二者没有区别。可以通过查看源代码 https://github.com/freebsd/freebsd-src/blame/main/bin/csh/Makefile 以及执行 man csh 来验证,都会重定向至 tcsh。
注意
虽然 csh 与 tcsh 本质上是同一程序,但在使用时存在差异,如果以 csh 的参数调用,则部分 tcsh 扩展会被关闭。
注意
如何使文件和文件夹显示不同颜色:
在 ~/.csh.cshrc 里面加入下行,为 ls 命令设置彩色输出(BSD/Linux 通用),注意使用正确的连字符:
并重新登录即可。
如何让 FreeBSD 的 csh 像 Bash 那样按 Tab 列出无法补齐的候选文件?在
~/.csh.cshrc中加入:
重新加载 C shell 配置文件,刷新别名和环境设置:
如何让 csh 像 zsh 那样具有命令错误修正呢
例如,当你使用 emacs 编写 C 语言程序时,输入 emacs ma 并按 Tab 键回车,会匹配所有以 ma 开头的文件。此配置可以忽略部分匹配的文件,即按 Tab 时不会列出被忽略的文件,便于编程,不会匹配二进制 .o 文件等。
最后更新于
这有帮助吗?