菜鸟科技网

常见shell命令有哪些?

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

常见shell命令有哪些?-图1
(图片来源网络,侵删)

文件管理命令

文件操作是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"自定义时间格式。

常见shell命令有哪些?-图2
(图片来源网络,侵删)

进程管理命令

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表示解包。zipunzip处理.zip文件,zip -r archive.zip dir/递归压缩目录,unzip archive.zip解压。

网络操作命令

ping测试网络连通性,ping www.baidu.com持续发送ICMP请求。ifconfigip addr查看本机IP地址,ip addr show eth0查看指定网卡信息。ssh远程登录,ssh user@192.168.1.100以用户身份登录远程主机。wget下载文件,wget -c http://example.com/file.zip支持断点续传。

常见shell命令有哪些?-图3
(图片来源网络,侵删)

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

分享:
扫描分享到社交APP
上一篇
下一篇