V 站最近讨论日常工作使用 Linux 的帖子又多起来了。有人依旧安利了一批发行版;有人认为 duck 不必花在自己不熟悉的东西上花时间;很多跃跃欲试的 V 友对此也颇有疑虑。
我呢,从 2012 年至今,一直在 fedora 上进行日常的开发工作,工作和研究方向是爬虫、微服务、容器技术、开发方法论、devops。可以说是越用越爽。借此机会来分享作为一个程序猿“完全用 Linux 工作”的体验,希望能帮上大家的忙。
首先说说在 linux 下搞开发的优势:
使用原生命令的效率更高,比如文件操作相关命令、vi、ssh、scp、curl、以及各种网络相关命令。比起 windows 下安装并打开各种软件、拿鼠标各种点击,用 linux 终端,配合一个机械键盘,相信你工作效率会直线上升,还能帮助你真正理解你所正在做的操作。更重要的是比起第三方闭源软件,这些命令更安全。
对于常用的一些开发工具原生支持和支持友好,比如 git、docker、mvn、python。其中 git 不必说了,Linus 的第二伟大发明;而 docker 本身就是依赖 linux 内核特性实现的。还是那句话,用命令比用图形界面更能帮助你真正理解你所正在做的操作。避免误操作、错误提示更详细明确。
来看看如果抱着折腾 linux 的精神在 windows 上一顿操作 会是什么感觉 http://www.ishenping.com/ArtInfo/419102.html
能不能先实现出来,再来说话?我一开始就让他实现,结果他没有实现,转战千里,连“自绝于人民”都出来了。如果我是你,想反驳我,那我会直接用事实说话,用代码说话,直接显示在 windows 下实现同样的效果也不费功夫。但他没有,你也没有,有什么说服力? 你是不是不会写代码?是不是写任何代码对你来讲都是一样的,都是不会? 拿点干货出来,不要闪避,不然没有讨论的价值。
我知道 autohotkey 可以做到自动控制,也有基于它的窗口管理器: https://github.com/zovt/Tilde-AHK,也是 inspired by AwesomeWM。但是开发早就停了,你提到的项目也是。
"git 入门教程之 git bash 竟然不支持 tree 命令" 不光 git bash 没有 tree; bash, zsh 这些都没有 tree tree 是要单独安装的软件包. 跟 bash 一点关系都没有. 同样, "bash 竟然没有 maven, bash 竟然没有 git"
/>这样的理解是不对的,我相信 sane default 是每个平台的开发者的目标 Linux 下的某些程序之所以默认配置“体验”不是很“好”,高定制性确实有很大的因素,但并不是因为开发者不想做好 很多 Linux 程序的高定制性允许用户和开发者在很多细节上做出完全相反的选择。用户在使用一个可定制的程序时,只需要认同它的核心交互思想即可,因为其他东西都允许定制。而这个程序对于作者来说可能就是一个个人项目,于是作者把默认配置做成自己用起来最顺手的,然后搞一个配置项来跟用户求同存异。对于这种项目不存在“最优的默认配置”,甚至可以把“最简配置”(也就是下限 ...)看做“最优配置”。极端情况下,作者的用法可能和大多数“主流”用户的用法都完全不同。 也有可能是十年前作者设置了个默认值,之后想改也不方便改了。 Linux 开源软件普遍的非盈利性也确保了作者的意志能够得到贯彻。实际上就算是盈利的软件,也不是什么用户都能教人家做产品的。
对于不可定制的程序来说,用户觉得哪一处严重影响体验了,那可能就直接不用了。 这就是定制性高的程序的客观优势:一个可定制的软件可以适应更多人的需求。就算用户不会定制,也有各种傻逼包帮你定制。 上面是单就“定制性”这个问题来讨论。当然不得不承认的是,很多 Linux 程序所谓的“定制性”也没多高。理想中完全可定制的程序可以适应所有人的需求——当然这种软件并不存在于一般大众意义上的“软件”范畴中(但是拥有极高可定制性的软件是存在的——就是通用编程语言 ...)。Linux 所谓的“可定制”对于大多数人来说只是 cover 了一些特殊情况而已。
我也没收到 at。。。 多谢老哥
所谓优势: 12 不管是 Windows 还是 Linux 大都一样(除了多了最开始下载安装 MSYS2 或者打开 WSL 并配置发行版这样的操作)。能在日常应用下出区别的要么是用到了依赖具体系统还找不到备胎的东西,要么就是基本没入门。 3 对开发者来讲也不应该是问题(虽然明显是 Windows 处理方式更蠢,但日常习惯变成了 Windows 的形状的,没什么资格计较)。