千家信息网

入门Linux到底该学什么好

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,这篇文章将为大家详细讲解有关入门Linux到底该学什么好,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我们常常听到很多人说要学学Linux或者被人告知
千家信息网最后更新 2025年02月16日入门Linux到底该学什么好

这篇文章将为大家详细讲解有关入门Linux到底该学什么好,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么?

为什么要学Linux

在回答学什么之前,我们先看看为什么要学。首先我们需要认识到的是,很多服务器使用的是Linux系统,而作为服务器应用程序的开发者或者维护者,如果不了解Linux的基本使用,该如何进行开发或者维护呢?

当然,也有可能你听说Linux更高大上,或者是说Linux对开发者更加友好(Windows用户把刀放下),这都是题外话了。

在我看来,学习Linux主要有以下两点原因

  • 使用标准C/C++ 编写运行在Linux上的应用程序

  • 编写部署在Linux上的应用程序,如Python,Java web服务程序

  • 一探究竟。众所周知,Linux开源,windows并非如此。

而对于Python,它有Python解释器,Java有Java虚拟机,他们实际上对Linux的需求是没有C/C++来的高。即便如此,Linux也是值得Python/Java开发者去学习的。

Linux学习方向

那么一般说的学Linux是要学什么呢?方向不同,要学习的内容也不同,可以大致分为这么几个方向:

  • 运维,维护Linux服务器

  • 应用开发,开发Linux应用程序

  • 底层开发

我本人是做Linux应用开发的,因此对于运维方向和底层方向不是很了解,这里仅简单说一下。

运维Linux主要需要学会对服务器的基本部署,监控,配置,管理等等, 你可以认为,这些机器归你管了,7*24小时保障它能正常提供服务(删库跑路就别做了),所以7月24日请对运维的朋友好点。也欢迎运维的朋友留言纠正或者补充我的说法。

底层开发需要了解uboot,文件系统,内核等底层相关内容,主要工作可能涉及文件系统裁剪,驱动开发,内核模块定制(如内存管理,进程调度)等等。底层开发总体来说要求比较高。

应用开发自然是需要学习如何开发在Linux上运行的应用程序,如何定位Linux应用程序问题等等。

Linux应用开发学什么

Linux的学习很多会以命令为主,因而初学会觉得枯燥甚至疑惑,鼠标点点点就能完成的事,为什么要噼里啪啦敲这么多?这里给出两点理由,也欢迎你补充:

  • 出于资源的考虑,绝大部分Linux服务器没有图形界面

  • 命令行便于自动化,将一系列操作写入脚本,可代替手动操作

而它的学习我把它分为这么几个阶段:

  • 基本使用

  • 开发调试

  • 系统认识

这三个阶段对知识积累的要求不一样,但总体来说并没有严格的先后之分。

类于windows,当年你学习windows的时候学了什么?

  • 开关机?

  • 安装卸载软件?如安装视频播放器,音乐播放器(为啥要安这玩意?)。

  • 如何打开安装的软件?如打开浏览器上网,打开编辑器写文档

  • 如何存放自己的资料?移动,创建,删除等等

  • 如何使用office 办公软件

  • ……

是不是想想好像也没有特意地去学习?

那么对于学习Linux来说也是类似的,就是学会这些最普通的使用,

  • 如何开关机

  • 如何上网

  • 如何打开命令行

  • 如何使用命令行安装卸载软件

  • 如何编辑文本

  • 如何创建,移动,删除文件

  • 如何查看文件内容,解压缩文件

  • ……

这个阶段最难的就是从图形界面到命令行的转换。

那么第二阶段呢,就需要学会:

  • 如何编写Linux应用程序

  • 如何编译或者构建你的程序

  • 如何运行你的程序

  • 如何定位程序bug

而第三阶段,则是一个需要漫长的学习过程,但都是为开发服务,包括:

  • 理解并践行一切皆文件

  • ELF文件,Linux主要可执行文件格式

  • Linux各大机制的基本原理,如进程调度,内存管理,虚拟内存,文件系统等,既然要写Linux应用程序,怎么能不了解它所在平台的主要机制呢?

越是疑难问题,越需要这些最基本的知识。

怎么学?

来到了大家最关心的问题了,同样的,每个人的情况不太一样,这里只给出我的个人建议。

关于第一阶段,你可以先定个小目标,例如一段时间内学会在Linux下进行你的日常活动(玩游戏就算了),例如编写文档,看视频等等。同时建议:

  • 选择主流的发行版,如ubuntu,centos等,遇到问题时比较容易解决

  • 在window下安装虚拟机,这样Linux环境就随你折腾了

在这期间,你可能需要了解

  • 使用apt-get或者yum安装或卸载软件

  • 使用tar,unzip,zip,gz等解压缩软件安装包

  • 了解运行环境,学会如何执行命令

这里的学习你可以通过网上搜索资料(视频教程或者博客文章)或者购买相关书籍进行操练。如果你不想安装虚拟机或者docker,你可以通过一些在线的Linux来体验。

