Linux Commands Guide

2025/10/24 共 8195 字,约 24 分钟

Linux 常用命令与帮助文档使用指南

1. 帮助文档系统概述

Linux 提供了多种方式来获取命令的帮助信息,最常用的是 man 命令(manual page)。除了 man 命令,还有其他几种获取帮助的方式,如 --help 选项、info 命令等。

2. man 命令详解

基本语法

man [选项] 命令名

常用选项

  • -k:根据关键字搜索手册页
  • -f:显示命令的简短描述
  • -a:显示所有可用的手册页
  • -M:指定手册页路径
  • -P:指定分页程序
  • -S:指定搜索的章节

手册页的章节分类

Linux 手册页分为多个章节,用数字表示:

  1. 用户命令:可由所有用户执行的命令
  2. 系统调用:内核提供的函数
  3. 库函数:C 标准库中的函数
  4. 设备文件:通常位于 /dev 目录下的特殊文件
  5. 文件格式和约定:如 /etc/passwd 的格式
  6. 游戏和屏保:娱乐程序
  7. 杂项:协议、文件系统等
  8. 系统管理命令:通常只能由 root 用户执行的命令

man 页面的结构

每个 man 页面通常包含以下部分:

  • NAME:命令名称和简要描述
  • SYNOPSIS:命令语法格式
  • DESCRIPTION:命令功能详细描述
  • OPTIONS:命令选项说明
  • EXAMPLES:使用示例
  • FILES:相关文件
  • SEE ALSO:相关命令或文档
  • BUGS:已知问题
  • AUTHOR:作者信息

使用 man 命令的实例

# 查看 ls 命令的手册页
man ls

# 查看特定章节的手册页
man 5 passwd  # 查看 passwd 文件格式的说明

# 搜索包含特定关键字的手册页
man -k network  # 搜索与网络相关的命令

# 查看命令的简短描述
man -f ls  # 等同于 whatis ls

在 man 页面中导航

在 man 页面查看器中,可以使用以下按键导航:

  • 空格键:向下翻一页
  • Enter 键:向下翻一行
  • b 键:向上翻一页
  • k 键:向上翻一行
  • G 键:跳转到页面末尾
  • 1G 或 g 键:跳转到页面开头
  • / 键:向下搜索指定字符串
  • ? 键:向上搜索指定字符串
  • n 键:查找下一个匹配项
  • N 键:查找上一个匹配项
  • q 键:退出 man 页面

3. 其他帮助工具

–help 选项

大多数 Linux 命令都支持 --help 选项,用于显示简短的帮助信息:

ls --help
echo --help

info 命令

info 命令提供更详细的帮助信息,特别是对于 GNU 项目的程序:

info ls
info bash

apropos 命令

apropos 命令用于搜索与关键字相关的命令,等同于 man -k

apropos file  # 搜索与文件相关的命令

whatis 命令

whatis 命令用于显示命令的简短描述,等同于 man -f

whatis grep
whatis awk

4. 系统信息命令

uname - 显示系统信息

功能:显示操作系统名称、版本等信息

语法uname [选项]

常用选项

  • -a:显示所有系统信息
  • -s:显示操作系统名称
  • -n:显示主机名
  • -r:显示内核版本
  • -m:显示机器硬件名称
  • -p:显示处理器类型

示例

uname -a  # 显示所有系统信息
uname -r  # 仅显示内核版本

hostname - 显示或设置主机名

功能:显示或设置系统的主机名

语法hostname [选项] [主机名]

常用选项

  • -I:显示所有网络接口的 IP 地址
  • -f:显示完全限定域名 (FQDN)

示例

hostname  # 显示当前主机名
hostname -I  # 显示 IP 地址

whoami - 显示当前用户名

功能:显示当前登录的用户名

语法whoami

示例

whoami

id - 显示用户和组信息

功能:显示当前用户的用户 ID、组 ID 以及所属的所有组

语法id [选项] [用户名]

常用选项

  • -u:仅显示用户 ID
  • -g:仅显示主组 ID
  • -G:显示所有组 ID
  • -n:显示名称而不是 ID 号

示例

id  # 显示当前用户的所有信息
id -un  # 显示当前用户名

uptime - 显示系统运行时间

功能:显示系统已运行的时间和负载情况

语法uptime [选项]

示例

uptime  # 显示系统运行时间和平均负载

5. 文件和目录命令

