Linux 作为一种广泛使用的操作系统,其强大的命令行工具是系统管理和日常操作的核心,熟练掌握常用命令能够显著提升工作效率,无论是文件管理、系统监控还是网络配置,命令行都提供了高效、灵活的解决方案,以下将详细介绍 Linux 中最常用的命令,涵盖文件操作、文本处理、系统管理、网络工具等多个方面,帮助用户全面了解 Linux 命令行的功能与使用方法。

文件与目录操作命令
文件和目录管理是 Linux 最基础的操作,以下命令几乎每天都会用到。
ls:列出目录内容,通过选项可以显示详细信息,如ls -l以长格式显示(包含权限、所有者、大小、修改时间等),ls -a显示隐藏文件(以 开头的文件),ls -h以人类可读格式显示文件大小(如 K、M、G)。cd:切换目录。cd /切换到根目录,cd ~或cd切换到用户主目录,cd ..返回上一级目录,cd -在最近两次目录间切换。pwd:显示当前所在的工作目录,输出绝对路径,如/home/user/documents。mkdir:创建新目录。mkdir dir1创建单层目录,mkdir -p parent/child递归创建多级目录(若父目录不存在则自动创建)。rm:删除文件或目录。rm file.txt删除文件,rm -r dir递归删除目录及其内容,rm -f file强制删除(不提示确认),rm -rf dir强制递归删除(需谨慎使用,数据无法恢复)。cp:复制文件或目录。cp source.txt dest.txt复制文件,cp -r source_dir dest_dir递归复制目录,cp -p source.txt dest.txt保留文件权限、时间戳等属性。mv:移动或重命名文件/目录。mv old.txt new.txt重命名文件,mv file.txt /path/to/dest/将文件移动到目标目录,mv dir1 dir2若 dir2 不存在则为重命名,存在则移动。touch:创建空文件或更新文件时间戳。touch newfile.txt创建空文件,touch -t 202301011200 file.txt修改文件时间为指定时间。ln:创建链接文件。ln -s source.txt link.txt创建软链接(符号链接,类似 Windows 快捷方式),ln source.txt link.txt创建硬链接(与原文件共用 inode,删除原文件链接仍可用)。
文本处理命令
Linux 提供了强大的文本处理工具,适合处理日志、配置文件等文本内容。
cat:查看文件内容,一次性输出全部内容,适合小文件。cat file.txt显示文件内容,cat -n file.txt显示行号,cat file1.txt file2.txt > combined.txt合并多个文件。more/less:分页查看文件内容。more file.txt向下翻页(空格键),无法后退;less file.txt支持上下滚动、搜索(/keyword)、跳转(G到末尾,g到开头),更适合大文件。head/tail:查看文件开头或末尾内容。head -n 5 file.txt查看前 5 行,tail -n 10 file.txt查看末尾 10 行,tail -f log.txt实时跟踪文件更新(常用于监控日志)。grep:文本搜索工具。grep "keyword" file.txt在文件中搜索包含关键词的行,grep -i "KEYWORD" file.txt忽略大小写,grep -v "keyword" file.txt反向匹配(输出不包含关键词的行),grep -n "keyword" file.txt显示匹配行号。sed:流编辑器,用于文本替换、删除等。sed 's/old/new/g' file.txt将文件中所有 "old" 替换为 "new"(原文件不变,输出到屏幕),sed -i 's/old/new/g' file.txt直接修改原文件,sed '1d' file.txt删除第 1 行。awk:文本分析工具,按列处理文本。awk '{print $1, $3}' file.txt输出每行的第 1 列和第 3 列,awk -F: '{print $1}' /etc/passwd以 为分隔符,输出/etc/passwd的用户名列,awk '$1 > 100 {print $1}' file.txt输出第 1 列大于 100 的行。
系统与管理命令
系统管理命令用于监控系统状态、管理进程、管理用户等。
top:动态显示系统进程状态,包括 CPU、内存使用率,默认按 CPU 占用排序,P按 CPU 排序,M按内存排序,q退出。ps:静态查看进程。ps aux显示所有进程的详细信息(用户、CPU、内存等),ps -ef以标准格式显示进程,ps -ef | grep nginx查看 nginx 相关进程。kill/killall:终止进程。kill -9 PID强制终止进程(9 为信号码),killall nginx通过进程名终止所有 nginx 进程。df/du:磁盘使用情况。df -h以人类可读格式显示磁盘分区及使用率(h表示Human-readable),du -sh /path显示目录总大小(s表示summarize,h表示Human-readable)。free:查看内存使用情况。free -h以 GB/MB 显示内存、交换分区使用情况。useradd/userdel:用户管理。useradd username创建新用户,userdel -r username删除用户及主目录(-r表示删除家目录),passwd username设置用户密码。chmod/chown:文件权限与所有者管理。chmod 755 file.txt设置文件权限(7 为所有者读写执行,5 为组用户和其他用户读执行),chmod u+x script.sh为所有者添加执行权限,chown user:group file.txt修改文件所有者和所属组,chown -R user:group dir/递归修改目录及其内容的所有者。
网络相关命令
网络工具用于配置网络、诊断连接问题等。

