【Linux系统编程】Cyberpunk在霓虹丛林中构建堡垒 ——【Linux环境配置 与 基础指令】

⚡ CYBER_PROFILE ⚡
/// SYSTEM READY ///


WARNING \]: DETECTING HIGH ENERGY **🌊 🌉 🌊 心手合一 · 水到渠成** ![分隔符](https://i-blog.csdnimg.cn/direct/60a3de2294e9439abad47378e657b337.gif) |------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| | **\>\>\> ACCESS TERMINAL \<\<\<** || | [**\[ 🦾 作者主页 \]**](https://blog.csdn.net/fengtinghuqu520?spm=1000.2115.3001.5343) | [**\[ 🔥 C++初阶 \]**](https://blog.csdn.net/fengtinghuqu520/category_13085789.html) | | [**\[ 💾C++进阶 \]**](https://blog.csdn.net/fengtinghuqu520/category_13085793.html) | [**\[ 📡 代码仓库 \]**](https://blog.csdn.net/fengtinghuqu520/article/details/147275999?spm=1001.2014.3001.5502) | --------------------------------------- Running Process: 100% \| Latency: 0ms *** ** * ** *** #### 索引与导读 * [前言:浅谈操作系统\~🛠️](#前言:浅谈操作系统~🛠️) * * [一、Linux操作系统源代码地址](#一、Linux操作系统源代码地址) * [二、Linux安装---环境准备](#二、Linux安装---环境准备) * * [2.1)操作系统生态](#2.1)操作系统生态) * * [1. 操作系统自身](#1. 操作系统自身) * [2. 软件体系](#2. 软件体系) * [3. 官网文档](#3. 官网文档) * [4. 社区论坛](#4. 社区论坛) * [5. 维护更新速度](#5. 维护更新速度) * [6. 富有针对性的客户群体](#6. 富有针对性的客户群体) * [2.2)Linux安装](#2.2)Linux安装) * [三、Linux基本指令](#三、Linux基本指令) * * [前期准备(⚠️如何切换为超级管理员模式)](#前期准备(⚠️如何切换为超级管理员模式)) * * [调整风格](#调整风格) * [全屏调整](#全屏调整) * [3.1)clear 指令(清除清理指令)](#3.1)clear 指令(清除清理指令)) * [3.2)pwd 指令(查看当前路径)](#3.2)pwd 指令(查看当前路径)) * * [3.2.1)使用语法](#3.2.1)使用语法) * [3.2.2)路径分隔符](#3.2.2)路径分隔符) * [3.2.3)Linux根目录](#3.2.3)Linux根目录) * [3.3)ls 指令(查看当前路径下所有的文件)](#3.3)ls 指令(查看当前路径下所有的文件)) * * [如何理解文件?](#如何理解文件?) * [3.3.1)ls -a(列出目录下的所有文件,包括以 . 开头的隐含文件)](#3.3.1)ls -a(列出目录下的所有文件,包括以 . 开头的隐含文件)) * [3.3.2)ls -l(将目录像文件一样展示)](#3.3.2)ls -l(将目录像文件一样展示)) * [3.3.3)ls -l与ls -a的组合](#3.3.3)ls -l与ls -a的组合) * [3.3.4)\`..\`与\`.\`标识符](#3.3.4)`..`与`.`标识符) * [3.4)mkdir 指令(在当前路径建立文件夹)](#3.4)mkdir 指令(在当前路径建立文件夹)) * [3.5)cd 指令(切换当前的工作目录)](#3.5)cd 指令(切换当前的工作目录)) * * [3.5.1)核心路径概念](#3.5.1)核心路径概念) * * [1)绝对路径](#1)绝对路径) * [2)相对路径](#2)相对路径) * [3.5.2)常用快捷操作(必记)](#3.5.2)常用快捷操作(必记)) * * [A. 返回家目录](#A. 返回家目录) * [B. 进入上一级目录](#B. 进入上一级目录) * [C. 切换回上一次所在的目录](#C. 切换回上一次所在的目录) * [D. 进入根目录](#D. 进入根目录) * [3.6)touch 指令](#3.6)touch 指令) * * [3.6.1)理解文件的三个时间戳](#3.6.1)理解文件的三个时间戳) * [3.6.2)常用语法与选项](#3.6.2)常用语法与选项) * [3.7)stat 指令](#3.7)stat 指令) * [3.8) rmdir与rm指令](#3.8) rmdir与rm指令) * [3.9) man指令](#3.9) man指令) * [3.10) cp指令](#3.10) cp指令) * [3.11) mv指令](#3.11) mv指令) * [3.12) cat指令](#3.12) cat指令) * [3.13) more 指令](#3.13) more 指令) * [3.14) less 指令](#3.14) less 指令) * [3.15) head 指令](#3.15) head 指令) * [3.16) tail 指令](#3.16) tail 指令) * [3.17) date 指令](#3.17) date 指令) * [3.18) cal 指令](#3.18) cal 指令) * [3.19) find 指令](#3.19) find 指令) * [3.20) which 指令](#3.20) which 指令) * [3.21) whereis 指令](#3.21) whereis 指令) * [3.22) alias 指令](#3.22) alias 指令) * [3.23) grep 指令](#3.23) grep 指令) * [3.24) top 指令](#3.24) top 指令) * [3.25) zip/unzip 指令](#3.25) zip/unzip 指令) * [3.26) 关于 rzsz](#3.26) 关于 rzsz) * [3.27) tar 指令(重要)](#3.27) tar 指令(重要)) * [3.28) bc 指令](#3.28) bc 指令) * [3.29) uname -r 指令](#3.29) uname -r 指令) * [四、Linux的路径认识](#四、Linux的路径认识) * * [4.1 Linux使用树形结构来管理文件](#4.1 Linux使用树形结构来管理文件) * [4.2 绝对路径 与 相对路径](#4.2 绝对路径 与 相对路径) * [五、扩展命令](#五、扩展命令) * [六、关机 指令](#六、关机 指令) * [💻结尾--- 核心连接协议](#💻结尾— 核心连接协议) ## 前言:浅谈操作系统\~🛠️ 最开始的计算机输入时,通过闭合开关给计算机进行交互 **但是通过开关的这种方式真的太挫了,很难进行多任务的处理** 所以在计算机发展的时候必须要有一种软件的诞生------**操作系统** 在上个世纪最具有代表性的操作系统是 **`unix操作系统`** *** ** * ** *** 操作系统本质上是一个资源管理器。它管理着计算机中所有的 **"硬资源"**和**"软资源"**: * **硬件管理** :`CPU` 算力分配、内存空间管理、硬盘数据读写、外设(键盘、显示器)驱动。 * **软件服务** :为各种 `App` 提供运行环境,处理文件存取、网络通信等琐事,让程序员不需要直接对着电路板写代码。 *** ** * ** *** ### 一、Linux操作系统源代码地址 > [🔗Lucy的空间骇客裂缝:Linux](https://www.kernel.org/) *** ** * ** *** ### 二、Linux安装---环境准备 #### 2.1)操作系统生态 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f3d2794737e04f97b018f67e2aef21d4.png) ##### 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虚拟机教程](https://blog.csdn.net/qq_62888264/article/details/145102532) *** ** * ** *** ### 三、Linux基本指令 **指令是控制Linux系统的基本方法** `Linux` 指令看似繁多,但其实大部分操作都遵循 **指令 + 选项 + 参数** 的逻辑 *** ** * ** *** #### 前期准备(⚠️如何切换为超级管理员模式) 在 `Linux` 系统中,切换到超级管理员(`root`)权限是进行系统配置和维护的日常操作 *** ** * ** *** * 首先我们登上`Xshell`,点击左上角的 `加号(新建会话属性)` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/aaf8725609c54e7784f69b16b2c7f644.png) * **名称**------取一个自己喜欢的名字就好 * **主机**------填写自己云服务器的公网IP地址 点击 **确定** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/24c23937dda2491f801eb3e693edece9.png) * 接着我们点击左上角的 **打开** * 这时候我们就能看到我们新建的机器 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c9bdbb0747c44c3e98413a1d9ac92ff1.png) * 我们点击 **连接** ,只要你的**公网IP地址**正确,它就会自动帮你连接 * 如果我们不需要用到这台机器,我们可以**鼠标右键单机可以删除** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2d377c96689f4c1e8b5dc48eb254e6a8.png) * **现在我们使用`Xshell`登录我们的`Linux机器`** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/28dd16e6f14c4739a8fa4d62bd876111.png) **语法格式:** `root@`+`公网IP地址` 点击 **回车** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3a2494de987c40d196745afbfdbe129b.png) **这时候你进去便是`root`超级管理员模式** *** ** * ** *** * 如果你打开的`Xshell`是这样的 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7937867b66aa4a0eba3f04f02182431c.png) 我们可以输入**ssh root@`公网IP`** ,也可以弹出这个界面 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dd8c97dada21462a82542532dd21b723.png) * **Password:** 输入对应账号密码即可(如何部署云服务器那里有讲) * 直到出现下面页面就算成功了 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/526d056f735d47558b6905ab383b1164.png) **更多关于Linux的root超级管理员操作请看👇** > [🔗Lucy的空间骇客裂缝:关于root的超级管理员权限](https://blog.csdn.net/fengtinghuqu520/article/details/160835916?spm=1011.2415.3001.10575&sharefrom=mp_manage_link) *** ** * ** *** ##### 调整风格 左上角还可以通过工具去调整自己页面对应喜欢的风格,在这里就不过多讲解,感兴趣的可以自己上网搜一搜 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cd6255f46bb04d459c2ceb0b4968738f.png) ##### 全屏调整 **`Alt+Enter`** 可以自由切换全屏与否 *** ** * ** *** #### 3.1)clear 指令(清除清理指令) 在之后的讲解中,我们会讲解各种各样的指令,敲各种各样的代码,如果你想重置服务器(`Xshell`)页面我们可以输入:**`clear`** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3bd5d8f3f5434311ba3234c1f8d12e52.png) *** ** * ** *** #### 3.2)pwd 指令(查看当前路径) ##### 3.2.1)使用语法 输入这个指令可以快速显示出来 **我们自身是出于哪个工作路径的** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/de708a7963414cc1baac0801cc20e349.png) ❗❗相当于我们在**文件资源管理器** 中查看文件的位置❗❗ ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e6a183bd35984eb792a56b523d4108dd.png) *** ** * ** *** ##### 3.2.2)路径分隔符 ❗❗**在`Windows`和`Linux`系统下的`pwd`路径显示** ❗❗ ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/42170c88a1ca49c99ec826fb662a3d9a.png) 注意:**两个系统的路径分隔符是不一样的不要搞混** *** ** * ** *** ##### 3.2.3)Linux根目录 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5f83fb95ce1c428d963cec04a6a9d8c0.png) *** ** * ** *** #### 3.3)ls 指令(查看当前路径下所有的文件) **语法:** `ls` \[`选项`\] \[`目录或文件`

功能

  • 对于目录,该命令列出该目录下的所有子目录与文件
  • 对于文件,将列出文件名以及其他信息

  • 常用选项:
    • -a 列出目录下的所有文件,包括以 . 开头的隐含文件 ls在默认显示时,不显示隐藏文件)

    • -d 将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录

    • -i 输出文件的 i 节点的索引信息。如 ls -ai 指定文件

    • -kk 字节的形式表示文件的大小。ls -alk 指定文件

    • -l 列出文件的详细信息

    • -n 用数字的 UID, GID 代替名称。(介绍 UIDGID

    • -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

从左到右的含义分别是:

  1. 文件类型与权限-rw-r--r--):

    • 第1位:文件类型(- 是普通文件,d 是目录,l 是符号链接)。
    • 后面9位:每3位一组,分别代表所有者(User)、所属组(Group)、其他人(Others)的读®、写(w)、执行(x)权限。
  2. 硬链接数(1):有多少个文件名指向这个物理数据块。

  3. 所有者(user):该文件属于哪个用户。

  4. 所属组(group):该文件属于哪个用户组。

  5. 文件大小(1234):默认单位是字节(Byte)。

  6. 最后修改时间(May 8 12:00):文件内容最后一次被更改的时间。

  7. 文件名(file.txt)


