Linux + 计算机网络全套精炼整理笔记

Linux + 计算机网络全套精炼整理笔记(去重纠错 + 分类排版 + 每条命令配套实操案例)

整体分六大模块:计算机网络基础 → Linux 系统基础命令 → 三剑客 (grep/sed/awk)+ 正则 → 文件压缩打包 + vim 编辑器 → 软件安装 (RPM/YUM/ 源码 / 自建 YUM) → 用户 & 权限管理 → 磁盘管理 (分区 / LVM/RAID/swap) → 网络配置 → 进程 & 定时任务 → 系统安全优化 → 系统开机原理

修正原文笔误:【】改为标准正则[]、命令拼写错误、参数书写错误、概念描述错误,剔除全量重复内容,所有指令附带实操示例

模块一 计算机网络基础

1. OSI 七层 & TCP/IP 五层模型

表格

OSI 七层(自上而下) TCP/IP 五层 核心硬件 头部封装
应用层、表示层、会话层 应用层 服务器 / 客户端程序 无应用头
传输层 传输层 防火墙 TCP/UDP 头部(源端口、目的端口)
网络层 网络层 路由器 IP 头部(源 IP、目的 IP)
数据链路层 数据链路层 交换机 MAC 头部(源 MAC、目的 MAC)
物理层 物理层 网线、网卡 电 / 光信号

数据封装:应用数据→TCP 头→IP 头→MAC 头→电信号发出 解封装:电信号→拆 MAC→拆 IP→拆 TCP→应用数据

2. 核心协议

  1. TCP:面向连接、可靠、全双工 ,靠三次握手建立、四次挥手断开
    • SYN:建连接标识;FIN:断连接标识;seq 随机序号、ack = 对方 seq+1
    • 三次握手:SYN (seq=x) → ACK (x+1)+SYN (seq=y) → ACK (y+1)
    • 四次挥手:FIN (a)→ACK (a+1)→FIN (b)→ACK (b+1)
  2. UDP:无连接、不可靠、传输速率高,DNS/DHCP 使用
  3. ICMP:ping 命令底层协议;ARP:已知 IP 查 MAC(局域网广播)
  4. 常用默认端口:HTTP=80、HTTPS=443

3. MAC 地址

48 位二进制,12 位十六进制,6 组;前 24 位厂商编码,后 24 位设备编号,全球唯一;交换机维护MAC 地址表(端口 + MAC)

  • 单播:一对一通信;广播:整网段全部接收

4. IP 地址分类(32 位二进制,4 段 8 位)

表格

类型 网络位 默认子网掩码 私有内网网段
A 类 第 1 段 255.0.0.0 10.0.0.0/8
B 类 前 2 段 255.255.0.0 172.16.0.0~172.31.255.255/16
C 类 前 3 段 255.255.255.0 192.168.0.0/24

127.0.0.1 本地回环地址;子网掩码和 IP 做与运算判断是否同网段

  • 同网段通信:ARP 获取目标主机 MAC;跨网段通信:ARP 获取网关 MAC,路由器转发修改二层 MAC、三层 IP 不变

模块二 Linux 系统基础

1. 基础概念

  1. Linux 是内核,CentOS/OpenEuler/ 麒麟基于 Linux 内核开发;root 是系统超级管理员 (UID=0),Windows 管理员 administrator
  2. 硬件分工:CPU 运算、内存临时存储、硬盘永久存储;Linux 一切皆文件
  3. 路径
    • 绝对路径:从/根开始;相对路径:从当前目录开始
    • ~当前用户家目录、.当前目录、..上级目录、/系统根目录

2. 全局快捷键

bash

运行

复制代码
ctrl+l    # 清屏
ctrl+c    # 终止前台运行程序
ctrl+a    # 光标跳到行首
ctrl+e    # 光标跳到行尾
ctrl+u    # 剪切光标前内容
ctrl+k    # 剪切光标后内容
ctrl+y    # 粘贴剪切内容
tab       # 命令/路径自动补全

3. 文件 / 目录【增删改查 + 案例】

表格

