推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

学linux基础入门

   2023-07-17 网络整理佚名1860
核心提示:2、Linux平台的C/C++开发,同时还有Bash脚本编程[JAVA]再下个阶段,你需要学习的是Linux平台的C/C++开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。所以Linux平台的开发大多是专注于底层的或服务器编程。网络方向:服务器软件编写及高性能的并发程序编写如果选择网络,再细分,我对其他的不是他熟悉,只说服务器软件编写及高性能的并发程序编写吧。

Linux 是免费的、自由的、开源的。 它是一个基于Unix的多用户、多任务操作系统。 任何人都可以修改其代码和页面。 主要目的是为了避免商业限制,并且我们将服务器部署在linux系统上会更加高效、稳定、安全(注:UNIX操作系统(),是一个功能强大的多用户、多任务操作支持多处理器架构的系统)。 linux最初是由芬兰赫尔辛基大学的学生Linus开发的,1991年出于业余爱好设计了Linux系统的内核,并于1994年正式采用GPL协议。推荐的发行版如下:

Linux学习进阶路线

1.Linux基础知识

您必须选择一个适合您的系统,将其安装在虚拟机中,然后开始使用它。 如果你想快速学习Linux,我建议你放弃图形界面。 不要去想图形界面能否提供你问题的答案,而是满世界寻找、询问,如何使用命令行来解决你的问题。

在这个过程中,你最好掌握好Linux命令,至少是常用的命令,同时建立自己的知识库,里面包含了你所积累的各种知识。

2. Linux平台上的C/C++开发,以及Bash脚本编程[JAVA]

下一阶段,你需要学习的是Linux平台上的C/C++开发,以及Bash脚本编程,如果你对Java很感兴趣的话,还需要学习Java。 同样,建议您放弃图形界面的IDE并开始使用VIM。 为什么是 VIM 而不是 Emacs? 我无意挑起编辑器战争,但我认为 VIM 适合初学者、手笨手脑慢的开发者。 恐怕 Emacs 的按键太多而且太复杂。 然后是 GCC、Make(Java、C++ 或)。

虽然列出了C++,但是我不建议使用IDE来开发C++,因为这不是Linux的文化,而且很容易让你忽略一些应该注意的问题。 IDE让你变得懒惰,懒得像猪一样。 如果你对程序调试和测试非常感兴趣,你就得学好GDB,如果不会的话GDB也是必修课。 这是发展的第一步。 注意,我没有提到Linux系统API的内容,所以现阶段不用担心。 你所要做的就是在Linux平台上积累经验、开发经验。

我推荐的书是:C语言编程。 C语言,有白皮书当然更好。 C++ 推荐 C++ Plus。 我不喜欢Java,所以不推荐它。 我附上别人的书单:java入门书籍。 工具方面,推荐VIM的官方手册、GCC中文文档、GDB中文文档、GNU开源软件开发指南(电子书)、汇编语言编程(让你初步了解库、链接、内联汇编、编译器优化选项,不一定很深)。

如果你过不了这个阶段,就不必往下走。 这是底线,最基本的基础,否则离开,不要急于开发Linux。 不专业的Linux开发人员做出来的程序是违背Linux文化或者UNIX文化的,这样的程序走不远。 不可能像 Bash 和 VIM 那样。 所以,如果你做得不好,就离开吧。

3、UNIX环境下的高级编程(作者英年早逝)

UNIX环境下的高级编程堪称杰作,经典中的经典。

接下来进入Linux系统编程,必选,APUE,UNIX环境下的高级编程,一遍又一遍地看,看10遍也太少了,如果大学能看这本书,里面的内容有练过,有作品,你的口语表达能力足够强,面试时可以说服所有考官。

(可能有点夸张,但APUE绝对是圣经读物,连程序员都从中汲取营养,创始人的案头书,扎伯克的床边读物。)

读完本书,你会对Linux系统编程有相当的了解,知道Linux和平台开发的区别吗? 他们的优点和缺点分别在哪里? 我的总结是:平台开发是非常困难的。 微软的系统API一直在扩展。 如果你想使用最新、最高效的功能,就必须时刻学习最适合当前流行系统的功能。 Linux 则不然。 Linux系统中核心API只有100个左右,只要记性好就可以记住。 而且已经很久没有变了,为什么不变,因为它必须要兼容UNIX,符合POSIX标准。 因此,Linux平台的开发大部分集中在底层或者服务器编程上。

这是它的优点。 当然,图形是Linux的弱项,但从开发者的角度来看,我不在乎,因为我也可以适应命令行。 如果有更好的图形界面,我会把它作为礼物。 另外,闭源,你根本不知道系统做了什么,永远都会被微软牵着鼻子走。 想想看,如果微软说Win8不支持QQ,那腾讯就要哭死了。 而且Linux是完全开源的,如果你不喜欢它,你可以自己改,只要你足够熟练。

另外,虽然使用的人很多,但使用的场合比较单一,主要集中在桌面上。 而且Linux在各个方面都得到了发展,特别是在云计算、服务器软件、嵌入式领域以及企业级应用领域有着广阔的前景,并且具有一流的兼容性。 由于它支持POSIX,因此可以在UNIX系统上无缝运行。 完全支持Apple的Mac或IBM的AS400系列。 另外,Linux的开发环境支持绝对是一流的,无论是C/C++、Java、Bash、、PHP、、。 。 。 。 。 。 甚至 C# 也支持它。 而且微软除了套件之外都不太友好不是吗?

