首先说结论:个人觉得并没有被过誉

我是一个有超过五年的一线Linux运维、架构设计及管理经验的架构师,目前工作主要关注k8s运维和自动化运维的人。针对题主的问题,我来回答一下。

一、学习Linux能做什么?

  • 当今世界流行的操作系统有3大类,Linux、Mac OS和Windows操作系统,Linux操作系统因其开源、免费、跨平台、良好的界面等特性,深受广大程序员们的青睐!
  • Linux操作系统被广泛的应用于企业服务器领域,目前市场上的网络设备都是使用Linux内核操作系统,一些网络服务器也是使用Linux操作系统下面的服务搭建实现的,目前操作系统这块也基本被Linux占据,使用Linux的iptables功能可以做代理服务器和防火墙;使用samba服务的功能可以做搭建和打印共享服务器。
  • 使用Linux下的apache+mysql+php搭建web、Linux下的vsftp服务作为FTP文件传输服务器,使用Linux下bind服务做域名解析服务器,使用Linux下DHCP服务做网络中地址分配服务器,使用Linux下openvpn服务实现VPN服务器,使用Linux下sendmai和qmail服务搭建邮件服务器,使用Linux下的NFS和iSCSI搭建网络存储服务器等,Linux在企业应用范围极广。 Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
  • 另外,在的网络设备一般都是Linux操作系统,比如:软防火墙、软路由、软监控、云计算等,这些都是使用Linux内核开发的。Linux操作系统安全性和稳定性高,目前android系统、银行系统、企业WEB服务器、虚拟化、等都是使用Linux操作系统。
  • Linux操作系统在市场上得到了广泛的应用,市场上80%的服务器用户在使用Linux操作系统,因此,学好Linux可以有很多就业选择,而且喜爱技术的人员来说,也是一种成就!

二、Linux与Windows的优缺点

1.Linux可以看到源代码,windows不行。

这一点直接导致的结果就是在特殊应用的场合可以自行剪裁和定制所需的内核模块,这对于高级系统内核管理优化和驱动程序的开发相当有利,另外也因为代码可见,不用担心恶意功能或者后门,对于军政企的使用比较有利。另外在系统出现严重问题的时候,可以自行修改代码或者接个几k的patch就能编译然后使用,而windows你得等微软的补丁。

2、Linux命令行功能强大,可以做任何事情,windows也有命令行,但是属于附属品。

命令行是Linux的根本,甚至你对某些命令不满意,你也可以自己修改或者编个自己的命令出来。命令行的好处是可重复。想要知道命令行的具体是什么你可以访问老男孩教育。如果你想要告诉别人一件事怎么做,一个命令行发过去就可以,想要再做一遍之前做过的一件事,调出历史命令记录重新执行一下就行。很多要定时做的事情写成脚本设个crontab定时,就完事儿。另外这样也可以保证你用一样的命令行,做的是一样的事情。

3、开放源码和高度可定制

开放源码的初衷,不是为了自由而是为了定制。AT&T UNIX从来就是有版权的,但是源代码仍然可用,这是为了让用户能够根据需要,去修改它。Linux社区所赞赏的软件和系统,多半遵循同样的规则——它应该能够适应不同用户的不同环境,能够轻易的改变自己的行为,能够轻松的与不同环境整合。与其假设别人和你的需求一致,不如给予它们定制系统的自由。

4、去中心化

分散的软件开发,也注定了系统的接口和形式不统一——因为大家都喜欢发明轮子。而每个人的轮子或多或少更适合自己和社区,而非所有人,而在Linux的环境下又没有人能强迫所有人用自己的轮子(除了Kernel开发者,但其实很多distro对kernel也有patch),所以与其制定一种实践,Linux更多的让用户去选择生活的方式。
你会看到Linux生态环境中有大量的distro,不同的distro有不同的init方式,不同的软件包管理器和安装策略;每个人习惯使用不同的VCS,不同的shell,不同的编辑器,都就是更多的选择的哲学的体现。

5、Linux是基于网络的,诞生于网络。

远程连接上SSH,你就可以轻松操控远在千里之外的Linux服务器,只要有相应的权限,几乎和坐在物理机面前没有区别,哪怕网速很糟糕,实际只是一些加密的字符在传送,需要的带宽很小。

三、Linux功能

1.图形界面

2.日常开发

  • Java : Eclipse , IDEA , NetBeans , Android Studio …
  • PyCharm , WingIDE …
  • C++ : KDevelop , Code Blocks …

3.社交沟通

Linux 是否被过誉了?_服务器

这里使用了 deepin 商店截图 ,其他 linux 发行版不一定有这么丰富,不过安装qq、微信应该没问题

