Linux 常用命令详解
Linux 命令行界面 (CLI) 是与 Linux 系统交互的强大工具。通过在终端中输入命令,用户可以高效地执行从基本文件操作到复杂系统管理的各种任务。掌握常用命令是成为 Linux 高效使用者的第一步。
一个典型的 Linux 命令遵循以下结构:command [options] [arguments]
- command: 要执行的程序或命令的名称 (如
ls,cp)。 - options (或称 flags/switches): 修改命令行为的参数,通常以
-(短选项,如-l) 或--(长选项,如--list) 开头。 - arguments: 命令操作的对象,通常是文件名、目录路径或字符串。
一、文件与目录管理
这是最基本也是最常用的一类命令,用于浏览和操作文件系统。
1.1 ls - 列出目录内容
作用:列出指定目录下的文件和子目录。
常用选项:
-l: 使用长列表格式显示,包含权限、所有者、大小、修改日期等详细信息。-a: 显示所有文件,包括以.开头的隐藏文件。-h: 与-l结合使用,以人类可读的格式显示文件大小 (如 1K, 23M, 2G)。-t: 按修改时间排序,最新的在前。-r: 反向排序。
示例:
1 | # 列出当前目录的内容 |
1.3 pwd - 显示当前工作目录
作用:打印当前工作目录的绝对路径。
示例:
1 | pwd |
1.4 mkdir - 创建目录
作用:创建一个新的目录。
常用选项:
-p: 创建多级目录。如果父目录不存在,会自动创建。
示例:
1 | # 在当前目录下创建一个名为 'backup' 的目录 |
1.5 rm - 删除文件或目录
作用:删除文件或目录。这是一个危险的命令,请谨慎使用,删除后通常无法恢复。
常用选项:
-r或-R: 递归删除目录及其下所有内容。-f: 强制删除,不进行任何提示。-i: 在删除前进行交互式提示。
示例:
1 | # 删除文件 test.txt |
警告:
rm -rf /是一个灾难性的命令,它会试图删除根目录下的所有文件。切勿尝试!
1.6 cp - 复制文件或目录
作用:将文件或目录复制到另一个位置。
常用选项:
-r: 递归复制目录及其所有内容。-v: 显示详细的复制过程。
示例:
1 | # 将文件 source.txt 复制为 destination.txt |
1.7 mv - 移动或重命名文件/目录
作用:移动文件/目录到另一个位置,或者对文件/目录进行重命名。
示例:
1 | # 将文件 old_name.txt 重命名为 new_name.txt |
1.8 touch - 创建空文件或更新时间戳
作用:创建一个空文件,或者更新一个已存在文件的时间戳 (访问和修改时间)。
示例:
1 | # 创建一个名为 new_file.txt 的空文件 |
二、文本处理与查看
2.1 cat - 查看和连接文件内容
作用:读取一个或多个文件的内容并将其打印到标准输出。
常用选项:
-n: 显示行号。
示例:
1 | # 查看 file.txt 的内容 |
2.2 less - 分页查看文件内容
作用:比 cat 更强大的文件查看器,特别适合查看大文件。它允许你向前和向后滚动。
常用操作:
空格键/f: 向下翻一页。b: 向上翻一页。箭头键: 逐行滚动。/text: 向下搜索 “text”。?text: 向上搜索 “text”。n: 跳转到下一个搜索结果。q: 退出。
示例:
1 | less /var/log/syslog |
2.3 head / tail - 查看文件开头/结尾
作用:分别用于显示文件的开头或结尾部分。
常用选项:
-n <行数>: 指定显示的行数 (默认为 10 行)。-f: (仅用于tail) 持续监控文件末尾的新增内容,常用于实时查看日志。
示例:
1 | # 查看 anaconda.log 的前 20 行 |
2.4 grep - 文本搜索
作用:在一个或多个文件中搜索包含指定模式的行,并打印出来。
常用选项:
-i: 忽略大小写。-r或-R: 递归搜索目录下的所有文件。-v: 反向匹配,打印不包含模式的行。-n: 显示匹配行的行号。-C <数字>: 显示匹配行及其上下文 (前后几行)。
示例:
1 | # 在 nginx.conf 文件中搜索包含 'server_name' 的行 |
三、系统信息与监控
3.1 ps - 查看进程状态
作用:报告当前系统的进程状态。
常用选项组合:
ps aux: 显示系统中所有用户的所有进程的详细信息 (BSD 风格)。ps -ef: 显示所有进程的完整格式信息 (System V 风格)。
示例:
1 | # 查看所有正在运行的进程 |
3.2 top / htop - 实时进程监控
作用:动态实时地显示系统进程信息,包括 CPU、内存使用情况。htop 是 top 的增强版,提供更友好的界面和交互。
示例:
1 | # 启动 top |
3.3 df - 查看磁盘空间使用情况
作用:显示文件系统的磁盘空间占用情况。
常用选项:
-h: 以人类可读的格式显示 (例如, 1K 234M 2G)。-T: 显示文件系统类型。
示例:
1 | df -h |
3.4 du - 查看文件或目录的磁盘使用情况
作用:估算文件或目录占用的磁盘空间。
常用选项:
-h: 以人类可读的格式显示。-s: 只显示总计大小 (summary)。--max-depth=N: 指定显示的目录深度。
示例:
1 | # 查看当前目录下所有文件和子目录的大小 |
3.5 uname - 显示系统信息
作用:打印系统内核和硬件架构信息。
常用选项:
-a: 显示所有可用信息。
示例:
1 | uname -a |
3.6 free - 查看内存使用情况
作用:显示系统中的物理内存和交换空间的使用情况。
常用选项:
-h: 以人类可读的格式显示。
示例:
1 | free -h |
四、用户与权限管理
4.1 sudo - 以超级用户权限执行命令
作用:允许授权用户以其他用户(通常是 root 超级用户)的身份执行命令。
示例:
1 | # 以 root 权限安装 nginx |
4.2 chmod - 修改文件权限
作用:改变文件或目录的访问权限。
模式:
- 数字模式:
r(读) = 4,w(写) = 2,x(执行) = 1。将权限相加。7= 4+2+1 (rwx)6= 4+2 (rw-)5= 4+1 (r-x)
- 符号模式:
u(user),g(group),o(other),a(all)。+(添加),-(移除),=(设置)。
示例:
1 | # 为 myfile.sh 添加所有者的执行权限 |
4.3 chown - 修改文件所有者和组
作用:改变文件或目录的所有者和所属组。
常用选项:
-R: 递归操作。
示例:
1 | # 将 file.txt 的所有者改为 'john' |
五、网络命令
5.1 ping - 测试网络连通性
作用:向目标主机发送 ICMP ECHO_REQUEST 数据包,以测试网络连接。
示例:
1 | ping google.com |
5.2 ip / ifconfig - 查看和配置网络接口
作用:ip 是现代 Linux 系统中推荐的命令,用于替代旧的 ifconfig。
示例:
1 | # 显示所有网络接口的 IP 地址信息 |
5.3 curl / wget - 数据传输工具
作用:用于从网络服务器下载或上传数据。
curl: 功能强大,支持多种协议,常用于 API 测试,默认将内容输出到标准输出。wget: 主要用于从 Web 下载文件,默认将内容保存到文件。
示例:
1 | # 使用 curl 查看网页的 HTTP 头部信息 |
六、归档与压缩
6.1 tar - 打包和解包文件
作用:将多个文件或目录打包成一个 .tar 文件,通常会结合压缩工具 (如 gzip, bzip2) 使用。
常用选项:
-c: 创建一个新的归档文件 (create)。-x: 从归档文件中提取文件 (extract)。-v: 显示详细过程 (verbose)。-f: 指定归档文件名 (file)。-z: 使用 gzip 进行压缩/解压缩 (.tar.gz或.tgz)。-j: 使用 bzip2 进行压缩/解压缩 (.tar.bz2)。
示例:
1 | # 将 'mydocs' 目录打包并用 gzip 压缩为 mydocs.tar.gz |
6.2 zip / unzip - .zip 格式压缩与解压
作用:处理 .zip 格式的压缩文件。
示例:
1 | # 将 'images' 目录压缩为 images.zip |
七、搜索命令
7.1 find - 在文件系统中查找文件
作用:根据各种条件(如名称、大小、修改时间、权限等)在目录树中搜索文件。
常用表达式:
-name "pattern": 按文件名查找。-type [f|d|l]: 按文件类型查找 (f: 文件, d: 目录, l: 符号链接)。-mtime n: 查找 n 天前修改过的文件。-exec command {} \;: 对找到的每个文件执行一个命令。
示例:
1 | # 在当前目录及其子目录下查找所有 .log 文件 |
八、包管理命令
这取决于你的 Linux 发行版。
Debian/Ubuntu (使用 APT)
1
2
3
4
5
6
7
8
9
10
11# 更新软件包列表
sudo apt update
# 升级所有已安装的软件包
sudo apt upgrade
# 安装一个新软件包 (例如 nginx)
sudo apt install nginx
# 卸载一个软件包
sudo apt remove nginxCentOS/RHEL/Fedora (使用 YUM/DNF)
dnf是新一代的包管理器。1
2
3
4
5
6
7
8# 更新所有软件包
sudo dnf update
# 安装一个新软件包 (例如 httpd)
sudo dnf install httpd
# 卸载一个软件包
sudo dnf remove httpd
九、总结与技巧
- 获取帮助: 使用
man <command>(例如man ls) 查看命令的详细手册页,或使用<command> --help查看简要帮助。 - Tab 自动补全: 在输入命令或路径时,按
Tab键可以自动补全,大大提高效率。 - 管道 (
|): 将一个命令的输出作为另一个命令的输入。例如ps aux | grep code。 - 重定向 (
>和>>):>: 将命令输出覆盖写入文件。>>: 将命令输出追加到文件末尾。2>: 重定向标准错误。
掌握这些常用命令将极大地提升您在 Linux 环境下的工作效率。
