在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
将错误输出也重定向到标准输出,&
让命令后台运行,这样即使关闭终端,命令也会继续执行,且不会产生终端日志。