⚡ CYBER_PROFILE ⚡
/// SYSTEM READY ///
[ WARNING ]: DETECTING HIGH ENERGY 🌊 🌉 🌊 心手合一 · 水到渠成

| >>> ACCESS TERMINAL <<< | |
| [ 🦾 作者主页 ] | [ 🔥 C++初阶 ] |
| [ 💾C++进阶 ] | [ 📡 代码仓库 ] |
—————————————Running Process: 100% | Latency: 0ms
索引与导读
- 前言:浅谈操作系统~🛠️
-
- 一、Linux操作系统源代码地址
- 二、Linux安装—环境准备
-
- 2.1)操作系统生态
-
- 1. 操作系统自身
- 2. 软件体系
- 3. 官网文档
- 4. 社区论坛
- 5. 维护更新速度
- 6. 富有针对性的客户群体
- 2.2)Linux安装
- 三、Linux基本指令
-
- 前期准备(⚠️如何切换为超级管理员模式)
-
- 调整风格
- 全屏调整
- 3.1)clear 指令(清除清理指令)
- 3.2)pwd 指令(查看当前路径)
-
- 3.2.1)使用语法
- 3.2.2)路径分隔符
- 3.2.3)Linux根目录
- 3.3)ls 指令(查看当前路径下所有的文件)
-
- 如何理解文件?
- 3.3.1)ls -a(列出目录下的所有文件,包括以 . 开头的隐含文件)
- 3.3.2)ls -l(将目录像文件一样展示)
- 3.3.3)ls -l与ls -a的组合
- 3.3.4)`..`与`.`标识符
- 3.4)mkdir 指令(在当前路径建立文件夹)
-
- 3.4.1)语法格式
- 3.4.2)核心参数(选项)详解
-
- ① -p(–parents):递归创建多级目录
- ② -v(–verbose):显示详细创建过程
- ③ –mode(-m):创建时直接设定权限
- 3.4.3)扩展用法
-
- ① 大括号扩展
- 3.4.4)常见错误(踩坑)与解决方案
-
- 错误 1:`Permission denied` (权限不足)
- 错误 2:No such file or directory (没有那个文件或目录)
- 错误 3:`File exists` (文件已存在)
- 3.5)cd 指令(切换当前的工作目录)
-
- 3.5.1)核心路径概念
-
- 1)绝对路径
- 2)相对路径
- 3.5.2)常用快捷操作(必记)
-
- A. 返回家目录
- B. 进入上一级目录
- C. 切换回上一次所在的目录
- D. 进入根目录
- 3.6)touch 指令
-
- 3.6.1)理解文件的三个时间戳
- 3.6.2)常用语法与选项
- 3.7)stat 指令
- 3.8) rmdir与rm指令
-
- 1)rmdir 指令
- 2)rm 指令
- 3.9) man指令
- 3.10) cp指令
- 3.11) mv指令
- 3.12) cat指令
- 3.13) more 指令
- 3.14) less 指令
- 3.15) head 指令
- 3.16) tail 指令
- 3.17) date 指令
- 3.18) cal 指令
- 3.19) find 指令
- 3.20) which 指令
- 3.21) whereis 指令
- 3.22) alias 指令
- 3.23) grep 指令
- 3.24) top 指令
- 3.25) zip/unzip 指令
- 3.26) 关于 rzsz
- 3.27) tar 指令(重要)
- 3.28) bc 指令
- 3.29) uname -r 指令
- 四、Linux的路径认识
-
- 4.1 Linux使用树形结构来管理文件
- 4.2 绝对路径 与 相对路径
- 五、扩展命令
- 六、关机 指令
- 💻结尾— 核心连接协议
前言:浅谈操作系统~🛠️
最开始的计算机输入时,通过闭合开关给计算机进行交互
但是通过开关的这种方式真的太挫了,很难进行多任务的处理
所以在计算机发展的时候必须要有一种软件的诞生——操作系统
在上个世纪最具有代表性的操作系统是 unix操作系统
操作系统本质上是一个资源管理器。它管理着计算机中所有的 “硬资源”和“软资源”:
-
硬件管理:CPU 算力分配、内存空间管理、硬盘数据读写、外设(键盘、显示器)驱动。
-
软件服务:为各种 App 提供运行环境,处理文件存取、网络通信等琐事,让程序员不需要直接对着电路板写代码。
一、Linux操作系统源代码地址
🔗Lucy的空间骇客裂缝:Linux
二、Linux安装—环境准备
2.1)操作系统生态

1. 操作系统自身
这是整个生态的核心基石。它包括内核、驱动程序、系统组件和用户界面。
- 硬件指标:性能、稳定性、安全性以及对硬件的兼容性。
- 作用:如果底层系统经常崩溃或效率低下,上层的软件体系和用户群体都会迅速流失。它是承载所有功能的物理与逻辑基础。
2. 软件体系
这通常被认为是生态中最关键的一环。也就是我们常说的“有没有软件可用”。
- 丰富度:是否拥有主流的办公软件、开发工具、游戏和各类行业软件。
- 兼容性:系统提供的 API 是否易用,是否支持跨平台运行(如 Windows 对 x86 程序的长期支持)。
- 运维:没人会为了使用一个系统而买电脑,大家是为了运行某个软件(如 Photoshop, Office, IDE)才选择系统。
3. 官网文档
这是连接开发者与操作系统的桥梁。
- 内容:包括 API 参考手册、开发指南、最佳实践、部署文档等。
- 作用:高质量的文档能大幅降低开发者的学习成本。如果文档混乱或缺失,开发者就无法高效地为该系统编写软件,直接导致“软件体系”的匮乏。
4. 社区论坛
这是生态的生命力与温度所在。
- 交流:包括开发者社区(如 GitHub, Stack Overflow)和用户社区。
- 作用:“解决问题”:遇到 Bug 时,社区的响应往往比官方支持更快。
- 沉淀内容:各种技术博客、教程、第三方插件都源自社区。
- 反馈闭环:用户的反馈通过社区传达给官方,推动系统进化。
5. 维护更新速度
这决定了生态的可持续性。
- 安全补丁:面对新漏洞时的响应速度。
- 功能迭代:是否能跟上硬件的发展(如对新一代 CPU、AI 算力卡的适配)。
- 作用:频繁且稳定的更新能给企业和个人用户带来安全感,证明这个生态是活跃的,而非“死亡系统”。
6. 富有针对性的客户群体
这定义了生态的生存空间和盈利模式。
- 定位:“Windows”:针对通用办公与游戏。
- Linux (Ubuntu/CentOS):针对服务器与开发者。
- macOS:针对设计师与程序员。
- 作用:生态不需要讨好所有人,但必须死抓住核心用户。有了精准的用户群体,开发者才有动力在该平台上盈利,进而反哺整个系统的开发。
2.2)Linux安装
在这里我们不太推荐用虚拟机,毕竟对于初学者问题还是很多的
我们首推云服务器
还有其它的安装方式(例如:windows wsl),可以自行问AI,让他就能帮你快速解决
市面上的互联网公司(腾讯、华为、百度、阿里),这些我们统称云厂商,他们都会提供对应的云服务
需要我们消费去购买一台云服务器,这台云服务器系统使用的就是 Linux系统
- 为何要用云服务器
- 它是最仿真的
- 方便我们做网络实验
如何构建属于自己的云服务器我们可以看我的另一篇文章👇 🔗Lucy的空间骇客裂缝:
如何部署虚拟机我们可以看这个👇 🔗Lucy的空间骇客裂缝:VMware安装Ubuntu虚拟机教程
三、Linux基本指令
指令是控制Linux系统的基本方法 Linux 指令看似繁多,但其实大部分操作都遵循 指令 + 选项 + 参数 的逻辑
前期准备(⚠️如何切换为超级管理员模式)
在 Linux 系统中,切换到超级管理员(root)权限是进行系统配置和维护的日常操作
- 首先我们登上Xshell,点击左上角的 加号(新建会话属性)

- 名称——取一个自己喜欢的名字就好
- 主机——填写自己云服务器的公网IP地址
点击 确定 
-
接着我们点击左上角的 打开
-
这时候我们就能看到我们新建的机器

-
我们点击 连接,只要你的公网IP地址正确,它就会自动帮你连接
-
如果我们不需要用到这台机器,我们可以鼠标右键单机可以删除

-
现在我们使用Xshell登录我们的Linux机器
语法格式: root@+公网IP地址 点击 回车 
这时候你进去便是root超级管理员模式
-
如果你打开的Xshell是这样的
我们可以输入ssh root@公网IP,也可以弹出这个界面 
-
Password: 输入对应账号密码即可(如何部署云服务器那里有讲)
-
直到出现下面页面就算成功了

更多关于Linux的root超级管理员操作请看👇
🔗Lucy的空间骇客裂缝:关于root的超级管理员权限
调整风格
左上角还可以通过工具去调整自己页面对应喜欢的风格,在这里就不过多讲解,感兴趣的可以自己上网搜一搜 
全屏调整
Alt+Enter 可以自由切换全屏与否
3.1)clear 指令(清除清理指令)
在之后的讲解中,我们会讲解各种各样的指令,敲各种各样的代码,如果你想重置服务器(Xshell)页面我们可以输入:clear 
3.2)pwd 指令(查看当前路径)
3.2.1)使用语法
输入这个指令可以快速显示出来 我们自身是出于哪个工作路径的
❗❗相当于我们在文件资源管理器中查看文件的位置❗❗ 
3.2.2)路径分隔符
❗❗在Windows和Linux系统下的pwd路径显示❗❗
注意:两个系统的路径分隔符是不一样的不要搞混
3.2.3)Linux根目录

3.3)ls 指令(查看当前路径下所有的文件)
语法: ls [选项] [目录或文件]
功能:
- 对于目录,该命令列出该目录下的所有子目录与文件
- 对于文件,将列出文件名以及其他信息
- 常用选项:
-
-a 列出目录下的所有文件,包括以 . 开头的隐含文件 (ls在默认显示时,不显示隐藏文件)
-
-d 将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录
-
-i 输出文件的 i 节点的索引信息。如 ls -ai 指定文件
-
-k 以 k 字节的形式表示文件的大小。ls -alk 指定文件
-
-l 列出文件的详细信息
-
-n 用数字的 UID, GID 代替名称。(介绍 UID、GID)
-
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示 FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-
-r 对目录反向排序
-
-t 以时间排序
-
-s 在文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-
-R 列出所有子目录下的文件。(递归)
-
-1 一行只输出一个文件。

-
如何理解文件?
- 抛出了一个非常经典的面试/基础问题:
“在 Windows 中,新建了一个空文件,占不占磁盘空间?”
很多初学者的第一直觉是“不占”,因为文件是空的,什么数据都没写。但实际上,它一定会占用磁盘空间
- 文件 != 文件的内容
- 文件 = 文件的内容 + 文件的属性
-
假设我们在本地电脑新建一个文本文档
可能很多人会问:这个文件不是显示oKB吗? -
事实上,你的操作系统是不是需要去识别 文档、建立的时间、文件的类型? 这类属性信息我们称之为 元信息
所以,学习文件的本质——无非是对内容或者对属性做操作!
3.3.1)ls -a(列出目录下的所有文件,包括以 . 开头的隐含文件)
在 Linux 中,任何以 . (点) 开头的文件或目录都会被系统视为隐藏文件 默认的 ls 命令会忽略它们
-
a 的含义:–all,列出目录下所有的文件
-
核心作用: 查看配置文件(如 .bashrc)、版本控制目录(如 .git)以及当前目录状态
使用示例 
注意: 你会看到两个特殊的项:
-
. : 代表当前目录本身。
-
.. : 代表上一级目录(父目录)。
3.3.2)ls -l(将目录像文件一样展示)
如果你想知道文件有多大、是谁创建的、什么时候修改的,就需要用到 -l
-
-l 的含义: –long,使用长格式列出信息
-
输出结果解析 当你输入 ls -l,你会看到类似下面的一行: -rw-r–r– 1 user group 1234 May 8 12:00 file.txt
从左到右的含义分别是:
文件类型与权限(-rw-r–r–):
- 第1位:文件类型(- 是普通文件,d 是目录,l 是符号链接)。
- 后面9位:每3位一组,分别代表所有者(User)、所属组(Group)、其他人(Others)的读®、写(w)、执行(x)权限。
硬链接数(1):有多少个文件名指向这个物理数据块。
所有者(user):该文件属于哪个用户。
所属组(group):该文件属于哪个用户组。
文件大小(1234):默认单位是字节(Byte)。
最后修改时间(May 8 12:00):文件内容最后一次被更改的时间。
文件名(file.txt)
3.3.3)ls -l与ls -a的组合
当你需要查看当前目录下所有文件(包括隐藏文件)的详细属性时,这两个选项可以组合使用
顺序不影响结果 
3.3.4)..与.标识符
| .(单点) | 当前目录 (Current Directory) | “我就在这里” |
| ..(双点) | 上一级目录 (Parent Directory) | “退回大门口” |
- 在 Linux,如果你写了一个脚本 myscript.sh,直接输入文件名可能无法运行
./myscript.sh
- 如果你在 /Users/Name/Documents 目录下,输入:cd ..,你就会跳转到 /Users/Name
我们只罗列最重要的指令,剩下的后面会用到,这里不多赘述
3.4)mkdir 指令(在当前路径建立文件夹)
3.4.1)语法格式
mkdir [选项] 目录名
-
[选项] (Options): 用来改变 mkdir 的行为(例如递归创建、设置权限等),可选项
-
目录名 (Arguments): 你想要创建的文件夹名称或路径 可以是一个,也可以是多个
相当于我们在当前的路径下,新建一个文件夹
3.4.2)核心参数(选项)详解
mkdir 的强大之处主要体现在它的几个核心参数上
① -p(–parents):递归创建多级目录
这是最常用的参数 默认情况下,如果你想创建一个嵌套目录(如 a/b/c),但父目录 a 和 b 并不存在,系统会直接报错 加上 -p 参数后,系统会自动检测,如果父目录不存在,就连同父目录一起创建
mkdir -p old/new/test
如果目录 old/new/test 已经存在,默认的 mkdir 会报错,但加上 -p 后,系统会静默退出(不报错)
② -v(–verbose):显示详细创建过程
默认情况下,mkdir 创建成功后会在终端没有任何提示的
- 如果你想亲眼看到它创建了什么,可以加上 -v
mkdir -v my_folder
# 输出:
# mkdir: created directory 'my_folder'
- 结合 -p 使用时效果更佳:
mkdir -pv project/src/utils
# 输出:
# mkdir: created directory 'project'
# mkdir: created directory 'project/src'
# mkdir: created directory 'project/src/utils'
③ –mode(-m):创建时直接设定权限
- 默认情况下,新建文件夹的权限受到系统的 umask 限制(通常默认权限是 755 或 775)
- 如果想在创建文件夹的同时给它指定特殊权限,可以使用 –mode,其后紧跟 Linux 权限数字(如 777、700)
mkdir -m 700 private_data
这会创建一个只有当前拥有者(Owner)拥有读、写、执行权限,而其他人完全无法访问的文件夹
3.4.3)扩展用法
① 大括号扩展
如果你需要为项目初始化一组标准的目录结构,不需要一条条敲,利用 {} 可以实现一秒批量生成
- 同级并列创建:
mkdir project/{src,bin,doc,tests,config}
这会在 project 目录下同时生成 5 个文件夹
- 序列号创建:
mkdir log_2026_{01..12}
这会瞬间生成 log_2026_01 到 log_2026_12 共 12 个月份的文件夹
3.4.4)常见错误(踩坑)与解决方案
在实际使用中,你可能会遇到以下几种报错提示,明白它们的意思能帮你快速定位问题
错误 1:Permission denied (权限不足)
mkdir /var/www/my_site
# 报错:mkdir: cannot create directory ‘/var/www/my_site’: Permission denied
-
原因:你当前登录的用户对目标父目录(这里是 /var/www)没有“写(w)”权限 系统核心目录通常只允许管理员操作
-
解决办法:在命令前加上 sudo 提权执行,或者切换到你有权限的家目录(~)
sudo mkdir /var/www/my_site
错误 2:No such file or directory (没有那个文件或目录)
mkdir a/b/c
# 报错:mkdir: cannot create directory ‘a/b/c’: No such file or directory
-
原因:你试图创建某个嵌套目录,但是它的上级目录在电脑里根本不存在
-
解决办法:加上刚才提到的 -p 参数
mkdir -p a/b/c
错误 3:File exists (文件已存在)
mkdir test_dir
# 报错:mkdir: cannot create directory ‘test_dir’: File exists
-
原因:当前目录下已经有一个名叫 test_dir 的文件夹或者同名的普通文件 Linux 不允许在同一路径下出现完全同名的文件和文件夹
-
解决办法:更换名字,或者如果确定旧的没用,先用 rm -rf test_dir 删除(注意:此操作危险,请务必确认后执行)
3.5)cd 指令(切换当前的工作目录)
语法格式:
cd [目标路径]
-
目标路径: 可以是一个文件夹的名称,也可以是完整的路径
-
如果省略目标路径,直接输入 cd 并回车,默认会返回当前用户的家目录
3.5.1)核心路径概念
在使用 cd 之前,必须理解两种路径表示法:
-
绝对路径:从根目录 / 开始的完整路径。例如:cd /usr/local/bin。无论你当前在哪里,这个指令都能准确到达目的地
-
相对路径:相对于你当前位置的路径。例如:如果你在 /home,输入 cd user 就会进入 /home/user
1)绝对路径
cd /home/work/projects/web
解释: 无论你在系统的哪个角落(哪怕在 /etc 里),这个命令永远有效。
2)相对路径
cd projects/web
解释: 因为 projects 就在当前目录下,所以直接写名字
3.5.2)常用快捷操作(必记)
| cd ~ | 返回当前用户的家目录(如 /home/username)。 |
| cd / | 进入系统的根目录(整个文件系统的起点)。 |
| cd .. | 返回上一级目录(父目录)。 |
| cd . | 留在当前目录(通常在移动文件或执行脚本时配合使用)。 |
| cd – | 返回上一次工作目录。就像遥控器上的“回看”键,在两个深层目录间切换时极其好用。 |
| cd ../.. | 向上连续返回两级目录。 |
A. 返回家目录
家目录是当前用户的私人领地
-
指令:cd 或 cd ~
-
例子:无论你在系统的哪个角落,输入 cd ~ 都会瞬间回到 /home/用户名/
B. 进入上一级目录
在 Linux 中,.. 代表上一层文件夹
-
指令: cd ..
-
例子: 如果你在 /usr/local/bin,输入 cd .. 后,你将进入 /usr/local。
-
进阶: 连续跳两级可以输入 cd ../..
C. 切换回上一次所在的目录
-
指令: cd –
-
例子: 如果你从 /var/log 切换到了 /etc/nginx,输入 cd – 就会立刻跳回 /var/log。
D. 进入根目录
根目录是整个文件系统的起点
- 指令:cd /
更多的cd指令可以自行查阅,我们这里只讲最常用的
3.6)touch 指令
touch 主要用于以下两个场景:
创建新文件: 如果指定的文件不存在,系统会创建一个全新的空文件
更新时间戳: 如果文件已存在,则将其访问时间(atime)和修改时间(mtime)更新为当前系统时间
3.6.1)理解文件的三个时间戳
在使用 touch 之前,需要了解 Linux 文件的三种时间属性:
| Access Time | atime | 文件最后一次被读取(如 cat、vi 查看内容)的时间。 |
| Modify Time | mtime | 文件内容最后一次被修改的时间。 |
| Change Time | ctime | 文件元数据(如权限、所有者、链接数)最后一次改变的时间。 |
注意: touch 无法直接修改 ctime,但通过修改 atime 或 mtime,ctime 会随之自动更新为当前系统时间
3.6.2)常用语法与选项
基础语法: touch [选项] 文件名
常用选项:
- a : 只更新访问时间
touch -a report.txt
# 结果:
# Access: 10:05 (更新了)
# Modify: 10:00 (没变)
- m : 只更新修改时间
touch -m report.txt
# 结果:
# Access: 10:05 (保持上次的状态)
# Modify: 10:10 (更新了)
- c 或 –no-create:
场景: 你在写一个脚本,想更新 config.txt 的时间,但如果这个文件根本不存在,你不希望脚本莫名其妙创建一个空文件出来污染环境
# 假设不存在 ghost.txt
touch -c ghost.txt
# 结果:
# 文件夹里依然空空如也,没有任何新文件生成。
# 如果不加 -c,你会发现多了一个 0 字节的 ghost.txt。
- r : 以另一个文件的时间为准 touch -r ref_file.txt target_file.txt (将 target 的时间设置得和 ref 一模一样)
| touch file | 创建空文件 | 更新所有时间 |
| touch -c file | 无事发生 | 更新所有时间 |
| touch -a file | 创建空文件 | 仅更新 atime |
| touch -m file | 创建空文件 | 仅更新 mtime |
基础操作
-
创建单个空文件: touch file.txt
-
批量创建多个文件: touch file1.txt file2.txt file3.txt
-
使用通配符批量创建: touch test{1..10}.txt (快速生成test1到 test10)
3.7)stat 指令
如果说 ls -l 只能看到文件的皮毛(权限、大小、最后修改时间),那么 stat 就能把文件的生辰八字、户口信息、物理存储细节全都挖出来
在 Linux 系统中,stat 既是一个命令行工具,也是一个系统调用
核心作用:查看文件或目录的元数据(Metadata),即文件的“户口本信息”,而不是文件内容
-
在终端输入 stat 文件名,你会看到比 ls -l 详尽得多的信息

-
File: 文件名。
-
Size: 文件大小(字节)。
-
Blocks: 实际占用的磁盘块数(通常每块 512 字节)。
-
IO Block: 文件系统建议的 I/O 块大小(通常 4096 字节)。
-
Device: 文件所在设备的十六进制 ID。
-
Inode: 文件的 i-node 节点号,这是文件在文件系统中的唯一标识。
-
Links: 硬链接数。
-
Access/Modify/Change:
-
Access (atime): 最后一次读取文件内容的时间。
-
Modify (mtime): 最后一次修改文件内容的时间。
-
Change (ctime): 最后一次更改文件属性的时间(如权限、改名、改内容)。
-
Birth: 文件创建时间(某些旧文件系统不支持,会显示为 -)
-
3.8) rmdir与rm指令
1)rmdir 指令
- 功能:只能删除空目录
- 适用限制:该指令只能删除内部没有任何文件或子目录的空目录
rmdir my_folder
- 核心特性:
- 安全性极高:如果文件夹里哪怕只有一个隐藏文件,rmdir 也会拒绝执行并报错 这能有效防止你误删重要资料
- 递归删除空目录:使用 -p 参数可以删除一串嵌套的空目录
rmdir -p a/b/c
如果 c 是空的,则删除 c;如果删除 c 后 b 也空了,就把 b 也删掉
2)rm 指令
rm 是 Linux 中最常用的命令之一,它可以删除文件,也可以删除目录(无论是否为空)
- 语法格式:
rm [参数] [文件或目录]
- 常用参数:
| -f | –force | 强制删除 忽略不存在的文件,不弹出任何确认提示 |
| -r (或 -R) | –recursive | 递归删除 必须使用此参数才能删除目录及其内部所有内容 |
| -i | –interactive | 交互式删除 每次删除文件或目录前,要求输入 y/n 确认 |
| -v | –verbose | 显示详情 在终端实时输出每个被成功删除的文件路径 |
| -d | –dir | 删除空目录 效果等同于 rmdir,若目录非空则拒绝删除 |
(注:参数可合并写,如 rm -r -f 等同于 rm -rf)
标准应用场景
- 删除单个文件:
rm file.tx
- 删除多个指定文件:
rm file1.txt file2.txt
- 使用通配符批量删除(例如删除所有 .o 后缀文件):
rm *.o
- 目录操作:
- 删除整个目录及其内容(默认按规则提示):
rm -r folder_name
- 强制删除整个目录及其内容(最常用,静默执行):
rm -rf folder_name
异常文件名处理
- 文件名包含空格(如 my code.c):
rm "my code.c"
- 文件名以短横线开头(如 -config.txt):
- 必须使用 — 声明后续内容不是参数,或使用相对路径
rm — -config.txt
rm ./-config.txt
高危指令警告
-
rm -rf *:无提示、强制清空当前所在目录的所有内容(数据极难恢复)
-
rm -rf /:尝试删除整个操作系统的根目录(现代 Linux 默认拦截,需加特殊参数才会执行)
3.9) man指令
功能:Linux 的联机帮助手册。通过 man 指令可以查看所有 Linux 命令的详细说明、参数以及库函数。
- 用法:man [章节号] 指令名称
- 手册章节说明:
- 普通的可执行程序或 shell 命令。
- 系统调用(内核提供的函数)。
- 库调用(程序库中的函数)。
- 操作:按 q 退出阅读模式。
3.10) cp指令
功能:复制文件或目录。
- 用法:cp [选项] 源文件或目录 目标文件或目录
- 常用参数:
- -r:递归复制整个目录树(复制目录时必带)。
- -f:强行复制文件或目录,不论目的文件或目录是否已经存在。
- -p:连同文件的属性(权限、用户、时间)一起复制,而非使用默认属性。
3.11) mv指令
功能:移动文件或目录,或者给文件/目录重命名
- 用法:
- 移动:mv file.txt /home/user/ (将文件移动到指定目录)。
- 重命名:mv old_name.txt new_name.txt (在同一目录下操作即为重命名)。
- 常用参数:
- -f:如果目标文件已经存在,直接覆盖而不询问。
- -i:如果目标文件已存在,询问是否覆盖。
3.12) cat指令
功能:连接文件并打印到标准输出设备上(适用于内容较少的文件)。 常用参数:
- -n:对输出的所有行编号。
- -b:对非空输出行编号。
- -s:不输出多行空行。
3.13) more 指令
功能:类似 cat,但以全屏幕的方式按页显示文件内容。 操作说明:
- Space (空格):向下翻一页。
- Enter:向下翻一行。
- q:退出 more。
- /字符串:在当前文件中搜索指定内容。
3.14) less 指令
功能:对文件进行分页查看。它是 more 的增强版,支持向前和向后翻页,且不会加载整个文件,效率更高。 操作说明:
- PageUp / PageDown:向上/下翻页。
- j / k:向上/下滚动一行。
- /字符串:向下搜索;?字符串:向上搜索。
- q:退出。
3.15) head 指令
功能:显示档案的开头至标准输出中,默认显示前10行。 示例:
- head -n 5 file.txt:显示前5行内容。
3.16) tail 指令
功能:显示档案的末尾内容。 示例:
- tail -n 10 file.txt:显示最后10行。
- tail -f log.txt:实时查看日志文件更新(非常有用的指令)。
3.17) date 指令
功能:显示或设置系统的时间与日期。 示例:
- date:直接显示当前时间。
- date +"%Y-%m-%d %H:%M:%S":以指定格式显示。
3.18) cal 指令
功能:查看日历。 示例:
- cal:显示本月日历。
- cal -3:显示前一个月、本月及下一个月的日历。
- cal 2024:显示2024年整年的日历。
3.19) find 指令
功能:在文件树中查找文件,并作出相应的处理。 示例:
- find /path -name "*.c":在指定路径下查找所有后缀为 .c 的文件。
3.20) which 指令
功能:查看某个系统命令是否存在,以及执行文件所在的具体位置。 示例:
- which ls:输出 /usr/bin/ls。
3.21) whereis 指令
功能:定位指令的二进制文件、源码文件及帮助手册。
3.22) alias 指令
功能:设置指令的别名。 示例:
- alias ll='ls -l':设置 ll 为 ls -l 的别名。
- unalias ll:取消别名。
3.23) grep 指令
功能:强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 常用参数:
- -i:忽略大小写。
- -v:反向选择(输出不匹配的行)。
- -n:顺便输出行号。
3.24) top 指令
功能:实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。 快捷键:q 退出,M 按内存排序,P 按 CPU 排序。
3.25) zip/unzip 指令
功能:用于压缩和解压 zip 文件。 示例:
- zip test.zip file1 file2:将文件压缩。
- unzip test.zip -d /target_dir:将文件解压到指定目录。
3.26) 关于 rzsz
功能:用于 Linux 服务器和运行终端软件的本地计算机(如 Xshell)之间传输文件 sudo yum/apt install -y lrzlz
- rz:Receive,从本地机器上传文件到服务器。
- sz filename:Send,将服务器上的文件下载到本地机器。
3.27) tar 指令(重要)
功能:文件打包与解压缩。 核心参数:
- -c:建立一个压缩文件。
- -x:解开一个压缩文件。
- -z:是否需要用 gzip 压缩。
- -v:压缩的过程中显示文件。
- -f:使用档名(注意:f之后要立即接档名,不要再加参数)。 常用组合:
- tar -czvf test.tar.gz source/:压缩打包。
- tar -xzvf test.tar.gz:解压。
3.28) bc 指令
功能:任意精度的计算器语言。 用法:直接输入 bc 进入交互模式,或使用管道 echo "3+4" | bc
3.29) uname -r 指令
功能:显示操作系统的发行版本号。
- uname -a:显示系统所有相关信息(内核版本、架构、主机名等)
四、Linux的路径认识
4.1 Linux使用树形结构来管理文件
#mermaid-svg-ihkzQzjq1i6qEEGV{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ihkzQzjq1i6qEEGV .error-icon{fill:#552222;}#mermaid-svg-ihkzQzjq1i6qEEGV .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ihkzQzjq1i6qEEGV .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ihkzQzjq1i6qEEGV .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ihkzQzjq1i6qEEGV .marker.cross{stroke:#333333;}#mermaid-svg-ihkzQzjq1i6qEEGV svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ihkzQzjq1i6qEEGV p{margin:0;}#mermaid-svg-ihkzQzjq1i6qEEGV .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV .cluster-label text{fill:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV .cluster-label span{color:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV .cluster-label span p{background-color:transparent;}#mermaid-svg-ihkzQzjq1i6qEEGV .label text,#mermaid-svg-ihkzQzjq1i6qEEGV span{fill:#333;color:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV .node rect,#mermaid-svg-ihkzQzjq1i6qEEGV .node circle,#mermaid-svg-ihkzQzjq1i6qEEGV .node ellipse,#mermaid-svg-ihkzQzjq1i6qEEGV .node polygon,#mermaid-svg-ihkzQzjq1i6qEEGV .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ihkzQzjq1i6qEEGV .rough-node .label text,#mermaid-svg-ihkzQzjq1i6qEEGV .node .label text,#mermaid-svg-ihkzQzjq1i6qEEGV .image-shape .label,#mermaid-svg-ihkzQzjq1i6qEEGV .icon-shape .label{text-anchor:middle;}#mermaid-svg-ihkzQzjq1i6qEEGV .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ihkzQzjq1i6qEEGV .rough-node .label,#mermaid-svg-ihkzQzjq1i6qEEGV .node .label,#mermaid-svg-ihkzQzjq1i6qEEGV .image-shape .label,#mermaid-svg-ihkzQzjq1i6qEEGV .icon-shape .label{text-align:center;}#mermaid-svg-ihkzQzjq1i6qEEGV .node.clickable{cursor:pointer;}#mermaid-svg-ihkzQzjq1i6qEEGV .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ihkzQzjq1i6qEEGV .arrowheadPath{fill:#333333;}#mermaid-svg-ihkzQzjq1i6qEEGV .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ihkzQzjq1i6qEEGV .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ihkzQzjq1i6qEEGV .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ihkzQzjq1i6qEEGV .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ihkzQzjq1i6qEEGV .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ihkzQzjq1i6qEEGV .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ihkzQzjq1i6qEEGV .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ihkzQzjq1i6qEEGV .cluster text{fill:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV .cluster span{color:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ihkzQzjq1i6qEEGV .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ihkzQzjq1i6qEEGV rect.text{fill:none;stroke-width:0;}#mermaid-svg-ihkzQzjq1i6qEEGV .icon-shape,#mermaid-svg-ihkzQzjq1i6qEEGV .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ihkzQzjq1i6qEEGV .icon-shape p,#mermaid-svg-ihkzQzjq1i6qEEGV .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ihkzQzjq1i6qEEGV .icon-shape .label rect,#mermaid-svg-ihkzQzjq1i6qEEGV .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ihkzQzjq1i6qEEGV .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ihkzQzjq1i6qEEGV .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ihkzQzjq1i6qEEGV :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
/
/bin
/usr
/sbin
/etc
/tmp
/lib
/var
/home
/opt
bin
local
src
rc.d
rc3.d
rc5.d
init.d
named
httpd
ftp
bin
etc
pub
- Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
- 其中普通文件一定是目录树的叶子节点
- 目录可能是叶子(空目录),也可能是路上节点 理解路径存在的意义: 树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性
4.2 绝对路径 与 相对路径
- 绝对路径: 一般从/开始,不依赖其他目录的定位文件的方式
/etc/sysconfig/network-scripts/ifcfg-ens33
/usr/bin/date
- 相对路径: 相对于当前用户所处目录,定位文件的路径方式 特点: 相对于你当前的工作目录(PWD)。常用的符号包括.(当前目录)和..(上一级目录)。
假设你当前处于 /home/user/projects 目录下:
-
进入当前目录下的子文件夹: 如果你想进入 projects 里的 test 文件夹: cd test (或者 cd ./test)
-
返回上一级目录: 你想回到 /home/user: cd ..
-
访问同级目录的其他分支: 假设 /home/user 下还有个 downloads 文件夹,你想从 projects 直接跳过去: cd ../downloads
-
执行当前目录下的脚本: 运行当前文件夹里的 run.sh: ./run.sh
五、扩展命令
以下命令作为扩展,有感兴趣的可以自行了解一下
-
安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
-
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
-
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
-
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;
-
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudops、who;
-
其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
六、关机 指令
语法: shutdown [选项]
常见选项:
- -h:将系统的服务停掉后,立即关机。
- -r:在将系统的服务停掉之后就重新启动。
- -t sec:-t 后面加秒数,亦即『过几秒后关机』的意思。
💻结尾— 核心连接协议
警告: 🌠🌠正在接入底层技术矩阵。如果你已成功破解学习中的逻辑断层,请执行以下指令序列以同步数据:🌠🌠
【📡】 建立深度链接: 关注本终端。在赛博丛林中深耕底层架构,从原始代码到进阶协议,同步见证每一次系统升级。
【⚡】 能量过载分发: 执行点赞操作。通过高带宽分发,让优质模组在信息流中高亮显示,赋予知识跨维度的传播力。
【💾】 离线缓存核心: 将本页加入收藏。把这些高频实战逻辑存入你的离线存储器,在遭遇系统崩溃或需要离线检索时,实现瞬时读取。
【💬】 协议加密解密: 在评论区留下你的散列码。分享你曾遭遇的代码冲突或系统漏洞(那些年踩过的坑),通过交互式编译共同绕过技术陷阱。
【🛰️】 信号频率投票: 通过投票发射你的选择。你的每一次点击都在重新定义矩阵的进化方向,决定下一个被全量拆解的技术节点。


