linux shell 常用命令(Linux Shell实用命令)


Linux Shell作为操作系统的核心交互界面,其命令体系是系统管理、开发运维和自动化脚本的基础。通过简洁的指令集,用户能够高效完成文件操作、进程管理、权限控制等任务。Shell命令的设计遵循Unix哲学,强调模块化组合与管道协作,使得复杂任务可通过短命令链实现。例如,grep结合sort可替代数据库查询,awk单条命令即可完成数据提取与格式化。这种特性不仅提升了操作效率,更成为DevOps文化的技术基石。掌握Shell命令需理解其参数逻辑(如-l与-a的区别)、输出流向(标准输入/输出重定向)及环境变量(如PATH的作用)。熟练运用man手册和--help参数,是深入理解命令行为的关键。
一、文件与目录操作
文件系统操作是Shell最核心的功能模块,涵盖创建、复制、移动、删除等基础操作。
命令 | 功能描述 | 典型参数 |
---|---|---|
touch | 更新文件时间戳或创建空文件 | -a 仅修改访问时间 -m 仅修改修改时间 |
cp | 复制文件或目录 | -r 递归复制 -p 保留原文件属性 |
mv | 移动/重命名文件 | -n 覆盖前询问 -b 备份被覆盖文件 |
rm | 删除文件或目录 | -f 强制删除 -r 递归删除 |
ln | 创建硬链接或符号链接 | -s 创建符号链接 -f 强制覆盖现有链接 |
表1展示了基础文件操作命令的对比。cp -p与ln的区别在于是否保留元数据:前者复制新文件时继承原文件权限,后者直接共享inode节点。使用rm -rf /需极度谨慎,该命令会递归删除根目录下所有内容。
二、权限与所有权管理
Linux采用UGO(User/Group/Other)三级权限模型,配合三组数字表示读写执行权限。
命令 | 作用对象 | 参数示例 |
---|---|---|
chmod | 文件/目录权限 | u+x 用户增加执行权 g-w 组移除写权限 |
chown | 文件/目录所有者 | root:root 更改为指定用户组 :wheel 仅修改组 |
umask | 默认权限掩码 | 022 允许同用户读写 077 仅自己完全访问 |
sudo | 临时提权执行 | -u 指定用户 -l 列出可执行命令 |
表2对比了权限管理工具。chmod 755等价于u=rwx,g=r-x,o=r-x,而umask 022会使得新文件默认权限为755。sudo visudo用于安全编辑/etc/sudoers文件,建议优先使用visudo而非直接编辑。
三、进程与作业管理
进程管理涉及查看、监控、终止进程,以及后台任务控制。
命令 | 主要功能 | 适用场景 |
---|---|---|
ps | 静态进程快照 | 查看特定PID详细信息 结合管道筛选进程 |
top | 动态实时监控 | 按CPU/内存排序 识别资源占用大户 |
kill | 终止指定进程 | 15(TERM)优雅退出 9(KILL)强制终止 |
& | 后台执行命令 | 配合nohup实现断线续传 jobs查看后台任务列表 |
pgrep | 进程名转PID | 配合xargs实现批量操作 -f 精确匹配完整命令行 |
表3展示了进程管理工具的差异。top与htop(需安装)相比,后者支持鼠标操作和更直观的UI。kill -0可用于检测进程是否存在而不实际终止。使用&时需注意,若命令需要持续输入(如tail -f),应改用nohup或screen。
四、文本处理与模式匹配
文本处理是Shell最强大的领域,三驾马车grep/sed/awk各司其职。
工具 | 核心功能 | 特色语法 |
---|---|---|
grep | 模式搜索 | -E 扩展正则 -v 反向匹配 |
sed | 流编辑 | s///g 全局替换 2d 删除第二行 |
awk | 字段处理 | 'print $1' 取首字段 BEGIN/END 块处理 |
tr | 字符转换 | [a-z] [A-Z] 大小写转换 -d 删除指定字符 |
cut | 列分割提取 | -d指定分隔符 -f取指定列 |
表4对比了文本处理工具。grep -P启用Perl正则,支持d+匹配数字。sed 's/old/new/g'可实现全文件替换,而awk 'sub("old","new")1'仅替换每行首次出现。处理大文件时,awk的内存消耗显著高于sed。
五、系统信息查看
系统状态监控涉及硬件资源、网络状态、服务运行等多个维度。
命令 | 监测对象 | 关键参数 |
---|---|---|
df | 磁盘使用量 | -h 人类可读格式 -T 显示文件系统类型 |
free | 内存使用情况 | -m 以MB为单位 -s 持续刷新 |
ifconfig | 网络接口配置 | eth0 指定接口 a 显示IP地址 |
netstat | 网络连接状态 | -tuln 监听端口 -p 显示进程PID |
uptime | 系统运行时间 | 无参数直接显示负载均值 |
表5列举了系统监控命令。df -h的输出包含已用空间、可用空间及挂载点,而du -sh /var/log可快速统计目录总大小。free -m显示的Swap使用率对诊断OOM问题至关重要。现代系统推荐使用ip替代ifconfig,如ip a显示接口详情。
六、网络通信与远程操作
网络相关命令覆盖连接测试、数据传输、远程登录等场景。
工具 | 功能定位 | 典型用法 |
---|---|---|
ping | 连通性测试 | -c 4 发送4个包 -q 静默模式输出结果 |
ssh | 加密远程登录 | -p 2222 指定端口 -L 本地端口转发 |
scp | 安全文件传输 | -r 递归复制目录 -C 压缩传输 |
wget | HTTP下载工具 | -c 断点续传 -q 安静模式 |
traceroute | 路由路径追踪 | -n 显示IP而非域名 -m 10 最多跳数限制 |
表6对比了网络工具。ssh -D 1080建立SOCKS代理,配合scp -i /path/to/key使用指定密钥文件。wget -O - url | sh可直接从网络执行脚本,但存在严重安全风险。traceroute www.baidu.com可诊断网络路径中的丢包节点。
七、压缩与解压缩
不同压缩算法对应不同场景需求,需注意兼容性问题。
格式 | 压缩命令 | 解压命令 |
---|---|---|
.tar.gz | tar -czvf | tar -xzvf |
.zip | zip -r | unzip |
.bz2 | bzip2 -k | bunzip2 -k |
.xz | xz -9e | unxz -c |
.7z | (需p7zip) 7za a | (需p7zip) 7za x |
表7展示了主流压缩格式的处理方式。tar -cvf archive.tar .log | bzip2 -9 -c > archive.tar.bz2实现多步压缩流水线。Windows系统生成的.zip文件在Linux可直接用unzip解压,但.rar需安装非自由软件。xz格式压缩比优于bzip2,但解压速度较慢。