加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
【作者言】想成为一个优秀的AI算法工程师必须要熟练使用Linux,这是学习AI的一个基础,如果你一直还在用Windows,那就很low了。 本文我们聊聊提升写代码效率不得不做的三件事。
1 桌面管理
首先我们说说一个最好用的终端,有着终端终结者之称的Terminator。
对Linux系统进行管理时,我们经常需要通过终端窗口输入各种操作命令。在GNOME集成桌面环境下,GNOME终端(gnome-terminal)是我们经常使用的终端程序,每次运行该程序都将打开一个单独的终端窗口,但是当我们进行命令行操作时,有时需要打开多个终端窗口,并且希望这些窗口能同时平铺显示,那该怎么办呢?其实,借助一款小巧而实用的软件——Terminator就可以轻松实现这一功能。效果图如下:
![f44c83411d943835503f459758927944.png](https://i-blog.csdnimg.cn/blog_migrate/b7beabdb640af82815541157c9f46d79.png)
对于Teminator我们可以使用下面命令来安装:
sudo apt-get install terminator
我们常用下面的命令来对终端进行各种操作。
Ctrl+Shift+O 水平分割终端(分成上下两个窗口)
Ctrl+Shift+E 垂直分割终端(分成左右两个窗口)
Ctrl+Shift+W 关闭当前终端
Ctrl+Shift+X 放大(还原)当前终端
F11 全屏
Ctrl+Shift+G 清屏
Ctrl+Shift+Right/Left 在垂直分割的终端中将分割条向右/左移动
Ctrl+Shift+S 隐藏/显示滚动条
Ctrl+Shift+Q 关闭所有终端(退出程序)
然后我们说说linux下完美帅气的终端Guake Terminal。
如果你希望让终端自己主动启动并在后台执行,如果你喜欢更高速地隐藏和显示终端,如果你更习惯使用快捷键,那么Guake 绝对是一个更好的选择。
![683b66b668b75edcc919b42f086a30e3.png](https://i-blog.csdnimg.cn/blog_migrate/07427d63b5966e37c6d22c1ee4032a35.png)
对于Guake,我们可以使用下面命令来安装。
sudo apt-get install guake
我们常用下面的命令来对终端进行各种操作。
F12 显示/隐藏Guake的程序界面
F11 切换到/退出全屏模式
Ctrl+Shift+T 新建标签页
Ctrl+Shift+W 关闭标签页
Ctrl+Shift+C 复制
Ctrl+Shift+V 粘贴
Ctrl+PageUp 切换到上一个标签
Ctrl+PageDown 切换到下一个标签
对于Guake,想要更好的了解请看其github,下面是链接:
https://github.com/Guake/guake
2 编程管理
在这个蔚蓝的星球上,对于编程来说,流传着两大神器:神的编辑器Emacs和编辑器之神Vim。
首先我们说说编辑器之神Vim,Vim是从vi发展出来的一个文本编辑器,其在代码补全、编译等方便的功能特别丰富,在程序员中被广泛使用。
![f6da1fb1f441ebb612de16b2735e9290.png](https://i-blog.csdnimg.cn/blog_migrate/dd0b0697ad97f61841168fcbd3eb774b.jpeg)
Vim有三种工作模式,分别是命令模式,输入模式和底线命令模式。
![940ba953cb46752a04c5967ebb6f1fd9.png](https://i-blog.csdnimg.cn/blog_migrate/07a25998e1cb7ad1604d09fdaf1606c5.jpeg)
由于Vim的按键非常多,这三种模式可以更加高效的帮助我们进行编程。
这还只是Vim的基础,Vim真正强大和能大幅提高编程效率的是其强大的插件。Vim 通过插件可以被拓展出许多不同层次的功能,我们常用的插件有Vundle、YouCompleteMe、Solarized、nerdcommenter等等插件。
然后说说神的编辑器Emacs。下面是其官方网页和Emacs中文论坛:
官方网页:
http://www.gnu.org/software/emacs/
中文论坛:
https://emacs-china.org/
Emacs不仅仅是一个编辑器,它实际上是一个集成开发环境,其设计目标就是,你装了个Unix或者Linux系统,不需要装任何其它软件,只要装一个Emacs就够了,它能帮助你完成所有的任务。也就是说,除了编程,你还可以用它写论文、做幻灯片、浏览网页、收发邮件、聊天、听歌、看照片、玩游戏……目前,好像除了直接在Emacs里看电影还不行,其它的都实现了。
![8fb28ca8f4b2bcaca3cf1956be5a514c.png](https://i-blog.csdnimg.cn/blog_migrate/ae00c35a7485f34af82f291379aaaf91.jpeg)
你使用了Emacs后你就可以不必学习VS去写C/C++,
不必学习Pycharm去学python,
不必学习eclipse去写Java,
不必学习MS-Word去写报告、幻灯片,
不必学习……
3 工程管理
对于工程管理,我们首先说说版本管理工具git。
我们知道,当年Linus创建了开源的Linux,从此,Linux系统不断发展,现在已经成为最大的服务器系统软件了。但是随着Linux的不断壮大,就需要各种版本控制了,起初Linus带着他的小弟们使用的是BitKeeper(商业版本控制系统),之后由于某种原因BitKeeper的公司不让他们使用了,于是Linus自己花了两周时间写出了git并且开源了(BitKeeper已哭晕在厕所),之后的岁月里,渐渐有了github、coding等一些可以使用git存储的网站,git的江湖地位变得无可替代了,如果你是个开发者却还不会使用git那就太out了。
![c933f54a8750a57471a5a38ca867b8dd.png](https://i-blog.csdnimg.cn/blog_migrate/479af1e762afb0172c69955ced2ac75a.jpeg)
在Ubuntu中我们通常使用下面命令来安装git。
sudo apt install git
git的命令非常多,如果熟练使用恐怕需要记住60-100个命令,但我们日常使用只需要下面六个命令即可。
![739ae271a261fec5eabfcac9d0e7ffd9.png](https://i-blog.csdnimg.cn/blog_migrate/f1d908a19426f3350798c4d124bad565.png)
然后我们说下linux代码维护工具make。
![bf1544029f1338ceb96e41fa49b439e2.png](https://i-blog.csdnimg.cn/blog_migrate/890bfb13c334e67e4320a8970b04ede3.jpeg)
make是一种代码维护工具,其会根据makefile文件定义的规则和步骤,完成整个软件项目的代码维护工作。一般用来简化编译工作,可以极大地提高软件开发的效率。
make工具主要能解决两大问题:
1、对于一个复杂的工程,一旦你提供了正确的 Makefile,编译整个工程你所要做的唯一的一件事就是输入 make 命令,整个工程完全自动编译,极大提高了效率。
2、它能减少编译时间,对于一个拥有大量文件的项目,当你在改动其中一个文件的时候,可以只对该文件进行重新编译,然后重新链接所有的目标文件,节省编译时间。
总结
工欲善其事必先利其器,做好这三件事便使你能在完成一个项目时事倍功半。
*延伸阅读
学深度学习的你有GPU了吗
PyTorch Hub发布!一行代码调用最潮模型,图灵奖得主强推
添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
△长按添加极市小助手
△长按关注极市平台
觉得有用麻烦给个在看啦~