Linux基础指令与权限管理深度解析:从入门到精通

掌握Linux基础指令是每位开发者、运维工程师和系统管理员的必修课。本文将系统梳理Linux核心指令与权限管理机制,不仅涵盖常用命令的基本用法,更深入解析其底层原理与实战技巧。通过本文的学习,你将建立起完整的Linux操作知识体系,为后续的系统编程、服务器管理等高级技能打下坚实基础。


目录


一、Linux操作系统全景认知

1.1 发展历史脉络

UNIX的演进(1968-1993)

  • 1968年:Multics项目启动,首次提出多任务、文件管理等核心概念
  • 1969-1970年:Ken Thompson与Dennis Ritchie在贝尔实验室开发出UNIX V1,运行在PDP-7小型机上
  • 1972年:贝尔实验室开始商业授权,加州大学伯克利分校获得源码并开发出BSD版本
  • 1980年代:出现两大分支------AT&T System V与BSD 4.2,分别侧重商业应用与科研领域
  • 1993年:Novell收购UNIX业务,随后SUN将System V融入Solaris,形成统一标准

Linux的诞生(1991)

  • 1991年10月5日:Linus Torvalds在comp.os.minix新闻组发布Linux 0.02版本
  • 关键特性:兼容UNIX系统调用、支持GNU工具链(bash、gcc)
  • 命名由来:"Linux is not Unix"的递归缩写,内核与GNU工具结合形成完整操作系统

1.2 开源精神:GPL许可证

Linux采用GNU通用公共许可证(GPL),其核心原则是:

  • 自由使用:任何人可无限制运行软件
  • 源码开放:必须提供源代码
  • 衍生作品必须开源:基于GPL代码的修改再发布时,必须保持GPL许可

这一机制催生了庞大的开源生态,使得Linux成为协作开发的典范。

1.3 企业级应用现状(2025年数据更新)

领域 市场份额 典型应用场景
服务器领域 75%+ 政府、金融、电信、云计算平台
桌面领域 稳步增长 中标麒麟、深度Linux、Ubuntu(开发环境)
移动嵌入式 85%+ Android(基于Linux内核)、路由器、IoT设备
云计算/大数据 86% Kubernetes、Docker、Hadoop等基础设施

1.4 主流发行版选型指南

bash 复制代码
# Debian系(稳定、适合服务器)
Debian → Ubuntu(桌面/云) → Kali(安全渗透)

# RedHat系(企业级支持)
RHEL(商业) → CentOS(社区版,已转向Stream) → Fedora(前沿技术测试)

# 独立发行版
SUSE(欧洲市场)、Arch Linux(滚动更新,高级用户)

选型建议

  • 新手入门:Ubuntu LTS
  • 企业服务器:RHEL/CentOS Stream
  • 安全测试:Kali Linux
  • 学习源码:LFS(Linux From Scratch)

二、核心概念深度解析

2.1 操作系统的定位

Linux作为内核(Kernel) ,通过Shell与用户交互:

复制代码
用户层
  ↓ 指令输入
Shell(命令解释器:bash/zsh)
  ↓ 翻译为系统调用
Linux内核(进程管理、内存管理、文件系统、驱动管理)
  ↓ 操作
底层硬件(CPU、内存、磁盘、网卡)

为什么不能直接使用内核?

  • 内核接口复杂,直接使用需要汇编/C语言编程
  • Shell提供人性化接口,支持脚本自动化
  • 类比:内核是发动机,Shell是方向盘和仪表盘

2.2 Linux目录结构哲学

Linux采用 单一根目录树 设计,所有文件都从/开始:

复制代码
/
├── bin/          # 基础用户命令(ls, cat)
├── sbin/         # 系统管理命令(fdisk, iptables)
├── usr/          # 用户应用程序默认目录
│   ├── bin/      # 次要用户命令
│   └── local/    # 用户自行编译的软件
├── etc/          # 配置文件(passwd, shadow)
├── var/          # 经常变化的文件(日志、缓存)
├── home/         # 普通用户家目录
├── root/         # root用户家目录
├── dev/          # 设备文件(/dev/sda, /dev/null)
├── proc/         # 进程与内核信息(虚拟文件系统)
├── sys/          # 系统设备信息(虚拟文件系统)
├── tmp/          # 临时文件(重启后清空)
├── lib/          # 共享库文件(.so)
├── boot/         # 内核与引导文件
└── mnt/          # 临时挂载点

