Ubuntu的一些高(sao)效(cao)率(zuo)工具

2021 年 1 月 23 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

本文转自一点一的N次方

你是否在用Ubuntu时为了找一个历史命令曾疯狂地按

你是否因为手抖或者记不清名字经常输入错误指令?

你是否需要进行多任务而苦于频繁切换命令行终端?

你是否因为长时间使用键盘和鼠标而感到肩颈难受?

……


不知道你有没有这些经历,反正我有!!直到之前一位朋友华哥和我推荐了几款工具之后,上面的情况就完美解决了。


今天,我就把这些高(sao)效(cao)率(zuo)工具整理一下,大家按需自提:-D



1 分屏工具tmux

有时候,当处理多任务或者需要对比结果时,打开几个终端来回切换的确有点麻烦。


尤其对于Vim党来说,一个终端打天下,要是每次编辑完都得:wq,完了有问题再重新打开编辑,似乎也是不方便。


那么这个时候要是可以把一个终端屏幕分成几块,同时在一个窗口显示的话岂不是美滋滋!


比如你可以看到这样的界面。是不是有点酷?



嗯,tmux就可以办到!

tmux is a "terminal multiplexer: it enables a number of terminals (or windows), each running a separate program, to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached."

https://wiki.archlinux.org/index.php/Tmux

看起来可还行,那就试试吧。不用怕试试就逝世。其实安装很简单的。


~$ sudo apt-get install tmux


就这么一行命令就安装好了,然后在终端输入tmux就可以用啦!


安装完之后你可能会觉得奇怪,为什么你的界面看起来如此单调,和我图中的颜值根本不是一回事?


别慌,这不是照骗。你还缺少对tmux的配置,需要oh-my-tmux的加持:-D


在GitHub搜索oh my tmux或者.tmux,这是个比较受欢迎的tmux配置项目。



按照README文档操作就能配置好了。

~$ cd~$ git clone https://github.com/gpakosz/.tmux.git~$ ln -s -f .tmux/.tmux.conf~$ cp .tmux/.tmux.conf.local .


你还可以安装Powerline fonts,这样就能用上Powerline的一些标志图案。其实下一个工具也要用上它,干脆现在就装上吧。

~$ sudo apt-get install fonts-powerline


之后,再通过Ctrl+a e组合键打开.tmux.conf.local文件,就可以自己更改里面的一些配置,弄好之后就能看到这般炫酷的界面啦!


当然徒有外表还不行,还得学一些常规的tmux操作,方便你我他:)


还是用刚才那张界面作为例子吧!



上图最上侧的蓝色方框代表的是tmux的Session(会话),当你在终端通过tmux启动时,就会创建一个会话,如果没有特意命名,它就从0开始有固定的编号。


我们可以通过用以下指令对会话进行操作:


~$ tmux new -s <session_name>   #创建一个名字为session_name的Session~$ tmux ls   #显示当前存在的所有Sessions~$ tmux detach   #解除当前Session,并未杀死,还在后台继续存在~$ tmux attach -t <session_name>   #重新接上名字为session_name的Session~$ tmux kill-session -t <session_name>   #杀死Session,再也找不回来了


图中下侧的红色椭圆代表的是tmux的Window(窗口),当通过tmux启动并创建一个会话时,会同时创建一个窗口。如果没有特意命名,它就从1开始固定编号。


可以用快捷键Ctrl+a c创建一个新的窗口,Ctrl+a &关闭当前窗口,Ctrl+a 1/2/3...切换到特定编号的窗口。


一般用快捷键操作tmux的时候都要先加Ctrl+b作为前缀,而前面安装的oh-my-tmux配置可以用Ctrl+a来代替,毕竟按键bCtrl键还是有点远的(~_~;)


最后,上图中间的绿色三角框代表的是tmux的Pane(窗格),当tmux启动时也会同时创建一个窗格。


比如下面就是通过tmux启动时的界面,它同时创建了一个会话(蓝色)、一个窗口(红色)和一个窗格(绿色)。



我们前面说到的分屏,可以理解为在一个窗口中同时划分多个窗格,前面放的那张图就是一个窗口中划分了4个窗格。


以前需要开4个终端来操作,或者在同一个终端下操作,然后再往上翻记录,现在就可以同时展示在一个窗口中了!


对于在窗口中划分窗格,我们只需要熟悉那么几个常用的快捷操作就行。


Ctrl+a %是将当前窗格均分为左右两格,Ctrl+a "是均分为上下两格,Ctrl+a ↑/↓/←/→可以切换到其他窗格。


如果熟悉Vim的话,也可以通过Ctrl+a k/j/h/l切换窗格,如果要调整窗格大小则用对应按键的大写形式Ctrl+a K/J/H/L