3.3.3)ls -l与ls -a的组合

当你需要查看当前目录下所有文件(包括隐藏文件)的详细属性时,这两个选项可以组合使用

顺序不影响结果


3.3.4)...标识符
标识符 含义 形象比喻
.(单点) 当前目录 (Current Directory) "我就在这里"
..(双点) 上一级目录 (Parent Directory) "退回大门口"
  • Linux,如果你写了一个脚本 myscript.sh,直接输入文件名可能无法运行
bash 复制代码
./myscript.sh
  • 如果你在 /Users/Name/Documents 目录下,输入:cd ..,你就会跳转到 /Users/Name

我们只罗列最重要的指令,剩下的后面会用到,这里不多赘述


3.4)mkdir 指令(在当前路径建立文件夹)

语法格式: mkdir+文件名

相当于我们在当前的路径下,新建一个文件夹


3.5)cd 指令(切换当前的工作目录)

语法格式:

bash 复制代码
cd [目标路径]
  • 目标路径: 可以是一个文件夹的名称,也可以是完整的路径

  • 如果省略目标路径,直接输入 cd 并回车,默认会返回当前用户的家目录


3.5.1)核心路径概念

在使用 cd 之前,必须理解两种路径表示法:

  • 绝对路径 :从根目录 / 开始的完整路径。例如:cd /usr/local/bin。无论你当前在哪里,这个指令都能准确到达目的地

  • 相对路径 :相对于你当前位置的路径。例如:如果你在 /home,输入 cd user 就会进入 /home/user