ls - 列出目录内容

功能:列出目录中的文件和子目录

语法ls [选项] [目录]

常用选项

  • -l:长格式显示,包含详细信息
  • -a:显示所有文件,包括隐藏文件(以 . 开头的文件)
  • -h:以人类可读的格式显示文件大小
  • -t:按修改时间排序
  • -r:反向排序
  • -S:按文件大小排序

示例

ls -la  # 以长格式显示所有文件
ls -lh  # 以人类可读格式显示文件大小
ls -la /home  # 列出 /home 目录的所有内容

cd - 切换目录

功能:更改当前工作目录

语法cd [目录]

特殊目录

  • ~:用户主目录
  • .:当前目录
  • ..:父目录
  • -:上一个工作目录

示例

cd /home/user  # 切换到指定目录
cd ~  # 切换到主目录
cd ..  # 切换到父目录
cd -  # 切换到上一个目录

pwd - 显示当前目录

功能:显示当前工作目录的绝对路径

语法pwd [选项]

常用选项

  • -P:显示物理路径,不跟随符号链接

示例

pwd  # 显示当前目录路径

mkdir - 创建目录

功能:创建新目录

语法mkdir [选项] 目录名

常用选项

  • -p:递归创建目录,必要时创建父目录
  • -m:设置创建目录的权限

示例

mkdir newdir  # 创建单个目录
mkdir -p dir1/dir2/dir3  # 递归创建多级目录
mkdir -m 755 public_html  # 创建具有特定权限的目录

rmdir - 删除空目录

功能:删除空目录

语法rmdir [选项] 目录名

常用选项

  • -p:递归删除目录,同时删除父目录(如果为空)

示例

rmdir emptydir  # 删除空目录
rmdir -p dir1/dir2  # 递归删除空目录

touch - 创建文件或更新文件时间

功能:创建空文件或更新现有文件的访问和修改时间

语法touch [选项] 文件名

常用选项

  • -a:仅更新访问时间
  • -m:仅更新修改时间
  • -d:使用指定的日期时间

示例

touch file.txt  # 创建空文件或更新时间戳
touch -d "2023-01-01" oldfile.txt  # 设置特定日期

cp - 复制文件和目录

功能:复制文件或目录

语法cp [选项] 源文件 目标文件cp [选项] 源文件... 目标目录

常用选项

  • -r, -R:递归复制目录
  • -i:交互式复制,覆盖前提示
  • -p:保留文件属性(权限、时间戳等)
  • -v:详细显示复制过程

示例

cp file1.txt file2.txt  # 复制文件
cp -r dir1 dir2  # 复制目录
cp -ip *.txt backup/  # 交互式复制并保留属性

mv - 移动或重命名文件和目录

功能:移动文件或目录,或重命名文件和目录

语法mv [选项] 源文件 目标文件mv [选项] 源文件... 目标目录

常用选项

  • -i:交互式移动,覆盖前提示
  • -v:详细显示移动过程

示例

mv file1.txt file2.txt  # 重命名文件
mv file.txt dir/  # 移动文件到目录
mv dir1 dir2  # 重命名或移动目录

rm - 删除文件和目录

功能:删除文件或目录

语法rm [选项] 文件rm [选项] 目录

常用选项

  • -r, -R:递归删除目录及其内容
  • -f:强制删除,不提示确认
  • -i:交互式删除,删除前提示
  • -v:详细显示删除过程

示例

rm file.txt  # 删除单个文件
rm -rf dir/  # 递归强制删除目录(危险操作)
rm -i *.tmp  # 交互式删除多个文件

cat - 查看文件内容

功能:连接并显示文件内容

语法cat [选项] 文件...

常用选项

  • -n:显示行号
  • -b:显示行号,但不包括空行
  • -s:压缩连续的空行为一行

示例

cat file.txt  # 显示文件内容
cat -n file.txt  # 显示行号
cat file1.txt file2.txt > combined.txt  # 合并文件

less - 分页查看文件内容

功能:以分页方式查看文件内容,适用于大文件

语法less [选项] 文件

常用选项

  • -N:显示行号
  • -S:不换行显示长行

导航键:与 man 页面相同,使用空格键、Enter 键、b 键等导航

示例

less largefile.txt  # 分页查看文件

head - 查看文件开头

功能:显示文件的前几行

语法head [选项] 文件

常用选项

  • -n:指定显示的行数,默认显示前 10 行

