## 什么是 Shell Shell 是一种命令行解释器,用于接收用户输入的命令并将其传递给操作系统内核执行,在 Linux 系统中,Shell 是一个基本组件,用于与内核交互。虽然 Linux 内核负责管理硬件资源和系统核心功能,但用户通常通过 Shell 来与系统互动,常见的 Shell 类型如下: - **Bash(Bourne Again Shell)**:最流行的 Shell,几乎是所有 Linux 发行版的默认 Shell。 - **Zsh(Z Shell)**:功能强大且可定制性高,许多人认为它比 Bash 更好用。 - **Fish(Friendly Interactive Shell)**:强调用户友好和易用性。 - **Csh(C Shell)和 Tcsh**:类似于 C 语言的语法,Tcsh 是 Csh 的增强版本。 - **Ksh(Korn Shell)**:兼具 Bash 和 Csh 的特性。 ## Bash Bash 是大多数 Linux 发行版的默认 Shell,包括 Ubuntu。用户在 Ubuntu 中打开终端时,默认就是进入了 Bash 环境。 ### 编写 bash 代码 1. 创建 `myscript.sh` 文件,保存如下内容 ```Bash #!/bin/bash VAR="world" echo "Hello $VAR!" # => Hello world! ``` 2. 修改为可执行权限 ```Shell $ chmod +x myscript.sh ``` 3. 执行脚本 ```Shell $ bash myscript.sh ``` ## Zsh Zsh(Z Shell)是一个类似于 Bash 的命令行解释器,用于 Unix 和类 Unix 操作系统。它提供了许多改进的特性,包括主题和插件支持,使得用户能够高度定制自己的工作环境。Zsh 包含了 Bash 的许多命令和功能,同时引入了新的改进和扩展,比如更强大的命令行补全、拼写检查、历史记录管理和高级脚本编写功能。因其提供的高级功能和易用性,Zsh 被许多高级用户和开发者作为首选的 shell 使用。 ### 安装 Zsh ```Shell $ sudo apt install zsh -y $ zsh --version $ chsh -s $(which zsh) $ exit # 退出并重新登录shell # 查看默认shell是否已使用zsh $ echo $SHELL $ $SHELL --version # 查看zsh版本 ``` ### 安装 Oh My Zsh Oh My Zsh 用于管理 Zsh(Z Shell)的配置,提供大量的主题和插件,让用户可以轻松地定制和增强他们的 Zsh 环境。 ```Shell # 设置代理,如果需要的话 # $ export https_proxy=http://127.0.0.1:7890 # $ git config --global https.proxy http://127.0.0.1:7890 $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # 修改主题 $ vim ~/.zshrc # >>> ZSH_THEME="afowler" ``` ## 安装自动补全插件 ```shell $ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions $ vim ~/.zshrc # >>> plugins=(git zsh-autosuggestions) # <<< ``` ## tmux tmux(Terminal Multiplexer)是一个终端复用器,让一个终端变成多个终端,并且可以保持会话不关闭。 ```shell $ sudo apt install tmux # 安装 $ tmux new -s main # 创建会话,名字为 main $ tmux ls # 查看会话 $ tmux attach -t main # 连接 main 会话,或者 tmux a -t main $ tmux detach # 断开 main 会话,或者 Ctrl + b → d ``` ## 参考 - https://github.com/ohmyzsh/ohmyzsh