[kid@togotech.cn ~]$ cat /home/kid/code monkey/how_fuck_linux.md
linux是啥?
linux是个操作系统,linus大神开发的,下图是大神
linux发型版本很多,都是基于linus大神开发的linux内核之上封装的,常用的:
- CentOS、RedHat、Fedora、SuSE 服务器大阵营
- Ubuntu、Debian、 Linux Mint 桌面大阵营
- Geentoo、Arch Linux 超高难度大阵营
- Android 人民群众阵营
- 用于服务器,性能高、配置灵活、安全性高、免费、开源
貌似除了我们公司到处都在用 ⊙﹏⊙b汗
这玩意可以说是“运维的加油站,开发的美容院”,为啥这么说?
- nginx、docker、redis、mysql等统统针对linux做了专门的优化开发,基于linux运维这些服务,几行命令就可以搞定一切。
- 对于开发人员,如果你在linux写代码,你会发现linux的命令和系统调用简洁的设计如同一个扒光衣服的处女。同时你的代码生与linux,运行与linux,完美衔接。
由于linux在服务器端的普及,学习资料逐渐增多,甚至redhat公司出了专门的linux认证体系:rhcsa->rhce->rhca
- rhcsa:low B,为啥?因为会基本命令就能考过,考rhce赠送一个rhcsa认证
- rhce:sha B,为啥?因为但凡参加过redhat课程培训的几乎没有一个不过的,而且rhce现在根跆拳道白带一样烂大街
- rhca:new B,为啥?五门课程,每门课程都是一个针对linux系统性的学科,包含性能调优、安全加固、云计算、虚拟化、监控。rhca全国通过率极低,很多企业直接对rhca认证免试,甚至就单纯一个证书就可以挂靠在企业一月收个2-3k没问题。对于rhca培训过程中,你可以得到行业内志同道合的人脉。
终上所述,如果你要做一个new B的运维或者开发人员,一定要熟练甚至精通linux,同时如果有机会一定要考取rhca的顶级认证。但单纯说考到这个认证,并不代表你真的很牛,在计算机技术行业,技术能力永远优先于证书。
咋入坑?
- 把你的磁盘格式化了,装个ubuntu再说!告别那个漏洞百出的windows,做个正经的code monkey。
- 咋装ubuntu呢?https://www.ubuntu.com/download/desktop 看官方文档,你英语不好赖你咯!
- 当你的电脑中跑了一个你甚至都不会联网的系统时,你自然会掏出手机打开浏览器敲出http://www.baidu.com,然后在那个大框子里输入,ubuntu18.04如何上网。对,就这么搜,以后都这么搜!
- 如果你不是个二愣子,你一定能搜明白,要真搜不明白,拿蓝灯翻个墙去谷歌搜搜看。再没有,你可能真碰上坑了,mailto:baodi@togotech.cn吧
- 当你漫无目的一顿折腾终于弄明白怎么上网,怎么关机,怎么打开文件之类的时候,你应该看看linux命令行了。命令行通常叫做终端,在菜单那里一定能找到。
通常linux默认的终端叫做bash,我们使用命令可以大部分都是linux本身提供的,少部分可能会是bash提供的。linux命令很多是linux发行版提供的,也有一些是linux内核提供的基础命令。这些命令调用linux提供的api(系统调用)直接与你交互,你可以用这些命令操作你的计算机。下面有一张图,来自于伟大的互联网,画出了linux命令和内核的层级关系:
要学会基本的linux命令
- cd、ls、pwd、touch、mkdir、rm
- cat、less、more、tail、echo
- man
- ps、top、kill、pkill
- grep、find
- vi、nano、diff
- wget、curl
- tar、gizp
- ping、dig、telnet、ifconfig、ip、netstat、nslookup
- yum/apt
- passwd、sudo、useradd、groupadd
- chmod、chown、setfacl、getfacl、chattr
- dd、fdisk、mount、unmount
- crontab
- 要学会文件结构、常用的配置文件、查看日志、设置和修改环境变量等
- 要学会bash脚本的简单编写,最基本保证能阅读
- 要学会sed与awk,这可能稍微有一些复杂
要学会常用服务的架设
- dns、nginx、tomcat
- cups、mail、vsftpd、mysql、redis、kafka
- syslog、zabbix
- lvs、haproxy、keepAlived
要学会grub崩了咋办,root密码忘了咋办
- 要学会docker和相关生态
- 要明白epoll、select等机制,包括可能去使用c语言编写一些linux程序
- 阅读linux源码,甚至可能做一些内核源码提交,那你很屌了!
看啥书?
- linux鸟哥私房菜,很经典,很墨迹,很new B
- 只是为了好玩 : Linux之父林纳斯自传,必看!
- Linux命令行与shell脚本编程大全,shell编程经典,非常全面,作为运维人员是必看的
- 高性能linux服务器构建实战,真正的服务器实战配置
- 高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构
这个与上面那本可以说是实战中的经典了 - Unix环境高级编程,别看是unix,unix和linux一样遵循posix规范,几乎系统调用是相同的
- Unix网络编程,跟上面那本一样,两本结合起来几乎把unix和linux的编程都讲了一遍,这俩本书至今是理解linux和unix应用开发必看的书
- 深入linux内核架构,这个是讲linux内核最经典的了,通俗易懂
- 除了上面的书,红帽的教材讲的非常完善,当然市面上是没有卖的!
最后要说的
- 上面的书和入坑的步骤,如果你真的去做了,找到一个北上广一线城市10k以上的工作是没问题的,就算哈尔滨这种三线省会5-8k基本没问题
- 多练,多练,多练!上面的书全看完了不练是没用的。听我的,为了你自己和你现在的媳妇或者你未来的媳妇以及你将来的或者现在的闺女,包括你丈母娘,你爹妈,为了他们好,多练!
- 一定要用linux操作系统作为开发或者你的服务器
- 如果你能拿到rhca认证,请加入togotech.cn
- 如果你有啥问题,除了逛论坛发帖提问,去聊天室或者QQ群提问,当然你还可以mailto:baodi@togotech.cn,欢迎一起探讨!