4.易维护

当我在 Windows 下安装一个软件时,首先需要打开浏览器,搜索你想要的软件,小心翼翼的避开广告,当你找到一个看起来是对的网站时,还是得小心翼翼的找到藏在某个角落的下载地址而不是巨大的醒目的下载按钮,最后再小小翼翼的安装,一定不能漏掉某些勾勾,一旦一不小心漏掉了,就会发现电脑似乎有点卡顿,不一会儿,它的朋友们就会出现在你的桌面上
而在 linux 下,apt install 或者 yum install 之类的命令,就能搞定整个安装。

  • Linux 不需要选择软件是放 c 盘还是 d 盘,已经定义好了哪些文件该放在哪些地方,
  • 也不需要杀毒软件
  • 也不需要清理垃圾
  • 也不需要释放内存
  • 也不需要激活系统,它是开源免费的
  • 也不需要磁盘优化
  • 也没有烦人的弹窗
  • 也没有强制更新
    以上的几点,在windows下面,哪一个都会把人折磨烦死,当然,Linux是面对开发者,而Windows是面对消费者。
    对于极客们,Linux一定是少不了的!

5.高效性

这是 linux 最吸引我的地方了

命令行

命令行不是一种落后的操控计算机的方式。相反,它一直很高效且富有表达性。

当你想要复制、剪切或删除一个文件时,我相信打开文件管理器在不同窗口之间跳转是没有一条命令来得快。

当你想要查看系统运行状态,我相信移动鼠标,右键,选择任务管理器是没有一条命令来得快。

当你想要编写一个简单的脚本或文件时,我相信打开编辑器,新建文件,编写,选择文件位置保存是没有一条命令来得快。

鼠标是很好的工具,但是它有它的局限,毕竟它只有三个按钮。而命令行中使用参数的表达力是无穷的。

减少使用鼠标

通过命令行,浏览器的 Vimium 插件(类似于 Vim 的方式操作浏览器界面),Albert(通过指定按键唤出一个输入框,可以打开 app , 文件 ,url ,直接搜索 ,计算器 …),系统快捷键再加上IDEA(它的设计思想是键盘优先)我能够很少的使用鼠标。

当然不是鼠标烫手,当你的双手在键盘上飞快的敲打时,直接使用键盘是比右手挪到鼠标上再挪回来要快的,而且这种不中断的体验非常舒畅。

至于这为什么是 linux 的优点,在我过去多年的 Windows 使用经验中,我没有找到自定义系统快捷键的入口,更不用说自定义宏了。Windows 当然也有命令行,不过我认为它的命令丰富程度和各个命令之间的配合是不如 linux 的(有人称之为附属品)。

减少重复劳动

我有一个文件夹,专门存放着我写的各式各样的脚本。大部分时候,你的问题市面上的软件都可以解决,但是当有一些细碎、独特、重复的小任务时。脚本能够帮你很好的解决这些。

比如,我有一个监控生产环境的脚本(其实应该是项目本身自带的),有一个OA守护脚本(其实就是监控我有没有写日报,没有的话发个短信提醒我),甚至还有一个定时发送微信的脚本…

这些脚本能一定程度的解决信息世界的重复劳动,让我更专注于具有创造性的工作上。

6.自由性

上面的只说明了脚本带来的好处,并没有说明是在 linux 下带来。

因为只有 linux 才有这样的开放和可定制,你可以很容易的通过命令来修改系统配置和改变系统状态,甚至于修改内核代码,编译并使用它。

  • 假如不喜欢当前的桌面环境,可以轻易的通过命令来切换。
  • 假如喜欢 mac os ,可以通过网上的教程将 Ubuntu 改成一模一样(甚至包含开机 logo)。
  • 假如不喜欢系统自带的文件管理器,可以选择其他优秀的软件,比如 Nautilus。
  • 假如不喜欢当前终端,有太多选择了,我甚至用过一个模仿一部电影内出现的,极具极客风格的终端。

而相反,比如拿字体来说,在 linux 下我可以通过命令来安装和切换系统字体,而在 Windows 下没有这样的设置或者入口。暂时不太明白为什么这种选择的权利都没有。

而这些仅仅只是一些微不足道的例子。

结语

如果要学习linux,可不像学一门语言,c或者java一个月或者3月你就能精通掌握。学习linux是需要一步一步循序渐进,掌握正确的linux内核学习路线对学习至关重要

Linux 是否被过誉了?_linux_02

如果你想要学习的话,我可以把我自己整理收藏的这些教程分享给你,大部分我都看过,感觉还不错,如果需要的话可以评论区告诉我。