文档章节

我的linux一万小时

lampbrotherIT
 lampbrotherIT
发布于 2016/07/11 16:40
字数 2105
阅读 14
收藏 0

这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上。我走的这些弯路能篇成一本很有参考价值的反面教材,下面,我在www.itxdl.cn来讲讲我用 Linux 都折腾了啥。

Gentoo 在 Ubuntu 还没有出生的年代,各种发行版百花齐放。以包管理机制区分的话,可以分为两派:直接安装二进制可执行文件的和下载源码自行编译的,Gentoo 算是后者中一个比较知名的项目。为了使硬件发挥出更好的性能,Gentoo 的 emerge 命令提供了不少编译参数让用户调教。从内核到日常用的所有工具,都需要用包管理工具自动下载源码后编译,这对于像我这样的 Linux 新人来说的确能学少不少东西。而且每次编译满屏幕日志飞滚非常酷,改用绿色文字就有种黑客帝国的即视感。

不过,这个机制有个显而易见的缺点,有时候做一些很小的事情都需要花上好长时间编译大量的依赖包。而像我这样的强迫症,总觉得下一次编译换一个参数也许可以使程序运行得更快,以至于很多常用工具我都编译了不下三遍。另外编译内核和格式化硬盘重装 Gentoo 的事真是数也数不清了。最惨的是,有次同事让我帮忙装一台 1U,他用 Debian 可以分分钟把 LAMP 搞定上架,而我硬是想用 Gentoo 压榨性能。我编译了一个下午,反复编译内核浪费了大量时间没能把两块网卡搞定,最后无奈的让他上了 Debian。

Gentoo 给我的教训是,大量零散的编译调优时间累积在一起会消耗很多宝贵的青春和电费,它们带来的收益微乎其微,不如直接买更好的硬件。选一个有成熟包管理机制,社区活跃的发行版能节省大把精力把真正要做的事做好。这也是后来我只用 Debian 的一个主要原因。 桌面美化,WM曾经每天看 DistroWatch.com,除了了解各种发行版的动向,还希望看到一个界面更加美观的发行版,因为感觉大部分发行版的开发者审美太非主流。我用了很长时间尚且还看得过去的 XFCE 和 FVWM-Crystal,也用过臃肿浮夸的 KDE 和 Gnome。试了不少布局和配置,下载过很多 GTK 皮肤和图标库,玩过酷炫的 Compiz,调教过中文字体的显示效果。但不管怎么改都感觉哪儿不完美,直到后来接触到同事 Apple iBook G4 上的 Mac 系统,便掉进了在 Linux 上模仿 Mac 系统界面的深渊。这个 Flickr 相册 里有不少那些年的痕迹。

这同样是一件没有什么收益的事情,2006 年后我放弃治疗,改用 Mac 系统。 wine 周围的人问我为什么不用 Windows 这种主流的操作系统,倒喜欢用小众的操作系统的时候,我都只是一笑而过,后来我用 Mac 的时候也常常遇到这样的问题。有意思的是,现在这个问题在大部分互联网公司里变成了:『为什么你不用 Mac?』 我一开始用 Linux 作为开发主力机的确发现有诸多不便。比如同事给我发个 Microsoft Office 生成的文件;比如做网页要在 Internet Explorer 里调试;比如要上 QQ。不过我并没有感觉到 Linux 不主流,有很多在线论坛有大量热心的 Linux 用户能帮你解决各种技术问题。而同一时期那些 Windows 相关的社区全在共享盗版软件。 在还没有虚拟机技术的时候,很长一段时间里我是用 GRUB 启动多系统的。后来渐渐地用 wine 这个工具跑起了大部分 Windows 下的程序,接着完全干掉 Windows,再后来因为要流畅地跑魔兽世界内测不得不装回 Windows。

生产工具海选 对于开发人员来说,一个非常费神的事情是开发工具,尤其是文本编辑器。我用遍了市面上几乎所有收费或免费的编辑器,都没有找到一款像 Windows 下的 EditPlus 那样好用的产品。主流的推荐是 Vim 和 Emacs,我试着去学好 Vim,但当时并没有多少好用的插件,加上自己不熟悉各种快捷键,文本编辑效率并不高。幸好后来改用 Mac,很长一段时间被 TextMate 拯救了。 在我的 title 还是前端开发工程师和 Flash 开发工程师的日子里,在 Linux 下绘图也不是一件轻松的差事,我一直用不惯 GIMP 和 InkScape。有试着用 wine 跑过 Flash 的 IDE 和 Macromedia Fireworks。为了能在 Linux 下愉快地开发 Flash 程序,我还把整个项目改用 MTASC 编译。我很后悔没有早点明白,在 Linux 下绘图这件事就是自讨苦吃,同一时期在 Windows 下的各种绘图体验会愉快很多。