ifconfig/ip:查看或配置网络接口。ifconfig显示所有网络接口信息(部分系统需安装net-tools),ip addr show显示 IP 地址(现代 Linux 推荐ip命令),sudo ifconfig eth0 192.168.1.100设置 IP 地址(需 root 权限)。ping:测试网络连通性。ping www.baidu.com向目标主机发送 ICMP 包,显示响应时间和丢包率,ping -c 4 www.baidu.com只发送 4 个包后退出。netstat/ss:查看网络连接状态。netstat -tuln显示所有监听端口(tTCP,uUDP,l监听,n数字形式),ss -tuln功能类似,但速度更快(现代 Linux 推荐)。wget/curl:下载文件。wget https://example.com/file.zip下载文件到当前目录,curl -O https://example.com/file.zip保存原文件名,curl -I www.baidu.com只获取 HTTP 头信息(查看响应状态码)。ssh:远程登录。ssh username@remote_ip通过 SSH 连接远程主机,ssh -p 22 username@remote_ip指定端口号(默认 22),scp file.txt username@remote_ip:/path/to/dest/通过 SSH 复制文件到远程主机。
压缩与解压命令
Linux 常用压缩格式包括 .zip、.tar、.tar.gz、.tar.bz2 等。
zip/unzip:处理.zip文件。zip -r archive.zip dir/将目录压缩为 zip 文件(r表示递归),unzip archive.zip解压 zip 文件,unzip -l archive.zip查看 zip 文件内容列表。tar:处理.tar打包文件(可结合其他命令压缩)。tar -cvf archive.tar file1 file2打包文件(c创建,v显示过程,f指定文件名),tar -xvf archive.tar解包,tar -tzvf archive.tar.gz查看 tar.gz 文件内容(t列出内容,z解压 gzip)。gzip/gunzip:处理.gz压缩文件。gzip file.txt压缩文件(生成file.txt.gz,原文件删除),gunzip file.txt.gz解压(生成file.txt),gzip -d file.txt.gz解压(与gunzip等价)。
常用命令速查表
| 功能类别 | 命令示例 | 说明 |
|---|---|---|
| 列出目录 | ls -l |
长格式显示目录内容 |
| 切换目录 | cd /home/user |
切换到指定目录 |
| 创建目录 | mkdir -p dir/subdir |
递归创建多级目录 |
| 删除文件 | rm -rf dir |
强制递归删除目录 |
| 复制文件 | cp -r source dest |
递归复制目录 |
| 查看文件内容 | less file.txt |
分页查看大文件 |
| 搜索文本 | grep -n "error" log.txt |
搜索含 "error" 的行并显示行号 |
| 查看进程 | ps aux |
显示所有进程详细信息 |
| 终止进程 | kill -9 1234 |
强制终止 PID 为 1234 的进程 |
| 查看磁盘使用 | df -h |
显示磁盘分区使用率(人类可读格式) |
| 测试网络连通 | ping www.baidu.com |
测试与目标主机的网络连通性 |
| 下载文件 | wget https://example.com/file.zip |
下载文件到当前目录 |
| 压缩目录 | tar -czf archive.tar.gz dir/ |
将目录压缩为 tar.gz 文件 |
| 解压 tar.gz | tar -xzf archive.tar.gz |
解压 tar.gz 文件 |
相关问答 FAQs
Q1:如何快速查找包含特定关键词的文件?
A:可以使用 find 命令结合 grep 实现,在当前目录及其子目录中查找所有包含 "error" 的 .log 文件,命令为:find . -name "*.log" -exec grep -l "error" {} \;。find . -name "*.log" 查找所有 .log 文件,-exec grep -l "error" {} \; 对每个文件执行 grep 搜索,-l 表示输出包含匹配内容的文件名,若只需显示匹配行号,可改为 -exec grep -n "error" {} \;。
Q2:如何查看系统运行的服务的状态?
A:不同 Linux 发行版使用不同的服务管理工具,对于使用 systemd 的系统(如 Ubuntu 16+、CentOS 7+),可用 systemctl 命令:systemctl status nginx 查看 nginx 服务状态(active running 表示运行中),systemctl start nginx 启动服务,systemctl stop nginx 停止服务,systemctl enable nginx 设置开机自启,对于旧版系统(如 CentOS 6),使用 service 命令:service nginx status 查看状态,service nginx start 启动服务。