第二阶段也是主要的阶段,这一阶段要学习的东西非常多,多是命令的学习,这里同样可以参考《鸟哥的Linux私房菜-基础篇》。不过初期阶段建议抱着一个目的去学习,就是如何在Linux写一个完整的程序,为了达到这个目的你需要学习

  • cd touch cp mv rm ls,find,切换目录,创建,复制,移动,删除,查看,查找等等

  • vi/vim 编写代码,这里有一个在线练习网站

  • gcc编译代码,后期可能需要学习makefile,cmake等构建工具

  • 版本管理,git也是当前必备的一个工具了,学习资料推荐pro git

  • gdb调试,可以参考《GDB调试指南》

  • 问题定位,除了观察最基本的打印之外,还需要知道,如何查看进程信息(ps),如何查看网络连接信息(ss,netstat),如何强制停止进程(kill -9)如何查看进程文件打开情况(lsof),如何多种姿势查看文本文件(cat,tail,more,less)等等。

  • 脚本学习,学习Linux,就不得不学习shell脚本了,它在很多时候能毫无抱怨地帮你做事,前提是你会调教。《Linux命令行与shell脚本编程大全》也是调教教程之一。这里也有一些《必备的shell知识》

这个过程涉及到的命令非常多,但是不建议每一个都去细学,首先知道有这么一个命令即可,然后需要的时候能够快速找到用法,记住你的目标就是流畅地进行开发调试,而在达成这个目标地过程中,你自己也会慢慢接触到更多。

但是有必要说明的是,开发Linux应用程序并不一定要在Linux下编写代码,你可以选择利用samba等工具在windows和linux之间共享文件,然后再在windows下熟悉的工具中或者你认为比较强大合适的工具中编写代码,在Linux下进行编译调试即可。当然你也可以选择Linux下的IDE,或者将vim调教一下也是可以的。

第三阶段要求是比较高的,这个时候你应该学习过操作系统的相关课程,然后你可以通过诸如《深入理解计算机系统》,《Linux内核设计与实现》,《深入Linux内核架构》,《深入理解Linux内核》等书籍进行相关概念学习,也可以通过阅读源码进行深入学习,最终,你需要了解堆和栈,内存管理,进程调度,虚拟内存,文件系统等相关知识。

当然相关命令学习也必不可少,例如readelf,nm,ipcs,iostat,objdump,free,chrt,pmap,uptime,top,pidstat等。

以上就是三个阶段Linux相关的学习内容和建议,实际上C/C++相关的同步学习也非常重要,包括相关数据结构与算法,系统编程,网络编程等内容的学习,否则看到很多命令的结果仍然会一脸懵逼。

最后,建议实践再实践。

在线就能用的Linux给你找好了

如果你不想安装虚拟机,这里提供几个在线就能把玩Linux的网站,他们不需要注册用户,可以直接使用。

Unix Terminal Online

地址:

https://www.tutorialspoint.com/unix_terminal_online.php


这个网站也支持代码的编译运行,而且速度还可以。

JS/UIX - Terminal

地址:

https://www.masswerk.at/jsuix/index.htm


进入后,点击open terminal即可。它提供非常简单的终端环境,而且没有自带gcc等编译套件,不过练习基本命令和shell脚本还是可以的。整体使用起来也比较流畅。

cb.vu

地址:

http://cb.vu


它使用的是 FreeBSD,整体也是非常流畅,不过同样不支持代码编译运行。

copy.sh

地址:

https://copy.sh/v86/?profile=linux2


它可以全屏体验,让你感觉就是在一台真的Linux上玩耍,同时还支持多种发行版,想体验不同系统的可以试试。


jsLinux

地址:

https://bellard.org/jslinux/


它提供多种系统选择,你也可以在上面编译运行代码。

不过整体感觉不是很流畅。

Bash Shell

地址:

https://www.jdoodle.com/test-bash-shell-script-online/


这里可以专门用来练习shell编程

paiza

地址:

https://paiza.io/en/projects/new?language=bash


同上,可以用来学习shell脚本。

ShellCheck

地址:

https://www.shellcheck.net/

就像它的名字一样,它是用来检查你的脚本可能存在的问题的。

写好的脚本就是没有如预期一样运行?不如shellcheck一下?

关于入门Linux到底该学什么好就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

学习 开发 程序 命令 文件 应用 阶段 系统 应用程序 地址 脚本 服务 运行 代码 内容 编译 就是 建议 知识 软件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 长沙理工大学网络安全研究生咋样 上海美格网络技术有限公司 遂溪软件开发定制 软件开发培训机构就业 学计算机网络技术基础是什么 网络安全文明上网手抄报6年级 华为网络技术工程师收女生吗 阿尔法数据库使用帮助 数据中心服务器 南昌哪些公司做网络安全的 我的世界神秘4服务器 特别关注船舶网络安全检查思路 戴尔服务器没有远程桌面选项 吉林正宗服务器机柜 我的世界服务器怎么重启存档 可视化软件开发课程 浙江正规软件开发服务 重庆购物软件开发 江西智能化软件开发供应 数据库dtos 合并单元格数据库 正数网络技术有限公司加班 网络安全宣传图片大全小学生 数据库关系图计算公式 广西哪里有培训软件开发的 新基建数据库前景如何 南阳市华腾网络技术有限公司 如何下载路由器服务器地址 重庆购物软件开发 粤康码多少台服务器
0