版本 :v1.0 | 适用系统 :CentOS/RHEL 系列 | 最后更新:2026-07-01

📖 前言
在日常 Linux 运维与开发中,软件包管理、编译器使用、文本编辑、权限控制 是高频操作。无论你是编译源码、安装 RPM 包、配置 YUM 仓库,还是用 VIM 快速修改配置、设置 ACL 权限,一套完备的速查手册都能帮你节省大量时间。
本手册完整收录了以下文档的所有原始内容(未做任何删减):
- GCC 编译器基础用法
- RPM 包管理(包名解析、依赖、安装/升级/查询/卸载/校验/提取)
- YUM 在线管理(仓库配置、命令、软件组、光盘源搭建)
- DNF 包管理器(新一代 YUM)
- RPM 包安装后的典型目录结构
- VIM 编辑器全面操作(三种模式、所有指令、高级技巧)
- 权限管理扩展(ACL、特殊权限 SUID/SGID/SBIT、chattr、sudo)
在保留全部原始知识的基础上,我优化了格式、补充了参数说明、增加了实操示例,并采用目录分层、表格速查的方式,让你在工作中遇到问题能快速定位。
📑 目录
- [GCC 编译器](#GCC 编译器)
- [RPM 包管理](#RPM 包管理)
- 2.1 包名解析
- 2.2 依赖性
- 2.3 安装与升级
- 2.4 查询操作
- 2.5 卸载操作
- 2.6 校验操作
- 2.7 文件提取(rpm2cpio)
- [YUM 在线管理](#YUM 在线管理)
- 3.1 YUM 仓库配置文件
- 3.2 YUM 常用命令
- 3.3 软件组管理
- 3.4 光盘 YUM 源搭建
- [DNF 包管理器](#DNF 包管理器)
- [RPM 包安装后的服务目录结构](#RPM 包安装后的服务目录结构)
- [VIM 编辑器详解](#VIM 编辑器详解)
- 6.1 三种模式概览
- 6.2 命令模式操作
- 6.3 插入模式操作
- 6.4 末行模式操作
- 6.5 常用高级技巧
- 权限管理扩展
- 7.1 ACL 权限
- 7.2 特殊权限(SUID/SGID/SBIT)
- 7.3 文件系统属性(chattr/lsattr)
- 7.4 sudo 权限
一、GCC 编译器
GCC(GNU Compiler Collection)是一个强大的编译器套件,支持 C/C++、FORTRAN、Java、OBJC、ADA 等多种语言。
基本语法
bash
gcc [参数1] 源代码文件 [参数2]
常用参数
| 参数 | 作用 |
|---|---|
-c |
编译 :只生成目标文件(.o 文件),不进行链接 |
-o |
设置输出文件名或路径 ,如 -o output 生成可执行文件 output |
示例
bash
# 编译源文件,生成目标文件
gcc -c hello.c # 生成 hello.o
# 链接目标文件生成可执行文件
gcc -o hello hello.o # 生成 hello
# 一步完成编译+链接,指定输出
gcc -o hello hello.c
# 编译多个源文件
gcc -o program main.c utils.c
💡 补充 :生产环境常用
-Wall开启警告,-g包含调试信息,-O2优化级别等,但这些并非原文档内容,仅供参考。
二、RPM 包管理
RPM(Red Hat Package Manager)是 Linux 下最经典的软件包管理工具,适用于 CentOS/RHEL 系列。
2.1 包名解析
以 httpd-2.2.15-15.el6.centos.i686.rpm 为例:
| 字段 | 含义 | 示例 |
|---|---|---|
| 软件包名 | 软件名称 | httpd |
| 版本号 | 软件版本 | 2.2.15 |
| 发行次数 | RPM 打包的发行号 | 15 |
| 适用平台 | 操作系统版本 | el6.centos(RHEL 6 / CentOS 6) |
| 硬件平台 | 架构 | i686(32位);x86_64(64位);noarch(通用) |
| 扩展名 | 固定为 .rpm |
.rpm |
操作规则:
- 操作未安装的包 (安装、升级)使用 包全名 (带版本号及扩展名),注意路径,可利用
Tab补全。- 操作已安装的包 (查询、卸载)使用 包名 (仅软件名),信息来自
/var/lib/rpm数据库。
2.2 依赖性
RPM 包之间存在依赖关系,常见类型有:
- 树形依赖 :
A → B → C(需按顺序安装 C → B → A) - 环形依赖 :
A → B → C → A(可同时安装) - 模块依赖 :缺少某些动态库(
.so文件),需查询提供这些库的包。
🔍 依赖查询网站 :www.rpmfind.net
安装时若忽略依赖,可使用 --nodeps 参数(慎用)。
2.3 安装与升级
安装
bash
rpm -ivh 包全名
| 选项 | 含义 |
|---|---|
-i |
安装(install) |
-v |
显示详细信息(verbose) |
-h |
显示安装进度(hash) |
--nodeps |
不检测依赖性(强制安装) |
示例:
bash
rpm -ivh httpd-2.2.15-15.el6.centos.i686.rpm
rpm -ivh --nodeps 包全名 # 忽略依赖
升级
bash
rpm -Uvh 包全名
| 选项 | 含义 |
|---|---|
-U |
升级(upgrade),若未安装则安装 |
示例:
bash
rpm -Uvh httpd-2.4.6-80.el6.x86_64.rpm
2.4 查询操作
| 命令 | 含义 |
|---|---|
rpm -q 包名 |
查询指定包是否安装 |
| `rpm -qa | grep 包名` |
rpm -qi 包名 |
查询已安装包的详细信息 |
rpm -qip 包全名 |
查询未安装包的详细信息(-p 指定包文件) |
rpm -ql 包名 |
查询已安装包安装的文件列表 |
rpm -qlp 包全名 |
查询未安装包将安装的文件列表 |
rpm -qf 系统文件路径 |
查询某个系统文件属于哪个 RPM 包 |
rpm -qR 包名 |
查询已安装包的依赖关系 |
rpm -qRp 包全名 |
查询未安装包的依赖关系 |
示例:
bash
rpm -qa | grep httpd
rpm -qi httpd
rpm -ql httpd
rpm -qf /etc/httpd/conf/httpd.conf
2.5 卸载操作
bash
rpm -e 包名
| 选项 | 含义 |
|---|---|
-e |
卸载(erase) |
--nodeps |
忽略依赖强制卸载 |
示例:
bash
rpm -e httpd
rpm -e --nodeps httpd # 强制卸载
2.6 校验操作
bash
rpm -V 包名
-V 校验已安装包的文件是否被修改,输出结果每行格式为标志位和文件路径。
校验标志含义
| 标志 | 含义 |
|---|---|
S |
文件大小(Size)改变 |
M |
文件权限或类型(Mode)改变 |
5 |
MD5 校验和改变(内容被修改) |
D |
设备号(Device)改变 |
L |
路径(Link)改变 |
U |
属主(User)改变 |
G |
属组(Group)改变 |
T |
修改时间(Time)改变 |
文件类型标记(出现在输出行第一列)
| 标记 | 含义 |
|---|---|
c |
配置文件(config) |
d |
普通文档(documentation) |
g |
鬼文件(ghost,该文件不应被该包包含) |
l |
授权文件(license) |
r |
描述文件(README) |
示例:
bash
rpm -V httpd
若无输出,表示文件未被修改;若有输出,则显示哪些属性变更。
2.7 文件提取(rpm2cpio)
当某个配置文件误删除或损坏,可以从 RPM 包中提取单个文件,而无需重装。
bash
rpm2cpio 包全名 | cpio -idv ./文件绝对路径
rpm2cpio:将 RPM 包转换为 cpio 格式归档。cpio -idv:提取(-i)、创建目录(-d)、显示过程(-v)。- 后面的路径为要提取的文件的绝对路径(相对于包内根目录)。
示例(提取 httpd 的配置文件):
bash
rpm2cpio httpd-2.2.15-15.el6.centos.i686.rpm | cpio -idv ./etc/httpd/conf/httpd.conf
执行后会在当前目录下生成 ./etc/httpd/conf/httpd.conf 文件。
三、YUM 在线管理
YUM(Yellowdog Updater Modified)是基于 RPM 的包管理工具,可以自动解决依赖关系。
3.1 YUM 仓库配置文件
YUM 仓库配置文件位于 /etc/yum.repos.d/,以 .repo 结尾。以 CentOS-Base.repo 为例,其字段含义如下:
ini
[base] # 容器名称,必须放在[]中
name=CentOS-$releasever - Base # 容器说明,可自定义
mirrorlist=http://mirrorlist.centos.org/... # 镜像站点列表(可注释)
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ # YUM源服务器地址(可自定义)
enabled=1 # 是否生效,1生效,0不生效(默认不写也是1)
gpgcheck=1 # 是否启用GPG数字证书校验,1启用,0不启用
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 # 公钥文件位置
常用字段说明
| 字段 | 说明 |
|---|---|
[仓库ID] |
唯一标识,如 [base]、[epel] |
name |
仓库描述信息 |
baseurl |
YUM 源的实际 URL(可以是 file://、http://、ftp://) |
mirrorlist |
镜像列表 URL,与 baseurl 二选一 |
enabled |
是否启用本仓库 |
gpgcheck |
是否校验 GPG 签名 |
gpgkey |
GPG 公钥文件地址 |
3.2 YUM 常用命令
以下命令均在 yum 后跟子命令(需确保 /etc/yum.repos.d/ 下有有效仓库文件)。
查询操作
| 命令 | 作用 |
|---|---|
yum list |
查询所有可用软件包(含已安装和未安装) |
yum list installed |
查询已安装的包 |
yum list available |
查询未安装但可用的包 |
yum search 关键字 |
搜索服务器上所有与关键字相关的包 |
yum info 包名 |
查看软件包详细信息(相当于 rpm -qi) |
yum provides 文件路径 |
查找提供某文件的包(如 yum provides /bin/bash) |
示例:
bash
yum list | grep nginx
yum search ftp
yum info httpd
安装操作
bash
yum -y install 包名
-y:自动回答 yes,适合脚本。install:安装指定包。- 可同时安装多个包,空格分隔。
bash
yum -y install httpd mysql
升级操作
bash
yum -y update 包名 # 升级指定包
yum -y update # 升级所有已安装包(谨慎)
yum -y upgrade # 同 update,但更严格处理过时包
卸载操作
bash
yum -y remove 包名 # 卸载指定包(会移除其依赖,谨慎)
重新安装
bash
yum reinstall 包名 # 重新安装(可用于修复文件)
缓存管理
bash
yum makecache # 生成元数据缓存(加速查询)
yum clean all # 清除所有缓存
3.3 软件组管理
软件组是一组相关包的集合,适合安装某个大套件(如开发工具、图形桌面)。
| 命令 | 作用 |
|---|---|
yum grouplist |
列出所有可用软件组列表 |
yum groupinstall "软件组名" |
安装指定软件组(组名含空格需加引号) |
yum groupupdate "软件组名" |
升级软件组 |
yum groupremove "软件组名" |
卸载软件组 |
示例:
bash
yum grouplist
yum groupinstall "Development Tools"
yum groupremove "Development Tools"
3.4 光盘 YUM 源搭建
当网络不好时,可以使用系统安装光盘作为本地 YUM 源。
步骤
-
挂载光盘
bashmount /dev/cdrom /mnt/cdrom(若
/mnt/cdrom不存在,需先mkdir -p /mnt/cdrom) -
使网络 YUM 源失效(备份后移走)
bashcd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.bak mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak mv CentOS-Vault.repo CentOS-Vault.repo.bak -
修改光盘 YUM 源配置文件 (
CentOS-Media.repo)bashvi CentOS-Media.repo修改如下内容:
ini[c7-media] name=CentOS-$releasever - Media baseurl=file:///mnt/cdrom # 指向挂载点 gpgcheck=0 # 0关闭校验(或设置1并指定gpgkey) enabled=1 # 1启用 -
验证
bashyum clean all yum list
四、DNF 包管理器
DNF(Dandified YUM)是 YUM 的下一代版本,在 Fedora 22+ 及 RHEL/CentOS 8+ 中成为默认。在 CentOS 7 中可通过 EPEL 安装。
安装 DNF(CentOS 7)
bash
yum install epel-release -y
yum install dnf -y
DNF 常用命令对照(与 YUM 高度相似)
| 操作 | DNF 命令 | 说明 |
|---|---|---|
| 查看版本 | dnf --version |
|
| 列出软件库 | dnf repolist |
可用库 |
| 列出所有库(含禁用) | dnf repolist all |
|
| 列出所有 RPM 包 | dnf list |
|
| 列出已安装包 | dnf list installed |
|
| 列出可安装包 | dnf list available |
|
| 搜索包 | dnf search nano |
|
| 查找文件提供者 | dnf provides /bin/bash |
|
| 查看包信息 | dnf info 包名 |
|
| 安装包 | dnf install 包名 |
可加 -y |
| 升级包 | dnf update 包名 |
也可用 upgrade |
| 检查更新 | dnf check-update |
|
| 升级所有包 | dnf update 或 dnf upgrade |
|
| 删除包 | dnf remove 包名 或 dnf erase 包名 |
|
| 自动删除孤立包 | dnf autoremove |
|
| 清除缓存 | dnf clean all |
|
| 查看命令帮助 | dnf help clean |
|
| 查看所有命令 | dnf help |
|
| 查看历史 | dnf history |
|
| 软件包组列表 | dnf grouplist |
|
| 安装软件包组 | dnf groupinstall '组名' |
|
| 升级软件包组 | dnf groupupdate '组名' |
|
| 删除软件包组 | dnf groupremove '组名' |
|
| 从特定库安装 | dnf --enablerepo=epel install phpmyadmin |
|
| 同步发行版 | dnf distro-sync |
更新到最新稳定版 |
| 回滚特定软件 | dnf downgrade acpid |
降级 |
📌 DNF 语法更规范,性能更好,推荐在新系统上使用。
五、RPM 包安装后的服务目录结构
RPM 安装的软件(特别是系统服务)通常遵循标准的目录布局,了解这些位置便于管理。
| 目录 | 用途 |
|---|---|
/etc/init.d/ |
启动脚本(SysV 风格)存放位置 |
/etc/sysconfig/ |
服务初始化环境配置文件(如网络、SELinux 等) |
/etc/ |
服务主配置文件目录(如 /etc/httpd/conf/) |
/etc/xinetd.conf |
xinetd 的主配置文件 |
/etc/xinetd.d/ |
基于 xinetd 服务的独立启动脚本 |
/var/lib/ |
服务运行时产生的数据(如数据库文件) |
/var/log/ |
服务日志文件 |
示例:
- Apache HTTPD 配置在
/etc/httpd/conf/httpd.conf,启动脚本/etc/init.d/httpd - MySQL 数据在
/var/lib/mysql,日志在/var/log/mysqld.log
六、VIM 编辑器详解
VIM 是 Linux 下最强大的文本编辑器,掌握它可大幅提高工作效率。
6.1 三种模式概览
- 命令模式(默认) :按
Esc进入,可移动光标、删除、复制、搜索等。 - 插入模式 :按
i/a/o等进入,编辑文本,按Esc返回命令模式。 - 末行模式 :在命令模式下按
:进入,可执行保存、退出、替换、设置等。
6.2 命令模式操作
光标移动
| 操作 | 功能 |
|---|---|
gg |
跳转到文件第一行 |
G |
跳转到文件最后一行 |
nG 或 ngg |
跳转到第 n 行(如 10G 到第10行) |
$ |
移动到当前行行尾 |
0(数字零) |
移动到当前行行首 |
删除操作
| 操作 | 功能 |
|---|---|
x |
删除光标所在处的字符 |
nx |
删除光标后 n 个字符(如 5x) |
dd |
删除当前行 |
ndd |
删除 n 行(如 5dd) |
dG |
删除从当前行到文件末尾 |
D |
删除从光标到行尾的内容 |
复制、剪切与粘贴
| 操作 | 功能 |
|---|---|
yy |
复制当前行 |
nyy |
复制 n 行(如 5yy) |
dd |
剪切当前行(也可用 ndd 剪切多行) |
p(小写) |
粘贴到光标所在行的下一行 |
P(大写) |
粘贴到光标所在行的上一行 |
替换与撤销
| 操作 | 功能 |
|---|---|
r |
替换光标处的字符(输入一个字符) |
R |
进入替换模式,持续替换直至按 Esc |
u |
撤销上一步操作 |
.(点) |
重复上一次操作 |
搜索
| 操作 | 功能 |
|---|---|
/字符串 |
向下搜索指定字符串 |
?字符串 |
向上搜索指定字符串 |
n |
跳转到下一个匹配项(按搜索方向) |
N |
跳转到上一个匹配项 |
其他常用命令模式操作
| 操作 | 功能 |
|---|---|
Ctrl + v |
进入可视块模式(可多列操作) |
ZZ |
保存并退出(等同于 :wq) |
6.3 插入模式(进入方式)
| 操作 | 功能 |
|---|---|
a |
在光标所在字符后插入 |
A |
在光标所在行行尾插入 |
i |
在光标所在字符前插入 |
I |
在光标所在行行首插入 |
o |
在光标所在行下方新建一行并插入 |
O |
在光标所在行上方新建一行并插入 |
6.4 末行模式操作
在命令模式下按 : 进入,以下命令输入后按 Enter 执行。
行号与设置
| 命令 | 功能 |
|---|---|
:set nu |
显示行号 |
:set nonu |
取消行号 |
:set ic |
搜索时忽略大小写(:set noic 取消) |
:n |
跳转到第 n 行(如 :10) |
删除范围
| 命令 | 功能 |
|---|---|
:n1,n2d |
删除从 n1 到 n2 的行 |
写入文件
| 命令 | 功能 |
|---|---|
:w |
保存当前文件 |
:w 新文件名 |
另存为新文件 |
:n1,n2 w 文件名 |
将 n1 到 n2 行写入新文件 |
复制/移动行
| 命令 | 功能 |
|---|---|
:n1,n2 co n3 |
将 n1~n2 行复制到 n3 行下方(co 也可用 copy) |
:n1,n2 m n3 |
将 n1~n2 行移动到 n3 行下方(m 也可用 move) |
替换
bash
:[范围]s/旧字符串/新字符串/[选项]
| 范围 | 说明 |
|---|---|
% |
全文 |
n1,n2 |
从 n1 到 n2 行 |
| 选项 | 说明 |
|---|---|
g |
全局替换(不询问) |
c |
逐个确认(confirm) |
| 空 | 只替换每行第一个匹配 |
示例:
:%s/old/new/g------ 全文替换所有 old 为 new:1,10s/^/#/g------ 在1~10行行首添加#(注释):s/foo/bar/------ 替换当前行第一个 foo
保存与退出
| 命令 | 功能 |
|---|---|
:w |
保存 |
:wq 或 :x |
保存并退出 |
:q! |
不保存强制退出 |
:wq! |
强制保存并退出(仅文件所有者或 root) |
分屏显示
| 命令 | 功能 |
|---|---|
:vs 文件名 |
垂直分屏(vertical split) |
:sp 文件名 |
水平分屏(split) |
执行外部命令
| 命令 | 功能 |
|---|---|
:! 命令 |
临时执行系统命令(如 :! ls) |
:r ! 命令 |
将命令的输出插入到当前行下方 |
6.5 常用高级技巧
查找命令路径并插入
bash
:!which 命令 # 查看命令路径
:r !which 命令 # 将路径插入到文件中
定义快捷键(映射)
在末行模式下定义临时快捷键:
bash
:map <快捷键> <触发命令>
例如,按 Ctrl+P 快速在行首插入 #:
bash
:map ^P I#<Esc> # ^P 需用 Ctrl+V Ctrl+P 输入
(^P 表示 Ctrl+P,需按 Ctrl+V 再按 Ctrl+P 输入)
永久保存快捷键可写入
~/.vimrc配置文件(不加冒号)。
连续行注释
使用替换命令在行首添加 #:
bash
:起始行,终止行s/^/#/g
例如,注释第 5 到 20 行:
bash
:5,20s/^/#/g
替换缩写(自动展开)
bash
:ab a b # 输入 a 时自动替换为 b(可用于长单词缩写)
例如 :ab mailroot /var/spool/mail/root。
VIM 配置文件(~/.vimrc)
常用设置(不加冒号):
set nu " 显示行号
set ic " 搜索忽略大小写
set expandtab " 用空格替代制表符
set shiftwidth=4 " 缩进宽度
写入后永久生效。
七、权限管理扩展
7.1 ACL 权限
ACL(Access Control List)可为单独的特定用户或组设置文件权限,而不仅限于所有者/组/其他人。
检查分区是否支持 ACL
bash
dumpe2fs -h /dev/sda3 # 查看超级块,检查 "Default mount options:" 是否包含 acl
若不支持,可临时挂载开启:
bash
mount -o remount,acl /
永久开启:编辑 /etc/fstab,在挂载选项中加入 acl(如 defaults,acl),然后 mount -o remount /。
查看 ACL 权限
bash
getfacl 文件名
设定 ACL 权限
bash
setfacl [选项] u:用户名:权限 文件名
setfacl [选项] g:组名:权限 文件名
| 选项 | 作用 |
|---|---|
-m |
设定(添加或修改)ACL 条目 |
-x |
删除指定的 ACL 条目 |
-b |
删除所有 ACL 条目 |
-R |
递归设定(对目录内现有文件生效) |
-d |
设定默认 ACL(对目录内新建文件生效) |
-k |
删除默认 ACL |
示例:
bash
# 给用户 tom 赋予 /project 的读写执行权限
setfacl -m u:tom:rwx /project
# 递归给目录下所有文件添加用户 jerry 的读权限
setfacl -R -m u:jerry:rx /data
# 设定默认 ACL(新建文件继承)
setfacl -m d:u:tom:rwx /project
# 删除用户 tom 的 ACL
setfacl -x u:tom /project
# 删除所有 ACL
setfacl -b /project
最大有效权限(mask)
ACL 权限与 mask 权限进行"与"运算后才是实际有效权限。查看 getfacl 输出中的 mask 行,修改 mask:
bash
setfacl -m m:rwx 文件名 # 设置 mask 为 rwx
注意:mask 不影响文件所有者的权限。
7.2 特殊权限(SUID / SGID / SBIT)
| 权限 | 数字代表 | 设置方式 | 作用 |
|---|---|---|---|
| SUID(Set User ID) | 4(如 4755) |
chmod u+s 文件 |
仅对二进制可执行文件有效。执行时,进程获得文件所有者的权限(而非执行者)。例如 /usr/bin/passwd。 |
| SGID(Set Group ID) | 2(如 2755) |
chmod g+s 文件或目录 |
对文件:执行时获得文件所属组的权限;对目录:在该目录下新建的文件,其所属组将继承目录的属组(而非创建者的主组)。 |
| SBIT(Sticky Bit,粘着位) | 1(如 1755) |
chmod o+t 目录 |
仅对目录有效。在该目录下,用户只能删除自己创建的文件(即使有写权限),典型如 /tmp。 |
示例:
bash
chmod 4755 /usr/bin/myprog # 设置 SUID
chmod u+s /usr/bin/myprog # 同上
chmod 1755 /tmp/mydir # 设置粘着位
若设置后显示
S(大写)或T,表示该文件缺少相应的执行权限,应先赋予执行权限(chmod +x)。
7.3 文件系统属性(chattr / lsattr)
这些属性仅对 root 用户有效,用于锁定文件或目录,防止误操作。
chattr 设置属性
bash
chattr [+|-|=] 选项 文件或目录
| 选项 | 对文件的作用 | 对目录的作用 |
|---|---|---|
i |
无法删除、改名、修改内容(锁死) | 只能修改目录下文件的数据,但不能新建或删除文件(锁死目录) |
a |
只能追加内容(echo >>),不能删除或修改原有内容 |
可以建立和修改文件,但不能删除文件(锁数据) |
示例:
bash
chattr +i /etc/passwd # 锁定 passwd 文件
chattr -i /etc/passwd # 解锁
chattr +a /var/log/secure # 仅允许追加
lsattr 查看属性
bash
lsattr [选项] 文件或目录
| 选项 | 作用 |
|---|---|
-a |
显示所有文件(含隐藏) |
-d |
若目标是目录,仅显示目录本身属性,不显示其子内容 |
示例:
bash
lsattr -d /root
7.4 sudo 权限
sudo 允许普通用户以 root(或其他用户)身份执行特定命令。
配置 sudo(visudo)
bash
visudo # 安全编辑 /etc/sudoers 文件
格式:
plaintext
用户名 主机名=(可切换身份) 命令绝对路径
%组名 主机名=(可切换身份) 命令绝对路径
- 主机名通常写
ALL。 - 可切换身份可写
ALL或指定用户。 - 命令需使用绝对路径(可用
which 命令查找)。
示例:
bash
# 允许用户 sc 执行重启命令
sc ALL=/sbin/shutdown -r now
# 允许 wheel 组所有用户执行任何命令(需输入密码)
%wheel ALL=(ALL) ALL
# 允许用户 dev 执行 yum 安装(免密码)
dev ALL=(ALL) NOPASSWD: /usr/bin/yum install
使用 sudo
bash
sudo -l # 查看当前用户可执行的 sudo 命令
sudo 命令 # 执行授权命令(如 sudo /sbin/shutdown -r now)
普通用户执行 sudo 时需输入自己的密码(除非设置了
NOPASSWD)。
🏁 结语
本手册完整收录了 GCC、RPM、YUM、DNF、VIM、权限管理 等核心工具的所有原始细节,并补充了示例和参数说明。无论是编译程序、安装软件、编辑配置还是控制权限,你都可以在这里快速找到答案。
建议收藏或打印,遇到相关任务时直接翻阅对应章节。如果你在实际使用中发现遗漏或需要补充,欢迎随时完善。
愿你的 Linux 之旅畅通无阻! 🚀