Linux 常用命令梳理

文章目录

    • [1. 命令行的基本结构](#1. 命令行的基本结构)
      • [1.1 命令、选项与操作对象](#1.1 命令、选项与操作对象)
      • [1.2 常用终端按键](#1.2 常用终端按键)
    • [2. 目录与路径:确定命令操作的范围](#2. 目录与路径:确定命令操作的范围)
    • [3. 操作文件:创建、复制、移动和删除](#3. 操作文件:创建、复制、移动和删除)
    • [4. 查看和搜索:从文件里找到需要的信息](#4. 查看和搜索:从文件里找到需要的信息)
      • [4.1 文件大小和查看方式](#4.1 文件大小和查看方式)
      • [4.2 搜索内容用 grep,寻找文件用 find](#4.2 搜索内容用 grep,寻找文件用 find)
      • [4.3 管道和重定向:把命令连起来](#4.3 管道和重定向:把命令连起来)
    • [5. 编辑文件和打包文件](#5. 编辑文件和打包文件)
      • [5.1 vi 的基本操作](#5.1 vi 的基本操作)
      • [5.2 用 tar 打包,再解压到独立目录](#5.2 用 tar 打包,再解压到独立目录)
    • [6. 看懂权限:为什么有的文件能读却不能执行](#6. 看懂权限:为什么有的文件能读却不能执行)
    • [7. 查看主机状态:系统、内存、磁盘](#7. 查看主机状态:系统、内存、磁盘)
    • [8. 进程与作业:查看运行状态和控制程序](#8. 进程与作业:查看运行状态和控制程序)
    • [9. 查看网络与连接服务器](#9. 查看网络与连接服务器)
    • [10. 查看服务和日志:适用于 systemd 系统](#10. 查看服务和日志:适用于 systemd 系统)
    • [11. 常见报错与定位方向](#11. 常见报错与定位方向)

Linux 的日常操作往往围绕几个具体场景展开:查找 配置文件、查看 应用日志、调整 文件权限,以及排查进程、磁盘和网络状态。

这些工作涉及的命令看似分散,实际上有清晰的分工:路径决定操作对象,命令完成具体处理,Shell 则负责把多个命令连接起来。

本文按这些使用场景梳理常用命令,同时解释容易混淆的参数和行为。重点放在命令的用途、适用场景与操作影响,便于日常查阅和实际使用。

适用范围:常见 GNU/Linux 系统,命令输入环境以 Bash 为例。Ubuntu、Debian、openEuler、Rocky Linux 等系统的大部分基础命令通用;最小化安装、容器或不同发行版可能缺少部分工具。服务管理部分以使用 systemd 的系统为前提。

文中的 docs、logs 和 backup 属于同一个示例工作目录。

1. 命令行的基本结构

1.1 命令、选项与操作对象

命令通常由"命令名、选项、操作对象"组成,例如:

bash 复制代码
ls -lh /var/log

这里,ls 表示列出目录内容,-l 表示显示详细信息,-h 表示把文件大小显示成便于阅读的形式,/var/log 是要查看的目录。很多短选项可以合并,因此 -lh 也可以写成 -l -h。选项的含义由具体命令决定,同一个字母在不同命令中可能有不同用途。

确认当前身份、工作目录和发行版,常用以下三个命令:

bash 复制代码
whoami
pwd
cat /etc/os-release

它们分别显示当前用户名、当前所在目录、Linux 发行版信息。普通用户的主目录通常位于 /home/用户名,root 用户的主目录通常是 /root。个人文件操作通常使用普通用户身份即可。

1.2 常用终端按键

按键 作用与使用场景
Tab 补全命令或路径;有多个候选时,通常可以再按一次查看
↑ / ↓ 翻看当前 Shell 的历史命令
Ctrl + C 向前台程序发送中断信号,常用于结束持续运行的命令
Ctrl + L 在常见 Bash 终端中清理当前显示,历史输出是否保留取决于终端
Ctrl + A / Ctrl + E 在 Bash 常见默认编辑模式下,移动到本行开头 / 结尾
q 在 less、man、top 等界面中退出;不是所有程序的通用退出键

输入 sudo 或 SSH 的密码时,终端通常不回显星号或字符,输入完成后以回车提交。

2. 目录与路径:确定命令操作的范围

Linux 用一棵以 / 为起点的目录树组织文件。/ 是根目录,~ 通常表示当前用户的主目录;两者用途不同。

写法 含义 例子
/ 整棵目录树的起点 /var/log
~ 当前用户的主目录 cd ~
. 当前目录 ls .
.. 上一级目录 cd ..
以 / 开头的路径 绝对路径,从根目录开始定位 /home/student/docs
不以 / 开头的普通路径 相对路径,从当前目录开始定位 docs/note.txt

图中的用户名和目录后缀只是示意。定位同一个文件时,绝对路径固定,而相对路径会随着当前位置改变。

命令 作用 用法示例
pwd 显示当前目录路径 pwd
ls 列出目录内容,默认不显示点号开头的隐藏项 ls
ls -l 查看权限、所有者、大小和时间等信息 ls -l docs
ls -lah 显示详细信息(l)、隐藏项(a)和易读的大小(h) ls -lah
ls -ld 查看目录自身的信息,而不是列出里面的内容 ls -ld docs
cd 路径 切换当前目录 cd docs
cd .. 返回上一级目录 cd ..
cd 或 cd ~ 返回自己的主目录 cd ~
cd - 切换回上一次所在目录 cd -

系统目录通常按用途组织,常见位置如下:

目录 通常存放什么
/home 普通用户的主目录
/root root 用户的主目录
/etc 系统与软件的配置文件
/var/log 常见系统或服务日志;具体软件也可能另设日志路径
/tmp 临时文件,可能被系统定期清理
/usr 大量已安装程序、库和共享数据
/dev 设备相关的特殊文件

Linux 常见文件系统区分大小写,例如 Note.txt 与 note.txt 通常是不同文件。

路径里有空格时,要加引号,例如 mkdir "my notes",变量路径常写成 "$LAB",可以避免其中的空格被拆成多个参数。

3. 操作文件:创建、复制、移动和删除

文件操作主要涉及创建、复制、移动和删除。使用相对路径时,pwd 可以帮助确认操作范围;涉及已有目标时,还需要关注覆盖行为。

命令 作用 用法示例
mkdir 创建目录 mkdir drafts
mkdir -p 按需创建多层目录(p),已有目录可以继续使用 mkdir -p drafts/day1
touch 文件不存在时创建空文件;存在时通常更新时间戳 touch docs/empty.txt
cp -i 复制文件,目标存在时询问是否覆盖 cp -i docs/note.txt backup/note.txt
cp -ri 递归复制目录,覆盖已有文件前询问(i) cp -ri docs backup/
mv -i 移动 或重命名,覆盖已有目标前询问 mv -i docs/empty.txt docs/draft.txt
rm -i 删除文件前询问 rm -i docs/draft.txt
rmdir 删除空目录,有内容时拒绝删除 rmdir drafts/day1

-i 会在删除前要求确认,通常输入 y 表示同意、n 表示取消。rm 通常直接删除文件,不经过桌面回收站。

rm -rf 中的 -r 表示递归处理目录,-f 会取消通常的询问并忽略不存在的目标。组合使用时,错误路径可能导致整个目录树被删除,因此不适合作为日常删除操作的默认写法。

* 是常见的文件名通配符 。例如 ls logs/*.log 会列出该目录下符合模式的非隐藏文件。与删除、移动等命令组合时,通配符会扩大操作范围,实际匹配的文件需要明确。

4. 查看和搜索:从文件里找到需要的信息

4.1 文件大小和查看方式

小文件适合直接输出,长文件更适合分页浏览,持续增长的日志则需要跟踪新增内容。cat、less、head 和 tail 分别覆盖这些场景。

命令 作用 用法示例
cat 一次输出文件内容,适合小文件 cat docs/note.txt
less 分页查看,适合较长文件 less logs/app.log
head -n 数字 查看开头若干行 head -n 3 logs/app.log
tail -n 数字 查看最后若干行 tail -n 2 logs/app.log
tail -f 持续观察文件新增内容 tail -f logs/app.log
wc -l 统计换行符数量,常用于统计文本行数 wc -l logs/app.log

在 less 中,空格翻到下一页,b 返回上一页,输入 /ERROR 后回车可向后搜索,n 跳到下一处匹配,q 退出。

本文示例日志包含 5 行,且每行均以换行符结束,因此 wc -l logs/app.log 的计数为 5;tail -n 2 对应最后两条 ERROR 记录。

tail -f 会持续等待新增内容,通常使用 Ctrl + C 结束。日志轮转可能替换原文件,需要继续跟踪同名日志时,可以使用 tail -F:它按文件名跟踪,并在文件暂时不可用时重试。

4.2 搜索内容用 grep,寻找文件用 find

命令 作用 用法示例
grep -n 搜索匹配的行(正则模式),并显示行号(n) grep -n 'ERROR' logs/app.log
grep -ni 搜索时忽略大小写(i),并显示行号 grep -ni 'error' logs/app.log
grep -F 把搜索内容当作普通字符串,而不是正则表达式 grep -F 'slow query' logs/app.log
grep -rn 递归搜索(r)目录中的文件内容,并显示行号 grep -rn 'ERROR' logs
find 路径 递归输出该路径下所有内容,文件、目录等全部 find /test
find 路径 -type f 只递归匹配普通文件(file) find /test -type f
find 路径 -type d 只递归匹配目录/文件夹(directory) find /test -type d
find 路径 -name '模式' 所有类型,只递归匹配名字 find /test -name '*.log'
find 路径 -iname '模式' 同上,忽略大小写(i) find /test -iname 'hello.txt'
find 路径 -type f -name '模式' 结合,递归匹配符合要求名字的文件 find /test -type f -name '*.log'

grep 和 find 将搜索起点限定到相关目录,也能减少无关结果和不必要的全盘遍历。

注意点:

Shell 里 ls 和 find -name 中的 * 属于通配符 ,代表任意 0 个或多个字符,用于匹配文件名。使用 find 时要给匹配式(-name)加上引号,避免 shell 提前解析星号。

bash 复制代码
# 举例
find 路径 -name '*.log'

grep 默认是正则模式 ,这里 * 是量词,只表示它前面那个字符可以重复 0 次或多次,不能单独用来匹配任意一串字符,如果想要匹配任意内容,需要写成 .* 。但是一般来说,grep 单纯检索关键词时,直接写关键词即可,不需要额外加星号。

bash 复制代码
# 举例,查找当前路径中,带有".txt"关键词的结果
ls -lh ./ | grep '.txt'
# 下面这个也是,通过 find 查找带有".txt"关键词的文件和文件夹,与上面不同的是,find 是递归查找,会查找当前路径以及以下路径
find ./ -name '*.txt'

4.3 管道和重定向:把命令连起来

很多命令会把正常结果写到"标准输出",把错误说明写到"标准错误"。两者默认通常都显示在终端上。Shell 可以把这些输出接到别的命令或文件中。

符号 作用 示例
| 将左侧命令的标准输出接给右侧命令的标准输入
> 将标准输出 写入文件;不存在则创建,存在则截断覆盖 grep 'ERROR' logs/app.log > logs/errors.txt
>> 不存在则创建,存在则追加到文件末尾 printf 'Updated note.\n' >> docs/note.txt
2> 将标准错误 写入文件,不存在则创建,存在则截断覆盖 ls no-such-file 2> logs/lookup-error.txt
2>> 不存在则创建,存在则追加到文件末尾
&& 左侧命令成功后,才执行右侧命令 mkdir -p drafts/day2 && ls drafts
|| 左边失败 才执行右边(和 && 相反)

这里:2> 只抓报错,正常输出依旧打印在屏幕; > 只抓正常输出,报错依旧打印屏幕。

可以混合起来使用,例如:mkdir study && touch study/Day01.md && find study -type f >> study/print.txt 2>> study/error.txt。

grep 'ERROR' logs/app.log | wc -l:管道把筛选结果交给计数命令;

grep 'ERROR' logs/app.log > logs/error.txt:重定向把筛选结果保存为新文件,原始日志保持不变。

重定向需要特别注意读写目标,如果把 grep 的输出直接覆盖回正在读取的原文件(logs/app.log),Shell 通常会在程序开始读取前就截断该文件,导致原内容丢失。这类处理应先输出到另一个文件,再核对结果。

5. 编辑文件和打包文件

5.1 vi 的基本操作

服务器上经常使用 vi 或 vim:

bash 复制代码
vi docs/note.txt

vi 通过模式区分文本输入与编辑操作:普通模式下按 i 进入插入模式,按 Esc 返回普通模式。保存与退出使用编辑器内部的冒号命令,输入后以回车执行。

操作 含义
i 从普通模式进入插入模式
Esc 从插入模式返回普通模式
:w 保存当前文件
:wq 保存并退出
:q! 放弃未保存的修改并退出

这些按键和命令作用于编辑器内部。普通模式下输入字母可能触发编辑动作,因此模式切换是使用 vi 时最需要区分的操作。

5.2 用 tar 打包,再解压到独立目录

打包压缩 :tar -zcvf testdir.tar.gz testdir,将 testdir 文件夹打包成 testdir.tar.gz。

解压缩 :tar -zxvf testdir.tar.gz -C /data/tmp,前提 :目标目录 /data/tmp 要提前创建,否则报错。

参数解释:

  • -z:gzip 压缩(后缀.tar.gz),也可以根据需要换成 -j,代表 bzip2 压缩(后缀 .tar.bz2)

    bzip2 压缩率比 gzip 更高,但压缩、解压速度更慢。

  • -c:create,创建压缩包

  • -x:extract,解压压缩包

  • -v:verbose,显示过程(不想看日志就去掉 v)

  • -f:file,指定包文件名,f 必须放最后

打包的一些使用技巧:

  1. tar 可以打包多个文件或文件夹,直接在命令末尾,空格隔开写多个文件或目录即可,如 tar -zcvf all.tar.gz a b c.txt;
  2. 可以使用通配符批量打包一类文件,如 tar -zcvf all.tar.gz *.txt;
  3. 打包时,如果想排除某个文件,可以用 --exclude 参数,如 tar -zcvf all.tar.gz *.txt --exclude=test.txt;
  4. 打包时一般推荐用相对路径 ,如果写绝对路径 /home/xxx,解压的时候也会还原绝对路径。

6. 看懂权限:为什么有的文件能读却不能执行

ls -l 展示的详细信息中,包含文件类型和基本访问权限:

bash 复制代码
ls -l docs/note.txt

输出开头可能类似 -rw-r--r--,后面还有链接数、所有者、所属组、大小、时间和文件名。具体权限取决于创建方式及环境设置。

第一个字符表示类型:- 是普通文件,d 是目录,l 是符号链接。后面九个字符每三个一组,依次表示所有者、所属组、其他用户的权限。

图中的 640 是一个权限示例:所有者可读写,所属组只读,其他用户没有这三种普通权限。

权限 对普通文件的主要含义 对目录的主要含义
r,数值 4 读取文件内容 列出目录中的条目名称
w,数值 2 修改文件内容 配合 x,在目录中创建、删除、重命名条目
x,数值 1 尝试把文件作为程序执行,还需要合法的程序格式等条件 穿过目录,访问其中已知名称的条目

目录的权限尤其重要:读取一个文件,通常还需要对路径上各级目录具有 x 权限。删除文件主要受其父目录权限控制,还可能受 sticky bit 等额外规则限制。

常见的权限修改命令:

命令 含义
chmod u+x 文件 给所有者增加执行权限,其他权限保持原状
chmod 640 文件 设置为所有者读写、所属组只读、其他用户无权限
chmod 755 目录 所有者可读写和进入,所属组及其他用户可列出和进入
chown 所有者:所属组 文件 修改所有者和所属组,修改所有者通常需要管理员权限

数字是每组权限的加和:6 = 4 + 2,5 = 4 + 1,7 = 4 + 2 + 1。这些是权限写法示例,实际应按谁需要访问来设置。777 会把读、写、执行权限授予所有人,不宜作为解决权限报错的通用办法。

7. 查看主机状态:系统、内存、磁盘

系统

命令 用途
whoami 当前有效用户名
id 用户 UID/GID 及所属组
hostname 主机名
cat /etc/os-release 系统发行版
uname -r 内核版本
date 当前时间 / 时区

系统整体状态

命令 用途
uptime 运行时长 + 1/5/15 分钟负载
top 实时看 CPU / 内存 / 进程
htop top 增强版
vmstat 1 整体状态,每秒刷新
mpstat -P ALL 每个 CPU 核心使用率
dmesg 内核日志

执行 top 时,优先看首行 load average 判断系统整体负载 ,Tasks 检查是否存在僵尸进程 ;CPU 部分重点关注 id 空闲占比和 wa IO 等待值,wa 高代表磁盘存在瓶颈;内存看 avail 可用内存与 Swap 使用量,Swap 被占用(used)说明内存紧张;下方进程列表用 P/M 快捷键分别按 CPU、内存排序,重点观察高占用进程的 PID(进程号)、% CPU、% MEM、进程状态与进程名。

内存

命令 用途
free -h 内存与交换空间概况
  • Mem 行:total 总内存 7.6Gi;available=5.6Gi,是新程序可直接使用内存(最核心指标)。
  • buff/cache:系统缓存,可回收,不要当成占用内存。
  • Swap 行:交换分区,total2.0Gi,used 为 0B。

重点 :优先看 available;Swap 一旦出现 used,代表物理内存不足,系统开始读写磁盘交换,性能下降。

磁盘

命令 用途
df -h 文件系统剩余空间
df -h 路径 目录所在分区,路径省略时,默认指当前路径
du -sh 路径 目录占用大小,路径省略时,默认指当前路径
lsblk 磁盘 / 分区 / 挂载点层级
iostat -x 1 磁盘 IO 详情
iotop 哪个进程在疯狂读写磁盘

Filesystem(文件系统 / 设备),就是磁盘设备名称。

  • /dev/sde:物理磁盘分区设备
  • overlay:容器的联合文件系统(现在这个是容器环境)
  • tmpfs:内存虚拟盘,数据放在内存,重启丢失,不占用硬盘

Mounted on(挂载点)

Linux 没有 C 盘 D 盘,把磁盘挂载到某个文件夹,这个文件夹就是挂载点 ,访问这个文件夹就是访问这块磁盘。例如:/ 就是根目录,对应系统盘;/tmp、/run 是内存盘 tmpfs 的挂载目录。

总结:

  1. Filesystem 是磁盘设备;Mounted on 是访问该磁盘的目录(挂载点),df 重点看挂载点对应的 Use% 使用率;
  2. df 看磁盘空间,du 看文件夹大小。磁盘满先用 df 定位哪个分区,再用 du 进分区找大目录。
    • 执行 df -h,看 Use% ,找到使用率高的挂载点(比如 /);
    • 进入该挂载点目录:cd /;
    • 执行 du -sh *,列出当前目录下各个子目录大小,找出占用最大目录;
    • cd 进入大目录,再次 du -sh *,逐层往下定位大文件。

看一个实际例子

看独立分区

  1. 筛选:排除所有tmpfs、devtmpfs(内存盘);

  2. 剩下每一行,Mounted on 是目录 ,就是独立挂载的分区,一共 8 个独立磁盘分区。

    bash 复制代码
    /dev/mapper/rootvg-root      → Mounted on /
    /dev/sda1                    → Mounted on /boot
    /dev/mapper/rootvg-opt       → Mounted on /opt
    /dev/mapper/rootvg-var       → Mounted on /var
    /dev/mapper/rootvg-home      → Mounted on /home
    /dev/mapper/vgdata-lvdata    → Mounted on /database
    /dev/mapper/vgbackup-lvbackup→ Mounted on /backup
    /dev/mapper/vgarch-lvarch    → Mounted on /archive

Filesystem 这一列 /dev/mapper/xxx 是什么

/dev/mapper/ 是 LVM 逻辑卷(Linux 逻辑卷管理),属于磁盘分区的一种。

  • 名字前缀:rootvg 代表同一个卷组 rootvg 里的多个逻辑卷:root、opt、var、home。它们来自同一组物理磁盘 ,但是独立分区,空间互相隔离。
  • vgdata、vgbackup、vgarch 是另外不同卷组,对应另外的物理磁盘。

8. 进程与作业:查看运行状态和控制程序

命令 用途
ps aux 所有进程快照
ps -ef 进程列表(另一种格式)
pstree 进程树
kill PID进程号 正常结束进程,等价发送 SIGTERM(15) 信号
kill -9 PID进程号 强制杀死进程,当出现进程卡死、kill 无效时才用,慎用,会丢数据

通过 ps、top 读取的进程原始信息都来自 Linux 内核,大部分基础信息 (PID、内存、进程状态等)是一致的。

二者核心差别在于:

  • ps 是执行一次就输出的静态快照 ,而 top 会持续采样、实时刷新;
  • 两者 CPU 使用率的计算逻辑不同,ps 的 CPU 是进程启动以来的平均值 ,top 是采样周期内的瞬时值。

9. 查看网络与连接服务器

命令 用途
ip a 网卡 IP 地址
ip route 路由表
ss -tulnp 监听端口
ping 连通性测试
curl -v url 请求接口

目前正在监听端口的有:

  • sshd:TCP 22 端口 → ssh 远程登录
  • chronyd:UDP 323 端口 → chrony 时间同步内部端口,主动去外部 NTP 服务器同步时间

10. 查看服务和日志:适用于 systemd 系统

进程是运行实例,服务则是由管理器按配置管理的一项任务。一个服务可能包含一个或多个进程。

以下命令列出正在运行的服务:

bash 复制代码
systemctl list-units --type=service --state=running --no-pager

可以看到,目前一共有 7 个正在运行的基础系统服务

复制代码
chronyd.service        NTP client/server        # 时间同步服务
crond.service           Command Scheduler        # 定时任务(crontab)
dbus.service           D-Bus System Message Bus # 系统消息总线,供各进程通信
getty@tty1.service     Getty on tty1            # 终端控制台登录
sshd.service           OpenSSH server daemon    # ssh远程登录服务(TCP22)
systemd-journald.service Journal Service        # 系统日志服务,收集系统日志
systemd-logind.service User Login Management  # 用户登录会话管理

获取实际服务名后,可以查询其状态和日志。服务命名存在发行版差异,例如 SSH 服务在不同系统上的名称可能不同。

bash 复制代码
systemctl status 实际服务名.service --no-pager
journalctl -u 实际服务名.service -n 50 --no-pager

前者显示服务状态及部分最近日志,后者查看该服务的最近 50 条 journal 日志。注意 Loaded 与 Active 字段;active (running) 表示服务正在运行,failed 表示失败。active (exited) 则可能是一次性任务已完成,需要结合服务类型解释。

journalctl 能看到的日志受当前用户权限、日志留存和服务日志输出方式影响;有些应用另写自己的日志文件,不能仅凭这里没有记录就判断它没有产生日志。

除了查看状态,systemctl 也负责服务的启动、停止和启用关系管理:

动作 含义
systemctl start 服务名 启动服务
systemctl stop 服务名 停止服务,会影响它正在提供的功能
systemctl restart 服务名 重启服务(停止后再启动),原本未运行时也会尝试启动
systemctl enable 服务名 按 unit 的安装配置建立启用关系,通常用于随开机目标启动,单独执行通常不会立即启动服务
systemctl disable 服务名 移除对应启用关系,单独执行通常不会立即停止正在运行的服务

这些变更通常需要管理员权限,并会影响服务的可用性。远程会话尤其依赖 SSH 和网络服务,停止相关服务可能中断连接。

如果容器或某些环境没有以 systemd 作为系统管理器,systemctl 可能无法使用,这时应使用该环境实际的服务管理方式。

11. 常见报错与定位方向

现象 先检查什么
command not found 命令是否拼错、是否安装;用 command -v 命令名 查看 Shell 能否找到它
No such file or directory 用 pwd 确认位置,再用 ls 检查大小写和路径
Permission denied 用 whoami、id、ls -l 检查身份及权限,同时留意路径上的目录权限
Is a directory 命令需要文件,但给了目录;检查操作对象和参数
Directory not empty rmdir 的目标有内容,先用 ls -la 目录 看清楚
命令没有输出就回到提示符 很多修改命令成功时本来就不输出 ,可以用 ls 或 cat 查看结果
命令一直不结束 可能是 tail -f、top 等持续程序,按各自退出方式结束
无法保存编辑结果 检查文件和目录权限、磁盘剩余空间,不要立即扩大所有权限
相关推荐
一条破秋裤1 小时前
TCP 并发服务器:连接分析、多线程与多进程
服务器·网络·tcp/ip
一条破秋裤1 小时前
Linux 线程同步:条件变量
java·linux·jvm
ai小陈1 小时前
深度学习CUDA异步报错定位:从错误堆栈到最小复现
运维·人工智能·深度学习·ai·gpu算力
Chill601 小时前
服务器home文件夹太小怎么把配置迁移到其他盘
运维·服务器
LRL_1 小时前
【K8s 存储】Longhorn v1.12.1 离线安装全流程:外网制作离线包 + 内网部署(附踩坑实录)
linux·windows·node.js
星恒随风1 小时前
Linux开发工具详解(一):软件包管理、Vim、GCC/G++、Makefile与进度条实战
linux·运维·笔记·学习·vim
小小、码农1 小时前
Ubuntu / Linux 软件安装完整笔记
linux·笔记·ubuntu
yunwei371 小时前
eBPF 开发实践:使用 sockops 加速网络请求转发
linux·后端·性能优化
rest10241 小时前
做io测试
linux·服务器·网络