如果你读完APUE有很多感想,希望验证你的一些想法或者经验,我推荐《UNIX编程的艺术》,世界顶级黑客会和你分享他的观点。

4.选择方向:网络、图形、嵌入式、设备驱动

网络方向:服务器软件编写及高性能并发编程

现在是进行分类的时候了。 总的来说,我分为四个方向:网络、图形、嵌入式、设备驱动。

如果选择网络然后再细分的话,其他的我就不熟悉了。 我只讲服务器软件编写和高性能并发编程。 相对来说,这是网络编程中最具技术含量的,也是最底层的。 它需要大量的经验、阅读大量的书籍、做大量的项目。

我的看法是按以下顺序阅读书籍:

进一步阅读APUE——尤其是进程、线程、IPC、多核编程——一定要吃透,你很擅长网络编程——卷一、卷二TCP/IP网络详解——卷一当你读完又是上面两本书了 5. TCP/IP网络详解-第2卷 我觉得第2卷差不多了,当然第3卷更好,试试看吧 6. 源码-这个服务器也很有名7.Nginx源码——与Nginx相比,源码较少,如果能粗略地看一下,就很NB了。 看源码主要是学习里面的编程和并发控制,想想就兴奋。 如果你有这些技能,你可以尝试把你的简历发给暴雪,给他们写一个服务器后台,想想在你的服务器软件上运行魔兽世界。 Linux内核TCP/IP协议栈——深入理解TCP/IP的实现

如果你仍然喜欢驱动程序设计,你可以看看较低层的协议,比如链路层。 编写路由器、网卡、网络设备驱动程序和嵌入式系统软件应该不成问题。

当然,普通的互联网公司,哪怕是百度级别的公司,都应该毫不犹豫地录用你。 阅读以下书籍只是需要时间和经验,所以在35岁之前就读吧! 跳到一个给你未来的地方!

图形学方向,我觉得图形学方向也是很有前途的,有以下几个方面。

中国的产业和游戏发展比国外更加成熟。 影视动画特效,如皮克斯,在国外比较成熟。 GPU计算技术可应用于浏览器网页渲染和GPU计算资源利用。 由于开源,有很多文档程序可供参考。 如果你能进入开发,或者做浏览器开发,应该是很不错的。

嵌入式方向:嵌入式方向就不说了,Linux很重要。

掌握多种架构,不仅要懂X86、ARM,还要懂单片机。 如果你不懂硬件,我预见你会死在半路上,我也想往嵌入式技术的方向走,但我觉得就学校教嵌入式的方法来说,我连竞争的能力都没有与学习电子学的学生。 奉劝大家,做之前一定要了解硬件。 如果你去嵌入式应用开发,我只能祝你好运。 不要碰上诺基亚、惠普这样的公司,不然你就惨了。

驱动设计:软件开发周期很长,而且硬件不同,速度很快。 每个月都有如此多的新硬件问世,您的工作就是让它在 Linux 上运行。 由于Linux的兼容性好,如果驱动不是太底层的话,基本的C语言都可以使用,对系统架构影响不大。 由于系统支持,您可能会进行一些更改以在 ARM 上使用 PC 硬件。 所以硬件驱动开发不像嵌入式,需要很高的硬件知识。

可以从事的方向也很多,比如家电,特别是索尼、日立、希捷、富士康这样的工厂,非常稀缺。

1、基本功要扎实

要学习任何语言,必要的基本技能是必要的。 一方面可以提高效率,另一方面可以拓宽思路。

对于一些初学者来说,学习Linux的基础知识是很枯燥的。 可以先通过理解和背诵来学习代码和语法,然后再进行实际操作。 您必须手动输入命令行而不是使用工具。 更快、更有效地掌握 Linux。

2. 学以致用

学习Linux的目的是为了应用它。 Linux的基础知识就是一些零散的技术。 当它没有应用到项目中时,我们无法理解它的真正价值。 所以,奠定了基本功之后,当务之急就是多做几个完整的项目。 一开始可以是功能简单的项目,之后可以选择稍微复杂一点的项目。 如果你勤奋、敢于实践,你一定能学好Linux。

3.学习使用Linux在线帮助

任何一种教科书都不会完整描述Linux知识。 一般来说是比较常用或者比较有代表性的知识。 然而,在我们的项目应用中,一些功能的实现往往需要一些不常见的知识和技能。 那么,如何找到我们需要的知识呢? 建议查阅Linux帮助文档。 主流的Linux都带有详细的帮助文档,解决问题非常方便!

4. 网上查找资源

在Linux的学习和应用中,难免会遇到一些自己没有想法、不知道如何解决的问题。 这时候就需要借助互联网的力量,可以通过搜索引擎进行搜索,或者咨询高级技术人员,最终解决问题。 ,这是积累Linux知识的重要途径!

5.查阅英文技术文档

如果你想深入学习Linux,查阅英文技术文档是非常有必要的。 通常最新的技术都会以英文文档的形式发布,而且更加全面。 因此,对于Linux人员来说,要多阅读Linux技术文档。 尖端技术和知识的深化是必须的!

Linux学习是一个需要长期坚持的过程,新技术不断涌现。 如果你想成为Linux高手,就必须时刻关注Linux的发展,掌握最新技术,才能走在行业的最前沿!

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON