欢迎光临
我们一直在努力

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

在这里插入图片描述

⚡ 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 后面加秒数,亦即『过几秒后关机』的意思。

    💻结尾— 核心连接协议

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


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

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

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

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

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


    在这里插入图片描述 在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 【Linux系统编程】Cyberpunk在霓虹丛林中构建堡垒 ——【Linux环境配置 与 基础指令】
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址