搞Linux运维的,需要学习些什么语言?
Linux运维主要学习以下语言:
运维工作尤其是linux运维,其实最考验你的能力,因为需要学习的东西实在太多,
你既要懂网络:思科华为设备的配置;
要懂性能调优:包括lamp或者lnmp的性能调优,也包括linux操作系统调优;
要懂数据库mysql或者nosql(例如mongodb):
要懂编程语言:Shell是最基本的,还要学习perl,python,甚至ruby和C++等(因为一些软件是这些语言编写的),还得熟练掌握awk,sed,grep以及正则表达式;
要懂一些调试排错的命令工具的使用,比如htop,dstat,strace,systemtap,iostat,sar等;
要有比较好的英语水平:因为很多软件或者工具以及出现问题排错的答案都不是国人所做,甚至还需要和原作者交流,在谷歌group里面留言讨论
要有坚强的体魄和超时工作的心理准备:升级维护都是在大家还在做梦时候。夜里2点网站挂了你也得起来,手机不停的接收各种报警短信...
要有背黑锅的忍耐力:运维一直是公司爹不疼娘不爱的位置,别人做好了和你无关,你做差了别人作不好就是你影响的。人力和财务是技术部门的服务,运维就是各技术部门的服务,大到线上操作,小到帮助公司其他使用linux桌面的同事,公司内部机房,IDC维护(跑腿搬服务器)。
linux运维和网络工程师两个方向该选择哪个?
1.选择linux运维吧。
2.网络工程师更多的是排除网络故障,一般要求对路由,交换,防火墙,漏洞扫描与入侵检测设备了解比较多。比如思科,华三,深信服,天融信,启明星辰的设备与软件。
3.linux运维要了解包括linux系统、服务器硬件、网络设备与状态、服务器机房动力环境、数据库的管理与使用、存储设备的备份与恢复、信息安全与网络规划、服务器及应用软件的开发与管理。
4.linux运维与网络工程师,大企业分工很明确,小企业要求linux运维人员对包括网络设备,linux系统,硬件环境,数据库,信息安全,软件及脚本开发,存储管理与使用,负载均衡与高可用设备,服务器及应用的缓存机制等方面都要能够熟练了解并且使用。
5.一般企业的网络工程师招聘之前已经存在公司的原有网络了,网络工程师只是负责维护现有的网络,使状态稳定。所以网络工程师最好转向系统工程师及系统架构工程师。
学习Linux系统,要看哪些书?
Linux系列操作系统是IT从业者必须掌握的操作系统之一,不管是做服务端开发还是做嵌入式开发都需要熟练使用Linux操作系统。物联网、云计算、大数据、区块链等流行技术都与Linux操作系统关系密切,所以学习Linux系列操作系统是很有必要的。
目前比较流行的Linux系列操作系统包括RedHat、CentOS、Ubuntu等,Red Hat目前大多在商业环境下使用,功能也更丰富一些,CentOS和Ubuntu是开源的Linux系统,非常适合初学者学习使用。
如果想要通过学习Linux来找一份运维方面的工作,建议学习Red Hat,一方面Red Hat有大量的商业用户,另一方面Red Hat的解决方案相对成熟。推荐学习一下《Red Hat Linux用户基础》。
对于开发人员来说,学习Linux更多是为了服务于软件开发,那么可以学习CentOS,或者是Ubuntu。CentOS是基于Red Hat的开源版本,所以用户群比较大,学习起来也并不复杂。推荐学习一下《鸟哥的Linux私房菜》,这本书我从头到位都看了一遍,写的还是深入浅出,比较适合初学者。
在学习完Linux的基本操作之后,如果想进一步学习Linux的体系结构,可以读一下《深入理解Linux内核》,这本书对学习Linux有较大的帮助,对于开发人员来说有较大的启发。
学习Linux需要一边学习一边做实验,另外,对于开发人员来说,Linux源代码是不可多得的学习资料,如果有条件的话,最好能多读一读Linux的内核源代码。
我的研究方向是大数据和人工智能,目前也在带大数据方向的研究生,我会陆续在头条上写一些关于大数据方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有相关问题,也可以咨询我。
谢谢!