- 血莲丿红尘
-
先在windows系统下把C语言的基本知识学好,之后到linux系统下继续深造。
当然,前提是你想进一步掌握更多的知识,否则,在windows系统下学点C语言就够了,比如写点简单的小程序什么的。
以下内容摘自《Linux C编程一站式学习》的前言:
为什么要在Linux平台上学C语言?用Windows学C语言不好吗?
用Windows还真的是学不好C语言。C语言是一种面向底层的编程语言,要写好C程序,必须对操作系统的工作原理非常清楚,因为操作系统也是用C写的,我们用C写应用程序直接使用操作系统提供的接口。
Linux是一种开源的操作系统,你有任何疑问都可以从源代码和文档中找到答案,即使你看不懂源代码,也找不到文档,也很容易找个高手教你,各种邮件列表、新闻组和论坛上从来都不缺乐于助人的高手;而Windows是一种封闭的操作系统,除了微软的员工别人都看不到它的源代码,只能通过文档去猜测它的工作原理,更糟糕的是,微软向来喜欢藏着揶着,好用的功能留着自己用,而不会写到文档里公开。
本书的第一部分在Linux或Windows平台上学习都可以,但第二部分和第三部分介绍了很多Linux操作系统的原理以帮助读者更深入地理解C语言,只能在Linux平台上学习。
Windows平台上的开发工具往往和各种集成开发环境(IDE,Integrated Development Environment)绑在一起,例如Visual Studio、Eclipse等。使用IDE确实很便捷,但IDE对于初学者绝对不是好东西。微软喜欢宣扬傻瓜式编程的理念,告诉你用鼠标拖几个控件,然后点一个按钮就可以编译出程序来,但是真正有用的程序有哪个是这么拖出来的?很多从Windows平台入门学编程的人,编了好几年程序,还是只知道编完程序点一个按钮就可以跑了,把几个源文件拖到一个项目里就可以编译到一起了,如果有更复杂的需求他们就傻眼了,因为他们脑子里只有按钮、菜单的概念,根本没有编译器、链接器、Makefile的概念,甚至连命令行都没用过,然而这些都是初学编程就应该建立起来的基本概念。另一方面,编译器、链接器和C语言的语法有密切的关系,不了解编译器、链接器的工作原理,也不可能真正掌握C的语法。所以,IDE并没有帮助你学习,而是阻碍了你学习,本来要学好C编程只要把语法和编译命令学会就行了,现在有了IDE,除了学会语法和编译命令,你还得弄清楚编译命令和IDE是怎么集成的,这才算学明白了,本来就很复杂的学习任务被IDE搞得更加复杂了。Linux用户的使用习惯从来都是以敲命令为主,以鼠标操作为辅,从学编程的第一天起就要敲命令编译程序,等到你把这些基本概念都搞清楚了,你觉得哪个IDE好用你再去用,不过到那时候你可能会更喜欢vi或emacs而不是IDE了。
- 可可科科
-
1、linux是开放源代码的操作系统,每一个操作都可以充分按照你的想法进行修改,可以让你知道系统如何工作。那么什么是操作系统呢?系统是计算机硬件的管理员,管理和控制计算机的所有设备,包含了硬盘、CPU、鼠标等;操作是系统,提供给计算机使用者使用系统的方法。
2、linux系统是由c语言写成的,对于深入了解和学习C语言的同学无疑是最适合的环境了,在linux系统下使用vi编辑器,让你代码更加高大上,同时vi也是一个让人爱不释手的好工具。
3、最重要的是linux系统的使用率非常高,有用。百分之九十以上的服务器都在使用linux系统,也就是说日常生活中所有的网络服务,都是基于linux系统的。
- ardim
-
因为windows的系统代码不是开原的,而Linux版本有很多,而且都是开原的,用户想怎么修改linux都可以,重要的是Linux完全免费!windows是付费操作系统,企业使用windows必须购买正版windows,否则就算侵权。个人使用windows破解版也属于侵权,只不过微软没必要专门针对某个人!
只是个人经验,希望对你有帮助!
- 西柚不是西游
-
老铁,这两种系统各有好处,Linux适用于服务器,Windows适用于个人。人们学习Linux还有一个重要原因就是互联网领域的快速发展,离不开Linux,而且学好Linux可以很轻松的高薪就业,所以越来越多的人在学Linux。更多Linux知识请看《Linux就该这么学》,会有帮助的。
相关推荐
关于linux学习路线的问题请教前辈_linux应该这样学
很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对UNIX更是一无所知。所以我们从最基础的讲起,对于Linux及UNIX的历史我们不做多谈,直接进入入门的学习。Linux入门是很简单的,问题是你是否有耐心,是否爱折腾,是否不排斥重装一类的大修。没折腾可以说是学不好Linux的,鸟哥说过,要真正了解Linux的分区机制,对LVM使用相当熟练,没有20次以上的Linux装机经验是积累不起来的,所以一定不要怕折腾。由于大家之前都使用Windows,所以我也尽可能照顾这些“菜鸟”。我的推荐,如果你第一次接触Linux,那么首先在虚拟机中尝试它。虚拟机我推荐VirtualBox,我并不主张使用VM,原因是VM是闭源的,并且是收费的,我不希望推动盗版。当然如果你的Money足够多,可以尝试VM,但我要说的是即使是VM,不一定就一定好。付费的软件不一定好。首先,VirtualBox很小巧,Windows平台下安装包在80MB左右,而VM动辄600MB,虽然功能强大,但资源消耗也多,何况你的需求VirtualBox完全能够满足。所以,还是自己选。如何使用虚拟机,是你的事,这个我不教你,因为很简单,不会的话Google或Bai都可以,英文好的可以直接看官方文档。现在介绍Linux发行版的知识。正如你所见,Linux发行版并非Linux,Linux仅是指操作系统的内核,作为科班出生的你不要让我解释,我也没时间。我推荐的发行版如下:UBUNTU适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新应用,相对来说不太喜欢折腾的开发者。Debian,相对UBUNTU难很多的发行版,突出特点是稳定与容易使用的包管理系统,缺点是企业支持不足,为社区开发驱动。Arch,追逐时尚的开发者的首选,优点是包更新相当快,无缝升级,一次安装基本可以一直运作下去,没有如UBUNTU那样的版本概念,说的专业点叫滚动升级,保持你的系统一定是最新的。缺点显然易见,不稳定。同时安装配置相对Debian再麻烦点。Gentoo,相对Arch再难点,考验使用者的综合水平,从系统安装到微调,内核编译都亲历亲为,是高手及黑客显示自己技术手段,按需配置符合自己要求的系统的首选。Slackware与Gentoo类似。CentOS,社区维护的RedHat的复刻版本,完全使用RedHat的源码重新编译生成,与RedHat的兼容性在理论上来说是最好的。如果你专注于Linux服务器,如网络管理,架站,那么CentOS是你的选择。LFS,终极黑客显摆工具,完全从源代码安装,编译系统。安装前你得到的只有一份文档,你要做的就是照文档你的说明,一步步,一条条命令,一个个软件包的去构建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。你得挑一个适合你的系统,然后在虚拟机安装它,开始使用它。如果你想快速学会Linux,我有一个建议就是忘记图形界面,不要想图形界面能不能提供你问题的答案,而是满世界的去找,去问,如何用命令行解决你的问题。在这个过程中,你最好能将Linux的命令掌握的不错,起码常用的命令得知道,同时建立了自己的知识库,里面是你积累的各项知识。再下个阶段,你需要学习的是Linux平台的C/C开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。同样,建议你抛弃掉图形界面的IDE,从VIM开始,为什么是VIM,而不是Emacs,我无意挑起编辑器大战,但我觉得VIM适合初学者,适合手比较笨,脑袋比较慢的开发者。Emacs的键位太多,太复杂,我很畏惧。然后是GCC,Make,Eclipse(Java,C或者)。虽然将C列在了Eclipse中,但我并不推荐用IDE开发C,因为这不是Linux的文化,容易让你忽略一些你应该注意的问题。IDE让你变懒,懒得跟猪一样。如果你对程序调试,测试工作很感兴趣,GDB也得学的很好,如果不是GDB也是必修课。这是开发的第一步,注意我并没有提过一句Linux系统API的内容,这个阶段也不要关心这个。你要做的就是积累经验,在Linux平台的开发经验。我推荐的书如下:C语言程序设计,谭浩强的也可以。C语言,白皮书当然更好。C推荐CPrimerPlus,Java我不喜欢,就不推荐了。工具方面推荐VIM的官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指导(电子书),汇编语言程序设计(让你对库,链接,内嵌汇编,编译器优化选项有初步了解,不必深度)。如果你这个阶段过不了就不必往下做了,这是底线,最基础的基础,否则离开,不要霍霍Linux开发。不专业的Linux开发者作出的程序是与Linux文化或UNIX文化相背的,程序是走不远的,不可能像Bash,VIM这些神品一样。所以做不好干脆离开。接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看,看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强,你可以在面试时说服所有的考官。(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分,Google创始人的案头书籍,扎尔伯克的床头读物。)这本书看完后你会对Linux系统编程有相当的了解,知道Linux与Windows平台间开发的差异在哪?它们的优缺点在哪?我的总结如下:做Windows平台开发,很苦,微软的系统API总在扩容,想使用最新潮,最高效的功能,最适合当前流行系统的功能你必须时刻学习。Linux不是,Linux系统的核心API就100来个,记忆力好完全可以背下来。而且经久不变,为什么不变,因为要同UNIX兼容,符合POSIX标准。所以Linux平台的开发大多是专注于底层的或服务器编程。这是其优点,当然图形是Linux的软肋,但我站在一个开发者的角度,我无所谓,因为命令行我也可以适应,如果有更好的图形界面我就当作恩赐吧。另外,Windows闭源,系统做了什么你更本不知道,永远被微软牵着鼻子跑,想想如果微软说Win8不支持QQ,那腾讯不得哭死。而Linux完全开源,你不喜欢,可以自己改,只要你技术够。另外,Windows虽然使用的人多,但使用场合单一,专注与桌面。而Linux在各个方面都有发展,尤其在云计算,服务器软件,嵌入式领域,企业级应用上有广大前景,而且兼容性一流,由于支持POSIX可以无缝的运行在UNIX系统之上,不管是苹果的Mac还是IBM的AS400系列,都是完全支持的。另外,Linux的开发环境支持也绝对是一流的,不管是C/C,Java,Bash,Python,PHP,Javascript,。就连C#也支持。而微软除VisualStdio套件以外,都不怎么友好,不是吗?如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术,世界顶级黑客将同你分享他的看法。现在是时候做分流了。大体上我分为四个方向:网络,图形,嵌入式,设备驱动。如果选择网络,再细分,我对其他的不是他熟悉,只说服务器软件编写及高性能的并发程序编写吧。相对来说这是网络编程中技术含量最高的,也是底层的。需要很多的经验,看很多的书,做很多的项目。我的看法是以下面的顺序来看书:APUE再深读_尤其是进程,线程,IPC,套接字多核程序设计-Pthread一定得吃透了,你很NBUNIX网络编程_卷一,卷二TCP/IP网络详解_卷一再看上面两本书时就该看了5.TCP/IP网络详解_卷二我觉得看到卷二就差不多了,当然卷三看了更好,努力,争取看了6.Lighttpd源代码-这个服务器也很有名了7.Nginx源代码_相较于Apache,Nginx的源码较少,如果能看个大致,很NB。看源代码主要是要学习里面的套接字编程及并发控制,想想都激动。如果你有这些本事,可以试着往暴雪投简历,为他们写服务器后台,想一想全球的魔兽都运行在你的服务器软件上。Linux内核TCP/IP协议栈_深入了解TCP/IP的实现如果你还喜欢驱动程序设计,可以看看更底层的协议,如链路层的,写什么路由器,网卡,网络设备的驱动及嵌入式系统软件应该也不成问题了。当然一般的网络公司,就算百度级别的也该毫不犹豫的雇用你。只是看后面这些书需要时间与经验,所以35岁以前办到吧!跳槽到给你未来的地方!图形方向,我觉得图形方向也是很有前途的,以下几个方面。Opengl的工业及游戏开发,国外较成熟。影视动画特效,如皮克斯,也是国外较成熟。GPU计算技术,可以应用在浏览器网页渲染上,GPU计算资源利用上,由于开源的原因,有很多的文档程序可以参考。如果能进火狐开发,或google做浏览器开发,应该会很好。嵌入式方向:嵌入式方向没说的,Linux很重要。掌握多个架构,不仅X86的,ARM的,单片机什么的也必须得懂。硬件不懂我预见你会死在半路上,我也想走嵌入式方向,但我觉得就学校教授嵌入式的方法,我连学电子的那帮学生都竞争不过。奉劝大家,一定得懂硬件再去做,如果走到嵌入式应用开发,只能祝你好运,不要碰上像Nokia,Hp这样的公司,否则你会很惨的。驱动程序设计:软件开发周期是很长的,硬件不同,很快。每个月诞生那么多的新硬件,如何让他们在Linux上工作起来,这是你的工作。由于Linux的兼容性很好,如果不是太低层的驱动,基本C语言就可以搞定,系统架构的影响不大,因为有系统支持,你可能做些许更改就可以在ARM上使用PC的硬件了,所以做硬件驱动开发不像嵌入式,对硬件知识的要求很高。可以从事的方向也很多,如家电啊,特别是如索尼,日立,希捷,富士康这样的厂子,很稀缺的。LDD_Linux驱动程序设计与内核编程的基础读物深入理解Linux内核_进阶的Linux源代码_永无止境的当然你还的看个方面的书,如《linux就该这么学》啊什么的。2023-07-10 20:05:401
实用性的Linux系统技术自学书籍
《Linux就该这么学》这家不错Linux就该这么学》是一本注重于实用性的Linux系统技术自学书籍,自基础篇公布后网站每天日常阅读量已经超过10000多人,25万多名忠实粉丝读者,是目前国内人气增速最快的IT书籍。您可以在本网站内免费在线阅读书籍的全部章节及最新内容,今后的进阶篇也将会一如既往免费、完整的提供给亲爱的读者们在线学习。与此同时,我们正在全球各地部署书籍的在线学习站点,您只要打开手机、电脑或平板设备就能阅读到书籍,让学习真正的不再受到时间和地点的限制。《Linux就该这么学》书籍中所需的Linux系统镜像及所有相关配套工具就在这里,您方便的时候就可以下载啦。不仅如此,我们的团队成员还为您收集整理了值得每日一看的“新闻资讯”和“技术干货”,作为书籍的扩展资料真的是极好的~当然也欢迎您来加入QQ技术群中与诸多小白、大牛们互助学习,共同进步呦!~刘遄老师自2015年初起,花费了近三年时间对书籍结构与内容构思、设计培训课程体系与结合红帽RHCE认证内容后,Linux在线培训班终于正式开班啦!~我们通过借助网络培训的独有优势,以超高的性价比面向所有0基础的技术爱好者开班授课。培训课程全部由刘遄老师亲自讲解,通过2个月充实的培训课程带领您入门运维行业,并会据当期学员的实际情况进行灵活调整及安排讲课进度。培训课程从最基础的安装Linux系统开始讲起,通过实践部署数十个常用服务来学习到高级服务配置的方法与思路,这种思想与意识尤为重要,帮助您在未来工作中游刃有余的对付各种情况。并且刘遄老师的培训课程内容完全100%的覆盖了红帽RHCSARHCE认证考试范围,当学习完如此实用的课程后要想顺手考个红帽认证也是可以的(课程内容非常丰富,我们更注重实用技术,而绝非为红帽考试而培训讲课)。2023-07-10 20:05:471
想学习Linux该学什么
Linux入门并不困难,只要具备Linux基础,读懂Linux的命令格式,大多数的服务架构都是可以按照文档部署出来。当然做Linux开发,如果自己没有学习方向和课程大纲还是比较困难的,个人建议去参加培训学习更有效率,如果报班学习则大概需要4-6个月时间。学习主要内容有:1)网络基础与linux系统的管理2)优化及高可用技能3)虚拟化与云平台技术4)开发运维毕业后可从事的工作有:1)Linux运维工程师2)数据库工程师3)云计算运维工程师4)自动化运维工程师5)云计算架构工程师等互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。祝你学有所成,望采纳。2023-07-10 20:05:587
新手如何自学linux
新手自学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操作系统,建议报班学习,效果会更加明显!2023-07-10 20:06:4314
学习Linux的步骤是怎样的
首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存下来。什么叫生存下来呢?就是我现在给你一台主机,键盘,显示器啥的,然后给你一个服务器版的Linux系统的光盘或者其他什么安装盘,你去把这台主机用起来。什么叫用起来呢?你平常用Windows电脑干啥,你现在还用这台电脑干啥。新建文件啊,查看文件,编辑文件,保存文件,复制,移动,删除,打包,解压,联网,下载个什么东西啊等等基本操作你得会。还有软件怎么安装,不仅要熟悉apt-get和yum,还有给你源码的软件怎么安装你得会,另外要熟悉Linux下的文件系统,每个目录是干啥的,目录下的文件是干嘛的,插入一个U盘,如何挂载这个U盘,操作U盘下的文件你得会啊。这个看一本书就行了,《鸟哥的Linux私房菜-基础篇》,记得是基础篇,记得安装Linux系统自己操作一遍,还有一本是服务器篇,你既然是要学Linux编程开发,那就不用看服务器架设篇了。做完这一步,你可以开发了。Linux下开发,两种基本语言,C和C++咯,至于其他人要说Python,Java,Ruby啥的不讨论,因为就讨论Linux下的开发,什么是Linux开发呢?就是利用Linux的API进行开发咯,首先你得会C语言或者C++语言啊,这个去看丹尼斯的《C程序设计语言》,注意是丹尼斯的,C++的就去看《Essential C++》或者《C++ Primer》,然后在Linux下的程序开发,Linux的API是遵循POSIX标准的,自行谷歌什么叫POSIX。Linux下程序开发几大块,文件操作,这个很重要,你要知道Linux下的一个思想叫一切皆文件,可见文件读写多重要了。I/O模型,五大I/O模型,阻塞,非阻塞,复用,信号驱动和异步I/O,环环相扣丝丝相连,概念和操作都要仔细琢磨,最重要的当属复用,就是select,poll和epoll,面试笔试就问这个东西,要知道他们的适用范围和优缺点。进程和线程,包括进程和线程的概念和区别,进程和线程的建立,同步,通信,互斥等等。网络编程,就是socket编程,Linux编程,这个学不好等于啥都没学,这个估计还得了解一下TCP/IP协议,编程方面主要是那几步,申请socket,bind,listen,accept几步,要熟悉种常见的服务器模型,进程池线程池方式的,多进程方式的,复用方式的,最重要的是复用方式的,这部分可以先只写服务器,测试直接用Telnet就好了,加快速度么。其余的就是数据库,这个东西不属于Linux,但是还得会,要不然啥都做不了,看那本《MySQL必知必会》,当然深入的话还得找本专业的书细细看。这个时候就可以真刀真枪的去干点有意思的事了,比如写个终端下的类似于QQ的软件啊,包括服务器和客户端啊,慢慢的增加并发数,比如可以同时支持五千人在线啊,文件传输啊等等。然后学学Qt,熟悉一下图形界面,可以把你的终端下的QQ完全改成图形界面下的。估计到这个时候,你差不多在Linux下进行像样的开发了吧。在这个过程的学习中,相信你已经学会Makefile的编写啊,编译啊,链接啊等等一些细枝末节的东西了,还得反思一下把零散的东西串一串,要系统化。接下来就是继续深入了,Linux为什么这么多人用,好处在哪里,你得去稍微的看看内核源码啊,内核的进线程调度啊,我告诉你,Linux内核的一个链表都够你研究好几节课的。哦,这个时候,数据结构啥的又得翻出来加强一下了不是,计算机网络啥的也得看看,操作系统原理啥的也得看看呢不是,把这些东西放在这里是合适的,前面让你知其然,知道怎么编程怎么做,现在要知其所以然了不是。在学习的过程中,要不断积累和了解最新的东西,最起码要知道个概念,比如分布式,大数据,云计算,机器学习,计算机视觉,JIT等等,形成知识链,这样不会导致你最后不知道学啥。有个建议,一定要学一下Python,一定要学一下Python,一定要学一下Python,重要的事情说三遍。它能极大的提高你的工作效率,也能和C/C++结合在一起用,很nice的语言。最后推荐几本书(前面的包含在内):《鸟哥的Linux私房菜 基础篇》《C程序设计语言》 丹尼斯写的《Linux C编程一站式学习》 宋劲杉写的《Eensstial C++》《C++ Primer》《Effective C++》《Linux网络编程》 宋劲彬写的《Unix环境高级编程》《Unix网络编程》 两部《Linux高级程序设计》 华清远见的《MySQL必知必会》《数据库系统概念》《大话数据结构》《算法导论》《Linux内核情景分析》《深入理解Linux内核》《深入理解计算机系统》《现代操作系统》《深入理解计算机网络》《TCP/IP》的三卷经典书2023-07-10 20:07:2211
学linux推荐书籍
本人看过《鸟哥的linux私房菜》,还有《linux就该这么学》。坦白来讲,鸟哥的linux私房菜也是我的linux入门书籍,我绝对的认可鸟哥为这本书的付出,其书发行量巨大,陪伴了一代的运维人员,甚至被封为“linux入门神书”,渐渐的从一本linux技术书籍,上升至精神的高度,不允许再有一点反驳之声,但思索再三,还是决定阐明我的观点,与初学者分享下这不同的看法:首先鸟哥在开篇即提到了写书的缘由是因为记性不好,所以想写出一本能够放在案头的备忘录,对书籍的内容自然就没有了太多的筛选,反而一再的扩大知识范围,最终写出的两本书厚度足足超过十厘米,敢问这种“备忘录式的入门书籍”真的适合新手来读?我认为书籍既然发行了,就不能再是个备忘录,而应该是通过作者的经验将知识不断提炼,真正让捧起书的读者看完有收获才可以。其次是鸟哥的linux私房菜的书籍更新周期过长,RHEL7与Centos7已经公布,经过了一年多的迭代,已经很稳定并被广泛使用了,如果内容没有定期更新,使得技术脱离了生产环境,还怎么称作是真正实用的linux技术?而且鸟哥的linux私房菜缺少了对新手非常重要的答疑与帮助,如果遇到了实验出错,或者有知识点悟不透,这些都可能让初学者丧失掉对linux技术的兴趣。本人推荐你看看《linux就该这么学》。2023-07-10 20:07:561
《Linux就该这么学必读的Linux系统与红帽认证自学书籍》epub下载在线阅读,求百度网盘云资源
去官方下载即可免费的书籍百度网盘没得2023-07-10 20:08:031
浅谈如何学习linux(强烈推荐)
一、 选择适合自己的linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面我们就分类介绍。1.1 初学者入门首选-redhat系列在学习redhat系列linux之前,首先要了解以下redhat linux各个发行版本之间的关系。1.Red Hat LinuxRed Hat Linux是redhat最早发行的个人版本的linux, 其1.0版本于1994年11月3日发行。虽然其历史不及其它linux发行版本悠久,但比起很多的Linux发行套件,Red Hat 的历史悠久得多。自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版。2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支持,标志著Red Hat Linux的正式完结。原本的桌面版Red Hat Linux发行套件则与来自开源社区的 Fedora进行合并,成为 Fedora Core 发行版本。目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,以及由社区开发的免费的Fedora Core。2.Fedora CoreFedora Core(缩写为FC)被红帽公司定位为新技术的实验场地,许多新的技术都会在 FC 中检验,如果稳定的话红帽公司则会考虑加入 Red Hat Enterprise Linux 中。Fedora Core 1发布于2003年年末,而FC的定位便是桌面用户。FC提供了最新的软件包,同时,它的版本更新周期也非常短,仅6个月。由于版本更新频繁,性能和稳定性得不到保证,因此,一般在服务器上不推荐采用Fedora Core。其实可以这么认为,Fedora就是Red Hat发行Red Hat企业版linux的一个实验版本,以用户做测试,为Red Hat企业版发布奠定基础。3.Red Hat Enterprise LinuxRed Hat Enterprise Linux(缩写为RHEL,Red Hat的企业版)。Red Hat现在主要做服务器版的linux开发,在版本上注重了性能和稳定性以及对硬件的支持。 由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持,因此版本更新相对较缓慢。 RedHat Enterprise Linux又分为4个版本 Advanced Server(AS)、ES Workstation(WS)、Desktop,它们的差别不太大,只是功能方面的差别。4.CentosCentOS全名为“社区企业操作系统”(Community Enterprise Operating System)CentOS产生的背景:Redhat发布Redhat 9。0后,不再开发redhat 10,11u2026u2026,全面转向Redhat enterprise linux(简写为rhel)的开发,和以往不同的是,新的redhat企业版要求用户先购买lisence,redhat同时承诺确保产品的稳定性,安全性。rhel二进制代码不再提供下载,而是作为redhat 服务的一部分,但源代码依然是开放的。在这种情况下,出现了centos、whitebox、dao 等等一批open source的企业版本,其中以centos最为活跃。下面讲述centos是如何制作产生的:CentOS社区将Redhat的网站上的所有源代码下载下来,进行重新编译。由于AS/ES/WS是商业产品,因此,必须将所有Redhat的Logo和标识改成自己的CentOS标识。比如将AS4.0原版的SRPM源码编译后,换上Centos社区的logo,这样就成为了CentOS 4.0。Redhat Enterprise Linux AS4 Update1的源码编译后,就成为了CentOS4.1。AS4 Update2的源码编译后,就成为了CentOS4.2等等。CentOS就是这样产生的。因此,可以说CentOS就是Redhat的AS/ES/WS的免费版本,使用centos可以获得与redhat 企业级linux一样的功能和性能。同时centos还提供免费的长期升级和更新服务。因此, 在众多的RHEL的克隆版本中,CentOS是很出众很优秀的。虽然说centos是RHEL的克隆,但并不是一模一样,所说的克隆是具有100%的互换性。对于centos其实不尽相同,RHEL的软件在CentOS上面不能保证100%的正常工作。在了解了Redhat系列各个版本的差异后。其实我们就找到了为何选择Redhat linux作为初学者入门学习的理由了。首先:在国内,乃至是全世界的Linux用户最熟悉、最耳闻能详的发行版肯定就是Red Hat了。因为Red Hat是linux界的“老大”,美国Red Hat公司发布的Red Hat linux是商业上运作最成功的一个Linux发行套件,因此Red Hat公司发行的linux值得信任, Red Hat linux的功能和性能也毋庸置疑。其次:Red hat现在拥有庞大的网络用户群体,网络linux资源基本90%都是基于Redhat linux的,如果您在学习过程中遇到任何问题,随便搜索网络,就有成千上万的答案展示在你面前。第三: Red Hat linux系列版本相互补充,相得益彰:如果你第一次接触linux,那么建议你先安装Fedora Core, Fedora Core安装简单,对硬件支持很好,界面也很华丽,同时也可以体验Redhat linux的最新功能;如果你对linux有一定的了解,需要深入学习,建议你使用CENTOS系统;如果你是在做linux企业级应用,建议你使用RHEL版本。最后: redhat应用范围广,具有典型性和代表性,很多系统(例如红旗redflag,中标linux,oracle发布的Enterprise Linux )都是以Red Hat linux为基准的,因而,可以说学会了Red Hat linux,就能触类旁通,其它类似的linux系统也能很快掌握; 现在周围学习linux的一般也都是以redhat linux为主,这样交流方便,学习中出现问题,更容易得到解决。同时redhat linux的安装和使用也是最简单的,因此,基本上不会在”装系统”上浪费过多时间。1.2 企业级应用首选-suse linux企业级的应用追求的是可靠性和稳定性,这就要求构建企业级应用的系统平台具有高可靠性和高稳定性。企业级linux的发行版本就是解决的这个问题。SUSE是德国最著名的Linux发行版,在全世界范围中也享有很高的声誉。2003年11月4日,Novell公司对外宣布将收购SuSE。2004年1月该收购顺利完成,Novell同时将SuSE正式命名为SuSE Linux。 Novell公司收购suse,加速了suse linux的发展, suse linux无论在桌面市场还是服务器市场都更加专业化,据不完全统计,suse linux现在欧洲linux市场占有将近80%的份额,大部分关键性应用都是建立在suse linux下。由于suse 进入中国时间较短,同时加上suse在中国的营销模式短时间不能被国内接受,因此现在suse在中国的市场份额还不是很大,但是这些并不影响suse linux高可靠与稳定性的事实,随着suse的发展,相信suse linux在中国的应用会越来越多。1.3 游戏娱乐首选-Ubuntu Linux说到linux桌面市场, Ubuntu Linux几乎占据了桌面linux的半壁江山, Ubuntu Linux主打linux桌面之最,界面美观, 简易而不失华丽,如果想在linux下进行娱乐休闲,Ubuntu Linux绝对是首选。Ubuntu 的安装非常的人性化,只须按照提示一步一步进行,安装与Windows一样简单!并且,Ubuntu被誉为对硬件支持最好最全面的Linux 发行版之一,许多在其他发行版上无法使用,或者在默认配置时无法使用的硬件,在Ubuntu上都能轻松搞定。因此你可以像安装windows一样轻松的安装Ubuntu。尽情体验Ubuntu linux带来的乐趣。1.4 linux作为服务器是发展趋势在上面的章节中主要介绍了几种最常见的linux发行版本,其实linux的发行版本还有很多很多,比较常见的还有Debian GNU/Linux, Mandriva, Gentoo,Slackware, Knoppix,MEPIS, Xandros,国产的红旗redflag,中标linux等等,这里不再一 一介绍,其实纵观linux的各个发行版,linux发行版本无非是朝着这两个方面而来,一是服务器市场,而是桌面市场。以Ubuntu Linux为代表的linux发行版走的是桌面市场路线,虽然它们给用户带来很多惊喜,更新也很快,但是由于桌面市场有着windows这样强劲的对手,linux桌面发展举步维艰。以redhat系列版本为代表的linux发行版现在主要面向企业级linux的服务器市场,重点开发linux的企业版本,suse linux同样主要力量也集中在开发企业级linux上面,其它的例如国产redhat flag,中标linux等都重点投入在了linux服务器市场。linux两大发布厂商现在都走了linux服务器市场的路线,可见linux作为企业级服务器有着巨大的发展前途,据权威部门统计,linux在服务器市场的占有率每年都在持续上升。其实很多linux的应用都是针对linux服务器的,本书的讲述也是主要针对linux在服务器下的各种应用展开的。二、 养成良好的linux操作习惯当你进入linux的学习之后,请不要用windows的工作方式来思考问题,因为它们之间确实有很大的不同,比如它们之间的内存管理机制,进程运行机制等都有很大不同,这些异同点将在下面章节陆续讲述,因此,抛开windows那种思维,用全新的理念尝试去挖掘linux身上特有的潜质,对初学者至关重要。2.1 一定要习惯命令行方式Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作都离不开命令行。虽然linux也有桌面系统,但是X-window也只是运行在命令行模式下的一个应用程序。因此,可以这么说,命令是学习linux系统的基础,学习linux,很大程度上就是学习命令,很多linux高手其实都是玩儿命令很熟的人。也许对于刚刚从windows系统进入linux学习的初学者来说,立刻进入枯燥的命令学习,实在太难,但是你一旦学会就爱不释手。因为它的功能实在太强大了。您未来的学习之路也将会以指数增加的方式增长。2.2 理论结合实践有很多初学者都会遇到这么一个问题,说到系统的每个命令,都很熟悉,但是在系统出现故障的时候,面对出现问题的linux系统无从下手了。不知道在什么时候用什么命令去检查系统,这是很多linux新手最无奈的事情了。说到底,就是学习的理论没有很好的与系统实际操作相结合。很多linux知识,例如每个命令的参数含义,在书本上说的很清楚,看起来也很容易理解,但是一旦组合起来使用,却并不是那么容易,没有多次的动手练习,其中的技巧是无法掌握的。人类大脑不像计算机的硬盘一样,除非硬盘坏掉或者硬盘被格式化,否则储存的资料将永远而且时刻的记忆在硬盘中。而在人类记忆的曲线中,必须要不断的重复练习才会将一件事情记得比较熟。同样的,学习 Linux 也一样,如果无法经常学习的话,学了后面的,忘记了前面的;还有些linux初学者也学了很多linux知识,但是由于长期不用,导致学过的东西在很短的时间内又忘记了,久而久之,失去了学习的信心。可见,增加自己Linux 的实战技能,只有勤于动手,勇于实践,这也是学好linux的根本。2.3 学会使用linux联机帮助各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者来说往往是不够的, 其实当安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。例如,对于一个linux tar命令的使用,你不是很熟悉,那么只要你在命令行输入man tar, 就会得到tar的详细说明和用法;主流的linux发行版都自带了非常详细的帮助文档,包括使用说明和FAQ,从系统的安装到系统的维护,再到系统安全,针对不同层次人群的详尽文档。仔细阅读文档后60%的问题都可在这里得到解决。2.4 学会独立思考问题,独立解决问题遇到问题,首先想到的应该是如何自己去解决这个问题,解决方式很多,看书查资料,网络搜索引擎,技术论坛等等,通过这几种方式,90%的问题都能得到解决,通过这种方式一方面锻炼了自己独立解决问题的能力。另一方面技术上也能得到快速提高。如果通过如上方式实在解决不了的话,可以向人询问,得到答案后要考虑为何这么做,然后做笔记记录解决过程。最忌讳的方式是只要遇到问题,就去问人,虽然这样可能会很快解决问题,但是长久下去遇到问题就会依赖别人,技术上也不会进步。2.5 学习专业英语如果你想深入学习Linux,一定要尝试去看英文文档。因为,技术性的东西写的最好的,最全面的文档都是英语写的,最先发布的高新技术也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看README,再看INSTALL,然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。因此,学习一点专业的英语是很有必要的。2.6 Linux学习基本步骤到这里,我们总结一下linux的学习路线图,给各位初学者作为参考。初级阶段:1. 命令是必须要学的,linux常用的命令大概在80个左右,这些常用命令一定要熟练掌握。2. 掌握linux软件包的常用安装方法,例如源码安装,rpm方式安装等等。3. 学习安装设备驱动程序(比如网卡、显卡驱动) 4. 熟悉Grub/Lilo引导程序及简单的修复操作。 5. 熟悉Linux文件系统和目录结构以及linux基本运行原理。 6. 掌握vi,gcc,gdb等常用编辑器,编译器,调试器。 7. 理解shell别名、管道、I/O重定向、输入和输出以及shell简单脚本编程。 8. 学习Linux环境下的网络基本组建。高级阶段:1:尝试阅读linux内核源码: 这需要具有一定的C、C++语言基础,因为C、C++是linux/unix的核心语言,系统代码都是C写的。2:尝试编译安装和调试自己的linux内核:在阅读源码了解了linux底层的运行原理后,完全可以编译一个适合自己的linux系统来。3:深入学习shell, perl,cgi等脚本语言:这些脚本语言在linux下非常强大,它们能完成你想做的任何事情,熟练掌握这些语言,可以让你在linux系统下游刃有余,如鱼得水。4:构建企业级linux高可用集群系统:linux下有很多开源免费的集群软件,利用这些免费的集群软件完全可以构建出与商业unix系统想媲美的集群系统来。三、用虚拟机软件学习linux3.1 什么是虚拟机软件虚拟机软件可以在一台电脑上模拟出来若干台PC电脑,每台PC可以运行单独的操作系统而互不干扰,可以实现一台电脑“同时”运行几个操作系统,还可以将这几个操作系统连成一个网络。图1:安装了3台虚拟机的windows系统 比如图1中,是在一台电脑上安装了Windows 2000 Server,再在Win2000 server上安装虚拟机软件VMWare,利用VMWare模拟出来3台PC,在这3台PC上分别运行RedHat Linux、Win2000和Solaris 9 for x86操作系统。这4个操作系统同时在一台电脑上运行,互不干扰,并且同在一个局域网内。听了上面的基本介绍,你可能知道虚拟机软件到底是做什么用的了。那么好,我们继续做更深入的介绍。 目前PC上的虚拟机软件最常用的有下述两个: VMWare 网址为:http://www.vmware.com Virtual PC 网址为:http://www.connectix.com3.2 使用虚拟机软件的好处1、如果要在一台电脑上安装linux和windows系统,不用虚拟机的话,有两个办法:一是装多个硬盘,每个硬盘装一个操作系统。这个方法比较昂贵。二是在一个硬盘上装双系统。这个方法不够安全,因为系统盘的MBR是操作系统的必争之地,windows更是霸道,每次重新安装系统都要重写系统的MBR,这样的话搞不好会几个操作系统同归于尽。而使用虚拟机软件既省钱又安全,因此,对于新手来说,利用虚拟机学习linux简直是再好不过了。2、在虚拟机上安装linux系统,你不用担心会格式化掉自己的硬盘,你甚至可以随意的对虚拟系统进行任何的设置和更改操作,你可以格式化虚拟系统硬盘,重新分区虚拟系统硬盘等等, 因为虚拟机是你真实系统上运行的软件,对虚拟机系统的任何操作都是对软件的操作。3、利用虚拟机模拟出来的linux系统和真实的linux系统是一摸一样的,现在各个公司专门的linux服务器是不会让新手随意去动的,而供测试的linux服务器一般又很紧缺,在自己电脑上安装虚拟linux系统,可以随意的学习测试,而不受任何环境影响。3.3 虚拟机的运行环境和硬件需求1:运行环境VMWare可运行在Windows(WinNT以上)和Linux操作系统上。 Virtaul PC可运行在Windows(Win98以上)和MacOS上。 注:运行虚拟机软件的操作系统叫Host OS,在虚拟机里运行的操作系统叫Guest OS。2:硬件需求虚拟机是将两台以上电脑任务集成到一台电脑上来,因此对硬件要求比较高,主要是内存,硬盘和cpu;内存要足够大,因为每个虚拟机都会占用一定的内存资源,内存的总大小等于各个虚拟系统的总和。可喜的是,现在内存已经很便宜了,内存就不是问题了。同样,硬盘空间也是每个虚拟机都要占用的,cpu现在都到了多核阶段,也不是问题。3.4 虚拟机的安装与使用1.VMware虚拟机概述上面章节讲到,虚拟机软件有VMWare和Virtual PC,它们各有优缺点,其中VMWare在全球占领了80%的市场份额,因此我们也主要讲述VMWare的安装与使用。VMware是提供一套虚拟机解决方案的软件,主要产品分为如下3个:(1)VMware-ESX-Server: 这个版本并不需要操作系统的支持。它本身就是一个操作系统,用来管理硬件资源。所有的系统都安装在它的上面。带有远程web管理和客户端管理功能。 (2)VMware-GSX-Server: 这个版本就要安装在一个操作系统下了,这个操作系统叫做HOST OS。 这个HOST OS可以是Windows 2000 Server以上的Windows系统或者是Linux(官方支持列表中只有RH,SUSE,Mandrake很少的几种),和VMware-ESX-Server一样带有远程web管理和客户端管理功能。(3)VMware-WorkStation: 这个版本和VMware-GSX-Server版本的机构是一样的。也是要安装在一个操作系统下,对操作系统的要求也是Windows 2000以上或者Linux。和Vmware的区别就是没有web远程管理和客户端管理。Vmware GSX Server不支持虚拟机双CPU,而且已经停止开发新版本, Vmware Server 是Vmware 公司决定将GSX Server免费后,重修代码后发布的, 目前有版本更新。因此我们选择免费的GSX Server作为讲述的版本。2.虚拟机软件的安装我们在windows下安装windows版本的VMware server,然后在VMware server上安装linux操作系统。虚拟机软件的安装很简单,只需按照windows常规方法安装即可完成,这里不在讲述。3.创建一个虚拟机系统虚拟机软件安装完毕,双击桌面上的 VMware Server 图标以启动应用程序:4.虚拟机上linux安装方式在虚拟机上安装linux系统,常用的方法有两种:光驱安装和iso镜像文件安装。(1) 光驱安装方式在 VMware Server控制台上,双击右面板上的 CD-ROM 设备,然后选择Use physical drive,location选择host,下面下拉框选择Auto detect即可。如图19所示,最后,Linux系统光盘放入光驱,单击“Start this virtual machine”即可进入Linux安装界面。(2) iso文件安装方式在 VMware Server 控制台上,双击右面板上的 CD-ROM 设备,然后选择Use ISO image,然后指定iso文件路径,如图20所示,最后,单击Start this virtual machine即可进入Linux安装界面。2023-07-10 20:08:206
如何评价《Linux就该这么学》这本书?有读过这本书的么?不知道跟鸟哥的书比怎么样?
其实我认为学好Linux系统并不难,关系就相当于卡片机与单反相机的区别。windows就类似于我们的卡片相机,还具有美颜的功能,简简单单就能拍出照片。而linux则是单反相机,操作较为复杂且可控性好,只要你有很扎实的功底,就一定能够拍出更加真实而又唯美的照片,所以这就是为什么专业摄影要用单反,而运维的高手用Linux系统的道理了。楼主在校期间也是学过Linux这门课的,强大的Linux命令真的是特别有意思。当然对于我们用惯Windows的学生来说,第一次学习起来有不少的压力,我那会给同学们推荐过《Linux就该这么学》这本书,可是从实际效果来看,这本书可能真的不是小白。因为我们可以看到本书的第一篇就是搭建环境,但是小白真的可能会问虚拟机是个啥?Linux到底是个啥?甚至有些小白同学还不会装Windows系统,或者还没搞明白计算机这块“铁疙瘩”到底是怎么运行起来的,如果你也是连这些问题都没搞清楚的小白,作为同样零基础学习的过来人,我真的建议你不如先找本计算机原理的书看看吧,简单的了解下计算机的运行原理也好。另外这本书非常的“亲民”,也就是说作者刘遄在编写本书的时候以一种大哥哥的身份一步一步的引导读者,并且特别撰写了我最爱的章节---第0章(一般书籍都不会有第0章的),“让我们谈谈学习方法”。是的,作者非常亲切的为读者总结出了学习的方法,并且在每一章附上了一首强节奏的音乐,来!我们一起抖腿敲命令!因为楼主就是因为考RHCE证书才接触到了这本神书,所以我更想说说这本书与RHCE的关系,RHCE是红帽公司的一个技能认证,证书的含金量价值是公认的,在此也不赘述了,但是RHCE的认证培训被国内的一些培训机构算是玩坏了,因为现在培训机构的目的是考证而不是教学,所以普遍培训机构的课程时间很短,完全是强制学员刷题库、刷实验,死记硬背的方式去通过考试,知识点压根无法掌握牢固。楼主在培训机构考证的期间就积攒了一大堆的问题,虽然实验做成功了,但就是好像缺了点什么东西,让整条知识线断了一截。好在接触到了《Linux就该这么学》这本神书,因为这本书很多内容都是为RHCE量身定制的(作者刘遄多次强调这本书如果只用于RHCE认证太可惜了),所有书籍里面即覆盖全部的RHCE知识点又扩展了大量实战。甚至可以这样说,让一个Linux基础好的同学来通读此书一遍,整书的实验做熟练、理解透彻书中的每一个知识点,完全可以通过RHCE的考试认证,并且找到一份8K-12K的工作,好了,有点跑题,我对于这本书的看法是:1、 这本书的前3章内容安排太过紧凑,往往会吓跑一堆小白。2、 书籍内容幽默、风趣且富有亲近感,让读者可以以一种舒适的心态学习。3、 此书配套的有相应的书友群和论坛,有不懂的可以互相交流,超级赞!。4、 对官方RHCE教材更好的书籍,准备考RHCE认证的同学必看下。5、 最最重要的一点,因为有网站提供在线阅读,所以即便不花钱买书,也可以随时随地的学习,真心方便。那么为什么说是Linux从业者必备书籍呢?因为Linux从业者往往都是有一定的工作经验且在生产环境中进行过实际的工作,但大多数Linux从业者的知识体系都不会太健全,这里我并不是断言,所以如果您是大牛,请放过小弟。而此书的每一章内容都非常“丰满”,每一章的知识点也阐述的很清晰,Linux从业者通过这本书可以更好的了解到自身的不足,做到查漏补缺,而且此书的作者也一直在更新章节目录,现在已经到了高级部分,所以对于Linux从业者的提高是非常有帮助的。总体来说《Linux就该这么学》的内容很通俗易懂,对于新手来讲不会被那些复杂的知识一下“打倒”,每天学习个1-2小时,就可以开始逐步的学会常用的命令,命令的常用选项,系统的时间管理,文件管理,网络管理等等等,等1个月之后再回头看下,一定会有不小的成就感,另外在学习中不可避免的还会遇到各种问题,可以找书友群里面的大神来帮忙,而且在书友群里面的都是看过这本书的朋友,可以很轻易的了解到你说的是什么问题,总之一句话,世上无难事,只怕有心人,有了这么一本好书,你再不狠学一下真是对不起作者的用心了。2023-07-10 20:08:371
linux应该如何去学习?
1、想要学习好Linux就要将它当成兴趣,兴趣才是最好的老师。良好的兴趣才是学习成功好的开始,想要学习好首先就要足够喜欢它。我们要了解市场上Linux的发展势头,了解Linux的相关情况,相信学习好Linux一定要是非常不错的选择。2、学习合适的Linux发行版本,在开始学习Linux之前,首先就是选择一个适合自己的版本,Linux旗下发行版本有服务器版本以及桌面版本,而且桌面版本也可以做服务的,为了以后找工作需要的。常见的Linux发行版本有centos redhat ubuntu等。3、选择好Linux学习版本之后,还需要合适的学习资料以及内容,可以到相关的Linux社群看看专业人员的学习机器以及学习手册,了解真正相关的知识。4、学习Linux架构以及命令,linux下都是通过命令来执行的,要学会用man和命令帮助,熟悉各种常见命令的操作。5、学习shell脚本,对于专业的Linux人员来说,shell脚本是必须要掌握的。shell脚本是linux下强大的工具,可以通过各种命令组合完成自己的工作,提升自己的工作效率。2023-07-10 20:08:457
现在学习linux看什么书好?
首选《linux就该这么学》,特别适合初学者学习linux2023-07-10 20:09:152
Linux学习书籍求推荐
Linux学习书籍求推荐1、《Linux与Unix Shell 编程指南》C语言基础1、《C Primer Plus,5th Edition》【美】Stephen Prata著2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)4、《嵌入式Linux应用程序开发详解》Linux内核1、《深入理解Linux内核》(第三版)2、《Linux内核源代码情景分析》毛德操 胡希明著研发方向1、《UNIX Network Programming》(UNP)2、《TCP/IP详解》3、《Linux内核编程》4、《Linux设备驱动开发》(LDD)硬件基础1、《ARM体系结构与编程》杜春雷著2、S3C2410 Datasheet英语基础1、《计算机与通信专业英语》系统教程1、《嵌入式系统――体系结构、编程与设计》2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明著3、《Building Embedded Linux Systems》理论基础1、《算法导论》2、《数据结构(C语言版)》3、《计算机组织与体系结构?性能分析》4、《深入理解计算机系统》【美】Randal E. Bryant David O"Hallaron著5、《操作系统:精髓与设计原理》6、《编译原理》7、《数据通信与计算机网络》8、《数据压缩原理与应用》入门篇《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。驱动 篇《LINUX设备驱动程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解内核篇浙江大学的《LINUX内核源代码情景分析》,外国鬼子的《莱昂氏UNIX源代码分析》还有《深入理解linux内核》都是出名的经典巨作。另外赵 炯的《LINUX内核完全剖析–基于0.12内核》也非常不错,对内核代码进行了详细的注释,非常有助于对内核的理解和代码的分析。shell篇《LINUX与UNIX Shell编程指南》应用 编程不用说了肯定是《unix环境高级编程》被称为unix编程的圣经。TCP/IP篇《TCP/IP详解》作者W.Richard Stevens也是《unix环境高级编程》的作者,牛人出的书没有一本不是经典的。但是英年早逝,默哀一下。c语言《The C Programming Language》正是作者造出来的c语言,书能垃圾就怪了《c和指针》和《c缺陷和陷阱》两本必备。包含了c语言最容易出错的地方,加深c语言功力的好材料。关于算法《算法导论》1 熟悉linux基本环境 >>> 《鸟哥的私访菜》《unix初级教程》 《linux编程宝典》(市面上无,图书馆有), 等等。2 熟悉操作系统的基础知识 >>> 《现代操作系统》 《操作系统概念》3 熟悉系统编程 >>> 《unix环境高级编程第二版》《unix操作系统设计与实现》4 内核 按先后顺序: 《 linux内核设计与实现》 《linux设备驱动程序》 《深入理解 linux内核》 《linux内核源代码情景分析》 《深入理解linux虚拟内存系统》5 其他一些书籍: 《freebsd操作系统设计与实现》 《solaris内核结构》 《unix高级教程:系统技术内幕》 《现代体系结构的unix系统:内核程序员的smp与cache技术》 《保护方式下的80386及其编程》 (后3本市面上没了,大学图书馆里一般都有》 《Intel64 and IA-32 Arichitectures Software Developer"s Manual》6 其实内核玩深了,体系和编译也要学好 《计算机体系结构:量化研究方法》 《编译原理》(龙书)Linux编程推荐书籍一览表shell 编程《LINUX与UNIX SHELL编程指南》BASH宝典:Advanced Bash Scripting Guide (如果你使用的是 GNU/Debian 系统,可以用 apt-get install abs-guide 安装该文档)BASH Programming – Introduction HOW-TOBash Man用户级编程书籍:Advanced Programming in the UNIX Environment(中文版《UNIX环境高级编程》第二版) 作者 W.RichardStevens/尤晋元等GNU/Linux编程指南 作者 Kurt WallLinux 程序设计权威指南 作者 于明俭、陈向阳、方汉《The Art of Unix Programming》作者 E.S.RComputer Systems A Programmer"s Perspective(中文名)《深入理解计算机系统(修订版)》《Unix Systems Programming》(中文版《UNIX系统编程》)作者: (美)KAYA.ROBBINS, STEVE ROBBINS 译者:陈涓 赵振平网络编程:Unix Network Programming V1 & V2,Unix网络编程卷1、2 作者 W.Richard Stevens《unix网络编程》XWindow编程Definitive Guides to the X WindowSystem 作者 Dan Heller, Paula M. Ferguson内核源代码阅读(结合源代码)和编程(入门)《边干边学Linux内核指导》(高级)《Linux Kernel Development》《Linux内核源代码情景分析》《深入分析Linux内核源代码》 陈莉君《 Understanding Linux Network Internals 》即《 深入理解Linux网络内幕(英文影印版)》Christian Benvenuti内核模块编程《The Linux Kernel Module Programming Guide》Linux设备驱动编程Linux设备驱动程序/Linux DeviceDrivers 作者 Alessandro Ruibini多线程编程《多线程编程指南》2023-07-10 20:09:263
要如何学习linux内核?
想要学好Linux,需要具备以下能力:1. 基本功要扎实学习任何一种语言,必备的基本功是必须要有的,一方面可以提高效率,另一方面可以拓宽思路。对于Linux基本知识的学习,对一些初学者来说是枯燥乏味的,可以通过理解再背诵的方式先进行代码及语法的学习,然后进行实践操作,必须手动输入命令行,不要借助工具,这样可以更快速有效的掌握Linux。2. 学以致用Linux学习的目的是应用,Linux基本知识是一些零散的技术,当没有应用在项目上时,我们无法理解他的真实价值,所以打好基本功之后,最紧迫的是多做几个完整的项目,刚开始可以是功能简单的项目,之后可以选择稍微复杂的项目,勤于动手,敢于实践,一定能学好Linux。3. 学会使用Linux联机帮助任何一种教材都不会完全讲述Linux知识,一般讲的都是比较常用的或者是比较有代表性的知识,但是,我们在项目应用中往往有些功能的实现是需要一些生僻知识和技能的,那么,如何查找我们所需的知识呢,推荐查阅Linux帮助文档,主流的Linux都自带详细的帮助文档,很方便解决问题!4. 在网上找资源在Linux的学习和应用中,难免会遇到一些没有思路、不知道如何解决的问题,这时就要借助网络力量,可以通过搜索引擎搜索查找,也可以咨询资深技术人员,最终实现问题的解决,这是Linux知识积累的一个重要的途径!5. 查阅英文技术文档如果想深入学习Linux,查阅英文技术文档是十分必要的,往往最新的技术都是采用英文文档的方式发布的,而且更全面,因此,对于Linux人员来说,多看一些Linux技术文档,对于掌握前沿技术和加深知识是十分有必要的!2023-07-10 20:09:343
Linux入门难吗?
为了帮助广大非专业人员能够实现自己的IT梦想,软件培训网在这里为大家真理一下Linux系统入门学习的方法,下面,我们就来看一下,Linux系统入门学习从哪儿开始吧!1,要从基础开始但是很多朋友们常常是刚接触Linux,就是希望能够开始构架网站,根本没有想到要先了解一下Linux的基础。这一点是相当不对的,所以,Linux系统入门学习一定要从基础开始。2.一定要学习Linux命令3.要选择一本好的工具书 推荐书籍《鸟哥的linux私房菜》《linux就该这么学》4.选择一个适合你的Linux发行版本5.一定要在命令行下工作一定要养成在命令行下工作的习惯。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。6.选择一个适合自己的Linux学习社区随着Linux应用的扩展,出现了不少Linux社区。其中有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。在这里,软件培训网为初学者推荐伊甸园、中国Linux公社等论坛。7.一定要勤于实践无论是Linux系统入门学习,还是其他的IT技术种类的学习,都要通过大量的实践来实现。所以,对于Linux系统入门学习者而言,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界。相信对于你自己的Linux能力必然大有斩获。2023-07-10 20:09:443
新手怎么学习Linux系统
谈谈如何学习Linux1、假如你从来接触过Linux的话,首先要做的就找一本指导书来学习2、现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇3、“鸟哥的私房菜”讲的很全面,可能会包括一些已经过时的知识点,但是这本书是入门Linux必备4、学习Linux的时候,或者学习其他网络知识的时候最重要的就是实践操作所以学习Linux,实践操作是必不可少的5、首先就是要装一个Linux系统,鸟哥开始几章会讲Linux的由来以及怎样安装Linux的系统6、安装Linu系统来学习使用Vmware 虚拟机就行了,不用真机装,没必要7、按照鸟哥私房菜书籍的步骤一步一步照着做,刚开始学习最好让自己的学习环境跟书里的一致,这样可以少很多麻烦,也不至于打击你的学习兴趣8、装完系统之后就是学习操作了,并且照着书里的操作一步步实践更多详细的了解可以去咨询老男孩,毕竟有个好引路人事半功倍2023-07-10 20:09:524
linux就该这么学一共多少章
基础课程目录:20章,进阶课程目前有4章,还在不断完善中。基础课程目录第0章 咱们先来谈谈学习方法和红帽系统。第1章 部署虚拟环境安装linux系统。第2章 新手必须掌握的Linux命令。第3章 管道符、重定向与环境变量。第4章 Vim编辑器与Shell命令脚本。第5章 用户身份与文件权限。第6章 存储结构与磁盘划分。第7章 使用RAID与LVM磁盘阵列技术。第8章 Iptables与Firewalld防火墙。第9章 使用ssh服务管理远程主机。第10章 使用Apache服务部署静态网站。第11章 使用Vsftpd服务传输文件。第12章 使用Samba或NFS实现文件共享。第13章 使用Bind提供域名解析服务。第14章 使用DHCP动态管理主机地址。第15章 使用Postfix与Dovecot收发电子邮件。第16章 使用Squid部署代理缓存服务。第17章 使用iSCSI服务部署网络存储。第18章 使用MariaDB数据库管理系统。第19章 使用PXE+Kickstart部署无人值守安装。第20章 使用LNMP架构部署动态网站环境。进阶课程目录第21章 使用Git分布式版本控制系统。第22章 使用openstack部署云计算服务环境。第23章 使用OpenLDAP部署目录服务。第24章 使用Xen与Kvm部署虚拟化服务环境。(即将公布)楼主可以百度下linuxprobe,跳到Linuxprobe官方网站上,即可了解到更详细跟全面的情况。希望可以帮到您!2023-07-10 20:10:023
linux最先要学些什么,具体些的。
linux最先要学的是Linux基础知识,学完基础知识才算入门,之后还要学习综合架构、Shell编程、数据库、云计算以及网络安全方面的知识,以下是linux基础部分要学习的内容:1. 计算机硬件、组成原理、操作系统基础、Linux起源、核心介绍及Linux安装实战入门2. Xshell远程网络连接Linux、基础优化、远程连接网络基础、Xshell连接故障排错、核心基础命令讲解3. Linux系统核心通配符体系、三剑客(grep,sed,awk)核心正则表达式精讲及企业级案例实战模拟精讲4. Bash核心符号、快捷键、通配符详解5. Linux目录、FHS挂载、文件属性、核心目录精讲6. Linux文件及目录管理核心知识和命令精讲(第二关)7. Linux企业级基础优化(工作中可直接使用8. Linux文件及目录权限精讲及多个企业案例模拟9. Linux重要核心命令回顾与深入精讲(第三关)2023-07-10 20:10:125
学习linux系统,看那几本书比较好
《鸟哥的Linux私房菜 基础学习篇(第三版)》,鸟哥著一本大而全的LINUX入门指点,主要讲解Linux一些命令,Linux的实际操作及Linux基础理论。很适合Linux初学者学习。《嵌入式 Linux 应用开发完全手册》,韦东山著这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文 Linux 领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。《UNIX环境高级编程》(第2版),史蒂文斯著《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,宋宝华著随着通信、电子行业的迅速发展,全世界每天都会生产大量芯片,设计大量新电路板,也因此,会有大量设备驱动需要开发。本书主要对驱动编程所涉及Linux内核最底层机理的讲解。也是即Linux设备驱动开发详解第二版畅销后,作者又进行第三版的编著。《Linux 设备驱动程序》,科波特著《LINUX设备驱动程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解。《深入理解 Linux 内核》(第三版) ,博韦等著学习 Linux ,就要学习 Linux 的精华。而 Linux 的精华,则在于 Linux 的内核。本书以 Linux 2.6 版架构为基础,分门别类地向初学者介绍了 Linux 内核的架构、编程思想、以及功能模块。在本书的指导下学习,对于你读懂 Linux 操作系统的精华部分,会取得事半功倍的效果。-------------------学习linux shell 下的编程有什么用? 我是刚开始学linux的,现在开始学了一些shell下的编程,是比较初步的,觉得不是很难,但是不知道学了到底能在那些方面运用?有谁能给指点一下工作或者读书等)需要学习linux的人,需要系统的学习一下,最好有一本好的书来学习。linux是世界各地的黑客们写出来的开源系统,对于热爱学习计算机技术(算法、数据结构、编程、操作系统……)的人来说,linux是一个天堂。我个人就是完全因为兴趣而捣鼓linux,和工作不沾边。有几种不同的学习:a)使用->需要学习linux的一些历史、各种命令、桌面的操作、shell的知识b)编程->学习linux的接口c)系统管理->学习一些管理员需要掌握的命令d)内核、源码->先要学好操作系统原理,然后慢慢钻研。linux是一个很奇怪的东西,因为你知道的越多,你的问题就越多。如果你将来用的上,那么学习linux自然有用。如果用不上,学习linux的作用在于折腾你的精力、开拓你的思维、视野、提高自学能力。从你付出的机会成本的角度来说,学习linux不合算,因为你应该把有限的时间用来学习对你更重要的东西,而不是不沾边的linux。除非把linux当作一种爱好。所谓“衣带渐宽终不悔,为伊消得人憔悴”。自然是另一番感受。当你用shell编写个自己能用上的脚本 你就知道有用拉而且还老有成就感拉比如你需要搜索全盘文件,把大写名字改为小写,这样的程序用几行shell就能写,但是无论C还是其它语言都非常麻烦,手工修改就更麻烦。明白shell程序设计的用处吗,任何一种语言都有他自己的适用领域-------------------linux shell 学习分类:读书笔记首先恭喜你,看了这个文章,推荐两本书,Linux shell 脚本攻略, shell脚本学习指南 ^_^ 。shell脚本学习指南大概很多人都看过,但是看完之后对于shell能干什么,可能并不十分清楚,而linux shell 脚本攻略则以一个个任务的形式,用脚本解决。 而且有详细的解释。相当于cookbook。包含了各个方面,基础的,网络的,系统管理的。但是对于基础知识的介绍,可能需要读者查看相关书籍,所以shell脚本学习指南可以拿来翻翻。以下是个人的一点粗浅认识,不一定对。关于shelllilnux与windows不同之处在于提供了很多工具。而且多个命令之间用管道|连接,可以实现一系列任务,这在windows应用程序界限很明显的地方是很难实现的。linux的shell提供了很多工具。工具就相当于函数,但是与我们编程语言的函数不同在于,并不需要写一个入口函数来调用它,而多个工具可以一起使用。find,sed,awk,grep等命令都可以称为工具。find 查找grep 也是查找sed 可以实现一些替换等awk 相当与编程语言,在awk " "包含里面进行简单编码,实现相应的功能 还有很多工具,具体要查看书籍。而一行一行的命令不适合批处理,不适应管理自动化。所以需要脚本。脚本就是把一堆命令写在一起。在#!/bin/bash 指明这是个脚本。具体参见书籍。关于linux shell 脚本攻略前面几章介绍基础知识,以及应用。后面的对于网路的操作,引入了curl,wget,利用了服务提供商的rss feed。其它的与前面的编程一样,都是文本替换啥的。(这里显示出shell的好用之处,不必专门写一个程序来操作,不用自己写很多函数,且多个操作结合方便,灵活)。后面介绍了归档,压缩,加密工具。最后两章是一些系统运维的知识,查看系统磁盘状态,查看进程使用cpu的情况等等。要用的时候细看。看了很久了,有点忘记了,以后看书,再详细记录一些知识点。现在都忘光了。提供一个方向罢。p130 pattern 用于匹配字符串1 代表匹配到的第一个子串 后向引用对结果进行分组,利于后向引用p26 使用反引用或者$()来存储命令,如cmd_output =$(ls | cat -n) 或者 cmd_output=`ls | cat -n`2023-07-10 20:10:315
来学一学LINUX系统中SHELL环境的搭建技巧
什么是 LINUX SHELL环境?shell在会话中会保存着大量信息,而这些信息就是shell环境。LINNX命令程序通过获取SHELL环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据。 LINUX环境变量 Linux shell环境中存储了两种基本类型的数据:环境变量和shell变量。当然,除了变量,shell也存储了一些可编程的数据,即别名和shell 函数。 如何查看环境变量呢? 我们可以用bash命令set,或者使用printenv命令程序来查看环境变量。 它们的区别是:set 命令不仅显示shell数据,而且可以显示环境变量列表,而printenv命令仅仅显示环境变量列表。 鉴于环境变量列表比较长,我们可以将每个命令的输出通过管道符传递给less 来输出列表,例如: //执行命令 [test@linuxprobe ~]$ printenv | less //输出内容:环境变量及其数值的列表 KDE_MULTIHEAD=false SSH_AGENT_PID=6666 HOSTNAME= linuxprobe GPG_AGENT_INFO=/tmp/gpg-PdOt7g/S.gpg-agent:6689:1 SHELL=/bin/bash TERM=xterm XDG_MENU_PREFIX=kde- HISTSIZE=1000 XDG_SESSION_COOKIE=6d7b05c65846c3eaf3101b0046bd2b00-1208521990.996705 -1177056199 GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/me/.gtkrc-2.0:/home/me/.kde/sh are/config/gtkrc-2.0 GTK_RC_FILES=/etc/gtk/gtkrc:/home/me/.gtkrc:/home/me/.kde/share/confi g/gtkrc GS_LIB=/home/me/.fonts WINDOWID=29360136 QTDIR=/usr/lib/qt-3.3 QTINC=/usr/lib/qt-3.3/include KDE_FULL_SESSION=true USER=test LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01 :cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe: //printenv 命令也可输出特定变量- USER的数值: [test@linuxprobe ~]$ printenv USER test 建立LINUX shell 环境 每当我们登录系统后,bash 程序就会自动启动,且会读取一系列配置脚本,这些配置脚本被称为启动文件。这些启动文件定义了可供所有用户共享的默认shell 环境。 那么位于家目录中的启动文件,定义了用户个人的shell 环境。 确切的启动顺序取决于shell 会话类型模式。有两种shell 会话类型模式:一个是登录shell 会话模式,另一个是非登录shell 会话模式。 登录shell 会话模式中会提示用户输入用户名和密码;非登录shell 会话模式通常在GUI下启动终端会话时出现。 登录shell 会话模式下启动文件内容: 非登录shell 会话模式下启动文件内容: 修改linux shell环境 依据通常的操作思路,通过添加目录到PATH 变量或定义新的环境变量,再把这些更改存放至.bash_profile 文件中;那么对于其它的更改呢,需要存放至.bashrc 文件中。 除了系统管理员具将系统中的所有用户修改默认设置的权限外,其他用户只能限定对个人家目录下的文件进行修改。 我们通过使用一个叫做文本编辑器的程序来编辑(或读、写)shell 的启动文件以及其它配置文件。文本编辑器是一个类似于文字处理器的程序,允许使用移动光标在屏幕上编辑。但不同之处在于文本编辑器不仅支持纯文本,而且常包含为便于写程序而设计的特性。由此可见,文本编辑器是开发人员用来写代码,以及系统管理员用来管理控制系统的配置文件的重要工具之一。 文本编辑器通常分为两种基本类型:图形化的和非图形化的(基于文本)编辑器。 一些典型的图形化编辑器有GNOME 和KDE。GNOME编辑器自带了gedit 的编辑器,它通常在GNOME 菜单中称为“文本编辑器”。KDE自带了三种编辑器,分别是kedit,kwrite,kate。 那么基于文本的编辑器有nano、vi 和emacs。 nano 编辑器是一个简单易用的编辑器。vi 编辑器(目前已被vim (“Vi IMproved” 的简写)替代)是类Unix 操作系统的传统编辑器。emacs 编辑器属于庞大的、多用途的,可做任何操作的编程环境。 无论哪种类型的文本编辑器都可以在命令行中输入编辑器的名字及想要编辑的文件名,执行文本编辑操作。在这篇文章中,我们学到了用文本编辑器来编辑配置文件的基本技巧。 这篇文章主要讨论了linux SHELL环境的一些基础知识及基本的操作技巧。在编写这篇文章过程中我还参考了 《Linux就该这么学(第2版)》 这本书,基于红帽8编写,内容很贴近实践,很有理论指导实践价值的一本书籍。2023-07-10 20:10:471
Linux如何才能学精通
精通Linux不是一件容易的事情,我先说说Linux的用途,仅仅是我就层把Linux用作这些领域:1、日常应用,例如浏览网页、聊天、office办公;2、作为Web服务器,例如你现在用的问问就是建立在Linux服务器上的;3、作为应用服务器,移动、联通、电信他们的各种计时、计费的服务器,QQ的服务器,都是Linux的;4、用于各种工程控制领域,例如大型机床控制、电信级路由器等;5、用于各种移动设备作为嵌入式OS,例如现在Android手机就是Linux系统;相信还有更多我不知道的用途,根据你的用途不同,需要掌握的Linux的知识就不同,所以想要全面的精通掌握Linux是一个庞大的工程。因此,我建议根据你自己的需求或者说学习Linux的目的来确定学习的方向和内容。如果你对Linux的基本知识还不够了解,建议你看看《鸟哥的Linux私房菜》或者刘遄的《Linux就该这么学》,网上就能搜到电子版,书店也能买到,这本书风格比较适合初学者。如果你的兴趣点是Linux这个操作系统是怎么运行的,那么建议你在网上搜索Linux From Scrach,这个英文教程会教你一步一步搭建出一个Linux操作系统,了解这个操作系统的构成。如果你想更深入了解Linux操作系统内核,操作系统的各种算法和原理,那就要看各种Linux内核分析的书记了,这个你到china-pub上搜“Linux 内核”可以找到不少。总的来说,学习并精通Linux不是件容易的事情,建议你有的放矢,找准方向,循序渐进的学习。2023-07-10 20:11:214
学Linux去哪家学比较好
linux培训大概在5—6个月左右。现在机构很多,至于去哪家学比较好,我觉得可以根据这些参考因素,自己在心里对比一下,做个好的选择。1、看机构的生源质量一家机构的生源质量可以直观反映出机构的质量,入学的人水平高,教学的人水平就不会低。有些机构为了利益连初中生都招,这样的机构一是没有道德,二是水平也不会多好。大家在选择的时候要注意这一点。2、看师资师资真的很重要,老师好才能教出高端人才。对老师的要求,我觉得一是专业知识能力要强,这样有对外输出知识的资本,二是教学能力要强,要会引导学生,让学生能听懂你的课,喜欢听你的课,这样可以授人以鱼更授人以渔,这一点我觉得上过学的人都能理解,因为像我们上学时也会遇到一些老师似乎知识很丰富,但就是讲不出来,这样的教学效果自然不好。现在很多机构实际上的师资力量是很薄弱的,虽然老师的人数不少,但是能力、水平真的很一般,有的甚至是自己往届的学生经过包装打造的冒牌“名师”,宣传很好,但学生实际一上课就能听出来水平如何,这样的老师上课基本都是照本宣科,要么穿插一些鸡汤凑时间,可想而知学生能得到多大提升?所以大家在找机构的时候一定要了解清楚讲课老师是谁,打探一下老师的专业水平、授课能力、讲课风格、责任心等,一定不能光看头衔,最好亲自找些他们的试听课亲自感受一下。3、看教学服务教学服务也很重要,虽说大家都是成年人了,但实际上学习起来大部分人自制力是不好的,这就需要老师的及时督促,其次学习遇到困难的时候,是否有老师及时帮助解答,帮你节省时间?班级或者学习群里的氛围如何?是积极的还是死气沉沉的?与老师沟通交流是很舒服的状态还是让人很生气?......所谓环境影响人,大家永远不要忽略环境对你的帮助,好的环境可以催人上进,恶劣的环境会打击学习的积极性和兴趣,甚至影响你是否能够坚持下来。还有一些巩固提升、练习辅导、答疑辅导、作业批改,就业帮扶,课程安排等,都会影响你学习的心情、进而影响到学习的效率,所以这一点也应了解清楚。4、机构口碑一个机构的口碑不是靠多做一些广告、靠水军在网上多发一些虚假信息或者攻击别的机构就能上去的,选择机构前要多方面了解,网络宣传、网友评价、老学员评价、业内人的评价、与销售人员的沟通了解、教育学习平台的评价等都可以了解一下。多聊,多听,听不同人的观点这样才能获得比较客观的评价。有些机构风评差,有很多法律纠纷的,最好避开,因为你也不能保证你就不会遇上类似的事。5、看价格便宜的东西不一定不好,但一定有风险,贵的东西不一定差,但一定有贵的原因。教育产品跟其他产品有很大差别,不能只考虑价格,不看学习效果,所以在遇到价格不同的时候要理性对待,问清楚贵在哪里?不同在哪里?不同的地方是否是你需要的,千万不要只贪图价格便宜,忽视了质量和效果,这样得不偿失。不过这几年教育机构竞争也比较激烈,所以很多机构都会在节假日的时候做一些促销,像618,双11这些节点优惠力度都很大,可以物色好一个机构,关注他的这几个活动节点,瞅准时机入手会比较实惠,当然了知识学习跟其他物品还是不一样的,早点学会早点跳槽拿高薪,机会来的时候才能抓住,所以也不能为了优惠时省一点点小钱,故意推脱学习时间,这样可能会让你错失一些升职加薪的机会。6、看学习形式学习形式的选择可以看个人,现在很多机构都有线上线下的教学方式,如果自制力不好,基础差的,最好是选择线下,虽然线下会贵一点,但是学习效果会更好。但具体选择哪种,可以根据个人需要。7、看课程体系和课程质量(最最重要!)虽然以上说了很多,但我觉得最最重要的还是课程质量,课程设计是否合理?是否跟得上行业最新发展?对原理的讲解是否深入透彻?项目实战有多少?是真正的大型项目实战还是小案例?实战项目是否适用于现在的企业生产?等等都是非常重要的,有些机构宣传的项目实战很多,但实际上很多都是前几年的旧技术,或者大部分根本称不上项目实战,还有些机构对原理的讲解很少,只会告诉你怎么做,而不会告诉你为什么要这么做,那工作的时候就会只知其一不知其二,面试的时候公司问到原理也答不上来,面试这一关就过不了。所以选择机构的时候一定要去试听,问问学过的人,看看口碑如何,多方面综合考虑,如果有业内人能帮你研究一下课程目录和课程大纲最好,对比不同机构的课程大纲、看他们各自的含金量,多方面对比后,相信质量如何高下立判!以上就是我的一些建议,希望对你有帮助!2023-07-10 20:11:294
linux培训学的是什么内容?
你说的是正规的Linux培训么,现在市场主流是Red Hat,我就拿RHCE培训来举个例子吧。 RHCE要培训三门课:Linux系统管理一、Linux系统管理二、Linux服务与安全。 系统管理一:主要是针对从未接触Linux的人事设计的,全是图形界面。 系统管理二:在学习了“系统管理一”的基础上进行命令行的学习,主要设计rpm软件包管理、文件系统管理、磁盘管理、逻辑卷管理等系统核心管理。 服务与安全:主要培训Linux上的主流企业级服务和Selinux安全。主要服务包括:Apache、Ftp、NFS、iSCSI存储、Samba等。 学习linux推荐你看看《linux就该这么学》,这本书技术实用,内容丰富充实。2023-07-10 20:11:408
想从事linux运维方面,有一点基础知识,请问还还看这什么书籍,万分感
您好很高兴回答您的问题:- Linux核心基础知识的书籍- Linux核心命令的书籍- 网站集群架构的书籍- Shell编程- 数据库基础即可- 云计算部分主要看看docker , k8s - 还有很多比如监控,代码上线等等.2023-07-10 20:12:053
linux学习最新书籍,谁有推荐
《跟老男孩学Linux运维Web集群实战》、《跟老男孩学Linux运维Shell编程实战》、《跟老男孩学Linux运维核心系统命令实战》、《跟老男孩学Linux核心基础篇(上)》、《跟老男孩学Linux运维MySQL入门与提高实践》这几本书籍是我校老师自写书籍,讲述的内容非常齐全。2023-07-10 20:12:203
linux运维工程师推荐看什么书
运维工程师推荐看书学基础,然后找师傅带啊,书呢,就推荐两本吧,一本是经典的《鸟哥的Linux私房菜》另一本是基于现在最新的Redhat7系统为环境的《Linux就该这么学》,就该这么学这本书非常实用,如果你要快速入门的话就去看这本,想多了解点东西的话就去看鸟哥,顺便说一下,《Linux就该这么学》是免费在线阅读的,并且提供了读者群、论坛等渠道来反馈读书信息或者资讯问题,你可以访问http://www.linuxprobe.com/ 去瞅瞅,感觉的好的话采纳一下吧,谢谢。2023-07-10 20:12:3010
鸟哥的linux私房菜和linux就该这么学的作者是谁
鸟哥的Linux私房菜的作者就是“鸟哥”,鸟哥是台湾成功大学环境工程系博士,后来因研究需要接触Linux系统,曾任台湾多家Linux教育中心讲师。Linux就该这么学的作者是刘遄,是红帽认证讲师,这本书就是基于RHEL7版本。2023-07-10 20:12:571
如何开始从头自学linux运维?
学嵌入式Linux要先学以下几点:1.C语言。要有C语言的基础,当然越熟练越好,不熟也没关系,具备基本技能就可以:比如写一个数组排序、输入数字求和什么的。C语言的学习就是多些多练。2.Linux基础Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell、 Makefile脚本编写等知识,嵌入式开发环境的搭建。3.Linux系统编程重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。4.Linux网络编程计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。5.数据结构与算法数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。6.Cortex A8 、Linux 平台开发通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。7.驱动开发驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。2023-07-10 20:13:079
linux常见的发行版本有哪些,我们应该选择哪个来学习?
Fedora Core:众多Linux发行版本之一,是一套从Red Hat Linux发展出来的免费Linux系统。Fedora Core前身是Red Hat Linux,是一个开放的、创新的、前瞻性的操作系统和平台,基于Linux。允许任何人自由地使用、修改和重发布,无论现在还是将来。由一个强大的社群开放,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Debian:以其稳定性著称,虽然它的早期版本Slink有一些问题,但是它现有版本Potato已经非常稳定了。这个版本更多的使用了PAM,综合了一些更易于处理的需要认证的软件。Debian主要通过基于Web的论坛和邮件列表来提供技术支持。作为服务器平台,Debian提供一个稳定的环境。Mandrake:Mandrake Soft,Linux Mandrake的发行商,在1998年由一个推崇的小组创立,它的目标是尽量让工作变得更加简单。最终,Mandrake给人们提供了一个优秀的图形安装界面,它的最新版本还包含了许多Linux软件包。作为Red Hat Linux的一个分支,Mandrake将自己定位在桌面市场的最佳Linux版本上。Ubuntu:是一个以桌面应用为主要的Linux操作系统,Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Red Hat Linux:最著名的Linux版本,Red Hat Linux已经创建了自己的品牌,越来越多的人听说过它。Red Hat在1994年创业,当时聘用了全世界500多名员工,致力于开放的源代码体系。Red Hat Linux是公共环境中表现上佳的服务器,拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。SuSE:SUSE是指SUSE Linux ,是德国 SuSE Linux AG公司发行维护的Linux发行版,是属于此公司的注册商标。第一个版本出现在1994年年初。2004年这家公司被Novell公司收购。Linux Mint:Linux Mint 由 Linux Mint Team 团队于2006年开始发行,是一份基于 Ubuntu 和 Debian 的 Linux 发行版。其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对 DVD 播放的支持、Java 和其他组件,它也增加了一套定制桌面及各种菜单,一些独特的配置工具,以及一份基于 web 的软件包安装界面。Linux Mint 是对用户友好而功能强大的操作系统。它诞生的目的是为家庭用户和企业提供一个免费的,易用的,舒适而优雅的桌面操作系统。Gentoo:Gentoo是一个基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点。 Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西——你想让它成为什么,它就可以成为什么。centos:CentOS是免费的、开源的、可以重新分发的开源操作系统,CentOS是Linux发行版之一。CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)依照开放源代码规定释出的源码所编译而成。2023-07-10 20:13:352
有学linux的书籍推荐吗?
《Linux就该这么学》是一本注重于实用性的Linux系统技术自学书籍,自基础篇公布后网站每天日常阅读量已经超过10000多人,25万多名忠实粉丝读者,是目前国内人气增速最快的IT书籍。您可以在本网站内免费在线阅读书籍的全部章节及最新内容,今后的进阶篇也将会一如既往免费、完整的提供给亲爱的读者们在线学习。2023-07-10 20:13:552
linux新手入门有什么好的学习资料?
书籍:《Linux程序设计》、《Linux命令行与shell脚本编程大全》、《APUE》、《LINUX权威指南》等,这些书你都可以搜一下,试着先了解一下。不过想学的快的话,马哥教育的课程还是不错的 这个是比较入门的教学视频,适合小白看。2023-07-10 20:14:243
linux就该这么学和鸟哥的私房菜比较哪一个好?
这两本书我都看过,这个我感觉挺有发言权的,因为我完整的读过Linux就该这么学,没有太多的废话,技术更实用2023-07-10 20:14:354
Linux必学命令
必学的嘛 有很多了,不过以我的实际使用的经验以下命令经常用到(括号里是常用的选项):文件操作命令cd,ls( -l -d -a)简写ls-l = ll,mkidr (-p),rm (-rf),cp,mv,chmod,chown文件查看命令cat,more,less,tail(-f),head,file时间有关命令date(-s HH:MM:SS),ntpupdate,clock (-w)用户有关命令useradd(-g -s),groupadd文件系统有关命令:mount(-a -o),unmount,fdisk,df(-h),mkfs.ext3系统管理有关init(0123456),shutdown(-h times),reboot,chkconfig(--list,--level),service,ps(-aux),cron,tar(-zxvf),kill(-9)网络有关命令ifconfig(eth0 192.168.*.*/24 up;down),route,nslookup,ping,traceroute,netstat(-tunlp,-i),iptables(防火墙的很复杂,不过可以去网上找脚本自己改)安装程序命令rpm(-aq,-e,-ivh --force --nodeps ),./configure,make,make install,yum (-install,remove)其他的一些命令mail,grep,find(-name -print),smbclient (//IP/目录 -U username),setenforce 0,alias很多入门教程书里都有记录,刘遄的《Linux就该这么学》第二章就是,没有了就这么多了,这些命令和用法最常被用到。你可以边用边学把不常用到的命令和用法写到博客里,记不住了就去看看。另外经常使用man和info是一个好习惯2023-07-10 20:14:442
学Linux,自学可以吗,有没有什么特别的要求?
首先,学习Linux是可以靠自学的,不过需要根据个人的实际情况来决定,并不是每个人都适合自学课程,因为每个人的学习能力、接受能力不同,学习起来难易度也是不一样的,如果没有任何基础、学习能力、自控能力较差,是很难靠自学掌握课程的,同时很容易事半功倍,打击学习的信心;其次自学没有合适的项目可练习,难以积累项目经验,与参加培训的人对比,竞争优势小。2023-07-10 20:14:543
嵌入式linux怎么学
作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解那些类、控件的。如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点。在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用? 我只能说凭兴趣,并且驱动和应用并不是截然分开的 1. 我们说的驱动,其实并不局限于硬件的操作,还有操作系统的原理、进程的休眠唤醒调度等概念。 想写出一个好的应用,想比较好的解决应用碰到的问题,这些知识你应该懂 2. 做应用门槛低,特别是现在的ANDROID,纯JAVA。做应用的发展路径个人认为就是业务纯熟。比如在通信行业、IPTV行业、手机行业,你了解行业的需求。所以,当领导的人,多是做应用的。3. 做驱动,其实我不想称为“做驱动”,而是想称为“做底层系统”,做好了这是通杀各行业。我工作几年,做过手机、IPTV、会议电视,但是这些产品对我毫无差别,因为我只做底层。他们的业务跟我没关系。当应用出现问题,他们解决不了时,我就会从内核角度给他们出主意,给他们提供工具。 做底层的发展方向,个人认为是技术专家。 4. 其实,做底层还是做应用,之间并没有一个界线,有底层经验,再去做应用,你会感觉很踏实。有了业务经验,你再了解一下底层,很快就可以组成一个团队。 回到怎么学的问题上。嵌入式Linux底层系统包含哪些东西?不要急,举一个例子你就知道了。1. 电脑一开机,那些界面是谁显示的?是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它。类似的,这个BIOS对应于嵌入式Linux里的bootloader。这个bootloader要去Flash上读入Linux内核,并启动它。2. 启动windows的目的是什么?当然是上网聊天什么的了。这些上网、聊天工具在哪?在C盘、D盘上。所以, windows要先识别出C盘、D盘。在Linux下我们称为根文件系统。3. windows能识别出C盘、D盘,那么肯定能读写硬盘才行。这涉及的东西称为驱动程序。当然不仅仅是硬盘,还有网卡、USB等等。嵌入式Linux能从Flash上读出并执行应用程序,肯定也得有Flash的驱动程序啊,当然也不仅仅是Flash。先说到这里吧,嵌入式LINUX里含有bootloader, 内核, 驱动程序、根文件系统这4大块。一、bootloader:它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。很多人一玩嵌入式就用ADS、KEIL。你能回答这几个问题吗?1. 一上电,CPU从哪里取指令执行?答:一般从Flash上指令。2. 但是Flash一般是只能读不能直接写的,如果我用到全局变量,这些全局变量在哪里?答:全局变量应该在内存里3. 那么谁把全局变量放到内存里去?答:长期用ADS、KEIL的朋友,你能回答吗?这需要"重定位"。在ADS或KEIL里,重定位的代码是制作这些工具的公司帮你写好了。你可曾去阅读过?4. 内存那么大,我怎么知道把"原来存在Flash上的内容"读到内存的"哪个地址去"?答:这个地址用"链接脚本"决定,在ADS里有scatter文件,KEIL里也有类似的文件。但是,你去研究过吗?5. 你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash啊?答:是的,要能操作Flash。当然不仅仅是这些,还有设置时钟让系统运行得更快等等。先自问自答到这里吧,bootloader这一个裸板程序,其实有3部分要点:1. 对硬件的操作2. 对ARM体系处理器的了解3. 程序的基本概念:重定位、栈、代码段数据段BSS段什么的。对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路。这方面的能力我是在学校里学到的,微机原理、数字电路这2本书(书名忘了)就足够了。但是我怀疑你有无耐心把这2本书看完。我不知道现在有没有更快捷的书。想速成的话,就先放掉这块吧,不懂就问GOOGLE、发贴。另外,芯片手册是肯定要读的,别去找中文的,就看英文的。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易。对ARM体系处理器的了解, 看杜春蕾的<ARM体系架构与编程>吧,里面讲有汇编指令,有异常模式、MMU等。也就这3块内容需要你了解。程序的基本概念,王道当然是去看编译原理了。可惜,这类书绝对是天书级别的。劝你若非超级天才还是别去看了。就看我写的<嵌入式Linux应用开发完全手册>和第1期视频吧,别担心,不用花钱。照着视频把硬件相关的实验做了,这些概念就清楚了。我还没有发现第2套讲这些概念的书或视频,允许我盲目吹嘘一回。对于bootloader,我学习时是先看了<ARM体系架构与编程>,然后自己写程序把各个硬件的实验都做了一遍,比如GPIO、时钟、SDRAM、UART、NAND。把它们都弄清楚了,组台在一起就很容易看懂u-boot了总结一下,看懂硬件原理图、看芯片手册,这需要你自己去找资料。剩下的,就按<嵌入式Linux应用开发完全手册>和第1期视频的章节目录去学习吧。二、内核:想速成的人,先跨过内核的学习,直接学习怎么写驱动。想成为高手,内核必须深刻了解。注意,我说的是了解,我没奢望去写出一个内核。要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。推荐两本书:1. 通读<linux内核完全注释>,请看薄的那本(浮燥的社会讲求速度, 呵), 2. 选读<Linux内核情景分析>, 想了解哪一块就读哪一节三、驱动:驱动包含两部分:硬件本身的操作、驱动程序的框架。又是硬件,还是要看得懂原理图、读得懂芯片手册,多练吧。说到驱动框架,有一些书介绍一下。LDD3,即<Linux设备驱动>,老外写的那本,里面介绍了不少概念,值得一读。但是,它的作用也就限于介绍概念了。我基本上是入门之前用它来熟悉一下概念,入门后就扔掉了。驱动方面比较全的介绍,应该是宋宝华的<linux设备驱动开发详解>了,老实说我只看过目录,有不少人说好,这里推荐一下。要想深入了解某一块,<Linux内核情景分析>绝对是超5星级推荐。你别指望把它读完,1800多页,上下两册呢。我是某一块不清楚时,就去翻一下它。任何一部分,这书都可以讲上2、3百页,非常详细。并且是以某个目标来带你分析内核源码。它以linux 2.4为例,但是原理相通,同样适用于其它版本的linux。还有没有其他介绍?呵呵,当然有了,韦东山Linux视频第2期。<嵌入式Linux应用开发完全手册>里对驱动讲得不多,不够深入。于是我录制了这期视频。不仅仅教你怎么写怎么改驱动,还教你为什么这样写这样改驱动。每一个驱动都是现场编写: 1. 用绘图板画图讲解──相当于学校里老师在黑板上画图讲解,很直观绝对不是对着PPT念。2. 用source insight当场写程序,从第1行开始写,每一课都是这样。我讲了20多个驱动,就写了20多个程序。3. 写完就编译、测试。4. 很全面,字符设备驱动、块设备、网卡驱动3大类齐全,硬件介绍、驱动框架分析、测试3大类齐全。培训机构里教的内容,远不及这期视频丰富。我在多个培训机构讲过课,从没看到哪个老师敢每一课都当场讲解当场编写代码当场测试,除我之外!也没看到哪个培训机构讲完这些内容──因为时间不够,讲完起码要一个月,但是这部分基本只有2周授课时间。把你手上的开发板所涉及的硬件,都去尝试写一个驱动吧。有问题就先"痛苦地思考",思考的过程中你会把很多不相关的知识串联起来,最终贯通。四、根文件系统:大家有没有想过这2个问题:1. 对于Linux做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢?答:内核不知道也不管应该启动哪一个用户程序。它只启动init这一个应用程序,它对应/sbin/init。显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等)这个问题提示我们,文件系统的内容是有一些约定的,比如要有/sbin/init,要有配置文件2. 你写的hello,world程序,有没有想过里面用到的printf是谁实现的?答:这个函数不是你实现的,是库函数实现的。它运行时,得找到库。这个问题提示我们,文件系统里还要有库。简单的自问自答到这里,要想深入了解,可以看一下busybox的init.c,就可以知道init进程做的事情了。当然,也可以看<嵌入式Linux应用开发完全手册>里构建根文件系统那章。说一下我的学习经历吧。1. 我在学校时读的是物理电子专业,其实课程里没有教怎么设计电路,只是教了些电子电路方面的知识。PCB的设计是在实验室里自学的,只设计过2层板,现在忘记得差不多了。但是保留了看原理图、看芯片手册的能力。2. 选修了软件学位,对软件设计挺感兴趣,但是也只是学了C语言、数据库而已。凭着兴趣做了不少竞赛题。没能力去参加竞赛,但是把C语言练得很扎实。3. 在实验室、在第1家公司,就是设计些简单的PCI卡,写一下windows的驱动程序4. 在第2家公司,用51单片机做车载电话,开始走上纯软件的道路。5. 开始感到单片机的不足,辞职半年闭门学Linux,从red hat怎么操作开始。步骤就是先看<ARM体系架构与编程>,再自己写裸板程序操作硬件,接着到分析u-boot。同时看<linux内核完全注释>,对LINUX框架有所了解。在写裸板时,建议各位加强对中断的理解,内核就是用中断来完成各种功能的。6. 分析完u-boot,就开始进行简单的驱动编程了,这时候,能力还很弱。7. 开始去中兴上班,工作2年,编写各类驱动、解决各类问题(驱动问题、帮助定位应用问题),能力得到煅炼。总结一下:1. 硬件方面的书: 微机原理、数字电路,高校里的教材。毕业多年,忘名了。2. Linux方面的书:<ARM体系架构与编程><嵌入式Linux应用开发完全手册><Linux设备驱动>,老外写的那本<linux设备驱动开发详解><linux内核完全注释><Linux内核情景分析>3. 视频:韦东山Linux视频第1期(基于S3C2440录制): ARM实验,u-boot,文件系统,初级驱动韦东山Linux视频第1期(基于S3C6410录制): 裸板程序韦东山Linux视频第2期: 高级驱动2023-07-10 20:15:043
linux就该这么学和鸟哥的私房菜那个好?
说实话,没有哪个更好,只有哪个更适合。。。主要看你是处于学习Linux的哪个阶段了,是新手?还是有一定基础?个人感觉鸟哥的Linux私房菜就像一部Linux百科全书,内容很多,很丰富,但有时过多的内容有时候会让人抓不住点。。。《Linux就该这么学》这本书的内容比较精简,适合时间精力有限,但又想快速掌握Linux基本知识的人,感觉比较适合当下这种处于高节奏生活的人们去看。。。2023-07-10 20:15:141
学习Linux的心得
LINUX跟DOS差不多就是大概了解一下LINUX的结构之后记命令就行了???================================不可误人子弟,,,记得以前也在知道里回答过类似的问题,=======================================================================我个人在这里说一下在学习linux的这几年的一点心得,不敢说有什么成功的经验,但是有很多失败的教训。第一点:我学习linux是在大二的时候。那时候装的发行版本是redhat。可是刚刚开始的时候声卡的驱动装不上,其它比如说显卡,网卡都弄好。但是由于没有声音所以就没坚持用下去。几年后再次弄那个声卡的时候还是弄不上,可是这次的决心比较大,所以查了n多的资料;请教了很多人。终于被我弄好了。---------总结:无论是学习linux还是其它,决心是要摆在很重要的位置的。第二点:前两年的时候,对linux以及gnu的很多开源的东西产生了浓厚的兴趣;所以就开始深入的研究linux。甚至使用linux不久就开始阅读内核代码。可是到今天我还没真正意义上理解内核的结构,以及很多模块的功能,及实现原理。----------总结:不要在错误的时间做错误的事情。具体的讲有那么几层意思:a》不要动不动就去读kernel代码;b》不要太高估自己的能力;c》千万要在有一定知识积累的时候才能去研究更深层次的东西;d》要带的问题去学习,而不是空洞地进行技术研究;研究技术本身是学院派的作风。第三点:linux上面的开源的软件,和linux所包含的开放的精神,文化和内涵;它们是比linux内核更有价值的。--------总结:选择了linux其实也是选择了一种文化,选择了一种信仰;既然把这个选择上升到那么高的层次,那么任何的比较(与其它系统)都是不明智的;至少是不会有很大价值的。第四点:回到问题本身,如何去学习它?我个人认为应该遵循以下的顺序:接触(安装一个发行版本)=》认识(至少了解它能做什么)=》熟悉(用它来完成一些日常的工作)=》理解(在长时间的使用过程中了解为什么linux是这样解决问题的)=》创造(在前面几步的基础上做一些改进,创新)。当然在这样一个过程中有很多的“功课”要做,操作系统方面的知识当然是很重要的;但是不是很急迫,所以可以在后来有基础了再去了解;至于象保护模式也是一样。我个人做了这样一个学习的等级划分:1。重要,紧急:熟悉目录结构,熟悉基本操作命令(注意是基本),文本编辑器的使用(使用vi或者emacs但是不建议都学,因为本人当初就是想都精通,后来惹了不必要的麻烦;现在专心用vi)。2。重要,不紧急:正则表达式,grep,sed,awk,perl,gcc,gdb(其实这些东西的学习是需要很长的过程,但是它的使用又是贯穿整个系统;之所以重要是因为它们很好地体现了linux的精神;之所以不紧急并不是真的不紧急,是因为它们本身就是一个很伟大很复杂的软件需要慢慢消化吸收而不是囫囵吞枣)。3。不重要,紧急:一个绚丽的桌面,一些幽雅的桌面小插件(linux的强大事实上并不在其桌面环境,虽然gnome和kde都非常的幽雅;之所以不重要是相对于其它更重要的东西而言的,而之所以紧急是因为这些东西会在很短的时间内catch住你的心,你的兴趣;而兴趣是支撑你接下去学习过程的最最重要的东西---这一点请相信)。4。不重要,不紧急:将windows上常用的东西移到linux上,比如要在wine上玩wow或者cs(原因是显而易见的,开航母去钓鱼肯定没有划着小船来的有情调)最后我个人的建议是:了解操作系统的组成,工作原理要从了解它上面运行的应用软件开始。了解它上面的应用软件则要通过日复一日地使用它。我不觉得哪一本书能达到你期望的那种效果;但是如果在你坚持使用linux的过程中总是不断地去总结和接受新的东西,那么不要过很久你会发现linux是你的一个很好的助手。2023-07-10 20:15:243
linux学习到底要学什么?
对于Linux的学习,可以分为四个阶段,Linux初级入门阶段→Linux中级进阶→Linux高级进阶→Linux资深方向细化阶段第一阶段:初级阶段初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。1. Linux基础知识、基本命令;2. Linux用户及权限基础;3. Linux系统进程管理进阶;4. linux高效文本、文件处理命令;5. shell脚本入门第二阶段:中级进阶中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。1. TCP/IP网络基础;2. Linux企业常用服务;3. Linux企业级安全原理和防范技巧;4. 加密/解密原理及数据安全、系统服务访问控制及服务安全基础;5. iptables安全策略构建;6. shell脚本进阶;7. MySQL应用原理及管理入门第三阶段:Linux高级进阶1. http服务代理缓存加速;2. 企业级负载集群;3. 企业级高可用集群;4. 运维监控zabbix详解;5. 运维自动化学习;第四阶段:Linux资深方向细化1. 大数据方向;2. 云计算方向;3. 运维开发;4. 自动化运维;5. 运维架构师2023-07-10 20:15:366
入门Linux要懂英语吗,入门要学哪些知识
需要一定英语水平,因为info、help、man都是很重要的,不过你不会英语就要勤劳一点看到陌生的单词多查查,看手册也就那几个单词懂个大概意思即可!不知道你会不会编程,会C的话,可以看看Unix高级编程,可以完全领悟所有(1)英语一般般,也可以学好Linux,成为高手,基本和英语没什么太大关系;(2)Linux需要看看Linux相关的内核,移植,驱动程序和网络编程;(3)看一些实战的书,边学边练,如:《linux就该这么学》(4)一定要坚持,吃透2023-07-10 20:16:021
Linux 0基础 怎么学习?
我会推荐一些基本的学习途径和资源来帮你学习Linux:阅读Linux入门书籍。 推荐《跟老男孩一起学Linux》和《鸟哥的Linux私房菜 》等入门书籍。在线视频教程。 可以参考一些比较好的在线视频教程,例如B站上的《Linux基础入门》等。安装虚拟机并练习。 在自己的电脑上安装VirtualBox,然后安装并配置Linux虚拟机,通过实践来学习Linux命令和操作系统。参与Linux开源社区。 加入Linux开源社区,参与开源项目,与其他Linux用户交流和分享经验。1) Linux运维岗位及工作内容互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。2) Linux运维工程师岗位职责一般从企业入门到中级Linux运维工程师的工作大致有:挑选IDC机房及带宽、购买物理服务器或云服务、购买及使用CDN服务、搭建部署程序开发及用户的访问系统环境(例如:网站运行环境)、对数据进行备份及恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定运维工作制度和规范、配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求,公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。运维工程师还包括一些低端的岗位,例:网络管理员、监控运维、IDC运维,值班运维职业发展方向:Linux运维工程师、系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监3) Linux中级运维工程师应用软件阶段。Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础4)Linux运维架构师岗位职责运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;2、云计算部署架构及Docker微服务架构方案;3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);4、10万并发的网站架构、秒杀系统的架构及解决发你个案;5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;6、数据库、存储及各重要服务节点的集群和高可用方案。7、各网络服务的极端优化方案、服务解耦/拆分。8、运维流程、制度、规范等的建设和推行。9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-50000/月。职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩5)数据库运维工程师众所周知,数据几乎是所有企业的生命线,所以数据库工程师的地位和薪水一般会比普通运维工程师高一些,主要工作内容就是保证数据库数据的安全以及高效地为用户提供各种服务。工作内容主要有:数据库环境搭建、数据库优化、数据库2023-07-10 20:16:562
有没有学习Linux比较好的入门书籍
现在主流的linux学习书籍《鸟哥的linux私房菜》、《linux就该这么学》……个人还是推荐你看看第二本。坦白来讲,鸟哥的linux私房菜也是我的linux入门书籍,我绝对的认可鸟哥为这本书的付出,其书发行量巨大,陪伴了一代的运维人员,甚至被封为“linux入门神书”,渐渐的从一本linux技术书籍,上升至精神的高度,不允许再有一点反驳之声,但思索再三,还是决定阐明我的观点,与初学者分享下这不同的看法:首先鸟哥在开篇即提到了写书的缘由是因为记性不好,所以想写出一本能够放在案头的备忘录,对书籍的内容自然就没有了太多的筛选,反而一再的扩大知识范围,最终写出的两本书厚度足足超过十厘米,敢问这种“备忘录式的入门书籍”真的适合新手来读?我认为书籍既然发行了,就不能再是个备忘录,而应该是通过作者的经验将知识不断提炼,真正让捧起书的读者看完有收获才可以。其次是鸟哥的linux私房菜的书籍更新周期过长,2014年末时RHEL7与Centos7就已经公布,经过了一年多的迭代,已经很稳定并被广泛使用了,如果内容没有定期更新,使得技术脱离了生产环境,还怎么称作是真正实用的linux技术?而且鸟哥的linux私房菜缺少了对新手非常重要的答疑与帮助,如果遇到了实验出错,或者有知识点悟不透,这些都可能让初学者丧失掉对linux技术的兴趣。2023-07-10 20:17:068
linux就该这么学培训培训怎么样
还不错,网上在线培训方式。本书作者刘遄(Liu Chuán)从事于Linux运维技术行业,高中时期便因兴趣的驱使而较早的接触到了Linux系统并开始学习运维技术,已在2012年考下红帽工程师RHCE_6版本证书,2015年初又分别考下RHCE_7版本证书与红帽架构师认证RHCA证书。但深知水平有限且技术一般,若没有得益于良师益友的无私帮助,肯定不能如此顺利的完成Linux学业,并且同样作为一名普通的技术人,我亲身经历过半夜还在培训班的心酸,体验过拥堵6小时车程的无奈,看完过当今市面上十几本如同嚼蜡般的技术书籍,所以更加坚定了写出这本书的意念,此刻我正怀揣着一颗忐忑的心,竭尽全身心的斗志努力将知识分享给读者们,让您能够少走一些弯路。我认为一个高超的技术导师不应该仅仅当一名技术的搬运工,而应该是优质知识的提炼者,所以在写书的过程中将主动抛弃不实用的部分,将重点难点反复实践,更不会将所有了解的知识都写到书里来证明自己的学识,而是真正贴近于新人的思考角度出发,写出一本最适合您的Linux教材。本书意在带领读者从“0”基础开始学习linux系统,章节内配套有教学图片、视频及习题,达到增强学员兴趣与加深记忆的作用,当然这些都是免费的。才与诚合,然后事可成,恃才而败。我将付出不亚于任何人的努力,与可爱的读者们一起编写、完善这本书籍。详细请看 http://www.linuxprobe.com/chapter-00.html2023-07-10 20:17:321
请问:linux搜索学习路线是什么?还有linux学习方法是什么
很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。 就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对UNIX更是一无所知。所以我们从最基础的讲起,对于Linux及UNIX的历史我们不做多谈,直接进入入门的学习。 Linux入门是很简单的,问题是你是否有耐心,是否爱折腾,是否不排斥重装一类的大修。没折腾可以说是学不好Linux的,鸟哥说过,要真正了解Linux的分区机制,对LVM使用相当熟练,没有20次以上的Linux装机经验是积累不起来的,所以一定不要怕折腾。 由于大家之前都使用Windows,所以我也尽可能照顾这些“菜鸟”。我的推荐,如果你第一次接触Linux,那么首先在虚拟机中尝试它。虚拟机我推荐Virtual Box,我并不主张使用VM,原因是VM是闭源的,并且是收费的,我不希望推动盗版。当然如果你的Money足够多,可以尝试VM,但我要说的是即使是VM,不一定就一定好。付费的软件不一定好。首先,Virtual Box很小巧,Windows平台下安装包在80MB左右,而VM动辄600MB,虽然功能强大,但资源消耗也多,何况你的需求Virtual Box完全能够满足。所以,还是自己选。如何使用虚拟机,是你的事,这个我不教你,因为很简单,不会的话Google或Baidu都可以,英文好的可以直接看官方文档。 现在介绍Linux发行版的知识。正如你所见,Linux发行版并非Linux,Linux仅是指操作系统的内核,作为科班出生的你不要让我解释,我也没时间。我推荐的发行版如下:UBUNTU适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新应用,相对来说不太喜欢折腾的开发者。Debian,相对UBUNTU难很多的发行版,突出特点是稳定与容易使用的包管理系统,缺点是企业支持不足,为社区开发驱动。Arch,追逐时尚的开发者的首选,优点是包更新相当快,无缝升级,一次安装基本可以一直运作下去,没有如UBUNTU那样的版本概念,说的专业点叫滚动升级,保持你的系统一定是最新的。缺点显然易见,不稳定。同时安装配置相对Debian再麻烦点。Gentoo,相对Arch再难点,考验使用者的综合水平,从系统安装到微调,内核编译都亲历亲为,是高手及黑客显示自己技术手段,按需配置符合自己要求的系统的首选。Slackware与Gentoo类似。CentOS,社区维护的RedHat的复刻版本,完全使用RedHat的源码重新编译生成,与RedHat的兼容性在理论上来说是最好的。如果你专注于Linux服务器,如网络管理,架站,那么CentOS是你的选择。LFS,终极黑客显摆工具,完全从源代码安装,编译系统。安装前你得到的只有一份文档,你要做的就是照文档你的说明,一步步,一条条命令,一个个软件包的去构建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。 你得挑一个适合你的系统,然后在虚拟机安装它,开始使用它。如果你想快速学会Linux,我有一个建议就是忘记图形界面,不要想图形界面能不能提供你问题的答案,而是满世界的去找,去问,如何用命令行解决你的问题。在这个过程中,你最好能将Linux的命令掌握的不错,起码常用的命令得知道,同时建立了自己的知识库,里面是你积累的各项知识。 再下个阶段,你需要学习的是Linux平台的C/C++开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。同样,建议你抛弃掉图形界面的IDE,从VIM开始,为什么是VIM,而不是Emacs,我无意挑起编辑器大战,但我觉得VIM适合初学者,适合手比较笨,脑袋比较慢的开发者。Emacs的键位太多,太复杂,我很畏惧。然后是GCC,Make,Eclipse(Java,C++或者)。虽然将C++列在了Eclipse中,但我并不推荐用IDE开发C++,因为这不是Linux的文化,容易让你忽略一些你应该注意的问题。IDE让你变懒,懒得跟猪一样。如果你对程序调试,测试工作很感兴趣,GDB也得学的很好,如果不是GDB也是必修课。这是开发的第一步,注意我并没有提过一句Linux系统API的内容,这个阶段也不要关心这个。你要做的就是积累经验,在Linux平台的开发经验。我推荐的书如下:C语言程序设计,谭浩强的也可以。C语言,白皮书当然更好。C++推荐C++ Primer Plus,Java我不喜欢,就不推荐了。工具方面推荐VIM的官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指导(电子书),汇编语言程序设计(让你对库,链接,内嵌汇编,编译器优化选项有初步了解,不必深度)。 如果你这个阶段过不了就不必往下做了,这是底线,最基础的基础,否则离开,不要霍霍Linux开发。不专业的Linux开发者作出的程序是与Linux文化或UNIX文化相背的,程序是走不远的,不可能像Bash,VIM这些神品一样。所以做不好干脆离开。 接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看,看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强,你可以在面试时说服所有的考官。(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分,Google创始人的案头书籍,扎尔伯克的床头读物。) 这本书看完后你会对Linux系统编程有相当的了解,知道Linux与Windows平台间开发的差异在哪?它们的优缺点在哪?我的总结如下:做Windows平台开发,很苦,微软的系统API总在扩容,想使用最新潮,最高效的功能,最适合当前流行系统的功能你必须时刻学习。Linux不是,Linux系统的核心API就100来个,记忆力好完全可以背下来。而且经久不变,为什么不变,因为要同UNIX兼容,符合POSIX标准。所以Linux平台的开发大多是专注于底层的或服务器编程。这是其优点,当然图形是Linux的软肋,但我站在一个开发者的角度,我无所谓,因为命令行我也可以适应,如果有更好的图形界面我就当作恩赐吧。另外,Windows闭源,系统做了什么你更本不知道,永远被微软牵着鼻子跑,想想如果微软说Win8不支持QQ,那腾讯不得哭死。而Linux完全开源,你不喜欢,可以自己改,只要你技术够。另外,Windows虽然使用的人多,但使用场合单一,专注与桌面。而Linux在各个方面都有发展,尤其在云计算,服务器软件,嵌入式领域,企业级应用上有广大前景,而且兼容性一流,由于支持POSIX可以无缝的运行在UNIX系统之上,不管是苹果的Mac还是IBM的AS400系列,都是完全支持的。另外,Linux的开发环境支持也绝对是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就连C#也支持。而微软除Visual Stdio套件以外,都不怎么友好,不是吗? 如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术,世界顶级黑客将同你分享他的看法。 现在是时候做分流了。 大体上我分为四个方向:网络,图形,嵌入式,设备驱动。如果选择网络,再细分,我对其他的不是他熟悉,只说服务器软件编写及高性能的并发程序编写吧。相对来说这是网络编程中技术含量最高的,也是底层的。需要很多的经验,看很多的书,做很多的项目。 我的看法是以下面的顺序来看书:APUE再深读 – 尤其是进程,线程,IPC,套接字多核程序设计 - Pthread一定得吃透了,你很NBUNIX网络编程 – 卷一,卷二TCP/IP网络详解 – 卷一 再看上面两本书时就该看了5.TCP/IP 网络详解 – 卷二 我觉得看到卷二就差不多了,当然卷三看了更好,努力,争取看了6.Lighttpd源代码 - 这个服务器也很有名了7.Nginx源代码 – 相较于Apache,Nginx的源码较少,如果能看个大致,很NB。看源代码主要是要学习里面的套接字编程及并发控制,想想都激动。如果你有这些本事,可以试着往暴雪投简历,为他们写服务器后台,想一想全球的魔兽都运行在你的服务器软件上。Linux内核 TCP/IP协议栈 – 深入了解TCP/IP的实现如果你还喜欢驱动程序设计,可以看看更底层的协议,如链路层的,写什么路由器,网卡,网络设备的驱动及嵌入式系统软件应该也不成问题了。当然一般的网络公司,就算百度级别的也该毫不犹豫的雇用你。只是看后面这些书需要时间与经验,所以35岁以前办到吧!跳槽到给你未来的地方! 图形方向,我觉得图形方向也是很有前途的,以下几个方面。Opengl的工业及游戏开发,国外较成熟。影视动画特效,如皮克斯,也是国外较成熟。GPU计算技术,可以应用在浏览器网页渲染上,GPU计算资源利用上,由于开源的原因,有很多的文档程序可以参考。如果能进火狐开发,或google做浏览器开发,应该会很好 。嵌入式方向:嵌入式方向没说的,Linux很重要。掌握多个架构,不仅X86的,ARM的,单片机什么的也必须得懂。硬件不懂我预见你会死在半路上,我也想走嵌入式方向,但我觉得就学校教授嵌入式的方法,我连学电子的那帮学生都竞争不过。奉劝大家,一定得懂硬件再去做,如果走到嵌入式应用开发,只能祝你好运,不要碰上像Nokia,Hp这样的公司,否则你会很惨的。 驱动程序设计:软件开发周期是很长的,硬件不同,很快。每个月诞生那么多的新硬件,如何让他们在Linux上工作起来,这是你的工作。由于Linux的兼容性很好,如果不是太低层的驱动,基本C语言就可以搞定,系统架构的影响不大,因为有系统支持,你可能做些许更改就可以在ARM上使用PC的硬件了,所以做硬件驱动开发不像嵌入式,对硬件知识的要求很高。可以从事的方向也很多,如家电啊,特别是如索尼,日立,希捷,富士康这样的厂子,很稀缺的。LDD – Linux驱动程序设计与内核编程的基础读物深入理解Linux内核 – 进阶的Linux源代码 – 永无止境的当然你还的看个方面的书,如《linux就该这么学》啊什么的。2023-07-10 20:17:424
linux入门先学什么
先祝贺你选择学习Linux,你可能即将踏上Linux的工作之旅,出发之前,让我带你来看一看关于Linux和Linux运维的一切。来源于——公众号:马哥linux运维Linux因其高效率、易于裁剪、应用广等优势,成为了当今中高端服务器的主要操作系统,并且处于一个不可替代的地位。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。随着Linux在中国市场迅猛发展,国内Linux人才缺口逐渐凸显。Linux人才招聘也成了当前最热门的招聘之一。首先linux是一个非常非常大的概念。想全部吃透是不可能的。理想的说,搞懂linux,就可以做所有工作。个人更倾向于说想做什么样工作,需要学linux的哪部分。按个人经验介绍下常见的linux有哪些领域,并对应到什么工作。1)linux应用。这部分严格来说不能算是linux,只是跑在linux上的应用,比如web,网络,IT等,职业包括系统研发,后台开发,服务器性能优化,运维等;2)linux定制。这部分涉及linux版本的用户包较多,内核会有一些涉及,主要各种商业linux的订制,服务等。比如redhat之类,不少是外国公司,国内大多招现场支持等。3)linux内核开发。这部分主要是linux内核驱动的开发。几乎全部是编程工作。主要是芯片公司,以及使用芯片的产品开发公司。前者如intel,marvell,后者如中兴华为。4)android衍生品。因为android包括慢慢火爆的tizen都用的linux内核,所以理由同3。所以手机芯片公司和手机开发公司也是linux开发者的雇主之一。比如高通,TI等;一、Linux运维的主要工作内容Linux运维作为众多工作中需求人数最多,薪资待遇最高的岗位,本文重点介绍Linux运维的职业,本文内容由专门研究Linux运维学习和职业发展的机构马哥教育和爱好者们联合撰写。互联网Linux运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务。运维的职责覆盖了产品从设计到发布、运行维护、变更升级及至下线的生命周期。产品的整个生命周期里运维的职责重要而广泛,但运维工程师们的职责不仅限于这部分工作,还需要总结工作中遇到的问题,抽取出相关的技术方向、研发相关的工具和平台以支持/优化业务的发展并提高运维的效率,相关技术工作主要包括:服务监控技术:包括监控平台的研发、应用,服务监控准确性、实时性、全面性的保障服务故障管理:包括服务的故障预案设计,预案的自动化执行,故障的总结并反馈到产品/系统的设计层面进行优化以提高产品的稳定性服务容量管理:测量服务的容量,规划服务的机房建设,扩容、迁移等工作服务性能优化:从各个方向,包括网络优化、操作系统优化、应用优化、客户端优化等,提高服务的性能和响应速度,改善用户体验服务全局流量调度:接入服务的流量,根据容量和服务状态在各个机房间分配流量服务任务调度:服务的各种定时/非定时任务的调度触发及状态监控服务安全保障:包括服务的访问安全、防攻击、权限控制等数据传输技术:包括p2p等各类传输技术的研发应用,也远距离大数据传输等问题的解决服务自动发布部署:部署平台/工具的研发,及平台/工具的使用,做到安全、高效的发布服务服务集群管理:包括服务的服务器管理、大规模集群管理等服务成本优化:尽可能降低服务运行使用的资源,降低服务运行成本数据库管理(DBA):通过设计、开发和管理高性能数据库集群,使数据库服务更稳定、更高效、更易于管理。平台化的开发:类docker等平台的开发管理,及服务接入技术分布式存储平台的开发优化与接入等等,凡是关系到服务质量、效率、成本、安全等方面的工作,及涉及到的技术、组件、工具、平台都在运维的技术范畴里。做好每一个技术方向、完成相应的组件、工具、平台研发都能对履行运维职责起到积极的作用,对业务的发展发挥关键影响。二、Linux运维工作分类运维的工作方向比较多,随着业务规模的不断发展,越成熟的互联网公司,运维岗位会划分得越细。当前很多大型的互联网公司,在初创时期只有系统运维,随着 模、服务质量的 要求,也逐渐进行了工作细分。一般情况下运维团队的工作分类(见图1-1)和职责如下。图1-1 运维团队的工作分类2.1-应用运维(SRE):应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作,工作职责如下:设计评审、服务管理、资源管理、例行检查、预案管理、数据备份。2.2-系统运维(SYS):负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修,工作职责如下:IDC数据中心建设、网络建设、LVS负载均衡和SNAT建设、CDN规划和建设、服务器选型、交付和维护、内核选型和OS相关维护工作、资产管理、基础服务建设。2.3-数据库运维(DBA):数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,对数据库进行变更、监控、备份、高可用设计等工作,详细的工作内容如下:设计评审、容量规划、数据备份与灾备、数据库监控、数据库安全、数据库高可用和性能优化、自动化系统建设、运维研发、运维平台、监控系统、自动化部署系统。2.4-运维安全(SEC):运维安全负责网络、系统和业务等方面的安全加固工作,进行常规的安全扫描、渗透测试,进行安全工具和系统研发以及安全事件应急处理,工作内容如下:安全制度建立、安全培训、风险评估、安全建设、安全合规、应急响应。三、Linux运维日常使用软件和技能运维工程师使用的运维平台和工具包括:Web服务器:apache、tomcat、nginx、lighttpd监控:nagios、ganglia、cacti、zabbix自动部署:ansible、sshpt、salt配置管理:puppet、cfengine负载均衡:lvs、haproxy、nginx传输工具:scribe、flume备份工具:rsync、wget数据库:mysql、oracle、sqlserver分布式平台:hdfs、mapreduce、spark、storm、hive分布式数据库:hbase、cassandra、redis、MongoDB容器:lxc、docker虚拟化:openstack、xen、kvm安全:kerberos、selinux、acl、iptables问题追查:netstat、top、tcpdump、last运维以技术为基础,通过技术保障产品提供更高质量的服务。运维工作的职责及在业务中的位置决定了运维工程师需要具备更加广博的知识和深入的技术能力:扎实的计算机基础知识,包括计算机系统架构,操作系统,网络技术等;通用应用方面需要了解操作系统、网络、安全,存储,CDN,DB等,知道其相关原理;编程能力,小到运维工具的开发大到大型运维系统/平台的开发都需要有良好的编程能力;数据分析能力:能够整理、分析系统运行的各项数据,从中发现问题及找到解决方向;丰富的系统知识,包括系统工具、典型系统架构、常见的平台选型等;综合利用工具和平台的能力;四、Linux运维工作发展过程早期的运维团队在人员较少的情况下,主要是进行数据中心建设、基础网络建设、服务器采购和服务器安装交付工作。几乎很少涉及线上服务的变更、监控、管理等工作。这个时候的运维团队更多的属于基础建设的角色,提供一个简单、可用的网络环境和系统环境即可。随着业务产品的逐渐成熟,对于服务质量方面就有了更高的要求。这个时候的运维团队还会承担一些服务器监控的工作,同时会负责LVS、Nginx等与业务逻辑无关的4/7层运维工作。这个时候服务变更更多的是逐台的手工操作,或者有一些简单批量脚本的出现。监控的焦点更多的在服务器状态和资源使用情况上,对服务应用状态的监控几乎很少,监控更多的使用各种开源系统如Nagios、Cacti等。由于业务规模和复杂度的持续增加,运维团队会逐渐划分为应用运维和系统运维两大块。应用运维开始接手线上业务,逐步开展服务监控梳理、数据备份以及服务变更的工作。随着对服务的深入,应用运维工程师有能力开始对服务进行一些简单的优化。同时,为了应对每天大量的服务变更,我们也开始编写各类运维工具,针对某些特定的服务能够很方便的批量变更。随着业务规模的增大,基础设施由于容量规划不足或抵御风险能力较弱导致的故障也越来越多,迫使运维人员开始将更多的精力投入到多数据中心容灾、预案管理的方向上。业务规模达到一定程度后,开源的监控系统在性能和功能方面,已经无法满足业务需求;大量的服务变更、复杂的服务关系,以前靠人工记录、工具变更的方式不管在效率还是准确性方面也都无法满足业务需求;在安全方面也出现了各种大大小小的事件,迫使我们投入更多的精力在安全防御上。逐渐的,运维团队形成之前提到的5个大的工作分类,每个分类都需要有专精的人才。这个时候系统运维更专注于基础设施的建设和运维,提供稳定、高效的网络环境,交付服务器等资源给应用运维工程师。应用运维更专注于服务运行状态和效率。数据库运维属于应用运维工作的细化,更专注于数据库领域的自动化、性能优化和安全防御。运维研发和运维安全提供各类平台、工具,进一步提升运维工程师的工作效率,使业务服务运行得更加稳定、高效和安全。我们将运维发展过程划分为4个阶段,如图1-2所示。图1-2 运维发展过程手工管理阶段:业务流量不大,服务器数量相对较少,系统复杂度不高。对于日常的业务管理操作,大家更多的是逐台登录服务器进行手工操作,属于各自为战,每个人都有自己的操作方式,缺少必要的操作标准、流程机制,比如业务目录环境都是各式各样的。工具批量操作阶段:随着服务器规模、系统复杂度的增加,全人工的操作方式已经不能满足业务的快速发展需要。因此,运维人员逐渐开始使用批量化的操作工具,针对不同操作类型出现了不同的脚本程序。但各团队都有自己的工具,每次操作需求发生变化时都需要调整工具。这主要是因为对于环境、操作的规范不够,导致可程序化处理能力较弱。此时,虽然效率提升了一部分,但很快又遇到了瓶颈。操作的质量并没有太多的提升,甚至可能因为批量执行而导致更大规模的问题出现。我们开始建立大量的流程规范,比如复查机制,先上线一台服务器观察10分钟后再继续后面的操作,一次升级完成后至少要观察20分钟等。这些主要还是靠人来监督和执行,但在实际过程中执行往往不到位,反而降低了工作效率。平台管理阶段:在这个阶段,对于运维效率和误操作率有了更高的要求,我们决定开始建设运维平台,通过平台承载标准、流程,进而解放人力和提高质量。这个时候对服务的变更动作进行了抽象,形成了操作方法、服务目录环境、服务运行方式等统一的标准,如程序的启停接口必须包括启动、停止、重载等。通过平台来约束操作流程,如上面提到的上线一台服务器观察10分钟。在平台中强制设定暂停检查点,在第一台服务器操作完成后,需要运维人员填写相应的检查项,然后才可以继续执行后续的部署动作。系统自调度阶段:更大规模的服务数量、更复杂的服务关联关系、各个运维平台的林立,原有的将批量操作转化成平台操作的方式已经不再适合,需要对服务变更进行更高一层的抽象。将每一台服务器抽象成一个容器,由调度系统根据资源使用情况,将服务调度、部署到合适的服务器上,自动化完成与周边各个运维系统的联动,比如监控系统、日志系统、备份系统等。通过自调度系统,根据服务运行情况动态伸缩容量,能够自动化处理常见的服务故障。运维人员的工作也会前置到产品设计阶段,协助研发人员改造服务使其可以接入到自调度系统中。在整个运维的发展过程中,希望所有的工作都自动化起来,减少人的重复工作,降低知识传递的成本,使我们的运维交付更高效、更安全,使产品运行更稳定。对于故障的处理,也希望由事后处理变成提前发现,由人工处理变成系统自动容灾。五、2018年Linux运维必须抓住的前沿技能这是技术世界正在发生的深刻变革的冰山一角,那么问题来了? 作为传统的运维该如何转型呢?这里给出一点小的建议: 大致需要学习下这四个部分:自动化运维(Ansible,Puppet,Saltstack等)Devops(Docker,K8s,Jenkins,Jira等),云服务技术(虚拟化、OpenStack、AWS及阿里云各种产品服务架构等)python2023-07-10 20:18:053
学习linux要多久
Linux主体分为“运维”与“开发”两个方向,无论你是Linux相关从业者,还是说爱好都可以归类到这里,其中“运维”一般是初学者或者转行人员的首选,而Linux运维主要是对服务器稳定、性能与安全方面的维护和调试。实际上Linux入门并不困难,只要具备Linux基础,读懂Linux的命令格式,大多数的服务架构都是可以按照文档部署出来。当然做Linux开发,个人建议去参加培训学习更有效率,如果报班学习则大概需要4-6个月时间。学习主要内容有:1)网络基础与linux系统的管理2)优化及高可用技能3)虚拟化与云平台技术4)开发运维毕业后可从事的工作有:1)Linux运维工程师2)数据库工程师3)云计算运维工程师4)自动化运维工程师5)云计算架构工程师等互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。祝你学有所成,望采纳。2023-07-10 20:18:519
大家看过最好的Linux视频教程是哪个
本人看过《鸟哥的linux私房菜》,还有《linux就该这么学》。坦白来讲,鸟哥的linux私房菜也是我的linux入门书籍,我绝对的认可鸟哥为这本书的付出,其书发行量巨大,陪伴了一代的运维人员,甚至被封为“linux入门神书”,渐渐的从一本linux技术书籍,上升至精神的高度,不允许再有一点反驳之声,但思索再三,还是决定阐明我的观点,与初学者分享下这不同的看法:首先鸟哥在开篇即提到了写书的缘由是因为记性不好,所以想写出一本能够放在案头的备忘录,对书籍的内容自然就没有了太多的筛选,反而一再的扩大知识范围,最终写出的两本书厚度足足超过十厘米,敢问这种“备忘录式的入门书籍”真的适合新手来读?我认为书籍既然发行了,就不能再是个备忘录,而应该是通过作者的经验将知识不断提炼,真正让捧起书的读者看完有收获才可以。其次是鸟哥的linux私房菜的书籍更新周期过长,2014年末时RHEL7与Centos7就已经公布,经过了一年多的迭代,已经很稳定并被广泛使用了,如果内容没有定期更新,使得技术脱离了生产环境,还怎么称作是真正实用的linux技术?而且鸟哥的linux私房菜缺少了对新手非常重要的答疑与帮助,如果遇到了实验出错,或者有知识点悟不透,这些都可能让初学者丧失掉对linux技术的兴趣。本人推荐你看看《linux就该这么学》。2023-07-10 20:19:326
linux入门先学什么
linux最先要学的是Linux基础知识,学完基础知识才算入门,之后还要学习综合架构、Shell编程、数据库、云计算以及网络安全方面的知识,以下是linux基础部分要学习的内容:1. 计算机硬件、组成原理、操作系统基础、Linux起源、核心介绍及Linux安装实战入门2. Xshell远程网络连接Linux、基础优化、远程连接网络基础、Xshell连接故障排错、核心基础命令讲解3. Linux系统核心通配符体系、三剑客(grep,sed,awk)核心正则表达式精讲及企业级案例实战模拟精讲4. Bash核心符号、快捷键、通配符详解5. Linux目录、FHS挂载、文件属性、核心目录精讲6. Linux文件及目录管理核心知识和命令精讲(第二关)7. Linux企业级基础优化(工作中可直接使用8. Linux文件及目录权限精讲及多个企业案例模拟9. Linux重要核心命令回顾与深入精讲(第三关)2023-07-10 20:19:516
初学Linux看什么书比较好?
现在主流的linux学习书籍《鸟哥的linux私房菜》、《linux就该这么学》……个人还是推荐你看看第二本。坦白来讲,鸟哥的linux私房菜也是我的linux入门书籍,我绝对的认可鸟哥为这本书的付出,其书发行量巨大,陪伴了一代的运维人员,甚至被封为“linux入门神书”,渐渐的从一本linux技术书籍,上升至精神的高度,不允许再有一点反驳之声,但思索再三,还是决定阐明我的观点,与初学者分享下这不同的看法:首先鸟哥在开篇即提到了写书的缘由是因为记性不好,所以想写出一本能够放在案头的备忘录,对书籍的内容自然就没有了太多的筛选,反而一再的扩大知识范围,最终写出的两本书厚度足足超过十厘米,敢问这种“备忘录式的入门书籍”真的适合新手来读?我认为书籍既然发行了,就不能再是个备忘录,而应该是通过作者的经验将知识不断提炼,真正让捧起书的读者看完有收获才可以。其次是鸟哥的linux私房菜的书籍更新周期过长,2014年末时RHEL7与Centos7就已经公布,经过了一年多的迭代,已经很稳定并被广泛使用了,如果内容没有定期更新,使得技术脱离了生产环境,还怎么称作是真正实用的linux技术?而且鸟哥的linux私房菜缺少了对新手非常重要的答疑与帮助,如果遇到了实验出错,或者有知识点悟不透,这些都可能让初学者丧失掉对linux技术的兴趣。2023-07-10 20:20:083
学习Linux难吗
Linux是学习曲线比较陡峭的学科,刚开始学习有些难度 ,入门后就相对比较轻松了。学习Linux大部分做的是运维工程师或者云计算工程师。运维不仅仅是懂Linux就行,因为还有一大部分的Windows运维,最近看一个报道说,windows的服务器占了47.71%。嗯,向windows运维人员致敬。当然我们这篇文章不是说运维除了懂Linux,还要懂Windows,而是涉及运维的其他方方面面。环境部署一开始这个世界是开发的,然后才是运维的。开发实现产品逻辑,将产品开发完成后,然后提交运维进行部署。此时允许就需要准备好部署环境,如部署在Linux服务器上,安装相应的软件,如Apache、Nginx、tomcat、JDK、PHP、MySQL等等。你不能只装了软件吧,还需要看看具体是哪个版本,java 7 和java 8 的差别还是有点的,php5和php7也有些语法不兼容。把软件都安装好了,就可以上线了?还是不行。还需要测试吧,那就还需要部署一套测试环境。有些时候,开发环境也是需要运维来部署的。排错和调优事情从来都没有一帆风顺的。上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, ...备份做最好的计划,做最坏的打算。前不久的gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, ...高可用和集群没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, ...监控告警运维工程师的第一次解放运动。时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。相关技术:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, ...安全和审计狂奔在互联网的康庄大道上,不过有些人是在裸奔。不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计?相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, ...自动化和DevOps运维工程师的第二次解放运动。偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, ...虚拟化和云服务正在发生的一场运维革命。这场革命的发起人是买书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, ...2023-07-10 20:20:266
学习linux要看的书籍
《鸟哥的Linux私房菜 基础学习篇(第三版)》,鸟哥著一本大而全的LINUX入门指点,主要讲解Linux一些命令,Linux的实际操作及Linux基础理论。很适合Linux初学者学习。《嵌入式 Linux 应用开发完全手册》,韦东山著这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文 Linux 领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。《UNIX环境高级编程》(第2版),史蒂文斯著《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,宋宝华著随着通信、电子行业的迅速发展,全世界每天都会生产大量芯片,设计大量新电路板,也因此,会有大量设备驱动需要开发。本书主要对驱动编程所涉及Linux内核最底层机理的讲解。也是即Linux设备驱动开发详解第二版畅销后,作者又进行第三版的编著。《Linux 设备驱动程序》,科波特著《LINUX设备驱动程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解。《深入理解 Linux 内核》(第三版) ,博韦等著学习 Linux ,就要学习 Linux 的精华。而 Linux 的精华,则在于 Linux 的内核。本书以 Linux 2.6 版架构为基础,分门别类地向初学者介绍了 Linux 内核的架构、编程思想、以及功能模块。在本书的指导下学习,对于你读懂 Linux 操作系统的精华部分,会取得事半功倍的效果。2023-07-10 20:20:574
学习linux系统,看那几本书比较好
《鸟哥的Linux私房菜 基础学习篇(第三版)》,鸟哥著一本大而全的LINUX入门指点,主要讲解Linux一些命令,Linux的实际操作及Linux基础理论。很适合Linux初学者学习。《嵌入式 Linux 应用开发完全手册》,韦东山著这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文 Linux 领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。《UNIX环境高级编程》(第2版),史蒂文斯著《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,宋宝华著随着通信、电子行业的迅速发展,全世界每天都会生产大量芯片,设计大量新电路板,也因此,会有大量设备驱动需要开发。本书主要对驱动编程所涉及Linux内核最底层机理的讲解。也是即Linux设备驱动开发详解第二版畅销后,作者又进行第三版的编著。《Linux 设备驱动程序》,科波特著《LINUX设备驱动程序》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码分析比较多,基于2440的,对linux外围驱动有很全面的讲解。《深入理解 Linux 内核》(第三版) ,博韦等著学习 Linux ,就要学习 Linux 的精华。而 Linux 的精华,则在于 Linux 的内核。本书以 Linux 2.6 版架构为基础,分门别类地向初学者介绍了 Linux 内核的架构、编程思想、以及功能模块。在本书的指导下学习,对于你读懂 Linux 操作系统的精华部分,会取得事半功倍的效果。2023-07-10 20:21:165