电影中一个超级黑客坐在电脑面前,噼里啪啦地敲键盘,从不摸鼠标一下,几十秒就能入侵超级安全的军事系统。这是因为导演知道,作为人类, 我们应该本能地知道让计算机圆满完成工作的唯一途径:是用键盘来操纵计算机。

先来讲一个亲身经历,前不久我去面试,那家公司开发是使用的Linux系统(Ubuntu 12.04)。

当时第一轮面试是上机,第一道题是面试官告诉你一个文件名称,你需要在电脑里面找到一个压缩包,这个压缩包里面包含着后面的题目,解压它之后你才能做后面的题。

如果你linux玩的不好,可能就不好找了, 在Linux其实一行命令就可以搞定 locate filename | grep zip。  简单介绍一下locate,Windows下有注册表这个东西, 它是Windows系统的一个配置数据库。 而locate命令就是查询Linux中的类似的数据库(Linux会自动创建并且每天更新它),它会很快地找到文件,然后通过 | (管道,它会把数据从这边送到那边), 交付给 grep 命令,这是一个过滤器,后面跟着一个正则表达式。

这是一个很小的例子, 如果我之前没有学过在Linux环境(用的虚拟机)下编程,可能就要懵逼了。

我刚开始学习Linux的原因主要有两点:

首先命令行的技术是值得学习的, 它可以很大程度的提高你的工作效率, 此外它不像其他一些计算机技能,一段时间之后可能就被淘汰了,命令行知识却不会落伍。 因为命令行经受住了长达几十年时间的考验(最初的电脑就是命令行操作,现在也是用命令行操作最方便)。

另一个原因就是,我要参加的ACM/ICPC的编程环境就是Ubuntu,所以就算是提前适应环境了。

从2016年10月,我正式转为完全使用Linux系统(Ubuntu 16.04 & Gnome3)工作,到现在已经一年多了,这一年多来还是感受很多的。

身为一名码农,我感受到了Linux所带来的前所未有的便利,比如你去安装MySQL软件,如果你是windows的话,你需要去官网下载安装包,然后一步一步地安装。 不过在Linux上,只需要一行命令就可以了: sudo apt-get install mysql-server 。

这里说一下,Debian系列的软件包管理用的是apt, RedHat系列用的软件包管理是yum, 软件包管理是什么? 类似于Python的pip, Ruby的gem, nodejs的npm. 它会帮助你管理你的软件, 这样你就不需要分心来关注细节。包括软件的更新、卸载,软件包管理器都会帮助你搞定(仅仅是需要一条命令而已)。

安装依赖库也是很方便的,如果你喜欢一些小众语言,Linux是绝佳的选择,你会发现,在windows上安装的问题,都不会出现(这点还需要切身体会)。

不过不要误以为Linux就是用命令行来做事,其实不是,Linux也有GUI,Windows能做的Linux也能做, 并且可以做的更好(QQ就不要提了,腾讯在Linux发布了QQ2008之后也不知道什么原因,就没有再更新了……)。

上网,你可以用Chrome,可以用FireFox等等; 听音乐,你可以用网易云音乐;办公,你可以使用Open Office; 编程开发就更不用说了,很轻松的安装各种依赖库, 而且Jetbrains公司也在Linux平台发布了他们的产品,安装数据库也非常方便。

Linux照样可以很漂亮,文章最开始的那张图片(我的电脑桌面),我就觉得挺好看的,很酷。

还有一点我觉得不错,我在Linux系统上从来没考虑过安装杀毒软件的事情。也就是说系统本身是比较安全的。毕竟开源了嘛。那么多顶尖黑客去阅读代码,去修改系统bug。 而且黑客们也都使用这个系统,怎么可能不把它变得安全?而且windows上的病毒在linux上是不起作用的,嗯,病毒们也得考虑垮平台了。

我很清楚的记得,小学时候,我家长培养我良好电脑习惯的时候,其中就有开机之后不要着急,用360之类的软件去清理一下垃圾,每几个月用一键还原精灵去还原一下系统。在Linux下面可不用做类似的事情。

现在主流的操作系统有微软的Windows,苹果的MacOS,和开源世界的Linux。对于Windows,只能说盖茨先生非常有商业头脑,容忍盗版系统的存在(尤其在中国),在上面建立了一个庞大的生态系统,所以现在才能占有第一的市场份额。

Windows系统是真正为普通用户设计的系统。因为普通用户不需要做那么复杂的事情,他们用电脑无非就是写文档,做ppt, Excel, 上网聊天,玩游戏……, 所以一个用户友好的的桌面系统可以让简单的事情变得更简单,这就足够了。

但是一个程序员,而且是想要走的长远的程序员, Windows是远远不够的,  学习一下Linux会加深你对操作系统的理解,尤其是对后端程序员来讲,服务器用的操作系统几乎都是Linux,  无论是软件的安装和部署, 或者是系统监控和性能调优, 都离不开Linux , 掌握Linux能让你更快地解决问题,完成任务。

你可能要说了,Linux上有两大硬伤:图形处理和游戏,确实如此,不过对于后端程序员来说,这两处硬伤无关痛痒(正好少玩游戏)。 其他方面,linux系统确确实实对于程序员来说是很方便的。

如果你想学好Linux系统的话,那就直接在电脑安装linux吧,不要使用虚拟机或者双系统。因为当你那样做了之后,你的大部分时间还是去使用windows而不是Linux。不要畏惧Linux系统,因为它也提供了桌面环境,你去使用Linux,也可以像windows那样靠 鼠标点来点去的操作,然后慢慢地学习、适应命令行就好了。

余下全文(1/3)

本文最初发表在algo.site,文章内容属作者个人观点,不代表本站立场。

分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注