Ubuntu的Bash终端美化 + 添加Git分支显示 + Zsh终端 + Zint代码补全功能

6 篇文章 0 订阅

一、下载 Git

# 从远程仓库克隆 git 文件到/opt 目录
yammie@my-pc >/home/yammie
$ cd /opt


yammie@my-pc >/opt
$ git clone https://github.com/git/git.git

二、复制 git-completion.bash 和 git-prompt.sh 到 home/yammie 的目录下

yammie@my-pc >/opt
$ cd ./git

yammie@my-pc >/opt/git
$ cp ./contrib/completion/git-completion.bash ~/

yammie@my-pc >/opt/git
$ cp ./contrib/completion/git-prompt.sh ~/

三、命令提示符颜色参考代码

# 定义颜色
txtblk=\e[0;30m # 黑色
txtred=\e[0;31m # 红色
txtgrn=\e[0;32m # 深绿色
txtylw=\e[0;33m # 黄色
txtblu=\e[0;34m # 绿色(写着是蓝色,但实际是绿色)
txtpur=\e[0;35m # 紫色
txtcyn=\e[0;36m # 蓝色
txtwht=\e[0;37m # 白色
bldtxtblk=\e[1;30m # 黑色
bldtxtred=\e[1;31m # 红色
bldtxtgrn=\e[1;32m # 深绿色
bldtxtylw=\e[1;33m # 黄色
bldtxtblu=\e[1;34m # 绿色(写着是蓝色,但实际是绿色)
bldtxtpur=\e[1;35m # 紫色
bldtxtcyn=\e[1;36m # 蓝色
bldtxtwht=\e[1;37m # 白色
bakblk=\e[40m # 背景黑色
bakred=\e[41m # 背景红色
txtrst=\e[0m # 文本重置


# 使用自定义颜色
echo -e "${bldtxtgrn}这是绿色文本的粗体文本${txtrst}"
echo -e "${bldtxtpur}这是紫色文本的粗体文本${txtrst}"

四、将以下内容加入到/etc/bash.bashrc 里面,实现 Git 分支的官方显示

注 意 : 因 为/etc/bash.bashrc 是 终 端 的 系 统 文 件 , 修 改 过 程 中 若 出 现 问 题 , 终 端 会 崩 溃 。 权 限 问 题 会 使 得 etc/bash.bashrc 难以修改。所以我们直接给/etc/bash.bashrc 授予 777 权限,这样即便在修改过程中导致终端崩溃,我们也能接着修改 etc/bash.bashrc,使得终端恢复正常。

1. 授予/etc/bash.bashrc 777 权限

yammie@my-pc >/home/yammie
$ sudo chmod 777 /etc/bash.bashrc

2. 打开/etc/bash.bashrc,写入以下内容

yammie@my-pc >/home/yammie
$ gedit /etc/bash.bashrc
# Git 分支官方实现
# 引用 git 官方的自动补全脚本
source ~/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true # 显示分支后面的 *
GIT_PS1_SHOWCOLORHINTS=true # 使用 git-prompt.sh 的__git_ps1_colorize_gitstring 给分支上色
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
if [ -f ~/git-completion.bash ]; then
source ~/git-prompt.sh # 引用分支显示脚本
PS1='${debian_chroot:+($debian_chroot)}' # 终端名称
PS1+='\n\[\e[0;36m\]\u@\h\[\e[0m\]\[\e[0;30m\] >\[\e[0;33m\]\w\[\e[0m\]' #用户名@主机名 >(路径名)
PS1+='$(__git_ps1 " (%s)")' #使用 git-prompt.sh 原生的分支上色,换行后显示$,$ 后面的命令全部为黑色
PS1+='\n\[\e[0;30m\]\$ '
fi
fi
# 注释原来的命令头
# if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' # ($debian_chroot) 是终端名;\w 是文件路径
# fi

注意:如果复制过去执行出错,大概率是单引号的格式有问题,你可以自己手打引号,而不是选择复制。

3. 打开终端,创建 test_dir 本地版本库

可见 master 分支会通过 #、+、* 标记不同状态。

五、更改终端的背景颜色

点击【未命名】→内置方案:自定义→文本:黑色(#000000)→背景:#E6F5F7

效果如下:

六、设置复制与粘贴快捷键

点击【快捷键】→ 双击【复制】,键入 Ctrl+C

→ 双击【粘贴】,键入 Ctrl+V

→ 双击【复制为 HTML】,键入 Shift+Ctrl+C

七、下载并安装 CaskaydiaMono Nerd Font

1. 下载 CaskaydiaMono Font

下载链接:CaskaydiaMono Nerd Font

2. 把字体复制粘贴到 /usr/share/fonts/truetype/ubuntu

解压到当前下载目录。把字体复制粘贴到 /usr/share/fonts/truetype/ubuntu。

yammie@my-pc >/home/yammie/下载
$ cp ./CascadiaMono/* /usr/share/fonts/truetype/ubuntu

3. 打开终端,选择 CaskaydiaMono Nerd Font Mono

八、安装 Zsh 和 Zinit 插件管理软件

1.因为 ubuntu24.04 的仓库不再有 zsh 的安装包,我们需要到官网下载源码

zsh下载icon-default.png?t=N7T8https://zsh.sourceforge.io/Arc/source.html

下载 zsh-5.9.tar.xz
或者通过以下命令下载,提取到此处

# 下载
$ wget https://jaist.dl.sourceforge.net/project/zsh/zsh/5.9/zsh-5.9.tar.xz ~/下载

# 解压
$ tar xvf zsh-5.9.tar.xz

2. 编译安装

(1) 安装依赖

sudo apt install libncurses5-dev

(2) 编译安装

# 进入源码目录
$ cd zsh-5.9

# 执行配置
$ ./configure # 默认安装在:/usr/local/bin/zsh

# 编译和安装
$ make && make install

# 添加信息
$ vim /etc/shells

# 在最后一行加上:/usr/local/bin/zsh

注意:若 make && make install 报错:ubuntu 权限不够 /usr/bin/install:无法创建普通文件。请 sudo su,以 root 用户的层级进行编译和安装。因为 configure 已经指定 zsh 的安装位置,不用担心它会安装到 root 目录下。

3、验证结果

打开 Linux 的终端,输入 zsh

yammie@my-pc >~
$ zsh


yammie@my-pc >/home/yammie
$ zsh --version
zsh 5.9 (x86_64-pc-linux-gnu)

4、编辑 etc/bash.bashrc,添加 zsh 命令,开启终端即登录 zsh 终端界面

yammie@my-pc >/home/yammie
$ sudo chmod 777 /etc/bash.bashrc # 授予 777 权限,避免终端崩溃后无法修改

yammie@my-pc >/home/yammie
$ npp /etc/bash.bashrc

5、安装 zint

(1) 在主目录创建.zinit 文件夹,克隆源文件到~/.zinit/bin 中

yammie@my-pc >/home/yammie
$ mkdir ~/.zinit

yammie@my-pc >/home/yammie
$ git clone https://github.com/zdharma/zinit.git ~/.zinit/bin

(2) 在~/.zshrc 中配置 zint 和它的插件

打开~/.zshrc

yammie@my-pc >/home/yammie
$ gedit ~/.zshrc
# 加载 zint 及其插件
source ~/.zinit/bin/zi.zsh

autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit

zinit ice wait "0";

# zinit light <zsh 插件在 github 中的项目名>
zinit light zsh-users/zsh-autosuggestions # 自动补全插件
zinit light zsh-users/zsh-syntax-highlighting # 语法高亮插件

zinit snippet OMZ::lib/git.zsh # 加载 OMZ 的 git 库
zinit snippet OMZ::plugins/git/git.plugin.zsh # 加载 OMZ 的 git 插件

(3) 重新开启终端,自动加载~/.zshrc; 或者 source ~/.zshrc

yammie@my-pc >/home/yammie
$ source ~/.zshrc

6. 在~/.zshrc 中自定义 zsh 终端初始化命令提示符的主题样式

添加如下代码:

# 引用分支显示脚本
source ~/git-prompt.sh

# 显示分支的 *
GIT_PS1_SHOWDIRTYSTATE=true

NEWLINE=$'\n' # 换行符
precmd () { __git_ps1 "$NEWLINE%F{cyan}%n@%m >%F{yellow}%d %F{blue}" "%F{reset_color}$NEWLINE$ " "(%s)" }

注意:
(1) 开启该命令,会默认使用 git-prompt.sh 的 __git_ps1_colorize_gitstring 函数。调用%s 显示分支名时,会给分支名上色。但是自己添加的括号上色不均匀。
(具体看~/.bashrc 方案一对分支的上色)
# GIT_PS1_SHOWCOLORHINTS=true


(2) .zshrc 配置文件只能通过 precmd()获取 git-prompt.sh 脚本中的分支内容。
使用 PS1="$( __git_ps1 "%s" )",.zshrc 读不出分支名。
另外,git-completion.bash 无法被.zshrc 引用,表示 git 官方的自动补全脚本已经过时。

(3) precmd() 函数的解释
precmd () { __git_ps1 "var1" "var2" "var3" }
"var1":预编译的参数,始终显示在 Shell 窗口。
"var2":跟在 var1 后面。
"var3":打印格式化的内容,插入 var2 前面。


例子:
precmd () { __git_ps1 "%n@%m:%d" "$NEWLINE$ " " (%s)" }
zsh 显示的样子:

7. 将/etc/bash.bashrc 的配置复制到~/.zshrc 中

(1) 设置 Notepad--别名

#Notepad--设置别名
# sudo 后面的那个空格将会告诉 bash,去检查跟在空格后面的命令是否也是一个别名。
alias sudo='sudo '

#结合上面的 sudo 别名,可以写成 sudo notepad--,sudo np,也可以按变量名书写:sudo Notepad--
alias notepad--='/opt/Notepad--/notepad--'
alias npp='notepad--'

(2) fcitx 配置,使得 sudo 开启的文件也能使用输入法

# fcitx 配置,使得 sudo 开启的文件也能使用输入法
export XMODIFIERS=“@im=fcitx”
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx


# vim 使用的是终端(键盘)输入,vim 或者 sudo vim 都支持 fcitx。
# 但是 gedit 和 Notepad-- 在用 sudo 开启时,是不支持 fcitx 的,需要先关闭用户层级的 fcitx,接着开启 sudo 组的 fcitx
# 方可使用 fcitx 输入法。
# 下面把开启 sudo fcitx 和关闭 sudo fcitx 的操作写成了两个可执行脚本。
# 每当运行 sudo gedit 或者 sudo np 时,请先开启 osf: osf|sudo gedit <filename>
# 退出编辑后,运行 csf 来关闭 sudo 组的 fcitx,开启用户层级的 fcitx。

alias osf='/opt/linux 简易执行脚本/sudo_fcitx/open_sudo_fcitx.sh' # 开启 sudo fcitx 的运行脚本
alias csf='/opt/linux 简易执行脚本/sudo_fcitx/close_sudo_fcitx.sh' # 关闭 sudo fcitx 的运行脚本

# 导入 anaconda3 的运行目录,然后在终端 sudo su ,source /etc/bash.bashrc 导入
export PATH=$PATH:/home/yammie/anaconda3/bin

上面只是fcitx配置而已,要想使用该功能,请参考以下的文章进行完整配置。

sudo 启动应用程序无法使用fcitx输入法的解决方案icon-default.png?t=N7T8https://blog.csdn.net/qq_33653203/article/details/138623401?spm=1001.2014.3001.5502

(3) 设置别名

#设置别名
#文件显示颜色
#ls 命令里面,01 表示粗体。文件夹:紫色;txt 文件:黑色;mp3 文件:蓝绿色

export LS_COLORS="di=01;35:*.txt=01;30:*.mp3=01;36"
alias ls='ls --color=auto'
alias ll='ls -l --color=auto'
alias l.='ls -d .* --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'

8. 输入 exit,会退出 zsh 终端,回到 bash 终端

可见zsh终端结合了zint插件后,命令会自带颜色,而bash终端是没有颜色的,为默认的黑色。

Ubuntu 终端美化是一个非常常见的需求,可以通过以下步骤进行: 1. 更改终端主题:打开终端,点击顶部菜单栏的 Edit -> Preferences,选择一个你喜欢的主题。常见的主题有 Solarized、Dracula、Monokai 等。你可以在互联网上找到各种主题,并按照主题提供的说明进行安装和使用。 2. 更改终端字体:同样在终端的 Preferences 中,你可以选择一个符合你审美的字体。常见的字体有 Powerline、Source Code Pro、Inconsolata 等。选择一个你喜欢的字体,并设置为终端的默认字体。 3. 添加彩色提示符:终端的提示符可以添加一些彩色效果,使其更加醒目。你可以编辑 `~/.bashrc` 文件,在其中添加一些自定义的提示符格式。比如,在文件末尾添加以下代码: ``` export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ " ``` 这个提示符会显示当前用户和主机名的绿色,当前路径的黄色,并以 `$` 结尾。 4. 使用 Oh My Zsh:Oh My Zsh 是一个非常受欢迎的终端框架,它可以大大改善命令行的体验。你可以在终端中运行以下命令来安装 Oh My Zsh: ``` sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" ``` 安装完成后,你可以在 `~/.zshrc` 文件中配置主题、插件和其他自定义设置。 这些是一些基本的终端美化方法,你可以根据自己的需求进一步定制。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值