1)绝对路径
bash 复制代码
cd /home/work/projects/web

解释: 无论你在系统的哪个角落(哪怕在 /etc 里),这个命令永远有效。

2)相对路径
bash 复制代码
cd projects/web

解释: 因为 projects 就在当前目录下,所以直接写名字


3.5.2)常用快捷操作(必记)
命令 描述
cd ~ 返回当前用户的家目录(如 /home/username)。
cd / 进入系统的根目录(整个文件系统的起点)。
cd .. 返回上一级目录(父目录)。
cd . 留在当前目录(通常在移动文件或执行脚本时配合使用)。
cd - 返回上一次工作目录。就像遥控器上的"回看"键,在两个深层目录间切换时极其好用。
cd ../.. 向上连续返回两级目录。
A. 返回家目录

家目录是当前用户的私人领地

  • 指令:cdcd ~

  • 例子:无论你在系统的哪个角落,输入 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 主要用于以下两个场景:

  1. 创建新文件: 如果指定的文件不存在,系统会创建一个全新的空文件

  2. 更新时间戳: 如果文件已存在,则将其访问时间(atime)和修改时间(mtime)更新为当前系统时间


3.6.1)理解文件的三个时间戳

在使用 touch 之前,需要了解 Linux 文件的三种时间属性:

