linux美化文件,Linux 终端美化 - Oh My Zsh
发布日期:2021-06-24 15:58:00 浏览次数:2 分类:技术文章

本文共 4645 字,大约阅读时间需要 15 分钟。

[TOC]

前言

在类 UNIX 系统(比如 Linux,Mac)环境中,我们常常在终端中输入命令与系统进行交互,大多数系统默认使用的 shell 程序为 Bash。

但是 Bash 本身的色调非常单调,因此,如果我们需要长时间工作在命令行环境种,适当对终端进行美化是一个非常不错的选择。

几个概念释义

在我们美化 Linux 终端前,我们先了解一下以下几个概念:

终端(terminal):拥有键盘+显示器的设备。

终端模拟器(terminal emulator):采用图形界面模拟 终端 操作的程序。

shell:操作系统和终端之间的一个“壳”应用,可以将终端发送的字符(命令)发送给系统,并将系统运行命令的结果传递给终端显示。

Bash:大多数类 UNIX 系统的默认 shell 程序。

注:在类 UNIX 系统中,通常将 终端模拟器 简称为 终端,因此下文涉及到 终端 的地方,如无特别强调,均指 终端模拟器。

在前面对 终端,终端模拟器,shell 进行介绍后,我们应当能知道,大多数类 UNIX 系统自带的终端(即命令行工具),其界面相对比较单调。

因此,如果我们想美化终端,可以更换另一个更加美观的终端(比如 Mac 系统的 iterm2),或者更换另一个可以配置终端的 shell 程序。

我们这里主要对 Ubuntu 系统终端进行美化,所以选择更换 shell。

目前类 UNIX 系统上最常用的第三方 shell 就是 zsh:zsh 又称为 Z shell,是一个交互式 shell 程序,也可以作为脚本解释器。zsh 基于 Bourne Shell(sh),提供了很多新特性,比如插件支持和主题更换。

zsh 的安装方法如下:这里主要介绍在 Ubuntu 系统中进行安装:

下载并安装 zsh:

sudo apt install zsh

查看是否安装成功:

zsh --version # ==> Expected result: zsh 5.4.2 or more recent

设置为终端默认 shell:

chsh -s $(which zsh)

如果第 3 步设置失败,则进行如下设置:

# ~/.bash_profile 添加如下内容

export SHELL=`which zsh`

[ -z "$ZSH_VERSION" ] && exec "$SHELL" -l

登出,然后再登入,输入以下命令查看下是否已登录 zsh:

echo $SHELL # ==> 如果显示: /bin/zsh,则为成功

输入以下命令,查看当前是否使用 zsh:

$SHELL --version # ==> Expected result: 'zsh 5.4.2' or similar

zsh 本身的配置十分复杂,因此一般不直接对其进行配置,而是使用第三方框架进行设置。

当前最受欢迎的 zsh 配置管理框架为:Oh-My-Zsh

以下是 Oh-My-Zsh 的安装方法:

# 使用 curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 或者使用 wget

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 或者手动进行安装

curl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh

sh install.sh

当安装完成 Oh-My-Zsh 后,会发现创建了~/.zshrc文件,这就是 zsh 的配置文件。

zsh 插件,简单来说,就是 zsh 可以解释执行的一段 shell 脚本。因此,一个插件可以简单地执行一些命令,也可以提供对特定命令和函数的补全功能。

要使用 插件,首先需要使能插件功能,方法如下:

在~/.zshrc文件中,添加如下内容:

plugins=(

git

adb

ruby

)

如上就是添加了 git,adb,ruby 插件,更多其他插件,请参考:zsh Plugins

zsh 主题是一个可以更改控制台的 zsh 脚本。一个主题可以做很多事情,比如,控制台自动更新当前 git 仓库的状态,或者显示每秒更新的一个时钟...

要使用 主题,首先需要使能该功能,方法如下:

在~/.zshrc文件中,设置ZSH_THEME为要使用的具体主题名,比如:

ZSH_THEME=robbyrussell

如上就是让 zsh 启用robbyrussell主题。更多其他主题,请参考:zsh Themes。

注:如果不想使用主题,直接设置:ZSH_THEME=""

这里推荐一个主题:

# 首先下载到 on-my-zsh 的本地目录

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

# ~/.zshrc 设置如下内容

ZSH_THEME="powerlevel10k/powerlevel

进阶配置

Oh-My-Zsh 对插件和主题的配置虽然很简单,但是对于非内置组件,我们还需要进行手动下载,再进行配置。而这些步骤,完全可以进行自动化。

因此,网络上其实已存在很多的 zsh 的插件管理器,比如:antigen,zgen,zplug...

但是这里我推荐的是:zinit。

多方测评表明,zinit 是当前加载速度最快的 zsh 插件管理器,并且随着插件的数量增多,zinit 的优势会更大。