示例

head file.txt  # 显示前 10 行
head -n 20 file.txt  # 显示前 20 行

tail - 查看文件结尾

功能:显示文件的最后几行

语法tail [选项] 文件

常用选项

  • -n:指定显示的行数,默认显示最后 10 行
  • -f:实时显示文件新增内容,常用于日志监控

示例

tail file.txt  # 显示最后 10 行
tail -n 20 file.txt  # 显示最后 20 行
tail -f /var/log/syslog  # 实时监控日志文件

6. 文件内容搜索命令

grep - 搜索文件内容

功能:在文件中搜索指定的模式

语法grep [选项] 模式 [文件...]

常用选项

  • -i:忽略大小写
  • -r:递归搜索目录
  • -n:显示匹配行的行号
  • -v:反向搜索,显示不匹配的行
  • -c:只显示匹配的行数
  • -A:显示匹配行及其后的 N 行
  • -B:显示匹配行及其前的 N 行

示例

grep "error" log.txt  # 搜索包含 "error" 的行
grep -i "warning" *.log  # 忽略大小写搜索多个文件
grep -r "function" /path/to/code/  # 递归搜索目录
grep -n "TODO" script.sh  # 显示行号

find - 查找文件和目录

功能:在指定目录中查找文件和目录

语法find [路径] [选项] [操作]

常用选项

  • -name 模式:按名称查找
  • -type 类型:按类型查找(f:文件, d:目录, l:链接)
  • -size 大小:按大小查找
  • -mtime 天数:按修改时间查找
  • -user 用户名:按所有者查找

常用操作

  • -exec 命令 {} \;:对匹配的文件执行命令
  • -delete:删除匹配的文件

示例

find /home -name "*.txt"  # 查找所有 .txt 文件
find /var/log -type f -mtime -7  # 查找 7 天内修改的文件
find /tmp -size +10M  # 查找大于 10MB 的文件
find /opt -name "*.bak" -delete  # 删除所有 .bak 文件
find /etc -type f -exec ls -l {} \;  # 对找到的文件执行 ls -l 命令

7. 文件权限和所有权命令

chmod - 更改文件权限

功能:更改文件或目录的访问权限

语法chmod [选项] 模式 文件

权限表示方法

  • 数字表示法
    • 4:读取权限
    • 2:写入权限
    • 1:执行权限
    • rwx = 7, rw- = 6, r-x = 5, r– = 4, -wx = 3, -w- = 2, –x = 1, — = 0
  • 符号表示法
    • u:用户(所有者)
    • g:组
    • o:其他用户
    • a:所有用户
    • +:添加权限
    • -:删除权限
    • =:设置权限

常用选项

  • -R:递归更改目录及其内容的权限

示例

chmod 755 file.sh  # 设置所有者可读写执行,组和其他用户可读执行
chmod u+x file.sh  # 为所有者添加执行权限
chmod go-w file.txt  # 移除组和其他用户的写入权限
chmod -R 700 dir/  # 递归设置目录权限

chown - 更改文件所有者

功能:更改文件或目录的所有者和/或组

语法chown [选项] [所有者][:[组]] 文件

常用选项

  • -R:递归更改目录及其内容的所有权

示例

chown user file.txt  # 更改文件所有者
chown user:group file.txt  # 同时更改所有者和组
chown -R user:group dir/  # 递归更改目录所有权

chgrp - 更改文件组

功能:更改文件或目录的组所有权

语法chgrp [选项] 组 文件

常用选项

  • -R:递归更改目录及其内容的组所有权

示例

chgrp group file.txt  # 更改文件组
chgrp -R group dir/  # 递归更改目录组

8. 压缩和归档命令

tar - 归档和压缩工具

功能:创建、提取和管理归档文件

语法tar [选项] [归档文件] [文件...]

常用选项

  • -c:创建新归档
  • -x:从归档中提取文件
  • -v:详细显示处理的文件
  • -f:指定归档文件
  • -z:使用 gzip 压缩/解压缩
  • -j:使用 bzip2 压缩/解压缩
  • -J:使用 xz 压缩/解压缩
  • -t:列出归档内容

示例

tar -cvf archive.tar files/  # 创建归档
tar -czvf archive.tar.gz files/  # 创建 gzip 压缩归档
tar -xzvf archive.tar.gz  # 提取 gzip 归档
tar -tf archive.tar  # 列出归档内容
tar -xzvf archive.tar.gz -C /tmp  # 提取到指定目录

