揭秘Linux命令行中文操作:Bash、Zsh和Fish的对比

Shell、Bash、Zsh这都是啥啊

shell、bash、zash,这些东西都很重要。

shell,简单的说就是“外壳”,是操作系统之外的一层。
用户必须通过这个才能与系统对话。
命令行界面只是纯文本。
现在说到shell,通常指的是Linux和Unix的命令行。

Bash 是重生的 shell sh,它是旧 shell 的重写版本。
现在许多 Linux 和 macOS 默认使用它。
它具有许多功能,包括命令完成、历史记录、别名、管道和重定向,并且易于使用。
二进制文件通常放在/bin/bash 中。

zsh,Z Shell,这东西比较强大。
sh 得到了改进,并获得了 bash、ksh 和 tcsh 的一些优点。
使用灵活、高效。
关闭功能特别好,而且还有插件机制,生态良好。
从 2 01 9 年开始,macOS 将默认使用它。
二进制文件通常放在/bin/zsh 中。

配置文件,Bash 和 Zsh。
Bash配置文件: /etc/profile,系统的每个用户登录时都会执行该文件中的命令。
/etc/bashrc,每个使用bash shell的用户在打开shell时都会读取该文件中给出的命令。
~/.bash_profile,与/etc/profile类似,但仅适用于当前用户。
~/.bashrc,类似于/etc/bashrc,但仅适用于当前用户。
~/.bash_logout,退出bash shell时执行该文件。
~/.bash_history 保存历史命令。

Zsh配置文件: .zshenv,环境变量配置,可以随时读取,与Bash的.bash_profile和.bashrc设置的环境变量含义相同。
.zshrc。
当交互式 shell 打开时,将读取此文件并设置别名、函数、选项、键绑定等,就像 Bash 的 .bashrc 一样。
.zlogin,在登录 shell 时读取,类似于 Bash 的 .bash_profile(但在 Zsh 中不常用)。
.zprofile,类似于.zlogin,但通常在.zshrc之前加载(在Zsh中不常用)。
.zlogout,退出终端时读取,执行一些清理任务,类似于Bash的.bash_logout。
如何查看和切换shell? 适用于 Linux 的 shell: 巴什 cat /etc/shells
查看当前使用的shell: 巴什 回显 $SHELL
或: 巴什 echo $0
切换默认 shell: 使用 chsh -s [shell 二进制文件路径] 命令。
例如,切换到 bash: 巴什 chsh -s /bin/bash
切换成Zsh: 巴什 在 chsh -s /bin/zsh
之后,您需要再次登录 shell 才能生效。

总之,Shell、Bash 和 Zsh 都是与操作系统打交道的重要工具。
用户可以根据自己的需求和喜好选择合适的外壳。

为linux等系统配置zsh

上次我给朋友的Mac换操作系统时,他用的是Mac自带的shell。
我说试试zsh会好一点,他说用了两天就好多了。
确实,zsh的快捷功能特别方便,因为你不必每次都记住上次使用的命令是什么。

安装其实很简单。
记得上次在虚拟机里做的时候,突然发现zsh-autosuggestions安装的顺序不对,提示根本不起作用。
纠结了半天,发现资源顺序不对。
这个顺序特别重要,请记住:自动建议必须在语法突出显示之前加载。

在配置ls color支持时,我专门检查了~/.dircolors文件在哪里,发现我的系统上没有这个文件。
后来我使用 dircolors-b 创建了一个。
如果终端有2 5 6 种颜色,导出短语TERM="xterm-2 5 6 color"不能省略,否则颜色会致盲。

我最喜欢的是 Powerlevel1 0k 主题。
当我第一次看到 Git 状态屏幕时,朋友问我是否安装了任何监控软件。
然而,设置向导非常智能,可以自动调整许多设置。
请记住,安装主题后,必须source它才能生效,否则将保持不变。

在验证的时候,我故意输入了错误的命令,ls/nonexistent,果然语法错误用红色高亮了,这对初学者来说特别友好。
打字时,灰色提示输入以下内容,按向右箭头即可完成。
这个功能用了之后就忘记了,总以为自己记住了。

等一下,还有一点,skip_global_compinit=1 性能优化这句话,我第一次添加的时候不太明白。
查了资料才知道是为了避免重复初始化。
不过添加这个之后,启动速度快了一些,但是我没有测量过到底快了多少。

现在我在想,我可以尝试OhMyZsh吗?文档说可以简化管理,可以直接选择插件。
我想知道是否会比手动设置更方便?或者有没有其他插件可以提高自动更正功能?