Linux 常用命令总结
Linux 命令行是系统管理和开发的核心工具,掌握常用命令可以极大提升效率。本文全面总结 Linux 常用命令,涵盖文件操作、进程管理、网络管理、系统监控、用户管理、软件安装等多个方面,适合初学者和高级用户参考。
1. 文件和目录操作
这些命令用于管理文件和目录。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| ls | 列出目录内容 | ls -l(详细列表),ls -a(显示隐藏文件) | 
| cd | 切换目录 | cd /home/user,cd ..(返回上级目录) | 
| pwd | 显示当前工作目录 | pwd | 
| mkdir | 创建目录 | mkdir myfolder,mkdir -p a/b/c | 
| rmdir | 删除空目录 | rmdir myfolder | 
| touch | 创建空文件或更新文件时间戳 | touch file.txt | 
| cp | 复制文件或目录 | cp file.txt /backup,cp -r dir1 dir2 | 
| mv | 移动或重命名文件/目录 | mv file.txt newname.txt,mv dir /tmp | 
| rm | 删除文件或目录 | rm file.txt,rm -r dir(递归删除) | 
| find | 搜索文件或目录 | find / -name "file.txt" | 
| locate | 快速查找文件(基于数据库) | locate file.txt | 
| tree | 以树形结构显示目录内容 | tree /home/user | 
| ln | 创建链接(硬链接或软链接) | ln -s file.txt link(软链接) | 
| cat | 查看文件内容或连接文件 | cat file.txt,cat file1 > file2 | 
| more/less | 分页查看文件内容 | less file.txt | 
| head | 查看文件开头内容 | head -n 10 file.txt(前 10 行) | 
| tail | 查看文件末尾内容 | tail -n 10 file.txt,tail -f log | 
| wc | 统计文件的行数、字数、字符数 | wc -l file.txt(行数) | 
| cut | 提取文件中特定字段 | cut -d',' -f1 file.csv | 
| sort | 排序文件内容 | sort file.txt,sort -r(逆序) | 
| uniq | 删除重复行 | uniq file.txt | 
| grep | 搜索文件内容 | grep "keyword" file.txt | 
| sed | 流式编辑文件内容 | sed 's/old/new/g' file.txt | 
| awk | 文本处理和数据提取 | awk '{print $1}' file.txt | 
2. 文件权限管理
Linux 文件权限控制访问和管理。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| chmod | 修改文件或目录权限 | chmod 755 script.sh,chmod u+x file | 
| chown | 修改文件或目录所有者 | chown user file.txt,chown -R user dir | 
| chgrp | 修改文件或目录所属组 | chgrp group file.txt | 
| umask | 设置默认文件权限 | umask 022 | 
| getfacl | 查看文件访问控制列表(ACL) | getfacl file.txt | 
| setfacl | 设置文件访问控制列表 | setfacl -m u:user:rw file.txt | 
权限说明:
- 权限格式:rwxr-xr-x(用户、组、其他)。
- 数字表示:r=4,w=2,x=1(例如,755表示用户全权,组和其他可读可执行)。
3. 进程管理
用于监控和控制系统进程。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| ps | 显示当前进程状态 | ps aux(所有进程) | 
| top | 实时显示进程和系统资源 | top | 
| htop | 增强版 top,交互式界面 | htop | 
| kill | 终止进程(通过 PID) | kill 1234,kill -9 1234(强制终止) | 
| killall | 按进程名终止进程 | killall firefox | 
| pkill | 按进程名或模式终止进程 | pkill -u user | 
| nice | 设置进程优先级 | nice -n 10 command | 
| renice | 修改运行中进程的优先级 | renice 10 -p 1234 | 
| jobs | 显示后台任务 | jobs | 
| bg | 将任务放入后台运行 | bg %1 | 
| fg | 将后台任务调回前台 | fg %1 | 
| nohup | 使命令在终端关闭后继续运行 | nohup ./script.sh & | 
4. 系统监控
监控系统性能和资源使用情况。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| df | 显示磁盘使用情况 | df -h(人类可读格式) | 
| du | 统计目录或文件大小 | du -sh /home/user | 
| free | 显示内存使用情况 | free -m(以 MB 显示) | 
| uptime | 显示系统运行时间和负载 | uptime | 
| vmstat | 报告虚拟内存统计 | vmstat 1(每秒更新) | 
| iostat | 显示 CPU 和 I/O 统计 | iostat -x 1 | 
| sar | 系统活动报告(需安装 sysstat) | sar -u 1(CPU 统计) | 
| dstat | 动态系统资源统计 | dstat -cdngy | 
| lscpu | 显示 CPU 信息 | lscpu | 
| lsblk | 列出块设备信息 | lsblk | 
| iotop | 实时显示磁盘 I/O 使用情况 | iotop | 
| watch | 周期性执行命令并显示结果 | watch -n 1 'df -h' | 
5. 网络管理
管理网络连接、流量和服务。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| ping | 测试网络连通性 | ping google.com | 
| curl | 发送 HTTP 请求,下载文件 | curl -O http://example.com/file | 
| wget | 下载文件 | wget http://example.com/file | 
| netstat | 显示网络状态(需安装 net-tools) | netstat -tuln | 
| ss | 更现代的网络状态查看工具 | ss -tuln | 
| ifconfig | 显示和配置网络接口(需安装 net-tools) | ifconfig eth0 | 
| ip | 现代网络接口管理工具 | ip addr,ip link | 
| route | 显示或管理路由表 | route -n | 
| traceroute | 跟踪数据包路由路径 | traceroute google.com | 
| dig | DNS 查询 | dig example.com | 
| nslookup | DNS 查询(简单版) | nslookup example.com | 
| telnet | 测试端口连接 | telnet localhost 80 | 
| nc | 网络工具(netcat),用于 TCP/UDP 连接 | nc -l 1234(监听端口) | 
| tcpdump | 捕获网络数据包 | tcpdump -i eth0 port 80 | 
| iftop | 实时显示网络流量 | iftop -i eth0 | 
| nmap | 网络扫描和端口探测 | nmap localhost | 
6. 用户和权限管理
管理用户账户和权限。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| who | 显示当前登录用户 | who | 
| whoami | 显示当前用户 | whoami | 
| id | 显示用户和组信息 | id user | 
| su | 切换用户 | su - user | 
| sudo | 以超级用户权限执行命令 | sudo apt update | 
| useradd | 添加新用户 | useradd -m newuser | 
| userdel | 删除用户 | userdel -r user | 
| passwd | 修改用户密码 | passwd user | 
| addgroup | 添加用户组 | addgroup mygroup | 
| usermod | 修改用户信息 | usermod -aG sudo user | 
| visudo | 编辑 sudo 配置文件 | visudo | 
7. 软件安装与管理
管理软件包和依赖。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| apt | Debian/Ubuntu 包管理工具 | apt install vim,apt update | 
| yum/dnf | CentOS/RHEL 包管理工具 | dnf install vim,yum update | 
| zypper | openSUSE 包管理工具 | zypper install vim | 
| snap | 安装和管理 Snap 包 | snap install code | 
| dpkg | 管理 Debian 包 | dpkg -i package.deb | 
| rpm | 管理 RPM 包 | rpm -ivh package.rpm | 
| make | 编译源码 | make,make install | 
8. 压缩与归档
处理压缩文件和归档。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| tar | 归档和解档文件 | tar -cvf archive.tar dir,tar -xvf archive.tar | 
| gzip/gunzip | 压缩/解压 .gz 文件 | gzip file.txt,gunzip file.txt.gz | 
| bzip2/bunzip2 | 压缩/解压 .bz2 文件 | bzip2 file.txt,bunzip2 file.txt.bz2 | 
| zip/unzip | 压缩/解压 .zip 文件 | zip archive.zip file.txt,unzip archive.zip | 
| xz | 压缩/解压 .xz 文件 | xz file.txt,unxz file.txt.xz | 
9. 文本编辑器
常用的命令行文本编辑器。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| nano | 简单易用的文本编辑器 | nano file.txt | 
| vim/vi | 功能强大的文本编辑器 | vim file.txt | 
| emacs | 高度可定制的文本编辑器 | emacs file.txt | 
10. 系统管理
管理系统配置和服务。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| systemctl | 管理 systemd 服务 | systemctl start apache2 | 
| service | 管理服务(兼容旧系统) | service apache2 start | 
| uname | 显示系统信息 | uname -a | 
| hostname | 显示或设置主机名 | hostname,hostname newname | 
| dmesg | 显示内核日志 | `dmesg | 
| journalctl | 查看 systemd 日志 | journalctl -u apache2 | 
| reboot | 重启系统 | reboot | 
| shutdown | 关机或计划关机 | shutdown -h now,shutdown -r 10 | 
| date | 显示或设置系统时间 | date,date -s "2023-10-01 12:00" | 
| timedatectl | 管理系统时间和时区 | timedatectl set-timezone UTC | 
11. 环境变量与脚本
管理环境变量和 shell 脚本。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| env | 显示环境变量 | env | 
| export | 设置或导出环境变量 | export PATH=$PATH:/usr/local/bin | 
| echo | 显示变量或文本 | echo $PATH | 
| source | 执行脚本并应用环境变化 | source ~/.bashrc | 
| bash | 运行 bash 脚本 | bash script.sh | 
| chmod +x | 使脚本可执行 | chmod +x script.sh | 
12. 其他实用命令
一些杂项但常用的命令。
| 命令 | 功能描述 | 示例 | 
|---|---|---|
| man | 查看命令手册 | man ls | 
| info | 查看命令信息 | info ls | 
| history | 显示命令历史 | history,!123(执行第 123 条命令) | 
| alias | 设置命令别名 | alias ll='ls -l' | 
| clear | 清空终端屏幕 | clear | 
| tee | 将输出同时写入文件和终端 | `ls | 
| xargs | 将标准输入转为命令参数 | `find . -name “*.txt” | 
13. 命令组合与管道
Linux 命令可以通过管道和重定向组合使用。
| 符号 | 功能描述 | 示例 | 
|---|---|---|
| ` | ` | 管道,将前一命令输出作为后一命令输入 | 
| > | 重定向输出到文件(覆盖) | ls > output.txt | 
| >> | 重定向输出到文件(追加) | ls >> output.txt | 
| < | 从文件读取输入 | wc -l < file.txt | 
| && | 前一命令成功后执行后一命令 | make && make install | 
| ` | ` | 
14. 使用技巧与注意事项
- 命令补全:按 Tab键自动补全命令或文件名。
- 历史命令:使用 Ctrl+R搜索历史命令。
- 通配符: - *:匹配任意字符(如- *.txt)。
- ?:匹配单个字符(如- file?.txt)。
 
- sudo 权限:某些命令需超级用户权限,谨慎使用。
- 备份重要文件:操作前备份,避免数据丢失。
