热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

点击上方“小白学视觉”,选择加星标或“置顶”重磅干货,第一时间送达你是否在用Ubuntu时为了找一个历史命令曾疯狂地按↑?你是否因为手

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达eb1f167c9fe090f200d2fa04c19d7317.png

11f70ff10376cb51d1e80b1ab6764ef5.png

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

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

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

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

……

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

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

1 分屏工具tmux

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

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

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

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

226bf2dff84f46f1f15ebf84515e5cf5.png

嗯,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配置项目。

ded125d873c6e92d7710c04453c04f39.png

按照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操作,方便你我他:)

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

ec16ba32271ac4cc66dca25bdd93e30d.png

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

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

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

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

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

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

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

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

6acf3983e6cd9682f80ada3cb87f5638.png

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

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

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

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

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

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

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

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

a9a351560494bb5ee5af7090715f163d.png

细心的你可能会发现,即使弄到这个地步,你的终端操作界面和我的还是有点不一样。下面就来介绍第二个高效工具——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行云流水般的操作,比如下面这个。

8c7fd5acf8b3547218de8a580626cd0c.gif

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

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

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

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

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

8aad86010070e8f787f8ebf45371a2d7.gif

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

就连命令的参数也是可以补全的,上图的git commit -就是对命令参数的补全选择。是不是已经忍不住要安装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

113a38d4cdcff692ae30736f1480a9a9.png

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

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

5292ec1dc58dea0638d80962e9e1bbe6.gif

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

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,输入要搜索的关键字符就能找到历史命令,多模糊的都能给你找出来。

0c2b94461f907ba8954b9881c0308f2f.gif

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

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

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

4 Chrome插件Vimium

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

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

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

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

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

f6948c7cc2750ebe7207fee4ab1d6910.png

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

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

702d1f064b38d8ac1f103bae53723fd6.png

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

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

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

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

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

以上。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

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

14e8c6190d2f8b249d6c9725b6bbfc8e.png

d2319e423815263466fc1846f644c549.png



推荐阅读
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
author-avatar
拍友2502876287
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有