想系统进阶一下 Linux 求推荐一下工具书

295 天前
 MSIAM

RT

Linux 一直有断断续续用过。但是感觉一直很浅。 所以想进阶一下。

目前的水平的话: 基本的操作大致都会. 对于文件系统方面的操作只会 cfdisk ,mkfs ,tune2fs 等。 对于 systemd 和 initd 这两个只会最基本的 start 之类的操作。其他基本不熟。 网络方面也不是特别熟悉。 gnome 这种也不熟悉。 进程相关的只会大概 PS ,top 大概会看,kill 勉强会用但是不熟悉。 包管理器方面只熟悉 apt ,opkg 。

比较想进阶的方向就是内核方向,还有 GCC ,Make 之类的。 虽然目前来说有最基本的排障能力但是太弱了。 很多问题都排查得很浅显。

书比较希望是中文的比较好。

另外还想知道一下我目前这个水平大概是什么程度?

2054 次点击
所在节点    Linux
23 条回复
wudiiiii
295 天前
工具就是拿来用的,有啥不懂可以问 gpt ,”想要系统学习“是完美主义心态,不可取。

”还有 GCC ,Make 之类的“ 可以看看程序员的自我修养。
121812
295 天前
《性能之巅》
retanoj
295 天前
man
MSIAM
295 天前
@wudiiiii 的确有在用的,但是感觉有很多东西不明白。想买一本合适一点的用来作为类似词典的用法吧。
而且还是感觉缺少了很多的基本概念。比如 k3s ,qemu 之类的东西是什么。知道这些东西,,但是我用的都是别人打包好的成品系统,所以完全没关心过这方面的东西、
MSIAM
295 天前
@MSIAM 严格来说是只用过几个发行版,例如 ubuntu ,TrueNAS ,Unraid ,Openwrt ,群晖,AIX ,
guilinxiaobing
295 天前
看 windows 核心编程
MSIAM
295 天前
@guilinxiaobing 草,这不是 Windows 的吗
guilinxiaobing
295 天前
@MSIAM 没错,看完就觉得 linux 简单多了
MSIAM
295 天前
@guilinxiaobing 倒不是觉得 Linux 难,只是没有思路。没有一个学习路径
guilinxiaobing
295 天前
如果仅仅是使用,那也够了,没必要深入;
那些使用得多的工具命令自然也熟悉;
像上面这些工具命令,不就和在 windows 新建文件夹、打开进程管理器,打开服务管理器这此鼠标双击的工作吗。
如果要深入了解,自然是先了解平台的 api ,然后开发应用程序(工具),再深入的到驱动。
ltkun
295 天前
关键学了干嘛 正常么 windows 怎么用 linux 也可以 很多地方可以做的更好
Evovil
295 天前
实践是最好的学习和进阶的方法

"比较想进阶的方向就是内核方向,还有 GCC ,Make 之类的。 虽然目前来说有最基本的排障能力但是太弱了。 很多问题都排查得很浅显。"

看表述是想精进内核和原理相关,看上面的表述就基本运维水准(可能都没到)。。

要想对 linux 有深度理解,还是写程序吧。
先在 linux 下写一点用户态程序,摸清楚基本的 api ,posix 接口,网络,文件操作 IO 之类的
再进阶就是内核相关的,写一点驱动之类的。

自己不写,光看,看完就忘。。
在实际使用中遇到什么再去看什么,当需要研究网络相关就去看 TCP/IP 卷 1234 ,有驱动需求可以看 unix 环境高级编程之类的,也可以看源码解决问题,把问题解决了才会收获知识。

你要系统学习,数据结构,计算机原理,算法开始看起来,当然你会问这些问题,肯定默认你不会看的完这些了。从实践开始吧,先培养兴趣,获得成就感。
LindsayZhou
295 天前
内核跟应用软件关系不大,你举的例子都不是内核里的东西。所有才有人强调要叫 "GNU/Linux" 。
各个发行版内核可能会有一些小修改,只用来学习都没什么问题。

我在看这本书 [深入 Linux 内核架构]( https://book.douban.com/subject/4843567/ ) 。
个人感觉压力不是很大。只是看代码实现的部分的时候,需要自己拿纸笔画一下,不然函数变量什么的太多,只靠脑子理不清楚。
mineralsalt
295 天前
学不完, 根本学不完, 需要什么就去查什么
zjsxwc
295 天前
如果你要搞 linux 内核,建议时常逛逛 https://kernelnewbies.org/Documents
如果和我一样工作不涉及 kernel 、驱动之类的,只是使用与运维,建议看 arch wiki 。
KingHL
295 天前
unix 环境高级编程
unix 网络编程卷
MSIAM
295 天前
@Evovil 明白了,多谢
Perfect1zsh1t
295 天前
unix 环境高级编程
unix 网络编程卷

上面老哥推荐的这些挺不错的,推荐看看,除此之外在学习网络编程的时候推荐看看游双的《 Linux 高性能服务器编程》这本书,这些学完大概对 Linux 系统调用的使用有一个认识,也能更深入理解这些 Shell 命令背后的实现,同时对网络通信有一定认识。
acerphoenix
295 天前
linux 大致分三种吧,第一种玩的,折腾各种桌面啊,工具啊,原始构建啊;第二种运维的,之前看鸟哥私房菜基本够了或者把他当目录方向,毕竟比较久远了。第三种系统开发的, 那就得从 c 语言计算机组成操作系统看起了,然后再看 linux 内核设计实现,unix 高级编程啥的。
rickiey
295 天前
unix 环境高级编程
unix 网络编程卷

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX