基础文件和目录操作
这些是日常使用中最频繁的命令。

| 命令 | 全称 | 描述 | 示例 |
|---|---|---|---|
ls |
list | 列出目录内容 | ls -l (长格式), ls -a (显示隐藏文件), ls -h (人性化显示大小) |
cd |
change directory | 切换工作目录 | cd /var/log (切换到目录), cd .. (返回上级目录), cd ~ (返回家目录) |
pwd |
print working directory | 显示当前所在路径 | pwd |
mkdir |
make directory | 创建新目录 | mkdir my_folder (创建一个), mkdir -p parent/child (创建多级目录) |
touch |
touch | 创建空文件或更新文件时间戳 | touch new_file.txt |
cp |
copy | 复制文件或目录 | cp file1.txt file2.txt (复制文件), cp -r dir1/ dir2/ (递归复制目录) |
mv |
move | 移动/重命名文件或目录 | mv old_name.txt new_name.txt (重命名), mv file.txt /tmp/ (移动文件) |
rm |
remove | 删除文件或目录 | rm file.txt (删除文件), rm -r dir/ (递归删除目录), rm -f file.txt (强制删除) |
cat |
concatenate | 查看文件内容(全部) | cat /etc/hosts |
less |
less | 分页查看文件内容(推荐) | less /var/log/messages (按 q 退出) |
head |
head | 查看文件开头几行 | head -n 20 /etc/passwd (查看前20行) |
tail |
tail | 查看文件结尾几行 | tail -n 20 /var/log/secure (查看最后20行), tail -f /var/log/messages (实时跟踪) |
nano |
nano | 一个简单的命令行文本编辑器 | nano my_config.conf |
系统信息与管理
用于查看和管理系统状态。
| 命令 | 描述 | 示例 |
|---|---|---|
uname |
显示系统信息 | uname -a (显示所有信息) |
top |
实时显示进程和系统资源占用 | top (按 q 退出, M 按内存排序, P 按CPU排序) |
htop |
top 的增强版(更直观) |
htop (需要先安装: yum install htop) |
df |
disk free | 查看磁盘空间使用情况 |
du |
disk usage | 查看目录或文件占用的空间 |
free |
查看内存使用情况 | free -h (人性化显示) |
ps |
process status | 查看当前运行的进程 |
kill |
终止进程 | kill 1234 (正常终止), kill -9 1234 (强制终止) |
reboot |
重启系统 | sudo reboot |
shutdown |
关闭系统 | sudo shutdown -h now (立即关机), sudo shutdown -r +10 (10分钟后重启) |
date |
显示和设置系统时间 | date, date "+%Y-%m-%d %H:%M:%S" |
用户和权限管理
Linux 的核心是权限管理。
| 命令 | 描述 | 示例 |
|---|---|---|
sudo |
superuser do | 以其他用户(通常是root)的身份执行命令 |
su |
switch user | 切换用户 |
useradd / adduser |
创建新用户 | sudo useradd testuser (创建), sudo passwd testuser (设置密码) |
userdel |
删除用户 | sudo userdel testuser (删除用户但保留家目录), sudo userdel -r testuser (彻底删除) |
passwd |
修改用户密码 | passwd (修改当前用户), sudo passwd testuser (修改其他用户) |
chmod |
change mode | 修改文件或目录的权限 |
chown |
change owner | 修改文件或目录的所有者 |
chgrp |
change group | 修改文件或目录的所属组 |
权限解释 (rwx):
r(read): 读取权限 (4)w(write): 写入权限 (2)x(execute): 执行权限 (1)- 数字法:
rwx= 4+2+1 = 7,r-x= 4+0+1 = 5, = 0 - 用户类型:
u(user): 文件所有者g(group): 文件所属组o(others): 其他用户a(all): 所有用户
软件包管理
对于 CentOS 7 及更早版本:

| 命令 (yum) | 描述 | 示例 |
|---|---|---|
yum search <keyword> |
搜索软件包 | yum search nginx |
yum install <package> |
安装软件包 | sudo yum install -y nginx |
yum remove <package> |
卸载软件包 | sudo yum remove nginx |
yum update |
更新所有已安装的软件包 | sudo yum update |
yum history list |
查看操作历史 | yum history list |
yum history undo <ID> |
撤销某次操作 | yum history undo 3 |
对于 CentOS 8 及更高版本 (推荐使用 dnf):
dnf 是 yum 的下一代替代品,命令语法基本相同,功能更强大。
| 命令 (dnf) | 描述 | 示例 |
|---|---|---|
dnf search <keyword> |
搜索软件包 | dnf search nginx |
dnf install <package> |
安装软件包 | sudo dnf install -y nginx |
dnf remove <package> |
卸载软件包 | sudo dnf remove nginx |
dnf update |
更新所有已安装的软件包 | sudo dnf update |
dnf history list |
查看操作历史 | dnf history list |
dnf history undo <ID> |
撤销某次操作 | dnf history undo 3 |
网络配置与诊断
排查网络问题的必备命令。
| 命令 | 描述 | 示例 |
|---|---|---|
ip addr / ifconfig |
查看网络接口和IP地址 | ip addr show (查看所有), ip addr show eth0 (查看指定网卡) |
ping |
测试网络连通性 | ping google.com |
ss / netstat |
查看网络连接、端口监听状态 | ss -tuln (查看所有监听的TCP/UDP端口), netstat -tuln |
curl / wget |
从网络下载文件或发起HTTP请求 | curl -I http://example.com (查看HTTP头), wget http://example.com/file.zip |
ssh |
安全远程登录 | ssh username@192.168.1.100 |
scp |
安全远程复制文件 | scp file.txt user@remote:/path/to/destination |
traceroute |
追踪数据包到目标主机的路径 | traceroute google.com |
route / ip route |
查看和操作路由表 | ip route show |
文本处理 (三剑客)
Linux 文本处理的利器。

