搞机( oh-my-zsh + autojump + screen 让你的终端起飞)

搞机( oh-my-zsh + autojump + screen 让你的终端起飞)
文章图片

用了这没久ubuntu了,才知道有oh-my-zsh这种东西,真是相见恨晚啊~
1. oh-my-zsh安装使用 说到oh-my-zsh先要说一下zsh。zsh是linux的命令指示器类似于bash,我么平时使用的就是bash,支持的配置比较多方式比较多,使用起来跟bash也没啥区别,会使用bash就能直接上手没啥学习成本。
oh-my-zsh是一个配置zsh的项目,用于美化zsh界面,并提供一些智能插件,可以很大程度提升使用命令行的效率。
1.1 zsh安装
我用的是ubuntu系统,演示ubuntu安装的方法:

  1. 通过apt安装zsh
sudo apt-get install zsh

  1. 将shell改成使用zsh
chsh -s /bin/zsh

这里要输入账号的密码,这样就zsh就安装成功了,注意:
  • 使用zsh后之前设置的一些快捷键环境变量都不能用了,即在.bashrc文件中的设置作废,因为这是bash的配置,现在要将你需要的快捷键环境配置到.zshrc文件中。
1.2 oh-my-zsh安装
github上的项目地址
确保你的电脑上有git,没有就装一个:
sudo apt-get install git

由于墙的缘故,github上提供的前两个下载方法我都不能使用,404,只能通过直接git clone的方法:
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

到这里oh-my-zsh就安装成功了,需要将环境变量等信息配置到~/.zshrc文件中。
1.2.1 设置主题
大家使用zsh方便是一方面,美观也是一方面。
我们打开~/.zshrc文件可以在下图位置设置,zsh使用的主题,默认的就挺好看的,配置成random的话每次启动zsh都会更换主题,可以通过这个方式找到你心仪的那个主题样式。
搞机( oh-my-zsh + autojump + screen 让你的终端起飞)
文章图片

配置完成保存文件执行source ~/.zshrc,主题就更换了。
1.2.2 设置插件
同样是在打开~/.zshrc文件,在plugins那一行中的括号里添加要使用的插件。
搞机( oh-my-zsh + autojump + screen 让你的终端起飞)
文章图片

插件要安装到~/.oh-my-zsh/custom/plugins目录中
裂墙推荐三个插件:
  • autojump 根据访问记录模糊地址跳转
  • zsh-syntax-highlighting 高亮提示
  • zsh-autosuggestions 根据访问记录进行提示
1.2.2.1 zsh-autosuggestions安装
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

1.2.2.2 zsh-syntax-highlighting安装
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

1.2.2.3 autojump安装
sudo apt-get install autojump

除了在还要在~/.zshrc中配置plugins,还要将下面这句写到文件中:
[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

2. autojump使用 这个autojump真的nb,用了之后直接起飞,举个例子:
我之前访问的一个很长的地址/mnt/2D97AD940A9AD661/Projects/springSecurityJwt/webflux_jwt/WebFlux_Security/build/libs,因为访问过有记录,使用autojump通过键入j libs就可以匹配到之前访问的地址:
搞机( oh-my-zsh + autojump + screen 让你的终端起飞)
文章图片

此外autojump还有一些处理地址数据库的一些方法:
搞机( oh-my-zsh + autojump + screen 让你的终端起飞)
文章图片

  • j -a path : 将path加入链接库
  • j -d value: 降低当前目录的权重
  • j -i value: 提升当前目录value数目的权重
  • j -s: 显示数据库中的统计数据
  • j --purge: 清除不再需要的目录
3. 配合screen使用 在服务器上不能使用x-term,为了方便会使用screen这类软件作为代替,同样在screen中也可以使用以上配置,需要配置screen信息:
3.1 创建screen配置文件
vim .screenrc

3.2 添加更改使用shell
shell "/usr/bin/zsh"

保存source之后就可以使用
3.3 screen 添加下标和滚动
hardstatus alwayslastline "%{=b}%{-b}%{R}[%{=b B}%-w%{=b BK}%>%n %t%{-}%+w%{-b}%< %=%{R}][%{-b}%{M}%m-%d %D %{G}%c%{R}]" termcapinfo xterm* ti@:te@

【搞机( oh-my-zsh + autojump + screen 让你的终端起飞)】~/.zshrc中添加如下设置:
#screen integration to set caption bar dynamically function title { if [[ $TERM == "screen" || $TERM == "screen.linux" ]]; then # Use these two for GNU Screen: print -nR $'\033k'$1$'\033'\\\print -nR $'\033]0; '$2$'\a' elif [[ $TERM == "xterm" || $TERM == "urxvt" ]]; then # Use this one instead for XTerms: print -nR $'\033]0; '$*$'\a' #trap 'echo -ne "\e]0; $USER@$HOSTNAME: $BASH_COMMAND\007"' DEBUG fi }#set screen title if not connected remotely function precmd { title "`print -Pn "%~" | sed "s:\([~/][^/]*\)/.*/:\1...:"`" "$TERM $PWD" echo -ne '\033[?17; 0; 127c' }function preexec { emulate -L zsh local -a cmd; cmd=(${(z)1}) if [[ $cmd[1]:t == "ssh" ]]; then title "@"$cmd[2] "$TERM $cmd" elif [[ $cmd[1]:t == "sudo" ]]; then title "#"$cmd[2]:t "$TERM $cmd[3,-1]" elif [[ $cmd[1]:t == "for" ]]; then title "()"$cmd[7] "$TERM $cmd" elif [[ $cmd[1]:t == "svn" ]]; then title "$cmd[1,2]" "$TERM $cmd" else title $cmd[1]:t "$TERM $cmd[2,-1]" fi }

3.4 screen常用命令
# 列出所有实例 screen -ls # 开启实例 screen -R [name] # attach一个Detached的实例 screen -r [name] # attach一个已经Attached的实例 screen -x [name] # Detach一个Attached的实例 screen -d [name] # Detached当前实例 ctrl+a, d # kill当前实例 ctrl+a, k exit # 关闭当前焦点所在的屏幕区块 ctrl+a, X # 关闭除当前区块之外其他的所有区块 ctrl+a, Q # 创建名字为test的实例 screen -S test # 改名 ctrl+a, A # 左右分屏 ctrl+a, | # 创建新窗口 ctrl+a, c # 上下分屏 ctrl+a, S # 切换屏幕 ctrl+a, tab

总结
  • 工欲善其事,必先利其器;
  • 磨刀不误砍柴工;
  • 君子性非异也,善假于物也
  • 赶紧看啊,用着干嘛[狗头]

    推荐阅读