命令行界面是一个强大的工具,可用于与Linux系统交互以高效地执行各种任务。如今许多Linux 发行版(包括Fedora)中的默认shell是Bash ( Bourne Again Shell )命令。
当然,还有一些替代的Linux shell可以提供增强的功能、改进的定制以及更加用户友好的体验。利润,Zsh就是这样的shell命令之一,也称为Z Shell。
什么是Zsh?
Zsh (Z Shell的缩写)是一个功能丰富、功能强大的shell程序,适用于类Unix操作系统,具有大量交互功能。它是Bourne Shell(sh)的扩展版本,具有大量新功能,并支持插件和主题。它是为交互式使用而设计的,也是一种功能强大的脚本语言。
与大多数其它Linux shell程序相比, Zsh的优势之一是它更加复杂和可配置,而且非常容易定制。与此同时,它的一些主要功能包括使用cd命令自动完成、递归路径扩展和拼写更正以及文件和目录的交互式选择。在本文中,小编主要介绍在Fedora系统中安装和设置Zsh的过程。
在Fedora系统中安装Zsh
Zsh可以在Fedora存储库中找到,并且可以使用以下dnf命令进行安装:
$ sudo dnf install zsh
要开始使用它,只需运行zsh
,新的shell就会提示你为新用户提供初始配置功能向导,如下面的截图所示。该向导允许创建Zsh的启动/初始化文件。按(1)
继续主菜单。
$ zsh
这是显示主菜单的截图。请注意,所有可配置选项的状态均为“Recommended.”。要选择配置选项,请输入该选项的序号:
例如,输入(1)
以选择历史记录的配置设置。在下面的截图中,输入(0)
“记住编辑”并返回到主菜单(该选项状态为“未保存的更改”):
对其它选项仍然可以重复前两个步骤。现在,前三个选项应指示“Unsaved changes”状态。配置选项(4)
允许你选择一些常见的shell选项。
要保存新设置,请输入(0)
。这样你将看到以下截图中显示的消息,并且命令提示符应从$(for Bash)
更改为%(for Zsh)
。
将Zsh作为Fedora中的默认Shell
要将Zsh设为默认shell,以便在启动会话或打开终端时执行它,请输入chsh命令,该命令用于更改用户的登录shell,如下所示(系统将提示你输入帐户密码):
$ grep tecmint /etc/passwd $ chsh -s $(which zsh) $ grep tecmint /etc/passwd
上面的命令显示你的系统将要设置(-s)
(即zsh)为默认shell。
在Fedora中安装Oh-My-Zsh
Zsh的真正强大之处在于它的可配置性,这可以通过自定义Zsh环境的各个方面来实现,例如主题、插件和别名。Oh-My-Zsh是管理Zsh配置的一个流行框架,它提供了一系列有用的插件和主题。
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
安装完成后,你的Zsh配置将自动更新以使用Oh-My-Zsh,如下图所示:
为Fedora选择Oh-My-Zsh主题
Oh-My-Zsh提供了多种主题,你可以使用它们来更改终端的外观,并且还可以浏览~/.oh-my-zsh/themes/目录中的可用主题。
$ ls ~/.oh-my-zsh/themes/
要更改主题,请在文本编辑器中打开~/.zshrc文件并找到设置变量的ZSH_THEME
行。
$ sudo nano ~/.zshrc
ZSH_THEME="agnoster"
最后,保存文件并重新启动终端以查看新主题的运行情况。
为Fedora添加Oh-My-Zsh插件
Oh-My-Zsh支持多种插件,你可以使用它们来增强Zsh的功能,具体可以通过编辑~/.zshrc文件并将插件名称添加到插件数组来启用插件。例如,要启用git和docker插件,配置将如下所示:
plugins=(git docker)
添加或修改插件后,保存文件并重新启动终端。
有关更多使用说明,请参阅zsh手册页。
$ man zsh
总结
可以看出,Zsh是Bourne Shell(sh)的扩展版本,具有大量新功能,并且支持插件和主题。如果需要在Fedora系统中安装Z Shell,可以通过上述安装步骤进行操作。
关于zshell和bash区别差异
zsh
(Z Shell)和bash
(Bourne Again Shell)都是在Unix-like系统中广泛使用的命令行解释器(shell)。它们用于与操作系统交互、运行命令、脚本编写等。虽然它们都有类似的功能,但在某些方面存在一些差异。
- 语法和功能:
zsh
提供了更多的高级功能和更灵活的语法,例如更丰富的通配符扩展、更强大的历史命令管理和自动纠正等。这使得在使用zsh
时,可能会体验到更高效和便利的命令行操作。bash
是许多Linux发行版的默认shell,具有广泛的兼容性,但在某些高级功能方面可能不如zsh
灵活。
- 自动完成和补全:
zsh
在自动完成和补全方面表现更出色,它提供了更智能的补全建议,可以根据历史命令和上下文来推测你想要输入的内容。bash
的自动完成功能也很强大,但zsh
在这方面的能力更加先进。
- 主题和外观:
zsh
通常在默认情况下提供更漂亮的命令行界面和主题。它的外观更加现代,提供了丰富的定制选项。bash
的默认外观相对较简单,但你也可以通过自定义来改变它的外观。
- 脚本兼容性:
bash
是许多shell脚本的首选,因为它是许多Linux系统中默认的shell,几乎所有的Linux发行版都支持。zsh
也支持大多数脚本,但在编写与其他系统共享的脚本时,可能需要特别注意确保脚本在不同系统上都能正常运行。
- 历史命令管理:
zsh
在历史命令管理方面更强大,可以更容易地搜索、删除和编辑历史命令。它还可以在不同的终端会话之间共享历史记录。bash
也具有历史命令管理功能,但zsh
的实现更为先进。
- 插件和扩展:
zsh
拥有强大的插件和扩展生态系统,你可以轻松地添加各种功能和定制选项,以满足个人需求。bash
也支持扩展,但在这方面zsh
的社区更加活跃。
所以,zsh
在功能和灵活性方面提供了更多的选择,特别是对于高级用户和那些希望拥有更多命令行控制权的人来说。而bash
则是一个稳定且广泛支持的选项,特别适用于编写跨平台脚本和与默认系统设置一致的操作。选择使用哪个取决于你的需求和个人偏好。