zip - 创建 ZIP 压缩文件

功能:创建 ZIP 格式的压缩文件

语法zip [选项] 压缩文件 文件...

常用选项

  • -r:递归压缩目录
  • -9:最大压缩率
  • -q:静默模式,不显示输出

示例

zip archive.zip file1.txt file2.txt  # 压缩多个文件
zip -r archive.zip directory/  # 递归压缩目录
zip -9 archive.zip files/  # 最大压缩率

unzip - 提取 ZIP 文件

功能:提取 ZIP 格式的压缩文件

语法unzip [选项] 压缩文件

常用选项

  • -d:指定提取目录
  • -l:列出压缩文件内容
  • -q:静默模式

示例

unzip archive.zip  # 提取到当前目录
unzip archive.zip -d /tmp  # 提取到指定目录
unzip -l archive.zip  # 列出内容

9. 网络命令

ping - 测试网络连接

功能:向网络主机发送 ICMP 请求以测试连接

语法ping [选项] 主机

常用选项

  • -c:指定发送的数据包数量
  • -i:指定数据包之间的间隔时间(秒)
  • -t:设置 TTL 值(生存时间)

示例

ping google.com  # 持续 ping 测试
ping -c 4 8.8.8.8  # 发送 4 个数据包

ifconfig/ip - 网络接口配置

功能:显示或配置网络接口

语法ifconfig [接口] [选项]ip [选项] 命令

常用 ip 子命令

  • addr:显示或管理 IP 地址
  • link:显示或管理网络接口
  • route:显示或管理路由表

示例

ifconfig  # 显示所有网络接口信息
ifconfig eth0  # 显示特定接口信息
ip addr show  # 显示 IP 地址信息
ip link set eth0 up  # 启用网络接口
ip route show  # 显示路由表

netstat - 显示网络状态

功能:显示网络连接、路由表、接口统计等网络信息

语法netstat [选项]

常用选项

  • -a:显示所有连接和监听端口
  • -t:显示 TCP 连接
  • -u:显示 UDP 连接
  • -l:仅显示监听端口
  • -n:显示数字地址,不进行 DNS 解析
  • -p:显示进程 ID 和程序名称

示例

netstat -ant  # 显示所有 TCP 连接的数字表示
netstat -tuln  # 显示所有监听的 TCP 和 UDP 端口
netstat -rn  # 显示路由表的数字表示

ssh - 安全远程连接

功能:使用 SSH 协议安全地连接到远程服务器

语法ssh [选项] [用户@]主机 [命令]

常用选项

  • -p:指定端口
  • -i:指定私钥文件
  • -X:启用 X11 转发
  • -t:强制分配伪终端

示例

ssh user@server.com  # 连接到远程服务器
ssh -p 2222 user@server.com  # 指定端口连接
ssh -i ~/.ssh/id_rsa user@server.com  # 使用密钥文件连接
ssh user@server.com "ls -la"  # 执行远程命令后退出

10. 系统管理命令

ps - 显示进程状态

功能:显示当前运行的进程

语法ps [选项]

常用选项

  • a:显示所有用户的进程
  • u:以用户格式显示(用户名、CPU、内存等)
  • x:显示没有控制终端的进程
  • -e:显示所有进程
  • -f:全格式显示
  • -l:长格式显示

常用组合

  • ps aux:显示所有进程的详细信息
  • ps ef:显示所有进程及其父进程

示例

ps aux  # 显示所有进程的详细信息
ps -ef | grep firefox  # 查找特定进程

top - 实时监控进程

功能:实时显示系统中运行的进程和系统资源使用情况

语法top [选项]

常用选项

  • -u:只显示特定用户的进程
  • -p:只显示特定进程 ID 的进程
  • -n:指定更新次数后退出

交互式命令

  • k:终止指定进程
  • r:更改进程优先级
  • f:自定义显示字段
  • M:按内存使用排序
  • P:按 CPU 使用排序
  • q:退出

示例

top  # 启动实时监控
top -u user  # 监控特定用户的进程
top -n 1  # 更新一次后退出

kill - 终止进程

功能:向进程发送信号,通常用于终止进程

语法kill [选项] 进程ID

常用信号

  • 1 (HUP):挂起信号
  • 9 (KILL):强制终止信号
  • 15 (TERM):终止信号(默认)
  • 18 (CONT):继续运行被暂停的进程
  • 19 (STOP):暂停进程

