⭐️博主:此生决int-@CSDN博客
🔥热门专栏🔥
深入理解 C++ 系列|算法系列
快速复习系列|Linux系列
Gitee地址:财哥 | GitHub地址:财哥
文章目录
- 上期回顾
- Linux基本命令
- 常用热键
- 一切皆文件
- Linux 理论知识:路径的认识
- 与Windows的联系:
- pwd 命令(Print Working Directory)
- 1,ls 指令(list)
- 1.1,直接ls
- 2,ls -l
- 3,ls -a
- 4,ls -al
- 4, `ls 目录名`
- 2,cd 指令(Change Directory)
- 3,touch:创建文件 / 更新时间
- 4,mkdir(make directory):创建目录
- 5,rmdir(remove Directory):删除空目录
- 6,rm(remove):删除文件或目录
- 7,man(manual):查看命令手册(命令帮助文档,命令百科全书)
- 8,cp(copy):复制文件或目录
- 9,mv(move):移动 (剪切)/ 重命名
- `cp` 和 `mv` 对比
- Linux补充知识2——文件分类
- 10,echo:向终端输出内容
- cat(concatenate):查看文件内容
- >:输出重定向
- >>:追加重定向
- 输入重定向 `<`
- 两个重定向总结
- 管道 `|` 组合命令
- 查看文件内容
- 10,cat:查看小文件
- `cat -n`:显示行号
- `tac`:反向查看文件
- 11,more:分页查看文件(大文件)
- 12,less:增强版分页查看文件(大文件)
- 代码示例:
- 13,head:查看文件头部若干行(默认10)
- 14,tail:查看文件尾部若干行(默认10)
- `tail -f`:实时查看日志——非常重要
- 15,grep(global regular expression print):文本过滤搜索
- grep -i 忽略大小写查找
- grep -n 显示行号查找
- grep -r 当前目录递归查找
- 15,date:显示/设置系统日期时间
- 小知识——时间戳
- 益智小故事——为什么电脑关机后,开机还能知道现在几点?
- 16,cal(calendar):查看日历
- 17,find:文件搜索查找
- 18,which:查找可执行程序路径
- 19,whereis:查找命令的二进制、源码、手册位置
- 区别
- 20,alias:设置命令别名
- 22,top:实时查看系统进程资源
- 23,zip/unzip:zip格式压缩和解压缩
- 24,tar(tape archive):打包解压(重要)
- tar的重要参数
- 25,rzsz:串口传输文件工具
- `rz`:从本地上传文件到 Linux
- `sz`:从 Linux 下载到本地
- `scp`(secure copy):安全复制
- 26,bc(basic calculator):命令行计算器
- 27,uname -r:查看内核版本信息
- 下期预告
- Linux权限
- 结语
上期回顾
大家好,这里是此生弃int(财哥),欢迎来到我的博客。上一篇我们学习了解了Linux的历史演变,成功购买并部署了自己的云服务器,那么今天,我们就来学习一些基础的Linux命令吧!
Linux基本命令
在讲解命令之前,我们要先来了解一些基础知识
常用热键
[Tab]:自动补全——命令/路径自动补全。[Ctrl] + C:终止当前前台程序[Ctrl] + D:EOF / 退出当前 ShellCtrl + R:搜索历史命令↑和↓:历史命令history:查看历史命令
一切皆文件
Linux的最大的一个特点和理解——一切皆文件!
在 Linux 中,很多资源都可以通过“文件”的方式进行统一访问。
例如:
| 资源 | Linux中的体现 |
|---|---|
| 普通文件 | /home/test.txt |
| 目录 | /home/ |
| 磁盘设备 | /dev/sda |
| 键盘 | /dev/input/...等设备文件 |
| 终端 | /dev/pts/0等 |
| 鼠标 | /dev/input/...等设备文件 |
| 管道 | 可以通过文件描述符进行读写 |
| 网络连接 | 可以通过类似文件的文件描述符进行读写 |
包括但不限于你的屏幕,鼠标,键盘,磁盘等等
所以,如果可以找到对应的文件,比如找到屏幕文件,我们就可以向屏幕文件里面输入内容,那么就可以显示在屏幕上!(注意,不要读写磁盘文件哦,非常危险!)
Linux 为很多硬件设备和系统资源提供了类似文件的访问接口,程序可以通过统一的文件操作机制与这些资源进行交互
Linux 理论知识:路径的认识
- Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
- 普通文件 ——叶子节点
- 目录 ——叶子(空目录),路上节点
- 理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性
分类:
| 类型 | 定义 | 特点 | 常见使用场景 |
|---|---|---|---|
| 绝对路径 | 一般从/开始,不依赖当前目录即可定位文件的路径方式。 | 不依赖当前所在目录,路径具有唯一性;用户所在目录发生变化时,路径通常不会失效。 | 特定服务的配置文件中经常使用。 |
| 相对路径 | 相对于当前用户所处目录,用于定位文件的路径方式。 | 依赖当前所在目录,使用更加便捷。 | 命令行操作中使用较多。 |
与Windows的联系:
我们日常在点击文件的时候可以看到:
pwd 命令(Print Working Directory)
语法:pwd
功能:显示用户当前所在的目录
常用选项:无
举例:
[root@VM-0-10-centos ~]# pwd/root#这就是当前目录1,ls 指令(list)
语法:ls [选项] [目录或文件]
功能:
对于目录,该命令列出该目录下的所有子目录与文件。
对于文件,将列出文件名以及其他信息。
所有选项:
| 选项 | 功能说明 | 示例 / 补充 | |
|---|---|---|---|
-a | 列出目录下的所有文件,包括以.开头的隐含文件。 | ls -a | |
-d | 将目录像文件一样显示,而不是显示其下的文件。 | ls -d 指定目录 | |
-i | 输出文件的 i 节点(inode)的索引信息。 | ls -ai 指定文件 | |
-k | 以 KB(千字节)的形式表示文件大小。 | ls -alk 指定文件 | |
-l | 以长格式列出文件的详细信息。 | ls -l | |
-n | 用数字形式的 UID、GID 代替用户名和组名。 | 介绍 UID、GID | |
-F | 在每个文件名后附加一个字符,用于说明文件类型。 | *:可执行普通文件;/:目录;@:符号链接;` | :FIFO;=`:套接字 |
-r | 对目录中的文件进行反向排序。 | ls -lr | |
-t | 按文件的修改时间进行排序。 | ls -lt | |
-s | 在文件名之前输出文件所占用的磁盘块大小。 | 可用于查找目录下较大的文件 | |
-R | 递归列出所有子目录中的文件。 | ls -R | |
-1 | 每行只输出一个文件名。 | ls -1 |
常用命令:ls、ls-a、ls-l、ls-al
1.1,直接ls
[root@localhost ~]# lsDesktop Documents Downloads test.txt表示当前目录中有:Desktop、Documents、Downloads、test.txt这些文件。
2,ls -l
显示文件的详细的信息。
代码示例:
[root@VM-0-10-centos ~]# pwd/root[root@VM-0-10-centos ~]# lstest01[root@VM-0-10-centos ~]# ls -ltotal4drwxr-xr-x2root root4096Sep921:56 test013,ls -a
显示所有文件,包括隐藏文件。隐藏文件一般以 . 开头
示例:
[root@VM-0-10-centos ~]# ls -a..bash_history .bash_profile .cache .cshrc .pip .ssh test01...bash_logout .bashrc .config .npmrc .pydistutils.cfg .tcshrc4,ls -al
两个结合,查看所有文件包括隐藏文件的详细信息
示例:
4,ls 目录名
可以直接查看指定目录:
示例:
lscaige2,cd 指令(Change Directory)
例子
假设当前:
/home/user里面有:
/home/user/code那么可以:
cdcodecd.#.表示当前目录cd..#..表示上一级目录cd~#进入当前用户的家目录。cd#与上面一样,进入当前用户的家目录。cd-#返回上一次所在目录举例:
root@iZbp1762zeqzauorez4cw0Z:~# pwd/root root@iZbp1762zeqzauorez4cw0Z:~# tree.├── caige │?? └── test01 ├── snap │?? ├── lxd[error opening dir]│?? └── tree │?? ├──54│?? ├── common │?? └── current ->54└── test0110directories,0files root@iZbp1762zeqzauorez4cw0Z:~# cd caigeroot@iZbp1762zeqzauorez4cw0Z:~/caige# pwd/root/caige#打开了caige目录3,touch:创建文件 / 更新时间
最基本的用法:
touchtest.txt两种情况,test.txt
1,如果不存在:创建一个空文件。
2,已经存在:不会把原来的内容清空,而是更新相关时间信息。
4,mkdir(make directory):创建目录
注意是创建目录而不是文件,
mkdirtest# 在当前所在目录下创建目录testmkdir-pa b c# 创建多级目录5,rmdir(remove Directory):删除空目录
只能删除空目录
6,rm(remove):删除文件或目录
rmtest.txt# 删除文件test.txtrm-rtest# 删除整个test文件夹(所有东西)常用选项;
rm -r;recursive,递归。就是全部删除为止
rm -f:force,强制。就是不用确认
rm -rf:强制递归删除!!(非常危险!)
Linux 命令行中删除文件通常不会像 Windows 回收站那样给你一个方便的恢复机制。
⚠️⚠️⚠️⚠️危险命令!⚠️⚠️⚠️⚠️
rm-rf/# 强制递归删除根目录!rm-rf*# 强制递归删除当前目录下的所有文件,隐藏文件除外所以,互联网上的删库跑路代码就是:rm -rf /
7,man(manual):查看命令手册(命令帮助文档,命令百科全书)
manls# 查看命令ls的帮助文档,不知道ls怎么用的时候可以用这个命令里面一般是这样的:
但是其实现在有AI了,AI查询也非常方便!
8,cp(copy):复制文件或目录
# cp 源文件 目标文件touchtest.txt# 新建一个test.txt文件cptest.txt test2.txt# 复制生成一份test2.txt文件# 把文件复制到目录。文件夹cptest.txt dir/# 把 `test.txt` 复制到 `dir` 目录中。# 复制文件夹cp-rtestdir/# r递归,复制整个文件夹到dir目录总结:
cp 文件 → 直接 cp
cp 目录 → 通常需要 cp -r
9,mv(move):移动 (剪切)/ 重命名
# backup目录存在,并且和test.txt在同一目录(当前目录)下mvtest.txt backup/#把test.txt剪切到backup/# 两个都是文件,第二个文件不存在mvtest.txt hello.txt# 重命名# test.txt test.c都存在且在同一目录(当前目录)mvtest.txt test.c# 结果就只剩下一个test.c原则:
mv 源文件 目标不存在→ 重命名
mv 源文件 目标是目录→ 移动到该目录
mv 源文件 目标是已存在的普通文件→ 覆盖目标文件
cp和mv对比
| 对比 | cp | mv |
|---|---|---|
| 含义 | copy | move |
| 复制文件 | ✅ | ❌ |
| 移动文件 | ❌ | ✅ |
| 重命名 | 通常不用于此 | ✅ |
| 原文件是否保留 | ✅ | 通常不保留 |
| 目录操作 | cp -r | 可以直接移动目录 |
Linux补充知识2——文件分类
Linux 中,文件类型不是通过文件后缀来区分的。系统主要通过文件的类型信息来识别文件。
注意:文件有没有
.c、.txt、.jpg等后缀,并不是 Linux 判断文件类型的依据。后缀主要是给人和部分工具使用的。
Linux 常见文件类型:
通过ls -l查看文件时,第一个字符可以表示文件类型:
| 符号 | 文件类型 | 说明 |
|---|---|---|
- | 普通文件 | 文本、可执行文件、库、图片、视频等都可以属于普通文件 |
d | 目录文件 | 用来组织和管理其他文件 |
c | 字符设备文件 | 键盘、显示器、终端等,数据以字符流的形式进行读写 |
b | 块设备文件 | 磁盘等设备,数据通常以数据块为单位进行读写 |
l | 链接文件 | Linux 中的软链接 |
p | 管道文件 | 用于进程之间进行数据传输 |
10,echo:向终端输出内容
把指定内容输出到标准输出。
echo“hello caige”echo 不是“打印”,标准输出不一定非要显示在屏幕上。
例如
cat(concatenate):查看文件内容
查看内容比较少的文本文件。
cattest.txt# 把test.txt里面的内容输出到屏幕上>:输出重定向
不要把程序的标准输出送到终端,而是送到指定文件。
echohello#输出到屏幕echohello>test.txt# 输出到文件test.txt,会清空原文件,如果文件不存在,创建先创建在写入创建文件,或者清空原文件后重新写入。
>>:追加重定向
在文件末尾继续添加内容
输入重定向<
例如某些支持标准输入的程序,可以:
command(命令)<test.txt把
test.txt的内容作为这个程序的标准输入。
现在先了解即可
两个重定向总结
区别:
| 写法 | 作用 | 原文件存在时 |
|---|---|---|
> | 输出重定向 | 覆盖原内容 |
>> | 输出追加 | 保留原内容,在末尾追加 |
2,重定向并不只适用于echo
重定向是 Shell 提供的一种通用机制,而不是
echo专属功能。
很多命令都会产生标准输出。例如 ls等等,他们默认输出到屏幕,但是,
ls>file.txt# 把ls输出的内容输出到文件file.txt里面,可以通过cat来查看pwd>path.txt# 把当前路径保存到(输出到)path.txt 文件管道|组合命令
‘|’把一个命令的输出交给另一个命令,
|不是把输出保存到文件,而是把一个程序的标准输出作为另一个程序的标准输入。
查看文件内容
10,cat:查看小文件
把文件内容输出到标准输出。
cat -n:显示行号
tac:反向查看文件
cattest.txt# 把test.txt的内容直接打印到屏幕给我看root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n file.txt1file.txt2new.txt3test.txt4file.txt5new.txt6test.txt7/root/caige/test01/test# 测试tac tac没有-n选项,只能用管道root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n file.txt | tac7/root/caige/test01/test6test.txt5new.txt4file.txt3test.txt2new.txt1file.txt11,more:分页查看文件(大文件)
如果文件非常大:可能瞬间刷满整个终端。
这时候可以:使用more命令,它会一页一页显示。
可以按:Space 向后翻页。按:Enter 向下移动一行。
12,less:增强版分页查看文件(大文件)
more不能往回翻,一般都用less来查看大文件
可以使用方向键上下移动,也可以进行搜索。
1,方向键上下移动
2,/进行搜索
3,按“n”寻找下一个匹配位置
4,“q”退出
| 命令 | 适合场景 |
|---|---|
cat | 小文件,快速查看全部内容 |
tac | 想从最后一行反向查看 |
more | 较大文件,简单分页 |
less | 大文件,需要上下翻页、搜索 |
代码示例:
创建了一个文件,内容是caige:01一直到100,
foriin{1..100};doecho"caige:$(printf'%02d'$i)";done>big.txtroot@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n big.txt1caige:012caige:023caige:034caige:045caige:056caige:067caige:078caige:089caige:0910caige:1011caige:11# 中间代码已删95caige:9596caige:9697caige:9798caige:9899caige:99100caige:10013,head:查看文件头部若干行(默认10)
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head big.txtcaige:01 caige:02 caige:03 caige:04 caige:05 caige:06 caige:07 caige:08 caige:09 caige:1014,tail:查看文件尾部若干行(默认10)
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# tail big.txtcaige:91 caige:92 caige:93 caige:94 caige:95 caige:96 caige:97 caige:98 caige:99 caige:100head、tail、管道“|”的组合使用:
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head -50 big.txt # 作用是查看前50行root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head -50 big.txt | tail -10 # 先查看前50行得到一个结果,然后查看这个结果的后10行caige:41 caige:42 caige:43 caige:44 caige:45 caige:46 caige:47 caige:48 caige:49 caige:50tail -f:实时查看日志——非常重要
-f follow,持续跟踪文件末尾。
Ctrl + C退出
15,grep(global regular expression print):文本过滤搜索
grep -i 忽略大小写查找
grep -n 显示行号查找
grep -r 当前目录递归查找
15,date:显示/设置系统日期时间
data+格式,按照你给的格式输出当前时间
代码示例:
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01/test# date "+%Y-%m-%d %H:%M:%S" # 按照规定格式显示当前时间2026-10-0116:58:25| 格式 | 含义 |
|---|---|
%Y | 年 |
%m | 月 |
%d | 日 |
%H | 小时 |
%M | 分钟 |
%S | 秒 |
| ‘%s’ | 时间戳 |
%F | 日期,等价于%Y-%m-%d |
%T | 时间,等价于%H:%M:%S |
小知识——时间戳
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date +%s1790846115这个1790846115就是时间戳!他表示从 1970 年 1 月 1 日 00:00:00 UTC 开始,到当前时间经过了多少秒。
date -d @时间戳:时间戳转换为普通时间
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date -d @1790846115Thu Oct105:15:15 PM CST2026root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date +%Y-%m-%d_%H:%M:%S -d @17259747462024-09-10_21:25:46 root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# date -d @0Thu Jan108:00:00 AM CST1970root@iZbp1762zeqzauorez4cw0Z:~/caige/test01#为什么是1970年1月1日8点,因为主播在中国,是北京时间,东八区
益智小故事——为什么电脑关机后,开机还能知道现在几点?
有人肯定想是因为网路,但是你想想你把网络关了它还是可以正常计时!所以,肯定是手机或者电脑自己里面带了钟表!
主板上有专门的实时时钟电路,并且通常由主板上的纽扣电池供电。
16,cal(calendar):查看日历
cal# 查看当前月的日历cal2023# 查看2023年所有日历cal32024# 查看2024年3月的日历cal-3# 查看今年这个月,上个月,下个月的日历17,find:文件搜索查找
在指定目录及其子目录中查找所有符合条件的文件。
find.-name"test.txt"# 从当前目录开始,递归寻找名字叫 `test.txt` 的文件。find/-name"test.txt"# 从根目录 `/` 开始寻找 `test.txt`find.-name"*.cpp"# 从这里开始,把所有 `.cpp` 文件找出来。root@iZbp1762zeqzauorez4cw0Z:~/caige/test01find.-name"test.txt"./test/test.txt root@iZbp1762zeqzauorez4cw0Z:~/caige/test01find/-name"test.txt"/root/test.txt /root/caige/test01/test/test.txt18,which:查找可执行程序路径
之前说过,命令就是文件!
which就可以帮我们找到某个命令文件在哪里
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# which ls/usr/bin/ls root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# which pwd/usr/bin/pwd root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# which find/usr/bin/find19,whereis:查找命令的二进制、源码、手册位置
不仅找命令文件(即运行时运行的是哪个文件),还会找一些与它相关的文件,如帮助文档里面的关于这个命令怎么使用的文件等等
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz区别
| 对比 | which | whereis |
|---|---|---|
| 主要目的 | 找可执行命令 | 找程序相关文件 |
| 常见结果 | 可执行文件路径 | 程序、man 等多个位置 |
| 常见用法 | which gcc | whereis gcc |
| 适合场景 | 确认实际执行哪个命令 | 查看程序相关资源 |
20,alias:设置命令别名
给一个命令设置一个更方便的名字。
1,当前会话有用,想要长期有用要修改写到~/.bashrc文件
2,记得加引号把“命令”括起来
aliasll='ls -al'# ls -l 起一个方便使用的名字——ll,当前会话ll就会执行ls -lalias# 查看当前所有别名命令unaliasll# 删除ll这个别名22,top:实时查看系统进程资源
相当于Windows的资源管理器
会进入一个动态变化的界面。
它可以查看:
- CPU 使用情况
- 内存使用情况
- 系统负载
- 运行中的进程
- 每个进程的资源占用
退出按q
23,zip/unzip:zip格式压缩和解压缩
ziptest.zip test.txt# zip 目标文件名 要压缩的文件名ziptest.zip a.txt b.txt c.txt# 压缩多个文件zip-rproject.zip project/# 压缩目录# `unzip`:解压unziptest.zip# 把 `test.zip` 解压到当前目录。unziptest.zip-doutput# 把 `test.zip` 解压到 `output` 目录。24,tar(tape archive):打包解压(重要)
这个是打包,zip是压缩,打包就是相当于封装成一个文件夹,大小不变
压缩大小减小,
将多个文件/目录打包成一个归档文件,并配合压缩算法进行压缩。
tar的重要参数
| 参数 | 含义 |
|---|---|
-c | create,创建归档 |
-x | extract,解包 |
-v | verbose,显示详细过程 |
-f | file,指定归档文件 |
-z | 使用 gzip |
-j | 使用 bzip2 |
-J | 使用 xz |
-C | 指定操作目录 |
所以,一般都是用的组合操作
tar-cfproject.tar project/# 普通打包tar-cvfproject.tar project/# 显示打包过程打包tar-xfproject.tar# 解包tar-czvfproject.tar.gz project/# 可视化打包并gzip压缩tar-xzvfproject.tar.gz# 可视化解包并解压gzip包| 对比 | zip | tar |
|---|---|---|
| 常见环境 | Windows / Linux 都常见 | Linux/Unix 非常常见 |
| 主要作用 | 压缩/解压 | 打包/归档,可配合压缩 |
| 常见文件 | .zip | .tar、.tar.gz、.tar.xz |
| 目录处理 | zip -r | 天然适合目录归档 |
| Linux 软件包 | 相对少见 | 非常常见 |
25,rzsz:串口传输文件工具
rz:从本地上传文件到 Linux
把本地电脑上的文件传输到 Linux 服务器。
rz-C/root/caige/test01/# 上传的Linux指定文件夹sz:从 Linux 下载到本地
把 Linux 上的
hello.cpp发送到本地电脑。
sz test.txt# 把 Linux 中的 `test.txt` 发送到本地。scp(secure copy):安全复制
通过 SSH 安全地复制文件。可以直接在两台通过 SSH 通信的机器之间复制文件。
scp/root/test.txt root@192.168.1.100:/root/# scp 源文件 目标用户@目标主机:目标路径scp-rcaige root@192.168.1.100:/root/# 传递目录scproot@192.168.1.100:/root/caige/test.cpp.# 从服务器下载文件,| 对比 | rz/sz | scp |
|---|---|---|
| 依赖 | ZMODEM + 终端软件支持 | SSH |
| 常见场景 | XShell 等终端中快速传文件 | 机器之间复制 |
| 是否需要交互选择文件 | rz通常需要 | 通常直接写路径 |
| 是否适合脚本化 | 不太适合 | 更适合 |
| 是否需要 SSH | 不完全等同于 SCP 的 SSH 传输方式 | 是 |
| 目录传输 | 受工具支持影响 | scp -r |
| Linux 服务器开发常见度 | 学习/临时传文件方便 | 很常见 |
26,bc(basic calculator):命令行计算器
bc是 Linux 中的一个命令行计算器。
直接输入:bc即可进入,Ctrl + D退出
27,uname -r:查看内核版本信息
可以查看当前正在运行的 Linux Kernel 版本信息。
root@iZbp1762zeqzauorez4cw0Z:~/caige/test01uname-r5.15.0-190-generic下期预告
Linux权限
结语
本文到此结束,感谢大家的阅读!如果觉得本文对你有所帮助,欢迎点赞、收藏、关注,也欢迎在评论区一起交流讨论。
也欢迎订阅我的
深入理解 C++系列:从语法入门到底层原理,系统掌握现代 C++
算法系列:从入门到精通,蓝桥杯、ACM、LeetCode 与面试算法全路线
快速复习系列:知识梳理、查漏补缺,考前冲刺必备
Linux系列:从零带你系统学习Linux系统,深入理解计算机组成原理!