只使用Linux系统是怎样一种体验?

2020-07-13 15:36发布

1条回答
杨晓春
2楼 · 2020-07-15 19:26

我用了五六年,最近两年因为做手机应用开发所以同时还要用 OS X,但二者对于开发者来说用法相通。发行版主要是 Ubuntu 和 Mint,因为社区比较成熟,遇到问题容易找解决方法,避免影响工作效率。 

个人体会使用 Linux 有三个阶段(以下描述仅针对使用 Linux 的开发者):

上手期
这个阶段因为刚刚接触 Linux,会发现之前使用其它系统的一些经验在这上面行不通了,因为系统的设计理念不同,所以使用时思维方式也不同,如果思维方式不慢慢转变过来,会觉得 Linux 真难用,啥啥都没有,干什么都不方便,还经常出一些莫名其妙的错误,比“请与系统管理员联系”还让人抓狂……
这时的用户像没头苍蝇一样到处乱撞,靠揣测和感觉寻找出路,程序员都不喜欢无法掌控的东西,所以此时很多一开始满腔热情的用户开始打退堂鼓,最后转身离去,其中一些人还会用诸如命令难记、GUI 不友好、容易出问题、不能玩游戏等理由劝阻后来者。
我个人很幸运,在同事的帮助下慢慢找到一点感觉,因为当时公司开发全体 Linux,不学会就不用混了 T^T
命令太多难记?记不住就 man,man 啊 man 啊的就记住了。
GUI 不友好,一天 80% 的时间对着代码要那么花哨的界面做啥?程序员一生都在编译啊,省点资源给编译器吧, Terminal 才是王道。
出问题了?ldd/strace/lsmod/netstat/config.log……办法总比问题多嘛。
至于游戏嘛我比较好打发,有 steam 就够了。
就这样一点点的学习和磨合,慢慢觉得用上手了,重回用 Linux 之前的工作效率(呼~终于不用担心被开除了……)

融入期
上手之后,对 Linux 的感觉是还行,虽然学起来费点劲儿,但起码干活儿够用了,所以不少人会用两台机器或者虚拟机,一个干活一个娱乐。但要达到题主说的“只使用 Linux”,则需要更进一步,体会到 Linux 的优势然后彻底融入。我的经历与其说是体会,不如说是刺激。举个栗子:
当时我发现只有我在用 IDE,其他同事不是 vim 就是 emacs,一开始我觉得大家只是习惯不同,用习惯了都差不多。直到我参与了 CodeReview 和结对编程这类活动之后,才发现不是差不多,而是差太多!原因很简单,用 IDE 的大多时间有只手在鼠标上,键盘上只有五根指头,加上鼠标上那两根也才七根,用 vim/emacs 的则是十个指头全在键盘上。首先手速就有差距,再加上 vim/emacs 的编辑方式相当于微操,加成起来差得就不是一星半点了。
类似的栗子还有挂内存盘提高编译速度、用脚本将各种工作流程自动化等等等等,让我意识到——差距是全面的,很多东西不是别的系统做不到,而是远没有 Linux 支持得简单直接。找到差距也有了目标,剩下的就是学习了。
在这个阶段中,用户对 Linux 的认识开始深入,慢慢欣赏到 Linux 各个优秀之处,思维方式也逐渐融入进去,随之工作效率大幅提高,受益之后他们希望让更多人知道 Linux 的好处(比如我现在回答这个题目)。

平淡期
这个阶段是根据一些同事的特征总结的:他们使用 Linux 十年以上,Linux 在他们看来更像一个相交多年的搭档和老友,彼此了解和信任。他们不会跟人讲 Linux 的好或不好,就像不会在背后议论老友的是非一样。但如果你向他们请教一个关于 Linux 的问题,他们会热心得帮助你,并微笑着跟你讲解来龙去脉和一些典故,就像回忆往事。


