首页 > 系统相关 >【zsh使用技巧】Linux shell美化,ohmyzsh安装+Xshell美化,体验Mac命令行

【zsh使用技巧】Linux shell美化,ohmyzsh安装+Xshell美化,体验Mac命令行

时间:2023-06-07 10:46:25浏览次数:55  
标签:git oh my Mac shell bash zsh ohmyzsh 美化

解决oh-my-zsh主题乱码问题
解决Rocky Linux下ohmyzsh按Tab键自动补全命令时重复字符且无法删除问题
Solve:
Remnant characters when tab completing
I see duplicate typed characters after I complete a command

愿你美化半生,归来仍是默认



一、背景

厌倦了Linux单调的命令行,那么你来对地方了,无需图形化界面,提供优美主题和插件,SSH也管用的shell美化!

目前的美化方案有ohmyzsh、oh-my-fish、oh-my-bash

GitHub上star最多的是ohmyzsh,估计用得最多的不是Linux用户而是Mac用户,反过来想我们Linux上安装也能体验Mac般的命令行哈哈哈

zsh和bash一样属于解释器,因ohmyzsh而火,当然还有更激进的fish,但是可能不那么兼容bash

而目前Linux默认的shell还是是bash,如果觉得zsh还是不够稳的话可以用oh-my-bash

当然目前(2022-1-20 Rocky Linux 8)ohmyzsh、oh-my-bash都还有Bug

  • ohmyzsh在编辑命令时,按Tab键自动补全命令时重复字符且无法删除问题,不过笔者已经解决了

  • ohmyzsh在git branch -a时不是直接输出,而是跳到另一个界面显示,不知道是bug还是git插件就是这样设计的

  • 而oh-my-bash则是大小写敏感都无法配置,比较鸡肋



安装ohmyzsh

dnf -y install zsh
# 直接用官方脚本,但是网不好可能下不了
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# git 下载,https得挂代理,最好还是使用ssh
cd ~
# git clone https://github.com/ohmyzsh/ohmyzsh.git .oh-my-zsh
git clone [email protected]:ohmyzsh/ohmyzsh.git .oh-my-zsh
# 下载插件
# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/plugins/zsh-syntax-highlighting
git clone [email protected]:zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/plugins/zsh-syntax-highlighting
# git clone https://github.com/zsh-users/zsh-autosuggestions.git .oh-my-zsh/plugins/zsh-autosuggestions
git clone [email protected]:zsh-users/zsh-autosuggestions.git .oh-my-zsh/plugins/zsh-autosuggestions

cp .oh-my-zsh/templates/zshrc.zsh-template .zshrc
vi .zshrc
source .zshrc
# 将用户默认shell从bash改为zsh
usermod -s /bin/zsh root

个人.zshrc配置

# 解决zsh-autosuggestions显示白色
export TERM=xterm-256color

ZSH_THEME="agnoster"

# 禁用自动更新 
zstyle ':omz:update' mode disabled

# 绑定按键
bindkey "^[[1~" beginning-of-line
bindkey "^[[4~" end-of-line

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# ls -a无法生效
alias ll='ls -lh'

CASE_SENSITIVE="true"

HYPHEN_INSENSITIVE="true"
# 80G
plugins=(
    git 
    zsh-autosuggestions 
    zsh-syntax-highlighting 
)