时间戳类型 缩写 含义
Access Time atime 文件最后一次被读取(如 catvi 查看内容)的时间。
Modify Time mtime 文件内容最后一次被修改的时间。
Change Time ctime 文件元数据(如权限、所有者、链接数)最后一次改变的时间。

注意: touch 无法直接修改 ctime,但通过修改 atime 或 mtime,ctime 会随之自动更新为当前系统时间


3.6.2)常用语法与选项

基础语法:
touch [选项] 文件名

常用选项:

  • a : 只更新访问时间
bash 复制代码
touch -a report.txt

# 结果:
# Access: 10:05 (更新了)
# Modify: 10:00 (没变)
  • m : 只更新修改时间
bash 复制代码
touch -m report.txt

# 结果:
# Access: 10:05 (保持上次的状态)
# Modify: 10:10 (更新了)
  • c--no-create:

场景: 你在写一个脚本,想更新 config.txt 的时间,但如果这个文件根本不存在,你不希望脚本莫名其妙创建一个空文件出来污染环境

bash 复制代码
# 假设不存在 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指令

rmdir 指令

  • 功能:删除空目录。
  • 适用限制:该指令只能删除内部没有任何文件或子目录的空目录。

rm 指令

  • 功能:删除文件或目录。
  • 常用参数
    • -f (force):强制删除,忽略不存在的文件,不提示确认。
    • -r (recursive):递归删除,常用于删除非空目录及其下的所有内容。
    • -i:交互式删除,在删除前会逐一询问确认。

注意rm -rf / 是极度危险的操作,使用时务必确认路径。


3.9) man指令