zinit 的插件加载速度快的一个主要原因就是:其提供了一个 插件延迟加载(Turbo) 的功能,使得插件可以在 zsh 启功后,再进行加载。

下面是 zinit 的安装方法:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"

安装完成 zinit 后,我们就可以在~/.zshrc中配置插件/主题,比如,对于上文建议使用的 powerlevel10k 主题,其安装方法如下:

在~/.zshrc文件中配置主题为 powerlevel10k:

# ~/.zshrc

# 原生的主题配置可去除

# ZSH_THEME="powerlevel10k/powerlevel

zinit ice depth=1; zinit light romkatv/powerlevel10k

重新加载~/.zshrc:

source ~/.zshrc

此时就可以看到 zinit 会去下载 powerlevel10k,并自动进行设置。

注:可以通过执行p10k configure命令来配置 powerlevel10k,在执行该命令之前,建议先安装以下字体:

直接双击下载的文件,选择安装,然后在设置终端字体为MesloLGS NF即可。

最后放上效果图以及附上本人配置:.zshrc、.p10k.zsh

b8a80dd59414

oh-my-zsh

终端发展史

在 19 世纪末期,有一种叫做 teletype 或者 TTY 的技术。一个由几个电子元器件组成的老式机械打印机,基本上可以被划分为两部分:键盘 和 打印机。两者之间由电线进行连接,你可以通过在键盘上打字,此时远端的打印机就会一个一个的回显键盘输入的字符。

在 20 世纪时,计算机开始兴起,电传打字技术(teletype technology )就很快地被应用到计算机上。用户可以使用键盘进行输入,从而对计算机进行控制,打印机可以同时连接到相同的计算机上,实时回显用户的操作输出。

电传打字技术提供了一个 命令行交互接口(command line interface) 风格的用户接口。命令行交互接口其实就只是用于与计算机进行交互的一种方式:即用户输入一个命令给到计算机,然后计算机回显操作结果并且等待下一个命令。

CRT 视频显示技术(CRT video display technology )在计算机出现之前就已经存在了,因此人们很快就察觉到可以将视频显示与计算机结合起来。一个显著的例子就是1950年时的 SAGE air defense system,详情可查看该视频(从 3:40 开始)。

由于计算机与视频显示技术联合越来越常见,现存的 命令行接口 思想就很快地被应用于新的系统 -- 保留了键盘,但是将打印机替换为屏幕(显示器)。这种 键盘+文字显示 的设备就被称为 终端(terminal),由于它在计算机连接的另一端,你可以认为它 “终止” 了连接。

所以 终端(terminal) 就是带有键盘和屏幕的设备,要么通过电话线经由调制解调器,或者通过实体线缆连接到一台大型计算机(通常是大型机或者早期的 UNIX-based 系统)上。终端 的功能只能在屏幕上显示远程计算机发送来的文字信息,或者发送按键字符给到远程计算机。创建文字显示 UI 是由计算机负责的。之所以称为 终端 是因为它位于计算机连线的末端,或者说 “终止端”。

因此为了让系统能够发挥效用,计算机中必须运行一种可以告诉 终端 显示数据和处理用户按键输入的应用程序,在 UNIX(以及后来的 Linux)世界中,这种应用程序就被称作 shell。

shell 就是提供命令行接口的应用程序。任何提供用户接口的应用在宽松定义上都可认为是 shell,比如 Windows,Mac 和 手机提供的图形用户界面就可以认为是一种图形化 shell。

不同的 shell 可以有不同方式进行命令输入,重定向输入/输出流,管理复杂任务,比如同时运行多个程序等等。在早期的 UNIX 中,创建了许多不同的 shell 程序,很多到现在仍然存在。Bash 就是最受欢迎的 shell 程序,并且是许多 Linux 和 UNIX 系统的默认 shell。

今天,许多需要使用 终端 来执行操作的用户都使用了拥有图形界面的 GUI 应用程序,这种有 GUI 界面的应用我们称之为 终端模拟器(terminal emulator)。它模拟了具备字符输入功能的终端设备。这看起来可能不重要,当在它们过时之前,终端就已具备额外的功能,比如鼠标和颜色文字。因此,终端模拟器是更加复杂的应用。

在类 UNIX 系统(包括一些 Linux 发行版本 和 Mac)中,终端模拟器 常常被简称为 终端(terminal),并且它的默认行为就是去启动默认的 shell 程序(通常是 Bash),并将 终端 的输入/输出连接到 shell。*

综上,终端(模拟器) 就是指有图形界面的命令行工具(Command line)。

在类 UNIX 中,shell 默认为 Bash。

在 Windows 系统中,它有两种 shell:cmd.exe和 powershell.exe

参考

转载地址:https://blog.csdn.net/weixin_33682804/article/details/116577683 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:hp服务器 linux,HP服务器Linux下hpacucli常用命令
下一篇:操作系统linux基本环境,Linux操作系统中常见桌面环境的介绍

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月28日 00时13分12秒