谈一谈我的 Linux 学习方法

简介: 谈一谈我的 Linux 学习方法

很多朋友应该已经知道,我是由机械强行转行到 Linux。但是,我是 Linux 应用开发,而不是运维!所以,很多朋友拿一些运维相关的问题来问我,我也答不上来啊!


我不是说运维工程师怎样,只是说,这是两个不同的方向。我是做 Linux 的,但不代表关于Linux的什么都懂。就像你们天天用 Windows 电脑,但你们会在 Window 下开发个应用程序吗(专业人员除外)?


由于我自己也是个转行的,所以我的底子相对科班来讲肯定要薄弱。但是,我也是在不停的学习,丰富自己的知识,提高自己的技能。下面我结合自己的自学经历,谈一谈自己对于Linux学习的一些经验与看法。


很多学习经验我已经分享到了我的那篇自学之路,点击下文即可查看:


Linux应用开发自学之路


Linux 常用命令怎么学?


不管是做 Linux 哪个方向的,Linux 的一些基本操作是肯定需要过关的。对于这些基本操作,百度上搜索一下「Linux 常用命令」,会出来一堆的资料。这些资料里,挑一个最顺眼的看就可以了。


很多人推荐「鸟哥的私房菜」,但我并不是很推崇它。对于运维人员来讲,这是一本必备书,但如果仅仅是学习 Linux 的基本操作的话,完全没必要这本书。为啥呢?因为这本书面面俱到,对于初学者来讲,肯定是量太大了。


Linux 的命令有非常多个,但常用的命令可能也就那么二三十个。所以,先把那些命令全部学完之后,再去拓展更高级的命令。有些命令你可能一辈子都用不到,所以千万不要要求自己全部掌握 Linux 所有命令。


Linux 应用开发是什么?


很多朋友一直在问我,Linux 应用开发到底是什么?我通常会拿 Windows 应用程序来比喻:


QQ 是 Windows下的一个应用程序是吧?Windows 是操作系统,而 QQ 就是跑在 Windows 上的一个应用程序。而 Linux 应用开发就是在 Linux 操作系统上开发一个类似于 QQ 这样的应用程序。


所以 Linux 应用开发更偏向的是 开发 ,而运维更偏向的是 Linux 的一些操作。

对于 Linux 应用开发的学习请查看下文:


Linux应用开发自学之路

Linux 底层开发学习方法


Linux 还有一个重要的方向是底层开发。很多公司,特别是小公司,经常是底层开发人员由应用开发人员一并兼任,所以,底层开发也是嵌入式人员需要掌握的技能之一。


对于底层开发,一般涉及到四个方面:bootloader、内核、驱动程序、根文件系统。学好这四个方面,基本上就是一个合格的底层开发工程师。


bootloader


bootloader 其实就是一个复杂一些的裸板程序。虽然复杂了一些,但还是很多人把它看懂了,并且很多高手甚至自己动手写了另外一个功能相同的 bootloader。

bootloader 涉及到比较底层的操作,直接面对硬件,所以需要有一定的硬件知识。可以参考的书籍是:ARM体系架构与编程嵌入式Linux应用开发完全手册,除此之外,可以参考韦东山的1期视频


内核


内核是一个非常庞大的代码,想要把它看完读懂要花费不少的时间。当然,对于新手,千万不要要求自己去看懂内核,除非你是学生。对于内核,可以参考两本书:Linux内核完全注释Linux内核源代码情景分析


驱动程序


同样的,驱动程序部分也是直接面对硬件,所以硬件知识是必不可少的。要想写好驱动,一定要学会看原理图,读懂芯片手册。没有别的办法,多练吧。对于驱动,可以参考的书有:Linux设备驱动开发Linux设备驱动开发详解嵌入式Linux应用开发完全手册,除此之外,可以参考韦东山的2期视频


根文件系统


根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。


Tips:


对于底层开发的学习,没有特别的办法,就是要做到多看、多理解、多练。有时可能会比较繁琐,写了很多代码,改了很多参数,但是却一直没达到预期效果。遇到这种情况,一定要沉住气,一步步排查,找到问题的症结点。

目录
相关文章
|
1月前
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
|
1月前
|
存储 安全 Linux
|
2月前
|
Ubuntu Linux 网络安全
在Linux上安装软件有多种方法
在Linux上安装软件有多种方法
129 64
|
1月前
|
Linux Shell 数据安全/隐私保护
|
1月前
|
Linux Shell 数据库
文件查找是Linux用户日常工作的重要技能介绍了几种不常见的文件查找方法
文件查找是Linux用户日常工作的重要技能。本文介绍了几种不常见的文件查找方法,包括使用`find`和`column`组合、`locate`和`mlocate`快速查找、编写Shell脚本、使用现代工具`fd`、结合`grep`搜索文件内容,以及图形界面工具如`Gnome Search Tool`和`Albert`。这些方法能显著提升文件查找的效率和准确性。
53 2
|
2月前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
87 1
|
2月前
|
运维 安全 Linux
Linux文件清空的五种方法总结分享
每种方法各有优势,选择最合适的一种或几种,可以极大提高您的工作效率。更多有关Linux系统管理的技巧与资源,欢迎访问,持续提升您的运维技能。
88 1
|
2月前
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
|
2月前
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
49 1
|
2月前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
48 1