新手如何自学linux
新手自学linux,需要制定详细的学习路线和学习内容,可以按照以下思路学习:
Linux基础入门主要包括: Linux硬件基础、Linux发展历史、Linux系统安装、xshell连接、xshell优化、SSH远程连接故障问题排查、L inux基础优化、Linux目录结构知识、Linux文件属性、Linux通配符、正则表达式、Linux系统权限等
第二阶段:linux系统管理进阶
linux系统管理进阶包括:Linux定时任务、Linux用户管理、Linux磁盘与文件系统、Linux三剑客之sed命令等。
第三阶段:Linux Shell基础
Linux Shell基础包括:Shell编程基础、Linux三剑客之awk命令等。
第四阶段:Linux网络基础
第五阶段:Linux网络服务
Linux网络服务包括:集群实战架构开始及环境准备、rsync数据同步服务、Linux全网备份项目、nfs网络存储服务精讲、inotify/sersync实时数据同步/nfs存储实时备份项目等。
第六阶段:Linux重要网络服务
Linux重要网络服务包括:http协议/www服务基础、nginx web介绍及基础实践、nginx web、lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统、nginx负载均衡、keepalived高可用等。
第七阶段:Ansible自动化运维与Zabbix监控
Ansible自动化运维与Zabbix监控包括: SSH服务秘钥认证、ansible批量自动化管理集群、 zabbix监控等。
第九阶段:大规模集群高可用服务(Lvs、Keepalived)
第十阶段:Java Tomcat服务及防火墙Iptables
第十一阶段:MySQL DBA高级应用实践
MySQL DBA高级应用实践包括:MySQL数据库入门基础命令、MySQL数据库进阶备份恢复、MySQL数据库深入事务引擎、MySQL数据库优化SQL语句优化、MySQL数据库集群主从复制/读写分离、MySQL数据库高可用/mha/keepalved等。
第十二阶段:高性能数据库Redis和Memcached课程
第十三阶段:Linux大规模集群架构构建(200台)
第十四阶段:Linux Shell编程企业案例实战
第十五阶段:企业级代码发布上线方案(SVN和Git)
第十六阶段企业级Kvm虚拟化与OpenStack云计算
第十七阶段公有云阿里云8大组件构建集群实战
第十八阶段:Docker技术企业应用实践
第十九阶段:Python自动化入门及进阶
第二十阶段:职业规划与高薪就业指导
Linux学习周期因人而异,如果您有比较好的学习规划,每天坚持学习4至5个小时,坚持3至6个月,应该可以熟练掌握Linux基本操作,但是,如果只有计划,没有实施,那就另当别论了,如果想更深入、更节省时间的学习Linux操作系统,建议报班学习,效果会更加明显!
《鸟哥的linux私房菜》不是讲编程的,是讲系统管理、服务器架设的,如系统权限、用户管理、架设网站等等方面的知识,和C++一点关系都没有。不过在系统管理方面仍然是一本不错的入门书(第三版排版不太好,命令在图里有空格,但文字里却并在一起等情况,要自己分辨)
在linux下还是以C为主的,当然要学图形界面等软件还是和C++有关。
如果是C的学习,跟linux还是非常相关的,需要了解很多linux系统内核知识,如果是C++的话,建议直接从C++库入手,如QT、ACE等等,这些都和系统本身没直接关系(但有些库只能运行在linux下)
给你点建议:
要学LINUX下的C编程,先看一两本LINUX下C的书比较好,这个你自己选择,但是经典的书还是好一些,比如《LINUX程序设计》、《UNIX环境高级编程》,看这些的时候把书上的例子选择一些自己编译一下,哪怕是照着敲进去,事半功倍。
推荐一本简单的内核书《linux内核完全剖析012》,这个讲的是012内核,代码量只有1万多行,现在的内核比起来差了近几百倍了。这个书讲了很多X86体系结构的知识,这时理解内核必备的,汇编你要能看懂。有了上述的知识,可以看一下《深入理解LINUX内核》等书,了解下现在的真正的内核。(目前kernel 3的经典书籍没有,而且第三代内核升级比较快,不会像26这样的版本几年没有大更新了,不过3和26还是很相似的,主要是一些扩充,原理是一样的,可以用26的书去了解下,挑一本经典的就好),实战的话《linux就该这么学》
之后可以根据自己的喜好选择,如果想了解驱动开发的就看看《Linux设备驱动程序》,想了解网络的,可以了解相关协议等等,如果想搞学C++,也可以了解相应的库。
(很多书的书名是写unix并非linux,但本质是一样的,其基本原理是相通的)
有了上述知识就可以做项目进行实践了,综合实践才是检验是否掌握相关知识的最佳途径。适当的开发一些项目,去熟练所学的知识。
这是我的一些心得,希望对你有用。
还有就是了解下linux系统本身还是非常有必要的,比如权限知识、线程调度等。
如果是C++的学习,建议先学好C++的基础知识,如虚函数、类的继承等,那些库都是建立在此基础上的。
0条评论