当然操作不只这么一点,可以在网上找对应的教程,再进一步学习它的操作!


一开始我也会觉得这玩意对我没太大作用,可是用起来后莫名创造了一些其他需求!


比如有时候写个简单程序验证功能,懒得再动用IDE就可以通过分屏,一边用来写代码,另一边用来编译运行,如果报错就切换回代码那边继续修改...



细心的你可能会发现,即使弄到这个地步,你的终端操作界面和我的还是有点不一样。下面就来介绍第二个高效工具——zsh!



2 命令行工具zsh

zsh其实是一个shell,也就是命令行解释器,在Ubuntu下默认的shell是bash,可以通过指令echo $SHELL查看当前的shell。


bash也有一些方便的操作,比如tab键可以补全输入命令或者文件,↑/↓键可以找到往前或者往后输入的命令。


但多多少少还是不够方便,比如历史命令比较多,得不停地往前翻才能找到。或者要是记错命令或者文件名,再怎么tab也没办法补全!!


这时候zsh的优势就体现出来了,这玩意真是谁用谁知道。


和tmux一样,一条命令语句就搞定安装了!

~$ sudo apt-get install zsh


为了方便起见,直接将zsh设为默认的shell,bash自此可以下班了...

~$ chsh -s $(which zsh)


重启后打开终端测试一下。

~$ echo $SHELL~$ $SHELL --version


如果显示/usr/bin/zsh和zsh 5.4.2或者类似的,就说明已经安装并且设置好啦:-D


装好之后就可以享受zsh行云流水般的操作,比如下面这个。



你会发现,切换到某个路径下不需要用cd命令,直接输入路径就可以了。


当然如果习惯cd操作这个倒也无可厚非,比如我下面的cd build && make -j4命令,现在都已经形成肌肉记忆了,要改的话还需要时间。


关键是,输入指令不用这么准确也能补全了!比如输入zq/sl/orb就能补全正确路径ZQC/SLAM/ORB_SLAM2,简直不要太友好。


有时记错名字或者手抖打漏了某个字符,zsh也能自动帮你修正过来:D


如果你的命令比较模糊,没办法一下子补全的话,tab还有一个更神奇的地方,就是可以让你手动选择,看下图。



当补全比较模糊的时候,按两次tab键就会弹出所有可补全的结果,通过↑/↓/←/→就可以选择你想要的命令或者路径。


就连命令的参数也是可以补全的,上图的git commit -<tab>就是对命令参数的补全选择。是不是已经忍不住要安装zsh了,心动不如行动!


你又发现了,为什么你的界面和我的还是不一样?和tmux一样,你还缺一个oh-my-zsh!0.0


这个oh-my-zsh可比oh-my-tmux要强大,它的网站上第一句话就是“Your terminal never felt this good before.”

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout...

https://ohmyz.sh/

嗯,名副其实,好歹也是一个11万Star的项目啊!


也是只要一条命令就搞定安装

~$ sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"


可以设置自己喜欢的主题,还可以安装各种插件然,要是喜欢倒腾还可以DIY


详情请查阅GitHub的Wiki,里面有很详细的介绍,我这里就不多说了!


我现在用的主题是agnoster,感觉就很可


如果当前路径是一个git仓库,它会显示当前所在的分支。要是仓库没有变化,那么分支就是绿色的;如果做了某些更改,就会变成黄色:D



还有一点很高效的就是,当你输入命令的一部分时,按↑/↓键就可以翻看具有相同字符的历史命令!


