源地址:http://www.douban.com/note/60936243/
经过几年的发展,公司在互联网公司里面也算是大公司了,线上机器使用的操作系统都是Linux,部门有几个同事,天天都跟Linux打交道,所以,我就一直在考虑,这些同事的进阶之路在哪里,怎么样就算是一个Linux高手了呢?在网上了搜索了一下,有一些人说的还是值得考虑一下:
我玩了10年的Shell编程,还不敢说自己精通Shell。别说其他的,你能把shell真正搞通,已经比大部分拿1万以上月薪的system admin强了。
Linux操作系统主要就是一些配置文件和一些命令行工具,要掌握操作系统的主要目录结构和配置文件,运用系统的命令行工具完成常规的操作系统维护工作,监控工作。进而你可以安装部署一些企业应用,进行监控、管理等等。
把/etc目录下面常用的配置你都搞懂,把 /bin /sbin /usr/bin /usr/sbin下面常用的命令搞懂 会用shell编写常规的维护脚本
这样你已经非常厉害了。
liuqiang:
来点实际的吧,我觉得linux有两条明路可以走
1 嵌入式linux,把握好机会,从薪水这个角度讲,这个方向是不错的。
2 linux集群, 瞄准这个方向也可以,但缺点是不太好学,需要一定的学习环境,只有抓住机会混到大公司去锻炼下。
至于shell,我觉得搞这个东西更多的是靠经验,你说没事拿个shell瞎敲命令,我保证你敲一个星期就没兴趣了。在工作中碰到实际的问题,然后解决问题,这样学习最有效。
总之想开一点,做出决定之前,请多考虑下自己能坚持学习多少时间。
makefile:
linux 命令必须很熟悉,对find.sed,awk必须更熟悉,会正则。
了解unix编程,编译,知道gnu下的很多著名软件并会用。
example:m4,automake,autoconfig,binutils,gcc,...
能熟练试用vi,熟悉makefile...
可能的话掌握一种xwin开发方式gtk,qt等。
搞明白文件系统,能掌握50%以上/dev下设备干吗用的,并会用。
能知道/var下都有哪些重要东西。
熟悉/etc下的配置,了解常见的服务的配置
example:
squid,apache,natd,named,ftpd,sshd,xinetd
知道启动的时候unix按哪些顺序启动,并配置服务
C语言。
知道怎么安装软件
不仅仅是pkg_add,rpm,
知道怎样监控进程,网络
知道怎么追踪core
这些都熟悉了,基本算unix初通了,能做个unix初级使用者
ztka:
先可以试试看自己用linux组建域服务器,代理服务器,email服务器等,满足企业的基本网络架构的要求。
hexstar:
Linux下面 top,vmstat,iostat, netstat,iptables这些都应该了解吧。
用Ubuntu一年半了,还是发现什么都不会 :(
steven-zhou:
看你想达到什么层次了,我个人的理解是:
初级:熟练使用命令、熟悉Shell编程、能配置简单的服务,清楚各类服务相关的配置文件的位置,
能看懂并可修改系统提供的配置脚本(/etc/*.*)
推荐书籍:
《鸟哥的私房菜基础篇、高级篇》
《Advanced Bash Shell》
中级:熟悉TCP/IP原理、OS原理、熟练使用C语言、Linux系统编程、网络编程。
推荐书籍:
《The C Programming Language》
《Unix环境高级编程》
《Linux程序设计》
《TCP/IP协议详解卷一》
《Unix网络高级编程》
高级:
《Linux Device Driver》
《深入理解Linux内核》
《深入理解计算机系统》
《深入理解LINUX网络内幕》
上面这些书单中,是我们公司一个玩Kernel的牛人开出的。
任何知识的学习都不是一蹴而就的,需要反复实践,反复理解。
祝你成功!