功能 :Linux 的联机帮助手册。通过 man 指令可以查看所有 Linux 命令的详细说明、参数以及库函数。

  • 用法man [章节号] 指令名称
  • 手册章节说明
    1. 普通的可执行程序或 shell 命令。
    2. 系统调用(内核提供的函数)。
    3. 库调用(程序库中的函数)。
  • 操作 :按 q 退出阅读模式。

3.10) cp指令

功能:复制文件或目录。

  • 用法cp [选项] 源文件或目录 目标文件或目录
  • 常用参数
    • -r:递归复制整个目录树(复制目录时必带)。
    • -f:强行复制文件或目录,不论目的文件或目录是否已经存在。
    • -p:连同文件的属性(权限、用户、时间)一起复制,而非使用默认属性。

3.11) mv指令

功能:移动文件或目录,或者给文件/目录重命名(Rename)。

  • 用法
    1. 移动mv file.txt /home/user/ (将文件移动到指定目录)。
    2. 重命名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使用树形结构来管理文件

/
/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 绝对路径 与 相对路径

  • 绝对路径: 一般从/开始,不依赖其他目录的定位文件的方式
bash 复制代码
/etc/sysconfig/network-scripts/ifcfg-ens33
bash 复制代码
/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


五、扩展命令

以下命令作为扩展,有感兴趣的可以自行了解一下

  • 安装和登录命令:loginshutdownhaltrebootinstallmountumountchshexitlast

  • 文件处理命令:filemkdirgrepddfindmvlsdiffcatln

  • 系统管理相关命令:dftopfreequotaatlpaddusergroupaddkillcrontab

  • 网络操作命令:ifconfigippingnetstattelnetftprouterloginrcpfingermailnslookup

  • 系统安全相关命令:passwdsuumaskchgrpchmodchownchattrsudopswho

  • 其它命令:tarunzipgunzipunarjmtoolsmanunendcodeuudecode


六、关机 指令

语法: shutdown [选项]

常见选项:

  • -h:将系统的服务停掉后,立即关机。
  • -r:在将系统的服务停掉之后就重新启动。
  • -t sec-t 后面加秒数,亦即『过几秒后关机』的意思。

💻结尾--- 核心连接协议

警告: 🌠🌠正在接入底层技术矩阵。如果你已成功破解学习中的逻辑断层,请执行以下指令序列以同步数据:🌠🌠


【📡】 建立深度链接: 关注本终端。在赛博丛林中深耕底层架构,从原始代码到进阶协议,同步见证每一次系统升级。

【⚡】 能量过载分发: 执行点赞操作。通过高带宽分发,让优质模组在信息流中高亮显示,赋予知识跨维度的传播力。

【💾】 离线缓存核心: 将本页加入收藏。把这些高频实战逻辑存入你的离线存储器,在遭遇系统崩溃或需要离线检索时,实现瞬时读取。

【💬】 协议加密解密:评论区留下你的散列码。分享你曾遭遇的代码冲突或系统漏洞(那些年踩过的坑),通过交互式编译共同绕过技术陷阱。

【🛰️】 信号频率投票: 通过投票发射你的选择。你的每一次点击都在重新定义矩阵的进化方向,决定下一个被全量拆解的技术节点。



相关推荐
ALM专业人士1 小时前
【ALM】Polarion Project Templating and Updating功能升级,多项目批量更新一键搞定!
运维·汽车
王琦03181 小时前
第四章 Web服务器(1)
运维·服务器
LinuxGeek10241 小时前
Linux 内核 “Copy Fail” 漏洞(CVE-2026-31431)修复方案
linux·运维·服务器
月白风清江有声1 小时前
下载电影开字幕(不是实时的ployer)
linux·学习
minji...1 小时前
Linux 网络基础(三)HTTP的请求方法(GET/POST),HTTP表单、临时和永久重定向状态码、Cookie、查询参数、Web根目录
linux·运维·服务器·网络·c++·http
小茬粥1 小时前
COLT_CMDB_nvidia_gpu_20260508.sh
linux·服务器·windows
大强同学1 小时前
精简版Windows如何安装微软商城应用? Codex 离线安装教程
人工智能·microsoft
fuquxiaoguang1 小时前
从监控面板到自主修复:AI智能体正在重新定义中间件运维
运维·人工智能·中间件·opsai
流浪0011 小时前
Linux基础篇(二)轻松掌握入门级指令
linux·运维·服务器