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. 

==========================================================
root@ykla:/home/ykla # pkg info -D zsh-autosuggestions
默认情况下,zsh 会在 /usr/local/etc 中查找系统范围的默认设置。

如果你之前设置了 /etc/zprofile、/etc/zshenv 等,
要么将它们移到 /usr/local/etc,要么在启用 ETCDIR 选项的情况下重新构建 zsh。

==========================================================

配置 Zsh

编辑 ~/.zshrc,添加下面几行:

立即使用:

使用主题美化

刷新环境变量

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

参考文献

Bash

安装 Bash

  • 使用 pkg 安装:

解释:

  • bash shell 主程序

  • bash-completion-freebsd 针对 FreeBSD 的 Bash 补全库扩展,作为依赖安装会 shells/bash-completion

  • bash-completion-zfs 针对 OpenZFS 的 Bash 补全库扩展

  • 使用 ports 安装:

查看安装后配置

配置 Bash

  • 写入所需变量:

编辑 ~/.bash_profile,写入

立即使用:

配置 csh/tcsh

csh(C shell,灵感来自 C 语言,语言亦类似,作者是 Bill Joy)是 FreeBSD 基本系统内置的 shell,过去 是 root 用户的默认 shell。

技巧

csh 与 tsch 的关系

有必要注意的是,FreeBSD 中 csh 就是 tcsh。二者没有区别。你从源代码 https://github.com/freebsd/freebsd-src/blame/main/bin/csh/Makefile 就能看出来,同时 man csh 也会被重定向至 tcsh。

注意

虽然 csh tsch 本质上都是一款程序,但是使用时二者有明显的不同,如果以 csh 之参数来调用,则会关闭部分 tcsh 扩展。

注意

FreeBSD 14 中的 shell 被统一为了 sh


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

~/.csh.cshrc 里面加入:

并重新登录即可。


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

刷新环境变量:

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

比如你用 emacs 写 c 语言程序,但当你输完 emacs maTab 键 回车时:他会匹配所有 ma 开头的文件。而此配置是对部分匹配的文件进行忽略,也即按 Tab 时不会再有被你忽略的东西。编程友好,不会再匹配到二进制 .o 之类的文件:

最后更新于

这有帮助吗?