一、下载 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
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下载https://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配置而已,要想使用该功能,请参考以下的文章进行完整配置。
(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终端是没有颜色的,为默认的黑色。
标签:Zint,git,补全,yammie,sudo,fcitx,终端,zsh,bash From: https://blog.csdn.net/qq_33653203/article/details/141034301