最新Linux极速上手,超全面总结

  • 多级目录:mkdir –p 目录名 【指的是中间的目录不存在也能直接创建,一次可以创建多级文件夹】

7.2.5 touch [文件名] [文件名] ……

创建一个或者多个空文件,如果文件存在,则刷新文件的修改时间

7.2.6 rmdir [空目录]

只能删除空目录

7.2.7 remove [文件名]

删除文件

7.2.8 rm -rf [空目录或者非空目录]

删除空或者非空目录,其中选项r表示文件与子目录全部删除,f表示全部删除,不需要询问

7.2.9 clear 或者 Ctrl+L

清除bash上的命令行

7.2.10 cp [选项] [source源] [dest目的文件]

选项为-r表示递归复制整个文件夹

7.2.11 mv

移动文件或者重命名

示例:

  • 将 /home/aaa.txt 文件 重新命名为 pig.txt

mv /home/aaa.txt /home/pig/txt

  • 将 /home/pig.txt 文件 移动到 /root 目录下

mv /home/pig.txt /root/

  • 将/sharm目录下的dataset文件夹移动到/sharm目录下的/Tumor下

mv /sharm/dataset /sharm/tumor/

7.2.12 cat [选项 -n表示显示行号]

以只读形式打开文件

说明:

如果需要一行行,输入 enter;

如果需要翻页,输入空格键;

如果需要退出,输入 q。

7.2.13 more

采用more来查看文件

说明:

空格键 代表向下翻一页;

enter 代表向下翻一行;

q 代表立刻离开 more ,不再显示该文件内容;

ctrl+F 表示向下滚动一屏;

ctrl+B 表示返回上一屏;

= 表示输出当前行的行号。

7.2.14 less

和more的功能类似,但是其并不是一次将整个文件加载进来再显示,而是根据需要再显示,之后看大型的日志一般推荐less。

选项:

在这里插入图片描述

7.2.15 >与 >>

单个>:输出重定向指令 (会将原来的文件的内容跟覆盖)

两个>>:追加指令 (不会覆盖原来文件的内容,而是追加到文件的尾部)

示例:

  • ls -l >sharm.txt (功能描述:列表的内容写入文件sharm.txt中(覆盖写))

  • ls -l >>sharm.txt (功能描述:列表的内容追加到文件sharm.txt的末尾)

  • cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

  • cat 文件1 >> 文件2 (功能描述:将文件1的内容追加到到文件2末尾)

  • echo “内容”> 文件 (将内容下写道文件中(覆盖写))

  • echo “内容”>> 文件 (将内容下追加到文件末尾)

7.2.16 echo $PATH

输出当前的环境变量

示例:

  • echo hello world 在命令行(控制台)输出hello world

7.2.17 head 文件

用于显示文件的开头部分内容,默认情况下head 指令显示文件的前10 行内容

示例:

  • head -n 5 文件 (查看文件头5行内容,5可以是任意行数)

7.2.18 tail 文件

用于输出文件中尾部的内容,默认情况下tail 指令显示文件的后10 行内容

示例

  • tail -n 5 文件(功能描述:查看文件后5 行内容,5 可以是任意行数)

  • tail -f 文件(功能描述:实时追踪该文档的所有更新)

7.2.19 ln -s [原文件或目录] [软链接名]

给原文件创建一个软链接,软链接也成为符号链接,类似于windows 里的快捷方式,主要存放了链接其他文件的路径,当我们使用pwd 指令查看目录时,仍然看到的是软链接所在目录。

示例:

  • ln -s /root/ linkToRoot 在/home目录下创建一个软连接linkToRoot,连接到/root 目录

  • rm -rf [软链接名] 删除软链接。删除软链接时,软链接名后面不要带斜杠

7.2.20 history

查看已经执行过得历史命令,也可以执行历史命令

示例:

  • history 显示所有的历史命令

  • history 10 显示最近使用过的10个指令

  • !5 (在已经输入history的前提下,执行历史编号为5的指令)

7.3 时间日期类


7.3.1 date

示例:

  • date 显示当前时间

  • date +%Y 显示当前年份

  • date +%m 显示当前月份

  • date +%d 显示当前是那一天

  • date “+%Y-%m-%d %H:%M:%S” 显示当前年月日时分秒(中间的-可以用任何符号代替,但最前面的+一定要有)

  • date -s 字符串时间(“2020-11-11 12:22:56”) 作用:自己人为设置当前时间

7.3.2 cal

显示本月日历

示例:

  • cal 显示本月日历

  • cal 2020 显示2020年日历

7.4 搜索查找类


7.4.1 find [搜索范围] [选项] [文件]

find指令是将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

在这里插入图片描述

示例:

  • find /home -name hello.txt 根据文件名称查找/home目录下的hello.txt文件

  • find /home -user sharm 根据文件所有者查找/home目录下用户名为sharm的文件

  • find /home -size +10M 查找整个linux系统下大于10M的文件(+n大于-n小于n等于)

7.4.2 locate

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

示例:

  • updatedb

locate hello.txt 查找整个Linux系统下hello.txt的位置

7.4.3 grep 与管道符“|”

grep的作用是过滤查找,|的作用是将前一命令的结果传到后一命令上

grep的选项:

-n 显示匹配行及行号;

-i 忽略字母大小写;

示例:

  • grep -n if /home/hello.txt

  • cat /home/hello.txt |grep -n if 两者的作用相同,均是在hello.txt文件中找到if的行号,就像英文中的主动与被动语法。

7.5 压缩和解压类


7.5.1 gzip与gunzip

gzip为压缩文件命令,只能将文件压缩为*.gz文件(不能压缩文件夹);gunzip为解压文件命令

示例:

  • gzip /home/hello.txt 将hello.txt文件压缩成*gz的压缩包(删除原文件)

  • gunzip /home/hello.txt.gz 将hello.txt.gz解压缩为原文件类型,同时可以 加入选项-d 将解压后的文件存放在指定目录

7.5.2 zip与unzip

即可以压缩/解压缩文件,还可以压缩/解压缩文件夹

选项:

-r 递归压缩,即压缩目录

-d 指定压缩后文件的存放目录

示例:

  • zip -r nn.zip /home/temp/ 将/home目录下的temp文件夹压缩成名为nn.zip的文件,同时保留原文件,注意,要写全,如/home/temp/

  • unzip -d /home/haha nn.zip 将nn.zip文件解压到/home/haha中,如果没有该目录,则自动创建该目录(在当前文件夹中操作另一个文件夹,那么该文件夹的前面不要加/,不然电脑会识别到根目录的下一层上)

7.5.3 tar

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。该命令可以压缩,也可以解压缩

选项:

在这里插入图片描述

示例:

  • tar -zcvf a.tar.gz haha.txt mimi.txt 将haha.txt和mimi.txt合并打包为a.tar.gz文件

  • tar -zcvf myhome.tar.gz /home/ 将/home文件夹下的所有东西打包成一个myhome.tar.gz文件

  • tar -zxvf a.tar.gz 将z.tar.gz压缩文件解压到该原目录下

  • tar -zxvf a.tar.gz -C /opt/tmp 将a.tar.gz压缩文件解压到/opt/tmp文件夹下,该文件夹需要事先创建

8 权限管理

=========================================================================

8.1 权限介绍


命令行输入 ls -l ,会出现如以下所示的输出,它们分别代表的是:

-rwxrw-r-- 1 root police 1213 Feb 2 09:39 abc.txt

  • 第0位确定文件类型,其中-:普通文件;d:目录;l:连接文件;c:字符设备文件[键盘,鼠标];b:块设备文件[硬盘]

  • 第1-3位确定所有者(该文件的所有者)拥有该文件的权限(r:读权限;w:写权限;x:执行权限)

  • 第4-6位确定所属组(同用户组的)拥有该文件的权限

  • 第7-9位确定其他用户拥有该文件的权限

  • 1:如果是文件,表示硬链接的数目(一般都是1);如果是目录,则表示有多少个子目录

  • root表示所有者名称

  • police表示所属组名称

  • 1213:表示文件存储的大小,如果是目录,则统一为4096

  • Feb209:39表示文件最后的修改时间

8.2 rwx权限详情


1)rwx作用到文件

  • [r]代表可读(read):可以读取,查看

  • [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件

  • [x]代表可执行(execute):可以被执行

2)rwx作用到目录

  • [r]代表可读(read):可以读取,ls查看目录内容

  • [w]代表可写(write):可以修改,目录内创建+删除+重命名目录

  • [x]代表可执行(execute):可以进入该目录

8.3 修改权限命令——chmod


通过chmod指令,可以修改文件或者目录的权限

