跳至主要內容

Shell

大约 3 分钟

Shell


  • Shell 是一个命令行界面,用户可以通过它与操作系统进行交互。Shell 既是一个命令解释器,也是一种脚本语言。在类 Unix 系统(如 Linux、macOS) 中,Shell 是用户与操作系统核心进行交互的主要方式。

    • **sh(Bourne Shell) **:

      sh 是最早的 Unix shell,由 Stephen Bourne 在贝尔实验室开发。作为最初的 Unix shell,它为后来的许多 shell,包括 bash 和 zsh,奠定了基础。

    • **bash(Bourne Again Shell) **:

      bash 是 sh 的一个改进版本,由 GNU 项目开发。它是 Bourne Shell 的自由软件替代品,加入了更多的功能和用户友好的特性。bash 遵循 POSIX 标准,与原始的 Bourne Shell 兼容,同时加入了一些额外的特性(如命令历史和命令行编辑) 。

    • **zsh(Z Shell) **:

      zsh 是另一个流行的 Unix shell,它兼容 bash,但引入了许多新功能和改进,如更好的脚本语言功能和用户界面改进。zsh 的一些特性特别注重交互性和易用性,比如更强大的自动补全和主题支持

  • .sh 文件扩展名通常用于指代 shell 脚本,而不特指用 Bourne Shell (sh) 编写的脚本。


显示时间

bash
PS1="[\d  \t] \u@\h: "
# 要永久生效请编辑如下文件
~/.bashrc

# 如果要保留 python 的虚拟环境提示符,可以这样写
PS1="\$(if [ -n \"\${VIRTUAL_ENV}\" ]; then echo \"(\${VIRTUAL_ENV##*/})\"; fi) [\d  \t] \u@\h: "
  • \d: 显示当前日期(格式为 Weekday Month Date,如 Mon Dec 11)
  • \t: 显示当前时间(24小时制,包括小时、分钟和秒)
  • \u@\h: 显示当前用户名和主机名

image-20231211105830736


主题-OhMyPosh

Oh My Posh 在底层使用 ANSI 颜色代码,这些代码应该适用于每个终端,但您可能必须将环境变量 $TERM 设置为 xterm-256color 才能正常工作。

编辑 ~/.bashrc 加入如下语句:

export TERM=xterm-256color

然后安装 OhMyPosh

curl -s https://ohmyposh.dev/install.sh | bash -s

image-20240412112439944

要显示所有图标,官方建议使用 Nerd 字体open in new window

oh-my-posh font install

选择 Meslo 并安装

image-20240412133955849


接下来需要配置使用 OhMyPosh 的 shell

Change your prompt | Oh My Poshopen in new window

# 查看当前使用的是哪个 shell
oh-my-posh get shell

image-20240412113231938

bash

将如下命令下入 ~/.bashrc

eval "$(oh-my-posh init bash)"s

在 VSCode terminal 中使用 OhMyPosh 需要更改设置中的 Integrated: Font Family

image-20240412143701806

根据 Themes | Oh My Poshopen in new window 选择一个主题配置上即可