示例

kill 1234  # 发送默认终止信号给进程 1234
kill -9 1234  # 强制终止进程 1234
kill -1 1234  # 发送 HUP 信号

df - 显示磁盘空间使用情况

功能:显示文件系统的磁盘空间使用情况

语法df [选项] [文件]

常用选项

  • -h:以人类可读的格式显示(如 KB、MB、GB)
  • -T:显示文件系统类型
  • -i:显示 inode 使用情况

示例

df -h  # 显示所有文件系统的磁盘使用情况
df -h /home  # 显示特定挂载点的磁盘使用情况
df -i  # 显示 inode 使用情况

du - 显示目录或文件的磁盘使用量

功能:估算文件或目录的磁盘使用空间

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

常用选项

  • -h:以人类可读的格式显示
  • -s:仅显示总计
  • -c:显示总计
  • -a:显示每个文件的大小(不仅是目录)

示例

du -h  # 显示当前目录及其子目录的大小
du -sh /home/user  # 显示特定目录的总大小
du -ach *.txt  # 显示每个 txt 文件的大小和总计

free - 显示内存使用情况

功能:显示系统内存(RAM)和交换空间的使用情况

语法free [选项]

常用选项

  • -h:以人类可读的格式显示
  • -m:以 MB 为单位显示
  • -g:以 GB 为单位显示
  • -s:持续显示内存使用情况,指定刷新间隔(秒)

示例

free -h  # 以人类可读格式显示内存使用情况
free -m  # 以 MB 为单位显示
free -s 5  # 每 5 秒刷新一次显示

11. 文本处理命令

echo - 显示文本

功能:显示一行文本

语法echo [选项] [字符串]

常用选项

  • -e:启用转义字符解释
  • -n:不输出尾随的换行符

转义字符

  • \n:换行
  • \t:制表符
  • \r:回车
  • \\:反斜杠

示例

echo "Hello, World!"
echo -e "Line 1\nLine 2"
echo -n "No newline at end"

sort - 排序文本文件

功能:对文本文件的行进行排序

语法sort [选项] [文件]

常用选项

  • -n:按数值排序
  • -r:反向排序
  • -k:指定排序的字段
  • -u:删除重复行
  • -f:忽略大小写

示例

sort file.txt  # 按字母顺序排序
sort -nr numbers.txt  # 按数值反向排序
sort -k2 -n data.txt  # 按第二列数值排序

uniq - 删除重复行

功能:从排序文件中删除重复行

语法uniq [选项] [文件]

常用选项

  • -c:显示每行出现的次数
  • -d:仅显示重复的行
  • -u:仅显示不重复的行

示例

sort file.txt | uniq  # 排序后删除重复行
sort file.txt | uniq -c  # 显示每行出现次数
sort file.txt | uniq -d  # 仅显示重复行

wc - 字数统计

功能:计算文件的行数、字数和字节数

语法wc [选项] [文件]

常用选项

  • -l:只计行数
  • -w:只计字数
  • -c:只计字节数
  • -m:只计字符数

示例

wc file.txt  # 显示行数、字数和字节数
wc -l file.txt  # 只显示行数
wc -w *.txt  # 显示所有 txt 文件的字数

cut - 提取文本列

功能:从文件的每一行中提取指定部分

语法cut [选项] [文件]

常用选项

  • -d:指定分隔符,默认为制表符
  • -f:指定要提取的字段(列)
  • -c:指定要提取的字符位置

示例

cut -d"," -f1 data.csv  # 提取 CSV 文件的第一列
cut -c1-10 file.txt  # 提取每行的前 10 个字符
cut -d":" -f1,6 /etc/passwd  # 提取用户名和主目录

12. 总结

本指南介绍了 Linux 系统中最常用的基本命令及其用法,以及如何使用 man 命令和其他帮助工具获取更详细的命令信息。掌握这些命令对于在 Linux 环境中高效工作至关重要。

学习 Linux 命令的最佳方法是多实践。记住,当你不确定某个命令的用法时,随时可以使用 man 命令名命令名 --help 来获取帮助信息。

随着你对这些基本命令的熟悉,你可以开始探索更高级的命令组合和 Shell 脚本编写,以进一步提高你的 Linux 使用效率。

文档信息

Search

    Table of Contents