相关问题推荐

  • 回答 77

    云计算话题太大了,建议学具体点的可落地的,找个培训班摸两月项目比自学找各种杂资料性价比更高

  • 回答 4

    交换机不分进线和出线,找个接口插上即可。交换机每一端口都可视为独回立的物理网段(注:答非IP网段),连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络...

  • 回答 16

    查看topic分布情况kafka-list-topic.sh:bin/kafka-list-topic.sh-zookeeper 192.168.197.170:2181,192.168.197.171:2181 (列出所有topic的分区情况)bin/kafka-list-topic.sh-zookeeper 192.168.197.170:2181,192.168.197.171:2181-t...

  • 编码的特点是什么2021-02-04 10:06
    回答 6
    已采纳

    1.鉴别 编码是鉴别信息分类对象的唯一标识。2.分类 当分类对象按一定属性分类时,对每一类别设计一个编码,这时编码可以作为区分对象类别的标识。这种标识要求结构清晰,毫不含糊。3.排序 由于编码所有的符号都具有一定的顺序,因而可以方便地按此顺序进行排...

  • 回答 6
    已采纳

    静态资源和动态资源的概念:静态资源:我的理解是前端的固定页面,这里面包含HTML、CSS、JS、图片等等,不需要查数据库也不需要程序处理,直接就能够显示的页面。具体形式为:客户端发送请求到web服务器,web服务器拿到对应的文件,返回给客户端,客户端解析...

  • 回答 39

    编程和UI,一个程序向,每天更多的面对满屏幕的代码,对逻辑思维和数学有基本要求。UI设计则是美术向,网站UI、app应用UI和游戏UI要求又不一样(游戏要求更高)。一个好的UI设计师需要具备平面设计,交互设计,手绘等等。...

  • 回答 4
    已采纳

    查看进程--方法:ps -aux | grep 'zookeeper'系统有百返回,说明zookeeper启动。linux上进程有5种状态:运行(正在运行或在运行队列中等待);中断度(休眠中, 受阻, 在等待某个条件的形成或接受到信号);不可中断(收到信号不唤醒和不可运行, 进程必须等...

  • 编码的作用和意义2021-02-04 10:07
    回答 7
    已采纳

    数字编码的作用和意义如下:1、归档整理方便,特别在电子管理系统中。2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序和事务不会乱。3、从数字上能得到详细的对应信息,譬如年月日甚至时分秒、单位、部门、建档人等等...

  • 回答 0

  • net.core.netdev_max_backl2021-12-13 14:01
    回答 3

    TCP SYN_REVD, ESTABELLISHED 状态对应的队列TCP 建立连接时要经过 3 次握手,在客户端向服务器发起连接时,对于服务器而言,一个完整的连接建立过程,服务器会经历 2 种 TCP 状态:SYN_REVD, ESTABELLISHED对应也会维护两个队列:一个存放 SYN ...

  • 回答 3

    对于一个TCP连接,Server与Client需要通过三次握手来建立网络连接.当三次握手成功后,我们可以看到端口的状态由LISTEN转变为ESTABLISHED,接着这条链路上就可以开始传送数据了.每一个处于监听(Listen)状态的端口,都有自己的监听队列.监听队列的长度,与如下两方...

  • net.ipv4.tcp_abort_on_ove2021-12-09 14:50
    回答 5
    已采纳

    设置该参数为 1 时,当系统在短时间内收到了大量的请求,而相关的应用程序未能处理时,就会发送 Reset 包直接终止这些链接。建议通过优化应用程序的效率来提高处理能力,而不是简单地 Reset。默认值: 0。...

  • 回答 7

    *tcpsyncookies是一个开关,是否打开SYN Cookie功能,该功能可以防止部分SYN×××。tcpsynackretries和tcpsynretries定义SYN的重试次数。YN Cookie是对TCP服务器端的三次握手做一些修改,专门用来防范SYN Flood×××的一种手段。它的原理是,在TCP服务器接...

  • net.ipv4.tcp_max_syn_back2021-12-07 14:32
    回答 7
    已采纳

    该参数决定了系统中处于 SYN_RECV 状态的 TCP 连接数量。SYN_RECV 状态指的是当系统收到 SYN 后,作了 SYN+ACK 响应后等待对方回复三次握手阶段中的最后一个 ACK 的阶段。

  • 回答 6

    先重头检查一下是不是配置出现问题,不行的话重装软件试试

  • 回答 10

    首先是我们将鼠标移动到如下图所示的计算机的图标上,点击右键,选择管理。然后我们点击如下图界面中的服务和应用程序。接下来可以看到它下面有一个我们的目标——服务。服务的话它是按字母排列的,我们往下拉,找到Mysql服务。此时可以看到它是一个手动启动...

没有解决我的问题,去提问