22.9 配置 Shell

Zsh

安装 Zsh

  • 使用 pkg 安装:

# pkg install zsh zsh-completions zsh-autosuggestions zsh-syntax-highlighting
程序
说明

zsh

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 主题生效:

回答几个问题即可完成配置。重启后完成配置。

参考文献

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 扩展会被关闭。

注意

FreeBSD 14 中的 shell 被统一为了 sh


  • 如何使文件和文件夹显示不同颜色:

~/.csh.cshrc 里面加入下行,为 ls 命令设置彩色输出(BSD/Linux 通用),注意使用正确的连字符:

并重新登录即可。


  • 如何让 FreeBSD 的 csh 像 Bash 那样按 Tab 列出无法补齐的候选文件?在 ~/.csh.cshrc 中加入:

重新加载 C shell 配置文件,刷新别名和环境设置:

  • 如何让 csh 像 zsh 那样具有命令错误修正呢

例如,当你使用 emacs 编写 C 语言程序时,输入 emacs ma 并按 Tab 键回车,会匹配所有以 ma 开头的文件。此配置可以忽略部分匹配的文件,即按 Tab 时不会列出被忽略的文件,便于编程,不会匹配二进制 .o 文件等。

最后更新于

这有帮助吗?