grep (Global Regular Expression Print)
- 作用: 在文本中搜索匹配的行。
- 常用选项:
-i: 忽略大小写。-v: 反向选择(即打印不匹配的行)。-n: 显示行号。-c: 只打印匹配的行数。
- 示例:
grep "error" /var/log/messages # 在日志中搜索包含 "error" 的行 grep -i "warning" /var/log/secure # 忽略大小写搜索 "warning" grep -v "^#" /etc/hosts # 显示 /etc/hosts 文件中所有非注释行
sed (Stream Editor)
- 作用: 对文本进行流编辑(查找、替换、删除、插入等)。
- 常用选项:
-i: 直接修改文件内容(慎用!)。-e: 多点编辑。
- 示例:
sed 's/old_text/new_text/g' file.txt # 替换文件中的所有 "old_text" 为 "new_text" (不修改原文件) sed -i 's/localhost/myserver/g' /etc/hosts # 直接修改 /etc/hosts 文件 sed '1d' file.txt # 删除文件的第一行 sed '/^#/d' file.txt # 删除所有以 # 开头的行
awk (Aho, Weinberger, and Kernighan)
-
作用: 强大的文本分析工具,按列处理文本。
-
工作原理:
awk '条件 {执行动作}'。 -
内置变量:
$0: 整行。$1, $2, ...: 第1列, 第2列, ...NF: 当前行的字段数(列数)。NR: 当前行的行号。
-
示例:
# 打印 /etc/passwd 文件的第1列和第6列(用户名和家目录) awk -F: '{print $1, $6}' /etc/passwd # 打印包含 "nologin" 的用户名 awk -F: '$7 == "/sbin/nologin" {print $1}' /etc/passwd # 打印文件的总行数 awk 'END {print NR}' file.txt
系统服务管理 (systemd)
在 CentOS 7+ 中,systemctl 是管理服务的核心命令。
| 命令 | 描述 | 示例 |
|---|---|---|
systemctl start <service> |
启动服务 | sudo systemctl start nginx |
systemctl stop <service> |
停止服务 | sudo systemctl stop nginx |
systemctl restart <service> |
重启服务 | sudo systemctl restart nginx |
systemctl reload <service> |
重新加载配置文件(不中断服务) | sudo systemctl reload nginx |
systemctl enable <service> |
设置服务开机自启 | sudo systemctl enable nginx |
systemctl disable <service> |
禁止服务开机自启 | sudo systemctl disable nginx |
systemctl status <service> |
查看服务状态 | systemctl status nginx |
systemctl list-units --type=service |
列出所有服务 | systemctl list-units --type=service --all |
journalctl -u <service> |
查看服务的日志 | journalctl -u nginx |
压缩与解压
| 命令 | 格式 | 描述 | 示例 |
|---|---|---|---|
tar |
.tar / .tar.gz / .tar.bz2 / .tar.xz | 打包/解包工具 | tar -czvf archive.tar.gz /path/to/dir (打包并压缩), tar -xzvf archive.tar.gz (解压并解包) |
zip / unzip |
.zip | Windows/Linux 通用格式 | zip -r archive.zip /path/to/dir (压缩), unzip archive.zip (解压) |
gzip / gunzip |
.gz | 单文件压缩/解压 | gzip file.txt (压缩成 file.txt.gz), gunzip file.txt.gz (解压) |
进程管理
| 命令 | 描述 | 示例 |
|---|---|---|
jobs |
查看当前终端的后台任务 | jobs |
bg |
将一个前台任务放到后台 | bg %1 (将任务1放到后台) |
fg |
将一个后台任务调到前台 | fg %1 (将任务1调到前台) |
nohup |
忽挂断信号,让命令在退出终端后继续运行 | nohup ping google.com > ping.log 2>&1 & |
帮助与手册
遇到不知道的命令,善用帮助文档。
| 命令 | 描述 | 示例 |
|---|---|---|
man |
显示命令的详细手册页 | man ls (按 q 退出) |
--help |
显示命令的基本用法和选项 | ls --help |
info |
显示更详细的 Info 格式文档 | info coreutils |
重要提示
sudo权限: 执行需要管理员权限的命令时,通常需要在命令前加上sudo,并输入当前用户的密码。- Tab 自动补全: 在输入命令或文件名时,按
Tab键可以自动补全,提高效率。 - 命令历史: 按 和 键可以浏览之前执行过的命令。
- 谨慎操作: 使用
rm -rf,chmod -R 777,> file.txt等具有破坏性的命令时,请务必小心,确认路径和操作对象是否正确。
希望这份详细的 CentOS 命令指南对您有帮助!