操作 文件 (普通文本) 案例 目录 (文件夹) 案例
touch touch test.txt mkdir -p(递归) mkdir -p /data/test
rm -rf rm -rf test.txt rm -rf rm -rf /data/test
cp/mv cp test.txt /tmp/ ; mv test.txt new.txt cp -r/mv cp -r /data /tmp ; mv /data /root/data
cat/head/tail/grep cat test.txt ls/pwd/find ls -l /data ; pwd
补充常用查看文件命令 + 案例

bash

运行

复制代码
cat -n test.txt       # 查看文件+显示行号
nl test.txt           # 自带行号查看
tac test.txt          # 倒序查看
head -5 test.txt      # 查看前5行,默认前10
tail -5 test.txt      # 查看后5行;tail -f实时监控文件新增
less test.txt         # 分页上下翻阅,more只能向下翻
wc -l test.txt        # -l统计行数,-c字符,-w单词

4. 特殊符号(区分:通配符 = 普通命令;正则 = 三剑客 grep/sed/awk)

  1. > 覆盖重定向、>>追加重定向

    bash

    运行

    复制代码
    echo 123 > 1.txt    # 清空原有内容写入123
    echo 456 >>1.txt    # 末尾追加456
  2. |管道:左侧输出当右侧输入

    bash

    运行

    复制代码
    ls -l | grep txt    # 过滤目录下txt文件
  3. `````反引号 = $():优先执行

    bash

    运行

    复制代码
    echo $(date +%F)    # 先执行date再输出
  4. &&前成功才执行后;||前失败才执行后;;并行执行多条命令

    bash

    运行

    复制代码
    mkdir test && cd test
  5. {1..10}序列

    bash

    运行

    复制代码
    touch {1..5}.txt    # 批量创建1~5.txt

5. find 查找命令(重点 + 案例)

bash

运行

复制代码
# 格式 find 查找路径 -name/-type/-size/-mtime
find . -name "*.txt"                  # 当前目录模糊查找所有txt
find . -type f -name "10.txt" -exec rm {} \; # 找到删除
find . ! -name "10.txt"               # 排除10.txt查找
find /root -size +10M                 # 查找大于10M文件
find . -name "*.txt" | xargs mv {} /tmp # 批量移动找到的文件

6. cp/mv/rm 补充

  • cp 复制目录必须加-r,mv 移动目录无需 - r;同目录改名、跨目录移动

bash

运行

复制代码
cp -r /root/test /tmp/
mv test.txt /tmp/new.txt

模块三 正则表达式 + 文本三剑客 (grep sed awk)

通配符:ls/find 等普通命令;正则:只在 grep/sed/awk 生效

1. 基础正则(默认 grep 支持)

表格

符号 说明
. 任意单个字符
* 前字符 0~ 无数次
^ 行开头、$行结尾、^$空行
[] 匹配括号内单个字符;[^]排除括号字符
.* 匹配整行任意内容

2. 扩展正则(grep -E/egrep 启用)

表格

符号 说明
+ 前字符 1~ 无数次;?前字符 0 或 1 次
` `

3. grep 过滤 + 案例

bash

运行

复制代码
grep "root" /etc/passwd        # 匹配含root行
grep -v "root" /etc/passwd     # 反向排除root
grep -A3 "root" passwd         # 匹配行+后3行;-B3前3行;-C3前后3行
grep -E "^r|sh$" passwd        # 扩展正则匹配r开头或sh结尾
grep -n "bin" passwd           # -n显示行号

4. sed 行处理(-n 只输出匹配;-i 原地修改文件)

bash

运行

复制代码
sed -n '5,10p' test.txt       # 输出5~10行
sed -n '/linux/p' test.txt    # 输出含linux行
sed '3d;5d' test.txt          # 删除3、5行
sed '/error/d' test.txt       # 删除含error行
sed -i 's#old#new#g' test.txt # 全局替换所有old为new,不加g只替换每行第一个

5. awk 按列 / 行处理(NR 代表行号)

bash

运行

复制代码
awk 'NR==5' test.txt          # 只打印第5行
awk 'NR>3&&NR<8' test.txt     # 3~8行
awk '/root/' /etc/passwd      # 匹配含root行
awk '!/root/' /etc/passwd     # 排除root行

模块四 压缩打包 + Vim 编辑器

1. 压缩命令

  1. gzip 仅压缩单个文件,不保留源文件

bash

运行

复制代码
gzip test.txt ; gzip -d test.txt.gz
  1. tar 打包目录(z=gzip 压缩;c 创建;v 过程;f 指定包名;x 解包;C 指定路径;t 查看)

bash

运行

复制代码
# 打包压缩
tar zcvf test.tar.gz test/ --exclude=6.txt
# 不解包查看
tar tf test.tar.gz
# 解压到指定目录
tar xf test.tar.gz -C /tmp

2. date 时间命令

bash

运行

复制代码
date +%F              # 年月日
date +%F-%T           # 年月日时分秒
date +%Y-%m-%d-%H-%M-%S

3. VIM 三种模式(纠错:shift+zz = 保存退出)

①命令模式(默认进入)

plaintext

复制代码
# 光标移动
hjkl 左下上右;G末行;3gg跳到第3行
# 复制删除
yy复制一行;3yy复制3行;p粘贴
dd删一行;5dd删5行;D删光标后;x删单个字符
u撤销;r单个字符替换
②输入模式(命令模式进入)

plaintext

复制代码
i光标前;a光标后;o下一行;O上一行;I行首;A行尾
③末行模式(:进入)

plaintext

复制代码
set nu/nonu       # 开启/关闭行号
set ff=unix       # windows换行转linux格式
w保存、wq保存退出、q!强制不保存退出
/key向下查找;?key向上查找;n下一个匹配
:3,5s#aa#bb#g     #3~5行全局替换;:%s#aa#bb#g全文档替换

模块五 软件安装:RPM/YUM/ 源码安装 / 自建本地 YUM

1. RPM 手动安装(CentOS / 欧拉)

bash

运行

复制代码
rpm -ivh nginx.rpm    #i安装v详情h进度
rpm -qa               #查所有已装软件
rpm -qi nginx         #软件详情
rpm -ql nginx         #查看安装路径
rpm -qf `which ifconfig` #查命令所属rpm包
rpm -e nginx          #卸载

2. 本地光盘 YUM 仓库部署(全流程 + 案例)

bash

运行

复制代码
#1.挂载光盘
mkdir -p /media/cdrom
mount /dev/sr0 /media/cdrom
#2.备份原有源
cd /etc/yum.repos.d
mkdir bak;mv *.repo bak
#3.新建本地源
vi local.repo
[local]
name=Local_CD
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
#4.重建缓存
yum clean all && yum makecache
#5.安装软件
yum -y install vim wget

yum 常用:yum remove vim卸载;yum search httpd查软件;yum provides */ifconfig查命令所属包

3. 自建自定义 YUM(离线仓库)

bash

运行

复制代码
#1.开启yum缓存保存rpm包 /etc/yum.conf 修改keepcache=1
#2.下载软件包
yum -y install gcc
#3.收集rpm包
mkdir /root/rpm
find /var/cache/dnf -name "*.rpm"|xargs mv {} /root/rpm
#4.生成仓库索引
createrepo /root/rpm
#5.配置repo指向file:///root/rpm,同上本地源格式

4. 源码安装六步(httpd 举例)

bash

运行

复制代码
#1.安装依赖
yum -y install gcc gcc-c++ apr-devel openssl-devel
#2.下载解压
wget xxx/httpd-2.4.54.tar.gz
tar xf httpd-2.4.54.tar.gz -C /usr/src
cd /usr/src/httpd-2.4.54
#3.预配置指定安装路径
./configure --prefix=/usr/local/apache
#4.编译
make
#5.安装
make install
#6.启动程序
/usr/local/apache/bin/httpd

模块六 用户 & 用户组 + 权限管理

1. 用户分类

  • root:UID=0;系统程序用户:UID1~999 (不可登录 /sbin/nologin);普通用户 UID≥1000

2. 用户关键配置文件

/etc/passwd(用户基础信息)/etc/shadow(加密密码)/etc/group(用户组)

3. 用户命令 + 案例

bash

运行

复制代码
#用户管理
useradd test -u1100 -Groot -s /sbin/nologin #创建用户指定UID、附加组、不可登录
passwd test ; echo 123|passwd --stdin test  #交互式/非交互式改密码
usermod -s /bin/bash test                  #修改登录shell
userdel -r test                            #删用户连带家目录

#用户组
groupadd testgrp;groupdel testgrp
gpasswd -a test testgrp;gpasswd -d test testgrp #添加/移除附加组成员

#查看
id test;who;w;whoami

用户家目录模板:/etc/skel,误删配置:cp /etc/skel/.* /root/;bash恢复

4. 文件权限(r=4 w=2 x=1)

  • 三类权限:属主 u、属组 g、其他 o

bash

运行

复制代码
chmod 755 test.txt         #数字赋权 rwxr-xr-x
chmod u+x,g-w test.txt     #符号赋权
chown root:root test.txt    #修改属主属组;-R递归目录
  • umask:root 默认 0022、普通用户 0002,控制新建文件默认权限

5. ACL 精细权限

bash

运行

复制代码
setfacl -m u:test:rwx /data #给test用户赋rwx
getfacl /data               #查看acl权限
setfacl -b /data            #清空acl

模块七 磁盘管理(分区、LVM、RAID、swap)

1. 磁盘分区

  • MBR:≤2TB,最多 4 主分区,可扩展分逻辑分区;GPT>2TB,最多 128 主分区

bash

运行

复制代码
fdisk /dev/sdb          #MBR分区;n新建p主分区
mkfs.xfs /dev/sdb1      #格式化
mount /dev/sdb1 /data   #临时挂载
blkid /dev/sdb1         #查看UUID

2. swap 交换分区(内存不足临时当内存)

bash

运行

复制代码
mkswap /dev/sdb2
swapon /dev/sdb2;swapoff /dev/sdb2
free -h #查看内存swap

3. LVM 逻辑卷(动态扩容:PV→VG→LV)

bash

运行

复制代码
#1.PV物理卷
pvcreate /dev/sdc /dev/sdd
#2.VG卷组
vgcreate vg01 /dev/sdc
vgextend vg01 /dev/sdd #卷组扩容
#3.LV逻辑卷
lvcreate -L10G -n lv01 vg01
lvextend -L+5G /dev/vg01/lv01 #扩容
#4.扩容后刷新文件系统
xfs_growfs /dev/vg01/lv01  #xfs;resize2fs ext4

4. 软 RAID(mdadm)

表格

RAID 硬盘数 冗余 有效容量
RAID0 ≥2 全容量
RAID1 2 坏 1 可用 一半容量
RAID5 ≥3 坏 1 可用 总盘 - 1 容量

bash

运行

复制代码
mdadm -Cv /dev/md0 -l5 -n3 /dev/sd{b,c,d}
mdadm -D /dev/md0 #查看阵列状态

模块八 网卡网络配置

1. 静态 IP 配置(CentOS7 ens33 举例)

bash

运行

复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
ONBOOT=yes        #开机自启网卡
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=114.114.114.114
#重启网卡
ifdown ens33;ifup ens33
#查看IP
ip a ; ping www.baidu.com

模块九 进程管理 + 定时任务

1. 进程查看

bash

运行

复制代码
ps aux ; ps -elf
top -d2        #2秒刷新一次
uptime/w       #查看系统负载(1/5/15min)
#后台运行
nohup ./test.sh & >> test.log
jobs;fg1;bg1
#杀进程
kill -9 PID;killall httpd

2. 定时任务

一次性 at

bash

运行

复制代码
yum install at;at 23:00
>echo test >>/tmp/1.txt
>ctrl+d
atq;atrm 1
周期性 crontab(分 时 日 月 周)

bash

运行

复制代码
crontab -e
#每天凌晨2点备份
0 2 * * * /usr/bin/tar zcvf /bak.tar.gz /data
crontab -l #查看任务
#日志路径/var/log/cron,任务配置/var/spool/cron/用户名

模块十 系统安全优化 & 日志

1. 安全优化

  1. 用户加固:无用用户userdel -r;禁止登录usermod -s /sbin/nologinpasswd -l锁定账号
  2. 文件锁定:chattr +i /etc/passwd不可修改;lsattr查看属性
  3. sudo 提权:visudo编辑/etc/sudoerstest ALL=(ALL) NOPASSWD:/usr/bin/ls
  4. 历史命令:/etc/profile修改export HISTSIZE=100.bash_logout添加history -c退出清空历史

2. 系统日志

  • 日志服务 rsyslog,日志目录/var/log/,配置/etc/rsyslog.conf

模块十一 系统开机流程

BIOS 自检 → MBR 引导 → GRUB 菜单 → 加载内核 → systemd (1 号进程) → 挂载 /etc/fstab → 启动服务 → rc.local 开机脚本

2、inode 四种 Block 寻址(默认 4K 块)

表格

寻址类型 计算公式 最大支持文件大小
12 个直接指针 12×4K 48KB
一级间接指针 1024×4K 4MB
二级间接指针 1024×1024×4K 4GB
三级间接指针 1024×1024×1024×4K 4TB

说明:1 个间接块内可以存放 1024 个 Block 编号(4 字节存 1 个块号,4K÷4B=1024)

3、软链接 & 硬链接(表格修正 + 实操命令案例)

表格

对比项 硬链接 软链接 (符号链接 ln -s)
挂载指向 绑定原文件 inode 号 绑定原文件文件名 / 路径
源文件删除 不受影响,链接仍可用 失效变红,找不到源
能否对目录创建 ❌ 不支持创建目录硬链接 ✅ 支持目录软链接
跨分区 / 跨文件系统 ❌ 不能跨分区 ✅ 可跨分区、跨磁盘
inode 编号 和源文件完全一致 和源文件 inode 不同
实操示例

bash

运行

复制代码
# 1.创建硬链接
touch file.txt
ln file.txt file_hard
ls -li file.txt file_hard # inode编号相同

# 2.创建软链接
ln -s file.txt file_soft
ls -li file.txt file_soft # inode不一致
rm -rf file.txt           # 删除源文件,软链接失效

4、Linux 真正删除文件两个必要条件

经典面试题:删大文件磁盘空间不释放,很快又爆满

故障原因:rm删除只是清除文件名,inode链接数归零,但后台进程仍持续hold文件句柄,不断往已删文件写入数据,磁盘空间不会释放、反复占用 排查 & 解决:

bash

运行

复制代码
# 查找被进程占用的已删除文件
lsof | grep deleted
# 方案1:终止占用进程 kill -9 PID
# 方案2:清空文件 > /xxx/big.log

二、系统日志管理(新增独立小节)

1、日志服务与路径

2、配置文件匹配符号规则(修正原文书写错误)

表格

符号 作用 示例
. 匹配当前级别及更高级别全部日志 *.info:info、notice、warn... 全部记录
.= 只匹配当前单个级别 *.=debug:仅 debug 级别
! 排除该级别,其余全记录 !info:除 info 外全部存储
- 先缓存内存,攒量后落盘,不实时写磁盘 -/var/log/xxx.log

3、日志等级:0~8 由高→低(紧急→调试)

0(emerg)>1(alert)>2(crit)>3(err)>4(warn)>5(notice)>6(info)>7(debug)>8(none)

三、企业 Linux 安全加固全方案(并入系统安全模块,带实操命令)

1、账号安全优化

①无用账号禁用 / 不可登录

bash

运行

复制代码
# 新建程序用户禁止登录
useradd -M -s /sbin/nologin testuser
# 修改已有用户shell为不可登录
usermod -s /sbin/nologin olduser
chsh -s /sbin/nologin olduser
②闲置账号锁定

bash

运行

复制代码
passwd -l testuser      # 锁定账号,shadow密码位加!!
passwd -u testuser      # 解锁
usermod -L testuser
③密码有效期管控

bash

运行

复制代码
# 单个用户设置密码90天有效期
chage -M 90 testuser
passwd -x 90 testuser
# 全局系统默认有效期:修改配置
vi /etc/login.defs
PASS_MAX_DAYS   90
# 彻底清理废弃账号
userdel -r testuser
④关键系统文件加锁定(chattr+i/a)

bash

运行

复制代码
lsattr /etc/passwd /etc/shadow  # 查看文件特殊属性
chattr +i /etc/passwd /etc/shadow # +i:无法增删改、重命名
chattr -i /etc/passwd /etc/shadow # 取消锁定
chattr +a /var/log/messages       # +a:仅允许追加内容,不能删除覆盖

2、历史命令安全管控

bash

运行

复制代码
vi /etc/profile
export HISTSIZE=100
source /etc/profile # 生效配置

bash

运行

复制代码
vi ~/.bash_logout
history -c
> ~/.bash_history

3、su 与 sudo 权限管控

1)su 切换用户

bash

运行

复制代码
su test      # 仅切换用户,环境变量不变
su - test    # 完整切换用户+加载家目录+全量环境变量
su -c "ls /root" test # 临时以test用户执行命令
2)sudo 提权配置(visudo 编辑 /etc/sudoers)

bash

运行

复制代码
# 单用户授权:zhangsan拥有所有权限免密
zhangsan ALL=(ALL) NOPASSWD:ALL
# 单用户限制指令,禁用rm
zhangsan ALL=(ALL) /usr/bin/ls,/usr/bin/cat,!/usr/bin/rm
# 用户组批量授权:wheel组全部sudo权限
%wheel ALL=(ALL) ALL
# 开启sudo操作日志
Defaults logfile=/var/log/sudo.log
# 查看自身sudo权限
sudo -l

4、其余加固项(理论)

四、运维通用学习方法论 & 概念(附记,放文档末尾)

1、单个服务学习五步法则(例:httpd)

2、名词释义

3、Linux 四大核心运维方向

  • systemctl enable/disable 服务名设置开机自启;systemctl start/stop/restart 服务启停

增补整合:Inode / 软硬链接 + 系统日志 + 系统安全加固(并入上文磁盘 & 安全模块,纠错 + 案例 + 表格标准化)

一、Inode、Block、扇区原理(磁盘子模块补充)

1、基础概念

  • 扇区 sector :硬盘物理最小存储单元,默认单扇区512Byte
  • 块 block :OS 读写硬盘最小单位,Linux 默认1Block=8连续扇区=4KB;硬盘数据无序存放;
  • 文件组成:
    • 元数据(属性信息):存放在 inode;权限、属主、大小、时间、Block 指针;
    • 真实数据内容:存放在 Block。
  • inode:索引节点,类似书本目录,不存文件内容,只记录文件属性 + 对应数据块 Block 编号。
  • 文件对应 inode硬链接计数 = 0
  • 没有任何进程正在占用、打开该文件
  • 日志服务:rsyslog,配置文件:/etc/rsyslog.conf
  • 系统所有日志默认存放目录:/var/log/
  • 全局限制历史命令保存条数
  • 用户退出自动清空历史
  • vi /etc/securetty注释无用终端,限制 root 远程终端登录;
  • BIOS 设置开机密码;
  • GRUB 引导菜单加密,防止单用户破解密码;
  • 禁用 Ctrl+Alt+Del 重启快捷键;
  • 定期使用工具检测系统弱口令。
  • 是什么:httpd 是 Apache 老牌 WEB 服务,监听 80 端口;
  • 原理 & 适用场景:多进程模型,稳定性强、并发偏弱,中小企业传统网站;
  • 部署方式:yum/rpm 安装、源码编译安装;
  • 运维命令:start/stop/restart/status + 主配置文件路径;
  • 调优:性能优化、安全配置优化。
  • 并发:同一时间点,大量客户端同时向服务器发起请求;
  • Linux 特性:开源、写时复制,企业自研软件首选服务器系统。
  • 文件 & 目录批量处理(三剑客 + find + 正则)
  • 各类软件应用部署(rpm/yum/ 源码)
  • 用户 + 权限体系管理
  • 磁盘存储管理(分区 / LVM/RAID/swap)
相关推荐
剑神一笑1 小时前
Linux chmod 命令深度解析:从权限位到符号模式的完整指南
linux·运维·chrome
流浪0011 小时前
LInux系统篇(二):深入剖析 Linux 进程:状态变迁、优先级及调度切换逻辑
linux·运维·服务器
daad7771 小时前
记录一个串口模块没有回包的问题
linux·运维·服务器
开发者联盟league1 小时前
在ubuntu上使用apt方式安装gitlab
linux·ubuntu·gitlab
青梅橘子皮2 小时前
Linux---虚拟地址空间
linux·运维·算法
晚风予卿云月2 小时前
【Linux】进程控制(一)—进程创建、进程终止与信号全流程详解
linux·运维·服务器·后端开发
roman_日积跬步-终至千里2 小时前
【架构实践(1)】架构师如何正确理解业务
运维·架构
skywalk81632 小时前
在Ubuntu安装明道名部署Playground web网页
linux·运维·ubuntu
Dontla2 小时前
WSL2 docker-desktop发行版介绍(用于运行Docker引擎(Docker Engine))(docker-desktop-data)
运维·docker·容器