1) 第一种方式,通过+、-、=变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

示例:

  • chmod u=rwx,g=rx,o=x 文件、目录 【表示:给所有者rwx, 给所在组的用户 rx, 给其他人 x】

  • chmod o+w 文件、目录 【表示:给其它用户增加w 的权限】

  • chmod a-x文件、目录 【表示:给所有用户 去掉 x权限】

**2) 第二种方式,通过数字变更权限

r=4 w=2 x=1 rwx=4+2+1=7**

示例:

  • chmod u=rwx,g=rx,o=x 文件、目录

chmod 751 文件、目录 两者的功能是相同的

备注:对于目录,只有给用户“执行”的权限,才能进入,同时该用户要重新登录一次。需要用root角色来更改各个用户的权限。

9 任务调度

=========================================================================

很多时候,我们在linux中,需要自动执行某一个脚本(代码),这个时候,我们就需要任务调度的作用。任务调度分为两类,第一类,系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。第二类,个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。

任务调度的两种方式:

1)直接通过命令行来调度

2)通过调用脚本来调度

本质上两者是相同的,只不过当内容太多时,放在脚本中比较方便。

9.1 crontab [选项]


选项:

-e 编辑crontab定时任务

-l 查询crontab任务

-r 删除当前用户所有的crontab任务

快速入门:

第一步:设置任务调度文件:/etc/crontab

第二步:设置个人任务调度。执行crontab –e命令。

第三步:接着输入任务到调度文件

如:*/1 * * * * ls –l /etc/ > /tmp/to.txt

意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令

占位符的说明:

在这里插入图片描述

参数说明:

  • 星号 * 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。

  • 逗号,代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令

  • 破折号 - 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令

  • 这个符号*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令

案例:

  • 45 22 * * * 命令 在每天的22点45分执行命令

  • 0 17 * * 1 命令 每周1 的17点0分执行命令

  • 0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令

  • 40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令

  • */10 4 * * * 命令 每天的凌晨4点,每隔10分钟执行一次命令(就在4点这个区间)

  • 0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

操作示意:

  • 案例1:每隔1分钟,就将当前的日期信息,追加到 /tmp/temporary/writeDate.log 文件中(直接用命令行形式)

crontab -e

(vim的输入操作) */1 * * * date >> writeDate.log (各个符号中的空格很重要,同时该命令行的前提是我已经进入到该目录下)

crontab -r(删除定时调度)

  • 案例2:每隔1分钟, 将当前日期和日历都追加到 /home/mycal.log 文件中(用脚本形式)(思路,我先把写好的脚本放在某个文件夹下,然后通过crontab调度这个脚本)

cd /tmp/tp/crontask.sh (放脚本的位置)

在该脚本中写入 date >> /tmp/tp/mycal.log

cal >> /tmp/tp/mycal.log (存放保存文件的位置)

[root@localhost tp]# chmod 755 ./crontask.sh (对了,还要给它一个可执行的权限)

crontab -e

*/1 * * * * /tmp/tp/mycal.log

crontab -r

10 磁盘分区与挂载

=============================================================================

10.1 分区的方式


1) mbr分区:

  • 最多支持四个主分区

  • 系统只能安装在主分区

  • 扩展分区要占一个主分区

  • MBR最大只支持2TB,但拥有最好的兼容性

2) gtp分区(✔):

  • 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)

  • 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)

  • windows764位以后支持gtp

10.2 Linux分区与Windows分区的区别


1) Windows分区

在这里插入图片描述

2)Linux分区

  • 对Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

  • Linux采用了一种叫“载入(mount)”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

  • 示意图【分区和文件目录】

在这里插入图片描述

10.3 Linux下的磁盘说明


Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。

  • 对于IDE硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

  • 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。sdb1 [表示第2块scsi 硬盘的第1个分区]

10.4 lsblk 或者lsblk -f (老师不离开)


查看所有设备(光驱 /media,u盘, 硬盘)挂载情况

在这里插入图片描述

10.5 经典案例——在系统中增加一块硬盘,挂载到/home/newdisk上


步骤:

  1. 增加一块硬盘 1G [到设置中添加一块硬盘即可]

在这里插入图片描述

  1. 重启一下服务器 reboot

  2. lsblk

在这里插入图片描述

  1. 给sdb 硬盘分区,分区命令:fdisk /dev/sdb

选项:

m 显示命令列表

p 显示磁盘分区 同 fdisk –l

n 新增分区

d 删除分区

w 写入并退出

说明:开始分区后输入n,新增分区,然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

在这里插入图片描述

  1. 格式化 sdb1

mdfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化]

在这里插入图片描述

  1. 挂载

mkdir /home/newdisk

mount /dev/sdb1 /home/newdisk [说明;挂载时,当前目录不要在 /home/newdisk ]

在这里插入图片描述

  1. 上面的方式,只是临时生效,当你重启系统,挂载的关系没有, 配置Linux的分区表,实现启动时,自动挂载。

vim /etc/fstab

在这里插入图片描述

  1. 重启后,会自动挂载

  2. 如果,我们希望卸载

umount /dev/sdb1(设备名)或/home/newDisk(挂载名)

10.6 磁盘的另外一些命令


1)查询系统整体磁盘使用情况 df -h

2)查询指定目录的磁盘占用情况(默认为当前目录) du -h 目录

选项:

-s 指定目录占用大小汇总

-h 带计量单位

-a 含文件

–max-depth=1 子目录深度

-c 列出明细的同时,增加汇总值

实例:

3)du -ach --max-depth= 1 /usr 查询 /usr 目录的磁盘占用情况,深度为 1

4)ls –l /home/ | grep “^-” | wc -l 统计/home 文件夹下文件的个数

5)ls –l /home/ | grep “^d” | wc -l 统计/home 文件夹下目录的个数

6)ls –lR /home/ | grep “^-” | wc -l 统计/home 文件夹下文件的个数,包括子文件夹里的

7)ls –lR /home/ | grep “^d” | wc -l 统计/home 文件夹下目录的个数,包括子文件夹里的

11 网络配置原理和说明

===============================================================================

11.1 前景知识


手动安装好Linux系统时,会出现一个问题,那就是连接网络仅仅是在右上角点击连接网络来进行,而且可能每次Linux上网时,IP地址都会改变。这在实际工作中的效率是很低的,所以,要好好学一下网络配置。

NAT模式的连接图:

在这里插入图片描述

11.2 Linux网络环境配置


11.2.1 自动获取

操作如下:系统-首选项-网络连接-自动连接,重启后会发现之后都可以网络自动连接。然而这种方法运用后,每次linux启动后会自动获取ip,也就是说每次ip可能不一样,所以不适合用在服务器上,因为我们服务器的ip需要是固定的。

11.2.2 配置固定的IP地址(推荐)

修改该文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

其中,网关的序号可以在VMware的菜单栏-编辑-虚拟网络编辑器中查看。该文件修改好后reboot(重启电脑)或者service network restart (重启网络)即可达到目的。

按照上面这步骤操作虽然会有很多迷糊,但一步一步弄下来就是正确的。

11.3 ping [目的主机]


测试当前服务器是否可以连接到目的主机

示例:

ping www.baidu.com   测试Linux服务器是否可以连接到百度的服务器

ctrl+c                终止命令

11.4 修改主机名


  • hostname 查看当前主机名

  • vim /etc/sysconfig/network 修改linux的主机映射文件

文件中内容

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME= hadoop //写入新的主机名,注意:主机名称不要有“_”下划线

  • 修改 /etc/hosts 增加ip和主机的映射

192.168.102.130 hadoop

  • 并重启设备,生效.

  • 如果希望windows也可以通过主机名来连接centos, 进入C:\Windows\System32\drivers\etc\hosts,加入192.168.102.130 hadoop。

  • 同理,如果我在该文件下写入www.sharm.com 百度,那么我在浏览器搜索百度时会到我写的这个网站中,这也叫做dns劫持。

12 进程管理

==========================================================================

12.1 概念


1)在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。

2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。

3)每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

12.2 ps -aux


查看当前进程,或者加入管道命令|得到我们关注的进程

在这里插入图片描述

其中,

  • STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

  • STARTED:进程的启动时间

  • TIME:CPU时间,即进程使用CPU的总时间

  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

或者命令ps -ef 以全格式显示当前所有的进程

12.3 kill和killall


