在Linux和Unix-like操作系统中,Shell命令是与系统交互的核心方式,掌握常见Shell命令能极大提升操作效率,以下从文件管理、目录操作、文本处理、系统信息查看、进程管理、权限管理、压缩打包、网络操作八个维度详细介绍常用命令。

文件管理命令
文件操作是Shell使用的基础,ls命令用于列出目录内容,ls -l显示详细信息(权限、所有者、大小等),ls -a隐藏文件也会显示。touch用于创建空文件或更新文件时间戳,如touch test.txt创建新文件。cp命令复制文件,cp -r可递归复制目录,cp -i会在覆盖前提示确认。mv用于移动文件或重命名,mv old.txt new.txt将文件重命名,mv file.txt /tmp/将文件移动到/tmp目录。rm删除文件,rm -r递归删除目录,rm -f强制删除不提示,需谨慎使用。cat查看文件全部内容,适合小文件;less分页查看大文件,支持上下翻页和关键词搜索。
目录操作命令
pwd显示当前所在工作目录的完整路径。cd切换目录,cd ..返回上级目录,cd ~切换到用户主目录,cd -在最近两次目录间切换。mkdir创建目录,mkdir -p可递归创建多级目录(如mkdir -p a/b/c)。rmdir删除空目录,若目录非空需用rm -r。
文本处理命令
grep在文本中搜索匹配的行,grep "keyword" file.txt搜索包含关键词的行,-i忽略大小写,-r递归搜索目录。find按条件查找文件,find . -name "*.txt"在当前目录及子目录查找所有.txt文件,-type f限制为文件,-mtime -7查找7天内修改的文件。sort对文本行排序,-n按数字排序,-r逆序。uniq去除重复行,需配合sort使用(sort file.txt | uniq)。wc统计文件信息,-l统计行数,-w统计单词数,-c统计字节数。
系统信息查看命令
uname -a显示系统全部信息(内核版本、系统名等)。top实时监控系统进程和资源占用,htop是其增强版(需安装),交互界面更友好。df -h查看磁盘使用情况,-h以人类可读格式显示(GB/MB)。free -h查看内存使用量,-h同样以友好格式展示。date显示或设置系统时间,date "+%Y-%m-%d %H:%M:%S"自定义时间格式。

进程管理命令
ps查看当前进程,ps aux显示所有进程详细信息,grep过滤特定进程(如ps aux | grep nginx)。kill终止进程,需传入进程ID(PID),kill -9强制终止(慎用)。nohup让命令在后台持续运行,即使终端关闭,如nohup python script.py &,&表示后台运行。
权限管理命令
Linux权限分为读(r)、写(w)、执行(x),对应数字4、2、1。chmod修改权限,chmod 755 file.txt设置所有者可读可写可执行,组用户和其他用户可读可执行;或用符号法chmod u+x file.txt为所有者添加执行权限。chown修改文件所有者,chown user:group file.txt同时修改所有者和所属组。
压缩打包命令
tar打包或解包文件,tar -czf archive.tar.gz dir/将目录打包为.gz格式,-c创建,-z调用gzip压缩,-f指定文件名;解包用tar -xzf archive.tar.gz,-x表示解包。zip和unzip处理.zip文件,zip -r archive.zip dir/递归压缩目录,unzip archive.zip解压。
网络操作命令
ping测试网络连通性,ping www.baidu.com持续发送ICMP请求。ifconfig或ip addr查看本机IP地址,ip addr show eth0查看指定网卡信息。ssh远程登录,ssh user@192.168.1.100以用户身份登录远程主机。wget下载文件,wget -c http://example.com/file.zip支持断点续传。

常用Shell命令速查表
| 功能分类 | 命令 | 常用选项及示例 |
|---|---|---|
| 文件列表 | ls | ls -l(详细信息)、ls -a(含隐藏) |
| 创建文件 | touch | touch test.txt |
| 复制文件 | cp | cp -r dir/ newdir/(递归复制) |
| 移动/重命名 | mv | mv old.txt new.txt |
| 删除文件 | rm | rm -rf dir/(强制递归删除) |
| 查看文件 | cat/less | cat file.txt、less file.txt(分页) |
| 切换目录 | cd | cd ..(上级)、cd ~(主目录) |
| 创建目录 | mkdir | mkdir -p a/b/c(递归创建) |
| 搜索文本 | grep | grep "error" log.txt -i(忽略大小写) |
| 查找文件 | find | find . -name "*.py"(查找.py文件) |
| 系统信息 | top/htop | top(实时进程)、htop(增强版) |
| 磁盘使用 | df | df -h(人类可读格式) |
| 内存使用 | free | free -h(内存使用情况) |
| 进程管理 | ps/kill | ps aux(查看进程)、kill -9 PID |
| 权限修改 | chmod | chmod 644 file.txt(设置权限) |
| 打包压缩 | tar | tar -czf archive.tar.gz dir/(打包) |
| 网络测试 | ping | ping 8.8.8.8(测试连通性) |
相关问答FAQs
Q1:如何快速查找大文件并清理磁盘空间?
A:使用find命令结合-size参数查找大文件,例如查找大于100MB的文件:find / -type f -size +100M,清理时需谨慎,确认文件无用后用rm删除,或移动到其他存储设备,建议定期使用du -sh /* | sort -rh查看各目录占用空间,定位大目录后再深入清理。
Q2:如何让命令在后台运行且不输出日志到终端?
A:使用nohup配合重定向符号,例如nohup python long_task.py > /dev/null 2>&1 &,其中> /dev/null将标准输出重定向到空设备,2>&1将错误输出也重定向到标准输出,&让命令后台运行,这样即使关闭终端,命令也会继续执行,且不会产生终端日志。
