oh-my-posh

这个oh-my-posh其实看了很久了,但是一直没用。我一直以为这个和oh-my-zsh一样是shell的美化,其实不是hhh。

what is oh-my-posh

oh-my-posh是一个prompt的美化工具,可以让你的terminal更加美观。

其实是第一次听到prompt这个词用在这里,他相当于是命令行的前缀,所以叫做prompt也算合理。 67b430d275d0a.png

类似如图所示的效果,这个功能往往是shell的一部分?(有待考证),但是oh-my-posh是一个独立的工具,可以用在许多种shell上(包括zsh)。

how to install

官方文档提供了非常详细的安装教程,这里不再赘述。

terminal and shell

TerminalShell 是两个常常一起使用的概念,但它们实际上是不同的东西。下面是它们的区别和共通之处(来自gpt):

1. Terminal(终端)

  • 定义:终端是一种用户与计算机交互的界面。它通常是一个文本窗口,允许用户通过键盘输入命令并查看输出结果。
  • 功能:终端提供了一个界面,用户可以在其中启动和与 Shell 进行交互。传统的终端是硬件设备,早期是通过串口连接到主机的设备,现在大多数是软件模拟的(比如 macOS 的 Terminal,Windows 的 PowerShell 或者 Linux 的 Gnome Terminal)。
  • 举例:macOS 的 Terminal、Windows 的 Command Prompt、Linux 上的 Gnome Terminal。

2. Shell(外壳)

  • 定义:Shell 是一种命令行解释器,它接收用户输入的命令并将其传递给操作系统的内核执行,然后将结果返回给用户。
  • 功能:Shell 是通过终端与操作系统进行交互的工具,允许用户执行程序、管理文件、运行脚本等。它可以是一个简单的命令行界面(如 Bash、Zsh、Fish 等),也可以是一个脚本语言解释器。
  • 举例:Bash(Bourne Again Shell)、Zsh(Z Shell)、Fish、PowerShell。

3. 共通之处

  • 交互性:终端和 Shell 都是让用户能够通过命令行与计算机交互的工具。用户通过终端窗口进入 Shell,而 Shell 则负责解释命令并执行相应的操作。
  • 命令行接口:它们都属于命令行接口的范畴,通常用于执行命令、查看文件、编写脚本等。

4. 区别

  • 终端:是一个窗口或界面,用户与 Shell 或其他程序交互的地方。
  • Shell:是命令行解释器,实际处理用户输入的命令并执行相应操作。

总结

  • 终端是一个用户与操作系统交互的窗口,Shell 是终端内的一个命令行程序,用来执行命令并与操作系统的内核进行互动。
  • 可以将终端看作是 Shell 的载体,Shell 则是用户命令的执行者。

总得来说,shell往往能塞很多插件zsh就是一个很好的例子,而terminal则是一个界面,以前用过的mobaxterm应该就是一个terminal