比如下图,输入(c再按键就能找到以往的(cd build && make -j4)命令,输入xdg再按键也是一样。如此这般就能很快定位到自己想要的历史命令啦0.0



但有些命令比较久远了,这么上下翻一次只能看一条还是嫌不够方便怎么办?还有一个小工具可以帮上忙!



3 模糊搜索工具fzf

fzf是一个命令行的模糊搜索工具,它搭配zsh一起使用简直太爽了。


以前搜索历史命令只能一条条往回翻,而fzf可以一次性全展示出来。


用bash的话历史记录只能存1千条,而zsh可以存5万条,这还不香?我们可以通过echo $HISTSIZE命令看一下就知道了!


它的安装命令又是短短的两条就完事。

~$ git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf~$ ~/.fzf/install


安装完后重启终端,通过Ctrl+r键就可以打开fzf,输入要搜索的关键字符就能找到历史命令,多模糊的都能给你找出来。



如果嫌搜索结果太杂,通过在搜索字符前加'就能搜索完全匹配字符的历史命令!


当然还有更多的操作,可以到GitHub的Wiki深入挖掘一下。篇幅好像有点长,就不再做过多介绍了


以上的三个工具都是针对命令行的,所以在Ubuntu命令行模式也是适用的!



4 Chrome插件Vimium

还有最后一个神器,可以让你在用Chrome浏览器时,基本忘记了鼠标的存在:D


那就是Chrome的插件Vimium,一看这名字肯定就知道它和Vim有什么瓜葛。


的确,它的一些操作键位和Vim很类似。装了这个插件,就可以直接通过键盘操作浏览和控制Chrome了。


一般的操作流程就是:t打开新标签->在地址栏输入网址或搜索内容->回车->f/F选择链接->k/j/h/l上下左右滚动屏幕->J/K左右切换标签...


f/F可以把界面中可以跳转的都用字母标出来了,想选哪个就按相应的字母键,相当于用鼠标点击链接。



看着似乎很繁琐,可是只要花十几分钟把几个键位练熟,你真的会觉得碰一次鼠标都嫌碍事!


即使忘了快捷键,在界面敲个?,就能显示出来,贴不贴心?



某些情况下Vimium不能操作,这时再搭配一些Chrome原生的快捷键,就真的完美了!


不知道为什么,我在实验室长时间使用鼠标的话右肩颈会酸痛,而上面4个工具居然成功解决了这个问题0.0


习惯了键盘操作之后,现在每次切换到Windows系统都会很不习惯,相信你用上一段时间也会有这种感觉!


也许你会认为这些工具看上去很麻烦,但是只要花点时间练练基本操作,等到用时需要什么再查什么。假以时日,在外人看来就是一顿操作猛如虎了。


配置一个赏心悦目的环境,外加一些行云流水的快捷键,可以让日常的学习工作多一份乐趣,也是对自己好的一种方式:D


一个人孤独的学习SLAM,我哭了!



专辑:计算机视觉方向简介

专辑:视觉SLAM入门

专辑:最新SLAM/三维视觉论文/开源

专辑:三维视觉/SLAM公开课

专辑:深度相机原理及应用

专辑:手机双摄头技术解析与应用

专辑:相机标定

专辑:全景相机

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

投稿、合作也欢迎联系:simiter@126.com

扫描关注视频号,看最新技术落地及开源方案视频秀 ↓


登录查看更多
0

相关内容

Ubuntu[国际音标:[uːˈbuːntuː](英语);[ùɓúntú](祖鲁语)]是一个以桌面应用为主的GNU/Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(官方译名“友帮拓”,另有“吾帮托”、“乌班图”、“有奔头”或“乌斑兔”等译名),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。 Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
101+阅读 · 2020年10月11日
专知会员服务
81+阅读 · 2020年9月28日
一份简单《图神经网络》教程,28页ppt
专知会员服务
124+阅读 · 2020年8月2日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
Python图像处理,366页pdf,Image Operators Image Processing in Python
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
Kali上的php后门生成&管理工具--weevely
黑白之道
8+阅读 · 2019年9月30日
通过Termux打造免root安卓渗透工具
黑客技术与网络安全
16+阅读 · 2019年8月16日
10 快好用的下载工具,终于和迅雷说拜拜了
高效率工具搜罗
4+阅读 · 2019年4月4日
polyglot:Pipeline 多语言NLP工具
AINLP
4+阅读 · 2018年12月11日
自然语言处理 | 使用Spacy 进行自然语言处理
机器学习和数学
19+阅读 · 2018年8月22日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
深度学习 | 免费使用Google Colab的GPU云计算平台
沈浩老师
12+阅读 · 2018年2月4日
Arxiv
6+阅读 · 2019年7月11日
Arxiv
6+阅读 · 2018年2月7日
Arxiv
5+阅读 · 2017年9月8日
VIP会员
相关VIP内容
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
101+阅读 · 2020年10月11日
专知会员服务
81+阅读 · 2020年9月28日
一份简单《图神经网络》教程,28页ppt
专知会员服务
124+阅读 · 2020年8月2日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
Python图像处理,366页pdf,Image Operators Image Processing in Python
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
相关资讯
Kali上的php后门生成&管理工具--weevely
黑白之道
8+阅读 · 2019年9月30日
通过Termux打造免root安卓渗透工具
黑客技术与网络安全
16+阅读 · 2019年8月16日
10 快好用的下载工具,终于和迅雷说拜拜了
高效率工具搜罗
4+阅读 · 2019年4月4日
polyglot:Pipeline 多语言NLP工具
AINLP
4+阅读 · 2018年12月11日
自然语言处理 | 使用Spacy 进行自然语言处理
机器学习和数学
19+阅读 · 2018年8月22日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
深度学习 | 免费使用Google Colab的GPU云计算平台
沈浩老师
12+阅读 · 2018年2月4日
Top
微信扫码咨询专知VIP会员