注意bindkey中的^[[1~不是直接打出来的,其实是i模式下Ctrl+v home输入进去的,另一个是End键

最后把当前用户的默认shell改为zsh

chsh -s /bin/zsh



2.1 主题特殊字符乱码

FAQ#i-have-a-weird-character-in-my-prompt

安装powerline字体:

# rocky linux 8为例
dnf -y install powerline-fonts



2.2 Tab键补全出现重复字符

FAQ#i-see-duplicate-typed-characters-after-i-complete-a-command

如果设置了编码也不能解决,而你用的是agnoster、cloud主题,使用默认主题、arrow没问题,那么恭喜你,找对地方了,我可能是全网第一个发现并解决这个问题的人

发现的时候是2022-01-20,zsh是5.5.1版本,ohmyzsh是 master (22c11da),操作系统是Rocky Linux 8.5,用CentOS 7发现没有这个毛病

github issues

以agnoster为例,我发现出问题的就是.oh-my-zsh/themes/agnoster.zsh-theme文件最后一行的最后一个空格,占位不对,将他从这样

PROMPT='%{%f%b%k%}$(build_prompt) '

改成这样就行

PROMPT='%{%f%b%k%}$(build_prompt)%{ %}'

%{ %}是用于格式化的代码



三、SSH客户端美化

3.1 Windows SSH客户端选择

选一个好的SSH客户端能让你事半功倍

最让人熟知的SSH客户端就是Xshell了,配合Xftp,十分能打,官网登录就能获取学校、家庭免费版,下载链接发到邮箱

但是我们这篇博客的主题是“美化”,Xshell颜值只能说中规中矩,似乎没法和Mac命令行打

颜值最高的是termius,可惜自定义主题这方面不是很友好,而且会覆盖ohmyzsh的颜色,以及一些图标显示有缺陷

还在github上发现一个,叫electerm,不过不能打,直接就不支持ohmyzsh的字体

综合来看,Xshell永远滴神

仔细想Xshell这样的界面是牺牲了颜值,但是提高了效率,我们也可以配置成高颜值低效率

再用Alt+s键就变成

挺能打的了,当然要是官方能重构成termius那种高级主题更好\(@^0^@)/



3.2 Xshell配合agnoster主题

设置Xshell配色方案,配色方案(地球左边的图标)- 浏览 - 选中XTerm - 另存为

编辑新出现的XTerm(2) 修改"背景" - 选其他颜色,自定义颜色,按RGB我推荐两种颜色,较浅的是36 49 53,这是我从视频中看到的Terminix上取下的颜色,有点浅,直接降低亮度得到30,感觉还行,添加到自定义颜色

把背景和ANSI的黑色都设置成这个颜色!完美(除了ohmyzsh的bug)



四、zsh使用技巧

总结一下zsh和bash在操作上的不同

  • git add,用 ga

  • 查找以 xx 开头的历史命令,先输 xx 再按上键

    bash中无论当前输了什么内容,按上键都是上一个使用的命令,要查找以 xx 开头的命令得用 !



标签:git,oh,my,Mac,shell,bash,zsh,ohmyzsh,美化
From: https://www.cnblogs.com/yunmuq/p/15817431.html

相关文章

  • OmniPlan Pro 4 Mac专业项目流程管理工具
    OmniPlanPro4forMac是一款专业的项目流程管理工具,这款软件可以让你更加快速的将一个任务完成,并在不同的工作环境中快速切换。同时能够实现项目的有效管理,让你随时随地都能进行项目的推进。该软件适用于MacOSX10.13或更高版本,拥有强大而专业的功能、丰富而专业的自定义功能以......
  • SRC漏洞挖掘未授权上传webshell
    以下是我如何将webshell上传到一个旧目标中,这是使用谷歌dorks,Js检查和文件上传过滤器绕过。过程1、我随机选择了一个范围很大的目标开始2、我启动了自动化脚本来发现使用的技术、domains、IP...3、我找到了一个叫intranet.redacted.com子域名,使用的服务器是IIS8或7,我不记......
  • 2023春秋杯 sigin_shellcode
    2023春秋杯春季赛sigin_shellcode分析ida打开,程序的主干如下,就是一个下落的游戏,主要有三个功能:menu:进行选择,继续下落或者退出shopping:用金币购买道具,用于增加攻击力down:下落,其中有一个获取金币的函数,以及到达100层时进行决战的函数。mainint__cdecl__noreturnmain(......
  • 基于《PythonCookbook》的学习(3)——利用 Shell 通配符做字符串匹配
    fnmatch模块提供了fnmatch()和fnmatchcase()两个函数可以使用通配符模式对文本进行匹配fnmatch所完成的匹配操作有点介乎于加单的字符串方法和全功能的正则表达式之间。感觉蛮鸡肋的…:(......
  • Docker for Windows 中文文档(2)——Set up tab completion in PowerShell
    在PowerShell中设置tab完成如果您希望为Docker命令提供方便的选项卡完成,可以按如下方式安装posh-dockerPowerShell模块。1.启动“elevated”PowerShell(即以管理员身份运行)。为此,请搜索PowerShell,右键单击,然后选择以管理员身份运行。当系统询问您是否允许此应用更改您的设备时,......
  • linux shell if else 多个选择条件的判断语句 语法
    该脚本为,如果满足i等于mysql、information_schema、performance_schema、db_sys_stat其中一个那么就跳出执行下面的。重点介绍:if条件语句[]左右两个都要有一个空格。#!/bin/bash#2012-12-25bycocoforiin`cat./db_list.txt`doif["$i"=="mysql"]||["$i"==......
  • Mac 在指定目录下打开终端的方式
    参考资料:1、mac当前位置打开终端https://jingyan.baidu.com/article/ce436649281a293773afd3d8.html2、如何在MAC指定文件夹打开终端(terminal)https://www.jianshu.com/p/3e1b5fe48952......
  • Mac 设置快速锁屏的方式
    参考资料:1、mac快速锁屏https://jingyan.baidu.com/article/219f4bf7d14984de442d389a.html2、苹果电脑快捷锁屏的几种方法https://jingyan.baidu.com/article/495ba84107f25538b30ede04.html......
  • Shell 切分字符串取出最后一段
    awk:#echo"1:3:5"|awk-F":"'{print$NF}'sed:#echo"1:3:5"|sed's/.*:\([^:]*\)$/\1/'1、shell中分割字符串之后怎么取得最后一个东西的值?如果可以的话,怎么将分割后的结果保存到一个数组中?https://zhidao.baidu.com/question/297800980.html......
  • Mac视频剪辑软件-Final Cut Pro v10.6.6中文版
    随着视频内容的不断发展和普及,越来越多的人开始将视频制作作为一种创作方式和表达形式。而想要制作高质量的视频,需要用到专业的视频编辑软件。其中,FinalCutPro是一款非常受欢迎的Mac上的视频剪辑软件,它具有丰富的功能和强大的性能,可以帮助用户轻松地完成复杂的视频制作任务。→......