运维 因为会使用 Linux,所以在开发过程中时不时地会承担一些简单的运维任务。为什么只是简单的,因为更复杂的任务会由那些有 RedHat 证书的专业运维负责。在我这些年的工作经历中,我曾跑过十多次机房,管理过一些 1U 服务器,但都只停留在装系统和配置服务环境的阶段,并没有机会接触那些需要大量服务器携同工作的任务。而这些安装和配置的任务,在 Debian 下又过份地简单,apt-get install 装好的东西一般不用再多折腾就能很好地使用。所以我没能在运维这一块更加深入,只是变成一个初级熟练工而已。 前几年因为虚拟币的泡沫,我开始有动力自学配置管理工具,学了一点点 Chef 和 Puppet,感觉略复杂个人用不上,所以学了相对简单好用且不需要 master 服务器的 Ansible。有一段时间我控制近 50 台虚拟机挖虚拟币,最高的一个月有 6000 元的收入。 随后我试着把一些日常开发中经常需要反复做的事写成 Ansible Playbook,于是便有了ios-dev-playbook。期间为了和墙做斗争,从 vpn-deploy-playbook 这个仓库中也学到不少实用技能。但是,很多线上服务其实比某些开源的程序做得好,有时候自己运维往往省不下几个钱。举个例子,Git 仓库,我曾经很喜欢自己在 Linode 虚拟器上搭建 GitLab 或者 Gogs,但是后来发现 GitHub 无论是在社区工具链集成度以及易用性上都甩开其它竞品好几条街。 另外,这几年,为了满足各种创业公司对高生产效率和低成本的需求,IaaS、PaaS、SaaS 以及 Docker 开始流行,创业公司不再需要专职的运维,开发人员写几个配置文件,在网页里点几下鼠标就能把一个完整的系统弄上线。 所以,我掌握的这些简单的 Linux 运维的技能,几乎已经被淘汰完了。 我试着去学 Goolge Kubernetes 和 AWS Lambda,但感觉业余精力不够,也没有项目可以实践。

总结 如果我晚十年出生,或者早点用上 Mac OS,或者考了一张 RedHat 证书,应该就不会这么折腾了。

© 著作权归作者所有

共有 人打赏支持
lampbrotherIT
粉丝 2
博文 37
码字总数 50418
作品 0
昌平
私信 提问
网络攻防实验室及linuxU盘启动器

我买了一本诸葛建伟写的《网络攻防技术与实践》里面要搭建一个虚拟化网络攻防实验环境,结果卡壳了,求大牛帮帮我,其次,我想在安装了windows的笔记本上安装Linux.然后把window删除,怎么做...

kkmm
2016/11/26
4
0
我的 Linux 一万小时

这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上。我走的这些弯路能篇成一本很有参考价值的反面教材,下面,我来讲讲我用 Linux ...

oschina
2016/05/17
10.7K
50
时光不会辜负你一直以来的坚持——读《人生效率手册》

文 | 莫若吻 注:本文音频分享地址:http://www.ximalaya.com/8640210/sound/53422584/ The first Day 读《人生效率手册》 感悟 1. 书山有路勤为径,学海无涯苦作舟。 自从大学毕业后,读书这...

莫若吻
2017/09/18
0
0
FOUR —— 任务记录应用

FOUR是一个美丽而轻巧的任务记录应用,围绕“一万小时定律(作家格拉德威尔在《异类》一书中指出:人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤...

oschina
2016/08/15
1K
0
我的友情链接

跟晓龙学Linux 吴光科-京峰Linux运维培训 李炎恢老师的博客 51CTO博客开发 天道酬勤 老男孩linux运维 linux培训 听闻 上帝,咱们不见不散! alex3714 技术成就梦想 抚琴煮酒 ITNOSE 运维网 ...

tianya1993
2017/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么强烈建议大家使用枚举来实现单例

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

群星纪元
30分钟前
10
0
Confluence 6 超过当前许可证期限进行升级

这个页面将会对你在进行 Confluence 升级的时候超过了当前许可证的期限进行升级的情况。 许可证警告 在升级的过程中,你将会在 Confluence 的应用程序日志(log file)中看到类似下面的错误提...

honeymoose
43分钟前
2
0
顶尖战略咨询公司常用分析模型

1、KANO模型 日本教授狩野纪昭(Noriaki Kano)构建出的kano模型。将影响用户满意度的因素划分为五个类型,包括: 魅力因素:用户意想不到的,如果不提供此需求,用户满意度不会降低,但当提供...

Moks角木
59分钟前
2
0
Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
今天
3
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
今天
236
8

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部