在windows中,我们常常用可视化来终止,但在linux中,我们常常用命令行。

  • kill [选项] 进程号   (功能描述:通过进程号杀死进程 选项-9表示强制终止)

  • killall 进程名称     (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

在这里插入图片描述

12.4 pstree


以树状图的形式来显示进程

选项:

-p :显示进程的PID

-u :显示进程的所属用户

在这里插入图片描述

12.5 进程管理之服务(service)管理


服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux 中非常重要的知识点。

在这里插入图片描述

service管理指令:

service 服务名 [start|stop|restart|reload|status]

在CentOS7.0后不再使用service,而是systemctl

示例:

  • service iptables status 查看当前防火墙的状况,关闭防火墙和重启防火墙

注意:

  • 关闭或者启用防火墙后,立即生效。

  • telnet ip [端口] 利用telnet指令检查linux的某个端口是否在运行

talnet 192.168.184.130 22(在window下测试)

  • service iptables stop;service iptables start

这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。

如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令

12.6 查看服务名


方式1:使用菜单栏setup-系统服务

方式2: more /etc/init.d/服务名称

12.7 运行级别


查看或者修改默认级别: vim /etc/inittab

Linux系统有7种运行级别(runlevel):常用的是级别3和5

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

  • 运行级别2:多用户状态(没有NFS),不支持网络

  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

  • 运行级别4:系统未使用,保留

  • 运行级别5:X11控制台,登陆后进入图形GUI模式

  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

开机的流程说明:

在这里插入图片描述

12.7.1 chkconfig –list

查看所有的服务在不同级别下的自启动按钮

在这里插入图片描述

  • chkconfig -list | grep sshd 如果只关心一个服务,那就用grep进行筛选

  • chkconfig sshd –list 或者直接输入该服务名

  • chkconfig --level 5 服务名 直接修改sshd在某个级别下自启动

  • chkconfig ssh off 如果在所有级别下都修改某个服务的自启动,那就不要加level这个词。

  • 设计好之后,一定要reboot

12.8 进程管理之监控服务——top [选项]


top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)

选项:

在这里插入图片描述

在这里插入图片描述

交互操作说明:

在这里插入图片描述

应用实例:

  • 如何监视特定用户

top:输入此命令,按回车键,查看执行的进程

u:然后输入“u”回车,再输入用户名

  • 如何终止指定的进程

top:输入此命令,按回车键,查看执行的进程

k:然后输入“k”回车,再输入要结束的进程ID号

12.9 netstat [选项]


选项:

-an 按一定顺序排列输出

-p 显示哪个进程在调用

应用案例:

  • netstat –anp | grep sshd 查看服务名为 sshd 的服务的信息

在这里插入图片描述

13 RPM和YUM包管理器

=================================================================================

13.1 rpm 包的管理

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要快速上手Linux内核,您可以按照以下步骤进行: 1. 了解Linux内核的基本概念:学习Linux内核的基础知识,如进程管理、内存管理、文件系统、设备驱动等。可以阅读相关的书籍、在线教程或参考官方文档。 2. 设置开发环境:在您的计算机上设置Linux开发环境。可以选择一个流行的Linux发行版(如Ubuntu、Fedora等),安装开发工具链和必要的软件包,以便进行内核编译和调试。 3. 下载并编译内核源代码:从Linux官方网站(https://www.kernel.org/)下载最新版本的内核源代码。按照官方提供的说明进行编译,生成可执行的内核映像文件。 4. 阅读和理解内核代码:开始阅读内核源代码,了解其结构和组织方式。可以从一些简单的模块或驱动程序开始,逐渐深入理解内核的不同部分。 5. 参与开发社区:加入Linux内核开发社区,参与讨论和交流,在邮件列表、论坛或IRC频道上与其他开发者互动。这将帮助您获得更多实践经验和指导。 6. 进行实际编程和调试:尝试编写简单的内核模块、驱动程序或补丁,并进行调试和测试。通过实际编程和解决实际问题,加深对内核的理解和掌握。 7. 学习内核调试技术:了解内核调试工具和技术,如GDB、Kprobes、Ftrace等。这些工具可以帮助您分析和调试内核代码,定位和修复问题。 8. 深入研究特定领域:根据自己的兴趣和需求,选择一个特定的领域进行深入研究,如网络协议栈、虚拟化、安全性等。探索Linux内核的各个子系统,并尝试在特定领域做出贡献。 请注意,学习Linux内核需要耐心和持续的努力。这只是一个快速上手的指南,真正的深入学习和掌握需要更多的时间和经验。建议在学习过程中保持对官方文档、书籍和其他资源的持续学习和参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值