实战linux编程精髓
A. 如何学习linux操作系统
1.1 初学者入门首选-redhat系列
在学习redhat系列linux之前,首先要了解以下redhat linux各个发行版本之间的关系。
1.Red Hat Linux
Red 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 Core
Fedora 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 Linux
Red Hat Enterprise Linux(缩写为RHEL,Red Hat的企业版)。Red Hat现在主要做服务器版的linux开发,在版本上注重了性能和稳定性以及对硬件的支持。 由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持,因此版本更新相对较缓慢。
RedHat Enterprise Linux又分为4个版本 Advanced Server(AS)、ES Workstation(WS)、Desktop,它们的差别不太大,只是功能方面的差别。
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系统想媲美的集群系统来。
三、用虚拟机软件学习linux
3.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.com
3.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 图标以启动应用程序:
(1) 按CTRL-N创建一个新虚拟机,弹出新建虚拟机向导,如图2所示界面,点击下一步:
图2
(2)选择虚拟机配置,如图3所示,这里选择“Custom”,点击下一步:
图3
(3) 选择客户机操作系统,如图4所示,这里选择“Linux”,版本选择“Red Hat Enterprise Linux 4”,点击下一步:
图4
(4) 给虚拟机命名,如图5所示,虚拟机名称设为Red Hat Enterprise Linux 4,虚拟机路径设为“C:\Virtual Machines\Red Hat Enterprise Linux 4”,点击下一步:
图5
(5) 设置访问权限,如图6所示,去掉“Make this virtual machine private”。 这样可以保证系统安装完毕,虚拟机linux系统可以和windows系统互通。点击下一步:
图6
(6) 启动/关闭选项,如图7所示,虚拟机帐户,选择“User that powers on the virtual machine”,点击下一步:
图7
(7) 虚拟机处理器配置,如图8所示,这里选择一个处理器。 如果你有多个处理器可以选择多个,点击下一步:
图8
(8) 设置虚拟机内存大小,如图9所示,可以通过滑竿选择给虚拟机系统分配的内存大小,一般选择是windows系统内存的一半。这里选择800M。点击下一步:
图9
(9) 选择虚拟机网络连接类型,如图10所示,这里选择“Use bridged networking”网桥方式,点击下一步:
图10
(10) 选择 I/O 适配器类型,如图11所示,这里选择“LSI Logic”,点击下一步:
图11
(11) 选择虚拟磁盘,如图12所示,选择“Create a new virtual disk”,点击下一步:
图12
(12) 选择磁盘类型,如图13所示,选择“SCSI (Recommended)”,点击下一步:
图13
(13) 指定虚拟机磁盘容量,如图14所示,磁盘容量,可根据自己的需求选择大小,安装Linux,一般5G即可满足需求,这里输入“25GB”,选择“Split disk into 2 GB files”,点击下一步:
图14
(14) 指定磁盘文件路径,如图15所示,可以点击“Browse”指定磁盘文件的路径,这里的路径为“F:\Red Hat Enterprise Linux 4\Red Hat Enterprise Linux 4.vmdk”,然后点击完成,即可完成虚拟机的创建。
图15
(15) 虚拟机创建完毕后,出现虚拟机控制台界面,如图16所示,这样我们就创建了一个 linux虚拟机系统,接下来就需要在虚拟机下安装linux系统了。
图16
(16) 点击图16虚拟机控制台中的“Edit virtual machine settings”选项,即可到“virtual machine settings”界面,如图17所示:
在这个界面中,我们可以添加虚拟机各种资源、编辑虚拟机的各种属性,例如修改虚拟机内存大小、编辑网卡连接方式、添加一个虚拟磁盘、指定光盘的引导方式等。还可以删除虚拟机中的各种资源。
图17
(17) 点击图18中“add”按钮,出现图18所示界面:在这个界面中,可以给虚拟机添加各种硬件资源,例如,硬盘、光驱、软驱、网卡、声卡等设备。
图18
到此为止,虚拟机的安装和基本配置已经介绍完毕,接下来开始讲述在虚拟机上安装linux的方法。
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安装界面。
图19
图20
Linux系统的安装,我们将在在后面文章中讲述,这里不在多说。
四、linux学习资源
4.1 网络资源,搜索引擎,论坛
Linux的开源特性决定了linux知识的开放性和充足性。当今,linux非常流行,linux学习资源也非常之多,书店到处可见linux方面的书籍,选择一本适合自己的慢慢去学习,再好不过。
除了书本的知识,网络里也有无限的linux学习资源,各大linux技术门户,linux社区论坛,都是学习linux的好地方;在这里,有一批无私奉献的linux狂热爱好者,他们把自己的学习经验和学习总结无偿的发布出来;他们每天在linux论坛的各个角落热情的回答广大网友提出的问题;他们不求回报,因为他们热爱技术,热爱linux。
遇到学习问题,或者要查找某些linux资料,搜索引擎绝对是第一选择,例如google.cn和.com,99%的技术资料都能在这里搜到。查找linux资料,不要错过这两个优秀的搜索引擎。
4.2 有本书在身边
网络中有很多linux学习资源,丰富的学习资源,虽然给我们学习提供了很好的便捷性,但是也造成了我们学习的盲目性,学习资源的丰富性,引出的另一个问题是资源的混杂,刚入门的新手感觉无从下手,可能今天看了一点内存管理的资料,明天学习了一点磁盘管理的资料,并且总是感觉自己理解了也学会了,但是就是无法灵活的掌握,究其原因,就是没有系统的学习linux。
因此,选择一本好书在自己身边是必须的,一本好书应该是由浅入深,有点及线,有线及面的介绍知识,选择一本好书,同时结合网络资源进行循序渐进的学习,此时,你的学习就不会再有空洞感,进步也会飞快。你会感觉学习linux是一件很快乐的事情。
五、linux的应用领域
很多新手都有一个很疑惑的问题:“我学习linux系统,能在上面干什么呢,或者说linux系统具体能做什么”,有这样的疑问,也很正常,但是随着对linux了解的加深,这些疑问就会慢慢消除,下面具体讲述下linux操作系统的应用领域(也就是linux到底是干啥的)。
1:服务器领域
现在的服务器市场以linux、unix、windows三分天下, linux可谓后起之秀,从产生发展到现在,在服务器应用领域节节攀升,并且每年增长势头迅猛。
Linux作为企业级服务器应用广泛,利用Linux系统可以使企业构架WWW服务器、代理服务器、邮件服务器、DNS服务器、透明网关、路由器等等,不但给企业降低了运营成本,同时获得了linux系统带来的高稳定性和高可靠性。
随着linux在服务器领域的广泛应用,这几年来,linux已经悄悄进入政府、教育、银行、石油等行业,同时各大unix厂商也推出在unix平台支持linux操作系统,例如IBM AIX。这一切表明,linux在服务器市场前景光明,相信在不久的将来,linux会渗透到社会各个领域。
2.嵌入式Linux系统
由于 Linux系统开放源码,功能强大、可靠、灵活而且具有伸缩性,再加上它广泛支持大量的微处理器体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备到专用的控制系统,Linux 操作系统的前景都很光明的。
例如,诺基亚和摩托罗拉公司都推出了linux平台的手机。
B. 新手如何自学linux
初学者入门首选——Centos系列
CentOS系列版本可以轻松获得;
CentOS现在拥有庞大的网络用户群体,网络Linux资源基本80%都是基于CentOS发行版;
CentOS应用范围广,具有典型性和代表性。
养成良好的Linux操作习惯
(1)一定要习惯命令行方式
Linux是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作是不会变的。
(2)理论结合实践
要不断地重复练习才会将一件事情记得比较牢。学习Linux也一样,如果无法坚持学习的话,就会学了后面的,忘记了前面的。
(3)学会使用Linux联机帮助
主流的Linux发行版都自带了非常详细的帮助文档,包括使用说明和FAQ,从系统的安装到系统的维护,再到系统安全,针对不同层次用户的详尽文档。仔细阅读文档后,60%的问题都可在这里得到解决。
(4)学会独立思考问题,独立解决问题
遇到问题,首先想到的应该是如何自己去解决这个问题,解决方式有很多,比如看书查资料、网络搜索引擎搜索和浏览技术论坛等。
(5)学习专业英语
如果想深入学习Linux,一定要尝试去看英文文档。
C. 想学习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重要核心命令回顾与深入精讲(第三关)
D. 嵌入式学习书籍有哪些
以下是华清远见·星创客嵌入式精英训练营提供的学习嵌入式必看的100本书:
001《大话数据结构》
002《鸟哥的 linux 私房菜》
003《疯狂 android 讲义》
004《第一行代码》
005《linux 内核设计与实现》
006《驱动设计开发》
007《linux 内核解密》
008《unix 环境高级编程》
009《linux 内核设计与实现》
010《essential C++》
011《嵌入式 linux》
012《linux 设备驱动》
013《c 语言深度解剖》
014《linux 下的 c编程》
015《C Primer Plus(第五版)》
016《ARM 体系结构与编程(第二版)》
017《lINUX 设备驱动开发详解(第三版)》
018《android 开发艺术探讨》
019《c++plus》
020《Unix 环境高级编程》
021《与大数据同行——学习和教育的未来》
022《用户体验的要素》
023《编程与艺术》
024《ARM 嵌入式体系结构与接口技术》
025《cortex-m0 接口编程》
026《C 语言程序设计:现代方法》
027《C++ Primer》
028《数据结构》(严蔚敏)
029《算法导论》
030《Linux 设备驱动开发》
031《代码大全》
032《深入理解计算机系统》
033《UNIX 环境高级编程》
034《计算机安全原理》
035《UNIX 网络编程》
036《HeadFirst 设计模式》
037《linux 驱动》(宋保华)
038《C++ primer4》
039《qt5 精彩实例》
040《ldd3》
041《C++高级编程》
042《c语言教程》
043《实战 linux 编程精髓》
044《ARM 教程》
045《JAVA 编程思想》
046《HTML+CSS 网页设计与布局从入门到精通》
047《C 语言深度解剖》
048《深度实践嵌入式 Linux 系统移植》
049《unix 高级编程》
050《c 嵌入式一站式教学》
051《编译原理》
052《深度实践嵌入式 Linux 系统移植》
053《UNIX 环境高级编程》
054《linux 网络编程》
055《C 语言程序设计》
056《unix 环境高级编程》
057《嵌入式 linuxc 语言程序设计基础教程》
058《Java 编程思想》
059《TCP/IP 详解》
060《linux 技术手册》
061《C 语言深度剖析》
062《Unix 高级环境编程》
063《C++primerplus》
064《QT》
065《C 程序设计》
066《C 和指针》
067《C++primer》
068《C 程序设计语言》
069《ProgrammingC#》
070《thinking in C++》
071《Linux Device driver》
072《Linux kernel development》
073《软件工程》
074《C 和指针》
075《Android 核心代码》
076《Android 技术内幕》
077《Android 底层移植》
078《Unix 编程手册(上下卷)》
079《Linux 驱动设计第三版》
080《ARM 实战开发》
081《unix 环境高级编程》
082《tcp/ip 编程详解》
083《Linux 网络编程》
084《Unix 编程艺术》
085《计算机程序的构造和解释》
086《C Primer plus》
087《LINUX 权威指南》
088《LINUX 设备驱动程序》
089《The C Programming Language》
090《ajax 高级程序设计》
091《angula js 权威教程》
092《ARM 体系结构》
093《Unix 环境高级编程》
094《Linux 设备驱动程序》
095《现代操作系统》
096《TCP/IP 协议详解》
097《嵌入式 C 语言设计模式》
098《Struts In Action》
099《c 程序设计语言(第二版)》
100《深入理解 Linux 内核(第三版)》
E. 浅谈如何学习linux
一.为什么要学linux?
当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!
二.起步
你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix
如何选择版本:北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
对于初学linux的人来说,我建议是使用redhat,原因如下:
1)现在很多书都是以redhat为例讲的,为了与书本协调一致
2)周围的人都用redhat,交流比较方便
3)redhat应用范围广,有典型性和代表性
4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上而应集中精力学习最有用的东西。
【注】现在觉得RH很死板,AS,ES等用在服务器上或许不错,Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮:)
如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到linux上这种需要,那么中软,红旗等中文linux是不错的选择
我强烈建议:自己亲自动手把linux装到你的硬盘上,你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单
从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘linux身上的“天才unix”的气质。
F. 学Linux到底学什么
第一条:运维应用-->系统架构-->运维开发-->系统开发
第二条:运维应用-->应用dba-->架构dba-->开发DBA
下面详细每个阶段的职位说明:
01.运维应用级别:
这个阶段就是玩别人的软件,例如:linux,nginx,mysql,php,nagios 大多数的linux运维工程师,网络工程师,系统工程师都是这个阶段。 这个阶段属于金字塔的底端,工资是相对比较低的。
02.系统架构级别:
这个阶段就是用已知软件架构大规模集群方案以及实现各种技术方案,属于运维应用上层,需要靠技术,沟通,思想三条线通力配合才能达到这个水平。
03.运维开发级别:
这个阶段就是利用已知语言,开发基本的应用层工具,例如:web管理系统,如果具备前两个运维应用和系统架构的积淀,这个是很轻松可以实现的。
04.系统开发级别:
这个阶段就是修改开源的软件,或者开发新的服务软件(例如:也开发一个web软件,存储软件)与底层软件(例如:OS),是更高一层的开发人员。
05.数据库管理和架构:
这个阶段就是也主要是玩别人的软件,但是数据相对更重要,要求有一定的运维应用的能力。
以上是常规的Linux发展路线,对于想学Linux运维,或正处于Linux运维相关工作的人员,可以根据自身的情况进行定位,选择适合自己的发展路线,往往可以在职场上更加得心应手!
G. linux里的chmod u+s如何用程序实现呢谢谢
直接可以用chmod函数
#include <sys/types.h>
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
int fchmod(int filedes, mode_t mode);
chmod第一个参数 是文件路径名 , 第二个是 文件属性值
fchmod第一个参数是文件描述符, 第二个是文件属性值
推荐看Arnold Robbins 的 《Linux Programming by Example》《实战Linux编程精髓》
楼上说的直接调用 shell 也可以 新建一个进程 使用 exec函数族 执行 chmod u +s
H. 成为一名嵌入式Linux开发工程师需要学习哪些知识
嵌入式系统是计算机软件和硬件的综合体,岗位包括:ESE(嵌入式软件工程师);ADE(嵌入式应用开发工程师);FWE(嵌入式底层开发工程师);FEC(嵌入式固件开发工程师)。
课程内容主要包括:
①C,Java核心编程:c语言核心编程,Java核心编程;
②Linux核心操作与算法:Linux系统使用,Linux-c编程核心技术,精品数据结构,Linux-c编程精髓;
③核心操作与算法:Linux系统编程,Linux网络编程核心技术,UI编程,Java核心编程,安卓核心技术;
④ARM+Linux底层开发:数字电路,ARM编程核心,Linux系统开发,嵌入式Linux驱动开发;
⑤大型项目实践:每期安排各类型真实的项目,详细可以找我要资料。
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。