设计优势:路径唯一性保证快速定位,统一标准便于跨发行版管理。

2.3 路径的精髓:绝对 vs 相对

类型 特点 示例 适用场景
绝对路径 /开始,不依赖当前位置 /home/user/project/main.c 配置文件、服务脚本、cron任务
相对路径 基于当前目录./或父目录../ ../include/header.h 命令行操作、编译命令

实战技巧

bash 复制代码
# 快速切换技巧
cd ~          # 返回当前用户家目录
cd -          # 返回上次所在目录(在两个目录间快速切换)
cd            # 无参数时等同于cd ~

三、基础指令精讲与实战

3.1 文件与目录操作指令

ls:列表的瑞士军刀

语法ls [选项] [目录或文件]

核心选项矩阵

选项 全称 功能 示例
-a all 显示隐藏文件(以.开头) ls -a
-l long 长格式显示(权限、大小、时间) ls -l
-h human-readable 人类可读大小(K, M, G) ls -lh
-d directory 显示目录本身而非内容 ls -ld /etc
-i inode 显示inode号 ls -i
-R recursive 递归列出子目录 ls -R /var/log
-t time 按修改时间排序(新→旧) ls -lt
-r reverse 反向排序 ls -ltr(旧→新)
-F classify 附加类型标识(/:目录, *:可执行) ls -F

长格式输出解析

bash 复制代码
$ ls -l
drwxr-xr-x 3 root root 4096 Jan 15 10:30 projects
-rw-r--r-- 1 user group  856 Jan 15 09:15 config.txt

[文件类型][权限] [硬链接数] [属主] [属组] [大小] [修改日期] [名称]

文件类型标识

  • d:目录
  • -:普通文件
  • l:符号链接
  • b:块设备(磁盘)
  • c:字符设备(终端)
  • p:命名管道
  • s:套接字

touch:创建与时间管理

功能:创建空文件或更新文件时间戳

时间戳类型 (通过stat查看):

  • Access:最后访问时间(读取文件内容)
  • Modify:最后修改时间(文件内容变更)
  • Change:状态改变时间(权限、属主等元数据变更)
bash 复制代码
# 创建文件
touch newfile.txt

# 批量创建(配合花括号扩展)
touch file{1..10}.txt  # 创建file1.txt到file10.txt

# 指定时间戳(用于备份恢复场景)
touch -t 202312311200 file.txt  # 设置为2023年12月31日12:00

mkdir:目录创建的艺术

关键选项

  • -p/--parents:自动创建父目录(幂等操作,脚本必备)
bash 复制代码
# 失败案例:父目录不存在
mkdir a/b/c  # 失败:a不存在

# 正确做法
mkdir -p a/b/c  # 自动创建a和a/b

# 实战:按日期创建日志目录
mkdir -p /var/log/app/{2023,2024}/{01..12}/{01..31}

rmdir vs rm:删除的抉择

命令 功能 限制 安全性
rmdir 删除空目录 仅空目录,非空则失败 较高(防止误删)
rm 删除文件/目录 无限制(谨慎使用) 需配合-i-f

rm安全使用规范

bash 复制代码
# 危险操作!
rm -rf /          # 传说中的"删库跑路",绝对禁止!

# 安全实践
rm -i file.txt    # 交互式确认
rm -rf dir/       # 强制删除非空目录(确认路径无误!)
rm -v *.log       # 显示删除过程(verbose)

# 回收站机制(建议别名)
alias rm='mv --target-directory=$HOME/.trash'

3.2 文件内容查看指令

cat:小文件神器

适用场景:文件大小 < 屏幕高度(通常 < 50行)

bash 复制代码
# 基础查看
cat file.txt

# 显示行号
cat -n file.txt      # 所有行编号
cat -b file.txt      # 非空行编号(适合代码)

# 压缩空行
cat -s file.txt      # 多个空行合并为单个(日志清洗)

# 合并文件
cat part1.txt part2.txt > merged.txt

more vs less:分页查看器对比

