Linux网络编程入门,linux网络编程应该学习哪些东西

1 , linux网络编程应该学习哪些东西Linux网络编程一般用C语言,也用C++语言,因为有些网络编程的库是C++的,所以C/C++编程基础最起码要有;另外基础知识部分就是网络原理要学,还有Linux平台的基本编程技术(socket、文件相关的系统调用) 。Linux网络编程基本上是一些编程技巧和代码库的运用以及编程经验的积累 , 学习到一定程度了可以试着编写一些网络服务器程序 。首先先学学编辑器,vim, emacs什么的都行 。然后学make file文件,只要知道一点就行,这样就可以准备编程序了 。然后看看《c程序设计语言》k【Linux网络编程入门,linux网络编程应该学习哪些东西】
2,新手入门Linux的步骤新手想要快速入门学习Linux , 要制定合适的学习路线,这样才可以达到事半功倍的效果 。第一阶段:linux基础入门1. 开班课程介绍-规章制度介绍-破冰活动;2. Linux硬件基础/Linux发展历史;3. Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查4. 第一关一大波命令及特殊字符知识考试题讲解5. L inux基础优化6. Linux目录结构知识精讲7. 第二关一大波命令及特殊知识考试题讲解(上)8. 第二关一大波命令及特殊知识考试题讲解(下)9. Linux文件属性一大堆知识精讲10. Linux通配符/正则表达式11. 第三关一大波命令及重要知识考试题讲解(上)12. 第三关一大波命令及重要知识考试题讲解(下)13. Linux系统权限(上)14. Linux系统权限(下)15. 第一阶段结束需要导师或讲师对整体课程进行回顾第二阶段:linux系统管理进阶1. Linux定时任务2. Linux用户管理3. Linux磁盘与文件系统(上)4. Linux磁盘与文件系统(中下)5. Linux三剑客之sed命令第三阶段:Linux Shell基础1. Shell编程基础12. Shell编程基础2343. Linux三剑客之awk命令第四阶段:Linux网络基础1. 计算机网络基础上2. 计算机网络基础下3. 第二阶段结束需要导师或讲师对整体课程进行回顾 。第五阶段:Linux网络服务1. 集群实战架构开始及环境准备2. rsync数据同步服务3. Linux全网备份项目案例精讲4. nfs网络存储服务精讲5. inotify/sersync实时数据同步/nfs存储实时备份项目案例精讲第六阶段:Linux重要网络服务1. http协议/www服务基础2. nginx web介绍及基础实践3. nginx web精讲结束4. lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统5. nginx负载均衡深入透彻6. keepalived高可用深入透彻第七阶段:Linux中小规模集群构建与优化(50台)1. 期中架构开战说明+期中架构部署回顾2. 全体昼夜兼程部署期中架构并完成上台述职演讲(加上两个周末共9天)3. kickstart cobbler 批量自动安装系统4. pptp vpn与ntp服务5. memcached原理及部署/作为缓存及session会话共享第八阶段:Ansible自动化运维与Zabbix监控1. SSH服务秘钥认证2. ansible批量自动化管理集群(入门及深入)3. zabbix监控第九阶段:大规模集群高可用服务(Lvs、Keepalived)1. Centos7系统自行安装/centos6与7区别2. lvs负载均衡集群/keepalived管理LVS集群第十阶段:Java Tomcat服务及防火墙Iptables1. iptables防火墙精讲上2. iptables防火墙精讲下3. tomcat java应用服务/nginx配合tomcat服务部署及优化第十一阶段:MySQL DBA高级应用实践1. MySQL数据库入门基础命令2. MySQL数据库进阶备份恢复3. MySQL数据库深入事务引擎4. MySQL数据库优化SQL语句优化5. MySQL数据库集群主从复制/读写分离6. MySQL数据库高可用/mha/keepalved第十二阶段:高性能数据库Redis和Memcached课程第十三阶段:Linux大规模集群架构构建(200台)第十四阶段:Linux Shell编程企业案例实战第十五阶段:企业级代码发布上线方案(SVN和Git)1. GIT管理2. 代码上线项目案例第十六阶段企业级Kvm虚拟化与OpenStack云计算1. KVM虚拟化企业级实战2. OpenStack云计算企业级实战第十七阶段公有云阿里云8大组件构建集群实战第十八阶段:Docker技术企业应用实践1. Docker容器与微服务深入实践2. 大数据Hadoop生态体系及实践第十九阶段:Python自动化入门及进阶第二十阶段:职业规划与高薪就业指导
3,请问Linux下学习网络编程应该具备哪些基础知识如果铁了心干Linux编程,那还是要学好C语言 , 至于C++则最好别学(如果非C++不嫁,那么C语言还是尽量不要深入) 。对C++实在不了解(实际上是根本没学过,咱是散修) 。Linux编程最好是先掌握一个脚本语言(shell、perl等,不需要学完,只需要知道它可以干哪些事 , 至于怎么实现,可以在以后慢慢学) , 网络协议很可能要学一下,网络设备也要了解一下(总不好在U盘上建日志文件系统吧),当然,最重要的始终是你所选择的编程语言 。网络编程的工作,当然要找有这方面发展意向的机构(只要是有网络服务的机构 , 都会有这方面的人才需求,但国内大部分停留在网页开发上) 。其实什么都不用管,什么都不用急着准备,给自己找点事做(实在想不出什么可做的,不妨找点开源项目来看,如果有不懂的地方,再针对性地学习,如果全看懂了,就试着去改进它 , 或找下一个项目),用多少学多少,不要被老师“将来或许用得着”给束缚?。ǖ饶阊晁薪椿蛐碛玫米诺亩?nbsp;, 只怕黑白无常为等你,早就成了望夫石了) 。最后再补充一点:如果要学C语言,K & R 两人写的C语言书蛮出名(有中英文版本,国际知名度甚高,几乎是知道POSIX就会知道这本书) 。Linux下学习网络编程先了解一些网络程序的主要执行过程,慢慢由浅入深 :1. 系统启动服务器执行 。服务器完成一些初始化操作,然后进入睡眠状态,等待客户机请求 。2. 在网络的某台机器上,用户执行客户机程序3. 客户机进行与服务器进程建立一条连接4. 连接建立后,客户机通过网路向服务器发出请求,请求某种服务 。5. 服务器接收到客户机的请求后,根据客户机请求的内容进行相应的处理,然后将处理结果返回 。6. 服务器断开与客户机的连接,继续睡眠,等待其他客户机的请求 。那还是要学好C语言 , 至于C++则最好别学(如果非C++不嫁,那么C语言还是尽量不要深入) 。Linux编程最好是先掌握一个脚本语言(shell、perl等,不需要学完,只需要知道它可以干哪些事,至于怎么实现,可以在以后慢慢学),网络协议很可能要学一下,网络设备也要了解一下 , 当然,最重要的始终是你所选择的编程语言 。Linux下学网络?你要掌握以下几个方面:基本原理(IP协议,UDP,TCP协议)Socket编程(建立,创建,绑定,监听)安全代码规则写写实例程序,比如简单的C/S程序——聊天器等不过还是需要C的基础哦~C++在Linux的网络里面用的相对较少 。推荐你看《LinuxC编程实战》这本书如果是用java编的话,除了java知识只要懂一点linux操作就可以了,最近正在用java编写多人射频聊天系统,有没有什么好建议的 。如果是c的话,就要了解一点linux的底层,最好有一些库函数手册可以查 。网络方面的,了解就可以了 。
4 , 学习Linux的步骤是怎样的作为一个新人,怎样学习嵌入式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的话 , 也是要花时间去了解那些类、控件的 。如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点 。在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用?我只能说凭兴趣 , 并且驱动和应用并不是截然分开的我们说的驱动,其实并不局限于硬件的操作,还有操作系统的原理、进程的休眠唤醒调度等概念 。想写出一个好的应用 , 想比较好的解决应用碰到的问题,这些知识你应该做应用门槛低,特别是现在的ANDROID,纯JAVA 。做应用的发展路径个人认为就是业务纯熟 。比如在通信行业、IPTV行业、手机行业 , 你了解行业的需求 。所以 , 当领导的人,多是做应用的 。做驱动,其实我不想称为“做驱动”,而是想称为“做底层系统”,做好了这是通杀各行业 。我工作几年 , 做过手机、IPTV、会议电视,但是这些产品对我毫无差别,因为我只做底层 。他们的业务跟我没关系 。当应用出现问题,他们解决不了时,我就会从内核角度给他们出主意 , 给他们提供工具 。做底层的发展方向 , 个人认为是技术专家 。其实,做底层还是做应用,之间并没有一个界线,有底层经验,再去做应用,你会感觉很踏实 。有了业务经验,你再了解一下底层,很快就可以组成一个团队 。回到怎么学的问题上 。嵌入式Linux底层系统包含哪些东西?不要急,举一个例子你就知道了 。电脑一开机,那些界面是谁显示的?是BIOS , 它做什么?一些自检,然后从硬盘上读入windows,并启动它 。类似的,这个BIOS对应于嵌入式Linux里的bootloader 。这个bootloader要去Flash上读入Linux内核,并启动它 。启动windows的目的是什么?当然是上网聊天什么的了 。这些上网、聊天工具在哪?在C盘、D盘上 。所以, windows要先识别出C盘、D盘 。在Linux下我们称为根文件系统 。windows能识别出C盘、D盘,那么肯定能读写硬盘才行 。这涉及的东西称为驱动程序 。当然不仅仅是硬盘,还有网卡、USB等等 。嵌入式Linux能从Flash上读出并执行应用程序,肯定也得有Flash的驱动程序?。?当然也不仅仅是Flash 。先说到这里吧 , 嵌入式LINUX里含有bootloader, 内核, 驱动程序、根文件系统这4大块 。一、bootloader:它就是一个稍微复杂的裸板程序 。但是要把这裸板程序看懂写好一点都不容易 。Windows下好用的工具弱化了我们的编程能力 。很多人一玩嵌入式就用ADS、KEIL 。你能回答这几个问题吗?一上电,CPU从哪里取指令执行?答:一般从Flash上指令 。但是Flash一般是只能读不能直接写的 , 如果我用到全局变量 , 这些全局变量在哪里?答:全局变量应该在内存里那么谁把全局变量放到内存里去?答:长期用ADS、KEIL的朋友,你能回答吗?这需要"重定位" 。在ADS或KEIL里 , 重定位的代码是制作这些工具的公司帮你写好了 。你可曾去阅读过?4.内存那么大,我怎么知道把"原来存在Flash上的内容"读到内存的"哪个地址去"?答:这个地址用"链接脚本"决定,在ADS里有scatter文件,KEIL里也有类似的文件 。但是,你去研究过吗?5.你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash?。? 答:是的,要能操作Flash 。当然不仅仅是这些,还有设置时钟让系统运行得更快等等 。先自问自答到这里吧,bootloader这一个裸板程序,其实有3部分要点:对硬件的操作对ARM体系处理器的了解程序的基本概念:重定位、栈、代码段数据段BSS段什么的 。对硬件的操作,需要看原理图、芯片手册 。这需要一定的硬件知识 , 不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路 。这方面的能力我是在学校里学到的,微机原理、数字电路这2本书(书名忘了)就足够了 。但是我怀疑你有无耐心把这2本书看完 。我不知道现在有没有更快捷的书 。想速成的话,就先放掉这块吧,不懂就问GOOGLE、发贴 。另外,芯片手册是肯定要读的,别去找中文的,就看英文的 。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易 。对ARM体系处理器的了解, 看杜春蕾的<ARM体系架构与编程>吧,里面讲有汇编指令,有异常模式、MMU等 。也就这3块内容需要你了解 。程序的基本概念 , 王道当然是去看编译原理了 。可惜,这类书绝对是天书级别的 。劝你若非超级天才还是别去看了 。就看我写的<嵌入式Linux应用开发完全手册>和第1期视频吧,别担心,不用花钱 。照着视频把硬件相关的实验做了,这些概念就清楚了 。我还没有发现第2套讲这些概念的书或视频,允许我盲目吹嘘一回 。对于bootloader,我学习时是先看了<ARM体系架构与编程>,然后自己写程序把各个硬件的实验都做了一遍,比如GPIO、时钟、SDRAM、UART、NAND 。把它们都弄清楚了,组台在一起就很容易看懂u-boot了总结一下,看懂硬件原理图、看芯片手册 , 这需要你自己去找资料 。剩下的 , 就按<嵌入式Linux应用开发完全手册>和第1期视频的章节目录去学习吧 。二、内核:想速成的人 , 先跨过内核的学习,直接学习怎么写驱动 。想成为高手,内核必须深刻了解 。注意,我说的是了解,我没奢望去写出一个内核 。要对里面的调度机制、内存管理机制、文件管理机制等等有所了解 。推荐两本书:通读<linux内核完全注释>,请看薄的那本(浮燥的社会讲求速度, 呵),选读<Linux内核情景分析>, 想了解哪一块就读哪一节三、驱动:驱动包含两部分:硬件本身的操作、驱动程序的框架 。又是硬件,还是要看得懂原理图、读得懂芯片手册 , 多练吧 。说到驱动框架,有一些书介绍一下 。LDD3,即<Linux设备驱动>,老外写的那本,里面介绍了不少概念,值得一读 。但是 , 它的作用也就限于介绍概念了 。我基本上是入门之前用它来熟悉一下概念 , 入门后就扔掉了 。驱动方面比较全的介绍,应该是宋宝华的<linux设备驱动开发详解>了,老实说我只看过目录,有不少人说好,这里推荐一下 。要想深入了解某一块 , <Linux内核情景分析>绝对是超5星级推荐 。你别指望把它读完,1800多页,上下两册呢 。我是某一块不清楚时,就去翻一下它 。任何一部分,这书都可以讲上2、3百页 , 非常详细 。并且是以某个目标来带你分析内核源码 。它以linux 2.4为例,但是原理相通,同样适用于其它版本的linux 。还有没有其他介绍?呵呵,当然有了 , 韦东山Linux视频第2期 。<嵌入式Linux应用开发完全手册>里对驱动讲得不多,不够深入 。于是我录制了这期视频 。不仅仅教你怎么写怎么改驱动 , 还教你为什么这样写这样改驱动 。每一个驱动都是现场编写: 用绘图板画图讲解──相当于学校里老师在黑板上画图讲解,很直观绝对不是对着PPT念 。用source insight当场写程序,从第1行开始写,每一课都是这样 。我讲了20多个驱动,就写了20多个程序 。写完就编译、测试 。很全面,字符设备驱动、块设备、网卡驱动3大类齐全 , 硬件介绍、驱动框架分析、测试3大类齐全 。培训机构里教的内容 , 远不及这期视频丰富 。我在多个培训机构讲过课,从没看到哪个老师敢每一课都当场讲解当场编写代码,当场测试,除我之外!也没看到哪个培训机构讲完这些内容──因为时间不够,讲完起码要一个月,但是这部分基本只有2周授课时间 。把你手上的开发板所涉及的硬件,都去尝试写一个驱动吧 。有问题就先"痛苦地思考",思考的过程中你会把很多不相关的知识串联起来,最终贯通 。四、根文件系统: 大家有没有想过这2个问题:对于Linux做出来的产品 , 有些用作监控、有些做手机、有些做平板 。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢? 答:内核不知道也不管应该启动哪一个用户程序 。它只启动init这一个应用程序 , 它对应/sbin/init 。显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等) 这个问题提示我们,文件系统的内容是有一些约定的,比如要有/sbin/init,要有配置文件你写的hello,world程序,有没有想过里面用到的printf是谁实现的?答:这个函数不是你实现的 , 是库函数实现的 。它运行时,得找到库 。这个问题提示我们,文件系统里还要有库 。简单的自问自答到这里 , 要想深入了解,可以看一下busybox的init.c,就可以知道init进程做的事情了 。当然,也可以看<嵌入式Linux应用开发完全手册>里构建根文件系统那章 。说一下我的学习经历吧 。我在学校时读的是物理电子专业 , 其实课程里没有教怎么设计电路,只是教了些电子电路方面的知识 。PCB的设计是在实验室里自学的,只设计过2层板,现在忘记得差不多了 。但是保留了看原理图、看芯片手册的能力 。选修了软件学位,对软件设计挺感兴趣,但是也只是学了C语言、数据库而已 。凭着兴趣做了不少竞赛题 。没能力去参加竞赛,但是把C语言练得很扎实 。在实验室、在第1家公司,就是设计些简单的PCI卡,写一下windows的驱动程序在第2家公司,用51单片机做车载电话 , 开始走上纯软件的道路 。开始感到单片机的不足,辞职半年闭门学Linux,从red hat怎么操作开始 。步骤就是先看<ARM体系架构与编程>,再自己写裸板程序操作硬件,接着到分析u-boot 。同时看<linux内核完全注释>,对LINUX框架有所了解 。在写裸板时 , 建议各位加强对中断的理解,内核就是用中断来完成各种功能的 。分析完u-boot,就开始进行简单的驱动编程了,这时候 , 能力还很弱 。7. 开始去中兴上班,工作2年,编写各类驱动、解决各类问题(驱动问题、帮助定位应用问题),能力得到煅炼 。总结一下:硬件方面的书: 微机原理、数字电路 , 高校里的教材 。毕业多年,忘名了 。Linux方面的书:<ARM体系架构与编程> <嵌入式Linux应用开发完全手册> <Linux设备驱动>,老外写的那本<linux设备驱动开发详解><linux内核完全注释><Linux内核情景分析>3. 视频:韦东山Linux视频第1期(基于S3C2440录制): ARM实验,u-boot,文件系统,初级驱动韦东山Linux视频第1期(基于S3C6410录制): 裸板程序韦东山Linux视频第2期: 高级驱动韦东山Linux视频第3期:项目实战韦东山Linux视频第4期:Android驱动www.100ask.net, 里面有下载地址 。————————————————版权声明:本文为CSDN博主「韦东山」的原创文章,遵循CC 4.0 BY-SA版权协议 , 转载请附上原文出处链接及本声明 。原文链接:https://blog.csdn.net/thisway_diy/article/details/518873265 , 如何学习linux编程这样基本上系统方面的就可以掌握了 。如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程 。建议学习路径: 首先先学学编辑器,vim, emacs什么的都行 。然后学make file文件,只要知道一点就行,这样就可以准备编程序了 。然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了 , 顺便找本数据结构的书来看 。如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材 , 加深一下功底 , 学习《UNP》的第二卷 。这样基本上系统方面的就可以掌握了 。然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识 , 再看《UNP》的第一卷,不仅学习网络编程 , 而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程 。如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2 。对于几本经典教材的评价: 《The C Programing Language》K&R 经典的C语言程序设计教材 , 作者是C语言的发明者,教材内容深入浅出 。虽然有点老,但是必备的一本手册 , 现在有时候 我还常翻翻 。篇幅比较小 , 但是每看一遍,就有一遍的收获 。另外也可用谭浩强的《C语言程序设计》代替 。《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的?。?虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料 。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来 得容易 。《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书 只要看大约一半多就可以了 。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程 。所以看了《APUE》以后,就可以看它了 , 基本上系统的东西就由 《APUE》和《UNP》vol2概括了 。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的 。国内是清华翻译得《Unix网络编程》 ,翻译者得功底也比较高,翻译地比较好 。所以建议还是看中文版 。《TCP/IP祥解》一共三卷 , 卷一讲协议,卷二讲实现,卷三讲编程应用 。我没有怎么看过 。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价 。《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理 , 卷二讲实现,卷三讲高级协议 。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典 。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌 。第一卷中还有很多习题也设计得经典和实用 , 因为作者本身就是一位教师,并且卷一是国外研究生的教材 。习题并没有答案,留给读者思考 , 因为问题得答案可以让你成为一个中级的Hacker , 这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典 。如果您看过Qterm的源代码 , 就会知道Qterm的telnet实现部分大多数就是从这本书的源代码过来的 。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》 。《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子 。作者母语不是英文 , 所以英文看起来比较晦涩 。国内翻译的是 《操作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了 。读了这本书,对操作系统的底层怎么工作的就会 有一个清晰的认识 。《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书 。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北 。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截 。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解 。6,Linux 该怎么入门呢一般情况下,大部分人接触Linux的机会并不多,对Linux平台下的开发更是一无所知 。而现在的发展趋势却越来越表明:无论是作为一个优秀的软件开发人员,或是互联网、IT行业的从业人员,掌握Linux是一种很重要的谋生资源与手段 , 很多迹象表明这是一个很好的加分项 。下来我将会结合自己的几年的个人经验,谈谈Linux的学习方法与学习中应该注意的一些事 。培养耐心,培养兴趣兴趣是最好的老师,建议你去摸索下Linux有些什么优点和特点,了解了这些可以提升你对Linux的好感,尝试着去了解、学习这些优点,掌握一些初级的“黑魔法”,相信你的心会慢慢得被Linux所捕获 。Linux入门其实是很简单的,问题是你是否能有足够的耐心,花相应的时间和精力来折腾 , 是否不排斥重装系统这种枯燥且万能的学习手段 。如果不愿意折腾可以说是学不好Linux的,要真正了解Linux的分区机制,对LVM使用相当熟练,没有个20次以上的Linux装机经验是积累不起来的,所以一定不要怕折腾 。由于大家之前都使用Windows,所以我也尽可能照顾这些“菜鸟” 。如果你第一次接触Linux,那么首先推荐在虚拟机中尝试安装、运行它 , 虚拟机Virtual Box、VMware Workstation,前者开源且免费 , 而后者则是闭源的、收费的 。我两者都使用过,前者免费固然好 , 性能上不如后者,如果你的Money足够多,可以尝试下正版VMware Workstation。另外Virtual Box的安装包很小巧 , Windows平台下安装包在90MB左右,而VMware Workstation 一般600MB以上,Linux系统下载地址:http://www.linuxprobe.com/tools关于学习什么Linux发行版 , 其实Linux的基本命令都是通用的,你如果在一种平台上面学好了 , 在其他平台基本上并不需要花多少功夫来重学 。另外我还是推荐一下,如果是软件开发方向呢,Ubuntu是首?。⒅刈烂嬗没У奶逖?nbsp;, 界面绚丽、更新快、功能多,在版本选择最好选择LTS(Long Term Support)版本的 。如果是服务器运维方向,或者对性能要求高、稳定性好呢 , 就选择CentOS和RedHat Enterprise Linux,在国内服务器系统领域,这两个Linux发行版算是份额很高的,具体他们的区别自己搜搜吧 。选一本书籍 , 吃透!接下来,你需要选一本书,然后专心致志的读完并吸收它,我见过很多初学者,一开始就买很多书籍,或者买很多视频 , 一会看看这个,一会看看那个的 。可是呢?技术却丝毫看不见长进,因此初学者要谨记:“切忌这山望那山高,不一而终” 。是该选书籍呢 , 还是视频呢?视频的效率真的很低的,比起看书,我认为效率至少要低一半以上了,所以我建议直接看书,或者网上找比较好入门帖子也是可以的 。总之 , 视频不是首?。?如果你时间多,也是可以的 。对于就算一本很普通的书籍,如果你吃透它 , 对初学者来说都会带来很大的进步 。因此,真的要选定一本,抱着这本不学完、不看完就不继续另一本的决心 。关于Linux的书籍,我推荐《Linux就该这么学》,这本书从最基础的安装Linux系统到高级服务部署,并且内容完全100%的覆盖了红帽RHCSA+RHCE认证考试范围,这样对想取得证书的朋友,也是非常有利的 。它对Linux方面的知识进行了提炼,为初学者节省了很多的时间,可以少走很多弯路 。你可以先百度一下这本书,看看这本书目录,再确定要不要用这本 。我相信不会让你失望的,如果你不喜欢也可以选自己喜欢的 , 但是请坚持吃透它 。三人行,必有我师!选两三个Linux群,加进去 。平时对群友问题认真对待的群友,可以加上 , 当你有问题的时候可以请教他,另外你在问问题的时候,请自己先试着解决,百度|谷歌一下 。最后实在解决不了再问 , 这样一是可以提高你解决问题的能力,二是培养独立解决问题的习惯 。关于如何提问,这也是一门学问,不要逮着就乱问一通,你的把你这个问题详细描述一下,你在什么环境遇到什么问题?什么版本?自己做了怎样的尝试,还是不能解决 , 系统给的提示是什么?这才算是一个完整、高效的提问 。有时候你提问不是人家不愿意你,而是你提问的水平太低了,想回答你吧,还得先问你几个问题确认一些情况 , 多么浪费人家的时间 。每个人的时间都是宝贵的,谁都没有义务回答你的问题,因此,提问的时候需要考虑帮助你的人的感受 。学习,就是修心无论是什么技术,如果没有一定的兴趣 , 天天面对着软件界面、命令行,时间长了就会变得非常的枯燥、乏味,这也是为什么把兴趣放在文首了 。一段时间后,你也许是步入佳境 , 也许是想放弃,我想对那些想放弃的人说:学习,本来就是一种修行 。人们往往偏向于选择内心感到舒适的事物,此时想放弃,是因为你内心觉得枯燥得难以忍受 , 此时从了你的内心 , 那么你将被自己打败 。人在成长的过程中,每一次成长都是你决绝了那个舒适的选择,远离舒适区就会让你成长,在工作中,老是做得心应手的工作,你并不会成长,如果你做高于你能力一点点的工作 , 你才会得到成长,不断的“一点点”积累,终究一日你会发现你的积累是十分巨大的,这也是数学中的“复利” 。相信那些能让自己拒绝待在舒适区的朋友,会在这一条学习路上不停的前进,相信你们学习Linux能获得的收获,但是,前提依然是:耐心、坚持、从一而终 。转自:linux伊甸园开发板推荐买2440系列,比如友善公司的mini2440,性价比很高 。Linux一定要熟悉基本命令操作 , 装个Linux系统吧,推荐Ubuntu , 适合新手 。因为嵌入式linux涉及的知识面很广,所以要看的书很多,所以毅力很重要 。主要的课程包括数字电路,微机原理和接口技术,操作系统原理,数据结构和算法,C语言,嵌入式系统原理,ARM汇编 。关于ARM汇编的书,推荐杜春雷写的《ARM体系结构与编程》 。另外推荐韦东山的《嵌入式linux应用开发完全手册》 , 2440的板子配套使用该书效果不错 。此外 , 编程方面C语言很重要 , 这方面经典的书很多,这里不作推荐 。最好找本Linux下C编程的书实践一下 。打好基础后再深入学习linux内核编程吧,学好了前途一片光明啊,这方面的书也不少经典,《Linux内核设计与实现》,《深入理解linux内核》,《linux设备驱动程序》,这三本都是国外经典中的经典,在加上国内《linux内核源代码情景分析》(书名大概是这个)就是传说的linux四库全书

    推荐阅读