搞机( 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安装的方法:
- 通过apt安装zsh
sudo apt-get install zsh
- 将shell改成使用zsh
chsh -s /bin/zsh
这里要输入账号的密码,这样就zsh就安装成功了,注意:
- 使用zsh后之前设置的一些快捷键环境变量都不能用了,即在.bashrc文件中的设置作废,因为这是bash的配置,现在要将你需要的快捷键环境配置到.zshrc文件中。
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都会更换主题,可以通过这个方式找到你心仪的那个主题样式。文章图片
配置完成保存文件执行
source ~/.zshrc
,主题就更换了。1.2.2 设置插件
同样是在打开
~/.zshrc
文件,在plugins那一行中的括号里添加要使用的插件。文章图片
插件要安装到
~/.oh-my-zsh/custom/plugins
目录中裂墙推荐三个插件:
- autojump 根据访问记录模糊地址跳转
- zsh-syntax-highlighting 高亮提示
- 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
就可以匹配到之前访问的地址:文章图片
此外autojump还有一些处理地址数据库的一些方法:
文章图片
j -a path
: 将path加入链接库j -d value
: 降低当前目录的权重j -i value
: 提升当前目录value数目的权重j -s
: 显示数据库中的统计数据j --purge
: 清除不再需要的目录
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
总结
- 工欲善其事,必先利其器;
- 磨刀不误砍柴工;
- 君子性非异也,善假于物也
- 赶紧看啊,用着干嘛[狗头]
推荐阅读
- macOS多用户使用oh-my-zsh及其权限问题的解决
- oh-my-zsh ys 主题去除命令行前面计算机名
- Apps|oh-my-zsh插件推荐及安装教程
- Apps|oh-my-zsh主题power10k安装配置教程
- 给你的Mac|给你的Mac 整个好用的命令行iTerm2 + zsh + oh-my-zsh + powerlevel10k
- linux之autojump命令
- 程序员福音!Win10下使用oh-my-zsh全攻略,让Win10开发更顺滑...