特性 more less
翻页方向 仅向下(Enter/Space) 双向(PageUp/↓, j/k, g/G)
搜索功能 基础(/pattern 高级(支持正则,可高亮)
加载方式 全文加载 按需加载(大文件友好)
退出后 保留在屏幕 清屏(可配置)
当前行提示 百分比 行号
实时更新 不支持 支持(F键跟踪日志)

less实战技巧

bash 复制代码
less -N file.txt          # 显示行号
less -S file.txt          # 截断长行(不换行)
/pattern                  # 向下搜索
?pattern                  # 向上搜索
n/N                       # 重复/反向搜索
g/G                       # 跳转到文件首/尾
F                         # 实时追踪(类似tail -f)
q                         # 退出

head/tail:首尾截取

bash 复制代码
# 默认10行
head file.txt             # 前10行
tail file.txt             # 后10行

# 指定行数
head -n 20 file.txt       # 前20行
tail -n 50 file.txt       # 后50行

# 动态追踪
tail -f /var/log/nginx/access.log  # 实时查看日志
tail -F file.log          # -F会retry,文件删除重建后仍追踪

# 组合技巧:查看第[180,200]行
head -200 file.txt | tail -21

*管道|原理

  • head输出200行到标准输出
  • |将标准输出作为tail的标准输入
  • tail取最后21行(包含第180-200行)

3.3 文件操作指令

cp:复制详解

语法cp [选项] 源... 目标

关键模式

  1. 文件→文件cp a.txt b.txt(若b.txt存在则覆盖)
  2. 文件→目录cp a.txt dir/(保留原名)
  3. 多文件→目录cp a.txt b.txt dir/(批量复制)
  4. 目录→目录cp -r dir1/ dir2/(递归复制)

安全选项

bash 复制代码
cp -i file.txt backup/   # 覆盖前询问(interactive)
cp -u file.txt backup/   # 仅复制更新文件(update)
cp -a dir/ backup/       # 保留所有属性(archive)
cp -v *.txt backup/      # 显示详细过程

mv:移动与重命名

本质:同一操作,目标为目录即移动,目标为文件即重命名

bash 复制代码
# 重命名
mv oldname.txt newname.txt

# 批量重命名(利用子shell)
for f in *.txt; do mv "$f" "${f%.txt}.bak"; done

# 安全移动
mv -i source.txt target.txt  # 覆盖确认
mv -t target/ file1 file2   # 目标目录前置(适合脚本)

3.4 信息查询指令

man:手册页系统

章节划分

复制代码
1. 普通用户命令(ls, cp)
2. 系统调用(open, read, fork)
3. 库函数(printf, malloc)
4. 特殊文件(/dev/sda)
5. 配置文件格式(/etc/passwd)
6. 游戏
7. 杂项(环境变量、规范)
8. 管理员命令(ifconfig, iptables)
9. 内核例程

使用技巧

bash 复制代码
man ls           # 默认从第1章开始
man 2 open       # 强制查看第2章系统调用
man -a printf    # 显示所有章节(依次退出)
man -k socket    # 关键词搜索(apropos)
man man          # 查看man自身手册

find:强大的文件搜索

性能警告 :大文件系统搜索可能耗时数分钟,建议配合-name-type缩小范围

bash 复制代码
# 按名称查找(支持通配符)
find /path -name "*.log"          # 精确匹配
find /path -iname "pattern"       # 忽略大小写
find /path -name "file[0-9].txt"  # 正则匹配

# 按类型查找
find /path -type f -name "*.sh"   # f:文件, d:目录, l:链接

# 按时间查找
find /path -mtime -7              # 7天内修改
find /path -atime +30             # 30天未访问

# 执行操作(高风险!)
find /tmp -name "*.tmp" -delete   # 直接删除
find /var/log -name "*.old" -exec rm -i {} \;  # 交互式删除

grep:文本搜索利器

本质:正则表达式引擎

bash 复制代码
# 基础搜索
grep "error" app.log

# 常用选项组合
grep -i "failed" /var/log/auth.log  # 忽略大小写
grep -n "timeout" app.log           # 显示行号
grep -v "DEBUG" app.log             # 反向匹配(排除)
grep -E "ERROR|FATAL" app.log       # 扩展正则(或)

# 递归搜索
grep -r "TODO" src/                 # 递归查找源码
grep -rl "deprecated" /usr/include/ # 仅显示文件名

# 管道组合(日志分析)
cat /var/log/nginx/access.log | grep "404" | wc -l  # 统计404错误数

3.5 系统信息指令

date:时间操作

时间戳原理:Unix时间戳是从1970-01-01 00:00:00 UTC开始的秒数,解决跨时区问题

bash 复制代码
# 格式化输出(常用格式)
date +"%Y-%m-%d %H:%M:%S"  # 2023-01-15 14:30:25
date +"%F %T"              # 同上,%F=%Y-%m-%d, %T=%H:%M:%S
date +"%s"                 # 获取时间戳(秒)
date -d "@1673800000"      # 时间戳转日期

# 设置时间(需root权限)
date -s "2023-01-15 12:00:00"

uname:系统识别

bash 复制代码
uname -a                   # 全部信息(内核名、主机名、版本、架构)
uname -r                   # 仅内核版本
uname -m                   # 机器硬件名称(x86_64)
lsb_release -a             # 发行版信息(需安装lsb-release包)

四、压缩与归档

4.1 zip/unzip:跨平台压缩

特点:Windows/Linux通用,但压缩率低于tar.gz

bash 复制代码
# 压缩文件
zip archive.zip file1.txt file2.txt

# 压缩目录(必须加-r)
zip -r project.zip project/

# 解压到指定目录
unzip project.zip -d /opt/
unzip -l project.zip      # 查看内容列表不解压

4.2 tar:Linux标准归档

参数速查表

参数 含义 使用场景
-c create,创建归档 备份时
-x extract,解压 恢复时
-t list,查看内容 检查归档
-z gzip压缩/解压 .tar.gz
-j bzip2压缩/解压 .tar.bz2
-J xz压缩/解压 .tar.xz(压缩率最高)
-v verbose,显示过程 调试用
-f file,指定文件名 必须放在最后
-C change,解压到目录 指定目标路径
-p preserve,保留权限 备份系统文件

典型示例

bash 复制代码
# 打包并压缩
tar -czvf backup.tar.gz /etc/nginx /var/www
tar -cjvf backup.tar.bz2 /data/

# 解压
tar -xzvf backup.tar.gz              # 自动识别gzip
tar -xjvf backup.tar.bz2 -C /restore/ # 解压到指定目录

# 查看内容
tar -ztvf backup.tar.gz              # 查看gzip压缩包内容

# 解压单个文件
tar -zxvf backup.tar.gz etc/nginx/nginx.conf

# 打包排除目录
tar -czvf home.tar.gz --exclude="*.tmp" /home/user

五、Linux权限体系详解

5.1 用户身份模型

bash 复制代码
# 查看当前身份
whoami                     # 用户名
id                         # 详细UID/GID信息

# 切换用户
su - root                  # 切换root(需密码)
su user                    # 切换普通用户
sudo command               # 以root权限执行(需配置sudoers)

提示符意义

  • user@host:~$:普通用户($
  • root@host:~#:超级用户(#

5.2 权限三元组

权限主体

  • u(User):文件所有者(Owner)
  • g(Group):所属组(Group)
  • o(Others):其他用户(Other)
  • a(All):所有人(u+g+o)

权限类型

  • r (Read):读权限
    • 文件:查看内容
    • 目录:列出文件列表(ls
  • w (Write):写权限
    • 文件:修改内容
    • 目录:创建/删除/重命名文件(关键:删除文件需要目录的w权限
  • x (Execute):执行权限
    • 文件:作为程序执行(./script.sh
    • 目录:进入目录(cd

5.3 权限表示法

字符表示法

复制代码
rwxr-xr-x
││││││││
│││││││└─ other:只读
││││││└── other:无写权限
│││││└─── other:可执行
││││└──── group:只读
│││└───── group:无写
││└────── group:可执行
│└─────── user:只读
└──────── user:可写

八进制数值表示法

字符 数值 二进制 含义
--- 0 000 无权限
--x 1 001 执行
-w- 2 010
-wx 3 011 写+执行
r-- 4 100
r-x 5 101 读+执行
rw- 6 110 读+写
rwx 7 111 全部权限

常用组合

  • 644rw-r--r--):普通文件默认值
  • 755rwxr-xr-x):可执行文件/目录
  • 700rwx------):私有文件
  • 600rw-------):敏感配置文件

5.4 权限修改命令

chmod:修改权限

字符模式

bash 复制代码
chmod u+x script.sh     # 用户添加执行权限
chmod g-w file.txt      # 组移除写权限
chmod o=r-- config.ini  # 其他用户只读
chmod a+x binary        # 所有人添加执行
chmod u=rwx,g=rx,o=r file # 一次性设置

八进制模式

bash 复制代码
chmod 644 document.txt  # rw-r--r--
chmod 755 /usr/local/bin/app # rwxr-xr-x
chmod -R 700 /data/private # 递归目录权限

chown:修改所有者

bash 复制代码
chown user:group file     # 同时修改用户和组
chown -R nginx:www-data /var/www/html # 递归修改网站目录
chown root:root /etc/passwd # 系统文件归属修复

chgrp:修改所属组

bash 复制代码
chgrp developers project/ # 变更组为developers
chgrp -R sshd /etc/ssh    # SSH配置目录组变更

5.5 权限掩码umask

工作原理

复制代码
实际权限 = 默认权限 & ~umask

默认权限:
- 文件:0666(rw-rw-rw-)
- 目录:0777(rwxrwxrwx)

umask值(普通用户默认0002):
- 0022 → 文件:0644(rw-r--r--),目录:0755(rwxr-xr-x)
- 0002 → 文件:0664(rw-rw-r--),目录:0775(rwxrwxr-x)

操作示例

bash 复制代码
umask              # 查看当前掩码(0002)
umask 022          # 设置为022(更严格)
umask 077          # 私人模式(仅自己可读写)

5.6 目录权限的陷阱与真相

关键发现 :能否删除文件取决于父目录的写权限,而非文件自身权限!

bash 复制代码
# 场景复现
[root@server ~]# mkdir /public && chmod 777 /public
[root@server ~]# touch /public/root_file.txt && chmod 600 /public/root_file.txt
[root@server ~]# su - normal_user
[normal_user@server ~]$ rm /public/root_file.txt
# 成功删除!尽管文件是600权限!

# 原理分析
# 删除操作=修改目录内容(移除条目),需要目录的w权限

目录权限矩阵

r w x 效果
完整控制(ls, cd, touch, rm)
只读访问(ls, cd, 不能修改)
可进入和操作,但无法列出(需提前知道文件名)
悲剧:可读写目录列表但无法进入(无实际用途)

可参考阅读:
【Linux权限机制深入理解】为何没有目录写权限仍能修改文件权限?

从实验出发深入理解Linux目录权限:r、w、x分别控制什么?能否进入目录到底由谁决定?

5.7 粘滞位(Sticky Bit):/tmp的解决方案

问题 :在公共写目录(如/tmp)中,用户可删除他人文件

解决方案

bash 复制代码
chmod +t /public          # 添加粘滞位(权限显示为rwxrwxrwt)

粘滞位规则

目录设有粘滞位后,文件只能被以下用户删除:

  1. 超级用户(root)
  2. 目录所有者
  3. 文件所有者

应用场景

  • /tmp:临时文件目录
  • 多用户协作目录(如项目管理)

六、Shell进阶技巧

6.1 命令别名(alias)

作用:简化复杂命令,提升效率

bash 复制代码
# 临时别名(当前终端有效)
alias ll='ls -alF'
alias gs='git status'
alias df='df -h'

# 永久别名(写入~/.bashrc)
echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc

# 查看别名
alias | grep ls

最佳实践别名集

bash 复制代码
# 文件操作
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# 安全删除
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# 目录导航
alias ..='cd ..'
alias ...='cd ../..'
alias -- -='cd -'  # 返回上次目录

# 日志查看
alias tailf='tail -f'

6.2 进程控制快捷键

快捷键 功能 说明
Tab 命令/路径补全 双击显示所有匹配项
Ctrl + C 发送SIGINT,终止前台进程 中断失控程序
Ctrl + D EOF信号,退出终端 也可用于退出交互式程序(python, bc)
Ctrl + Z 发送SIGTSTP,挂起进程 配合bg/fg使用
Ctrl + L 清屏 等价于clear命令
Ctrl + R 搜索历史命令 输入关键词自动匹配

6.3 文件传输:rzsz

安装与使用

bash 复制代码
# CentOS/RHEL
sudo yum install -y lrzsz

# Ubuntu/Debian
sudo apt install -y lrzsz

# XShell中操作
rz                         # 从Windows上传文件(弹出选择框)
sz file.txt                # 从Linux下载文件到Windows

限制:仅支持XShell/SecureCRT等终端,不支持SSH原生终端。


七、实战:综合场景演练

场景1:日志分析与监控

bash 复制代码
# 1. 创建测试日志
cnt=0; while [ $cnt -le 10000 ]; do echo "$(date +%T) - Request $cnt - $(($RANDOM%500+200))"; let cnt++; done > app.log

# 2. 实时监控错误
tail -f app.log | grep "500"

# 3. 分析成功请求
grep "200" app.log | wc -l

# 4. 提取时间窗口[1000,1500]行
head -1500 app.log | tail -501

场景2:权限修复脚本

bash 复制代码
#!/bin/bash
# fix_permission.sh - 修复Web目录权限

WEB_DIR="/var/www/html"
WWW_USER="www-data"

# 设置目录权限:755
find "$WEB_DIR" -type d -exec chmod 755 {} \;

# 设置文件权限:644
find "$WEB_DIR" -type f -exec chmod 644 {} \;

# 设置上传目录可写
chmod 775 "$WEB_DIR/uploads"

# 设置粘滞位(多用户环境)
chmod +t "$WEB_DIR/shared"

# 修正所有者
chown -R "$WWW_USER:$WWW_USER" "$WEB_DIR"

场景3:备份策略

bash 复制代码
#!/bin/bash
# backup.sh - 每日增量备份

BACKUP_DIR="/backup/$(date +%Y%m%d)"
LOG_FILE="/var/log/backup.log"

# 创建目录
mkdir -p "$BACKUP_DIR"

# 打包配置文件
tar -czvf "$BACKUP_DIR/config.tar.gz" /etc/nginx /etc/mysql

# 打包日志(排除access.log)
tar -czvf "$BACKUP_DIR/logs.tar.gz" --exclude="*access.log" /var/log/

# 记录备份信息
echo "[$(date)] Backup completed to $BACKUP_DIR" >> "$LOG_FILE"

# 删除7天前的备份
find /backup -type d -mtime +7 -exec rm -rf {} \;

八、总结与最佳实践

核心知识点回顾

  1. 文件系统:一切皆文件,单根树形结构
  2. 权限体系:UGO模型 + rwx权限 + umask掩码
  3. 命令组合 :管道|与重定向>, >>是Shell强大之源
  4. 安全意识 :使用-i交互模式,慎用rm -rf
  5. 性能考量find大文件系统耗时,less优于more处理大日志

新手避坑指南

坑点 现象 解决方案
权限不足 Permission denied 检查ls -l,使用sudochmod
命令不存在 command not found 检查PATH,安装软件包
文件被占用 Text file busy 关闭进程或lsof查看占用者
删除不恢复 无回收站 使用-i或配置别名alias rm='rm -i'
路径含空格 参数解析错误 用引号包裹"file name"或转义file\ name

免责声明

本文指令基于CentOS / Ubuntu等主流发行版测试,不同系统版本、Shell环境及配置可能导致行为差异。

执行rmchmodchown等高危操作前,请务必确认命令参数备份关键数据 ,并建议在测试环境验证

生产环境操作需遵循企业变更流程,作者不对误操作引发的数据丢失、系统故障或权限问题承担责任
sudo命令使用需谨慎,错误授权可能导致提权风险。

封面图来源于网络,如有侵权,请联系删除!

相关推荐
qq_2153978971 小时前
docker 安装 opengauss 高斯数据库
运维·docker·容器
s***46981 小时前
linux 设置tomcat开机启动
linux·运维·tomcat
xu_yule1 小时前
网络和Linux网络-3(套接字编程)TCP网络通信代码
linux·网络·tcp/ip
r***F2621 小时前
若依部署Nginx和Tomcat
运维·nginx·tomcat
周杰伦fans2 小时前
C# - Task 是什么?想象一下你在餐厅点餐
服务器·开发语言·c#
HalvmånEver3 小时前
Linux:进程的切换与调度(进程四)
linux·运维·服务器
运维有小邓@3 小时前
实时日志关联分析工具:智能检测潜在安全威胁
运维·网络·安全
谷隐凡二3 小时前
Docker 的核心理念及技术的简单说明
运维·docker·容器
LCG元3 小时前
终端里的"黑客帝国":htop, glances, bpytop 系统监控工具横评
linux