资讯详情

Linux Shell命令大全:从基础到高级实战指南

📅 2026/10/26 20:59:20 | 华诺云谱 👁 阅读
Linux Shell命令大全:从基础到高级实战指南
1. Shell命令基础概述在计算机操作系统中Shell作为用户与内核之间的命令行接口其重要性不言而喻。无论是Linux系统管理员、开发人员还是普通用户掌握Shell命令都是必备技能。Shell不仅能够执行简单的文件操作还能通过脚本实现复杂的自动化任务。Shell环境有多种类型最常见的是BashBourne Again Shell它兼容shBourne Shell并提供了更多实用功能。其他流行的Shell还包括zsh、ksh等它们各有特点但基本命令语法相似。提示在开始学习具体命令前建议先了解当前使用的Shell类型。可以通过echo $SHELL命令查看使用ps -p $$命令确认当前会话使用的Shell。2. 文件系统操作命令2.1 基本文件操作文件操作是Shell中最基础也是最常用的功能。ls命令用于列出目录内容配合不同参数可以实现丰富的功能ls -l # 长格式显示文件详细信息 ls -a # 显示所有文件包括隐藏文件 ls -lh # 人性化显示文件大小cp命令用于复制文件或目录使用时需注意cp file1 file2 # 复制文件 cp -r dir1 dir2 # 递归复制目录 cp -i file1 file2 # 覆盖前提示确认mv命令兼具移动和重命名功能mv oldname newname # 重命名文件 mv file dir/ # 移动文件到目录rm命令删除文件需谨慎特别是使用-r递归删除目录时rm file # 删除文件 rm -r dir # 递归删除目录 rm -i file # 删除前确认2.2 文件内容查看与处理查看文件内容有多种命令可选各具特点cat file # 显示整个文件内容 less file # 分页查看可上下滚动 head -n 5 file # 显示前5行 tail -n 5 file # 显示后5行 tail -f log # 实时追踪日志文件变化文件查找是日常高频操作find命令功能强大但语法较复杂find /path -name *.txt # 按名称查找 find . -type f -size 1M # 查找大于1MB的文件 find /tmp -mtime 7 -delete # 删除7天前的临时文件grep是文本搜索利器支持正则表达式grep pattern file # 基本搜索 grep -r error /var/log # 递归搜索目录 grep -i warning file # 忽略大小写 grep -v debug file # 反向匹配显示不包含的行3. 系统管理与进程控制3.1 系统信息查询了解系统状态是管理的基础常用命令包括uname -a # 显示系统信息 df -h # 磁盘空间使用情况人类可读格式 du -sh * # 查看当前目录各文件/目录大小 free -h # 内存使用情况 uptime # 系统运行时间和负载 top/htop # 动态查看进程信息htop更友好3.2 进程管理进程管理是系统运维的核心技能ps aux # 查看所有进程详细信息 ps -ef | grep nginx # 查找特定进程 kill -9 PID # 强制终止进程 killall process_name # 终止所有同名进程 pkill -f pattern # 按模式终止进程后台作业控制也很重要command # 后台运行 jobs # 查看后台作业 fg %1 # 将作业1调到前台 bg %2 # 继续后台运行作业2 nohup command # 退出终端后继续运行3.3 用户与权限Linux权限系统基于用户、组和其他三类权限chmod 755 file # 设置文件权限(rwxr-xr-x) chown user:group file # 更改文件所有者和组 sudo command # 以超级用户权限执行 passwd # 修改当前用户密码特殊权限位需要特别注意chmod s file # 设置SUID位 chmod t dir # 设置粘滞位常用于/tmp4. 网络相关命令4.1 网络配置与诊断网络问题是常见故障点诊断命令包括ifconfig/ip addr # 查看网络接口信息 ping host # 测试网络连通性 traceroute host # 追踪路由路径 netstat -tulnp # 查看网络连接和监听端口 ss -tulnp # netstat的现代替代品下载工具在脚本中很实用wget url # 下载文件 curl -O url # 类似wget的功能 curl -I url # 仅获取HTTP头信息4.2 远程连接管理安全远程访问是运维基础ssh userhost # 基本SSH连接 ssh -p 2222 userhost # 指定非标准端口 scp file userhost:path # 安全复制文件 rsync -avz src dest # 高效同步工具5. Shell脚本编程基础5.1 脚本基础结构Shell脚本第一行通常是指定解释器#!/bin/bash # 这是注释 echo Hello World脚本需要可执行权限chmod x script.sh ./script.sh5.2 变量与参数变量使用是脚本编程基础namevalue # 变量赋值 echo $name # 变量引用 echo ${name}_suffix # 避免歧义的引用方式脚本参数处理$0 # 脚本名 $1, $2, ..., $9 # 位置参数 $# # 参数个数 $ # 所有参数保持独立 $* # 所有参数合并为一个字符串5.3 流程控制条件判断是脚本逻辑的核心if [ condition ]; then commands elif [ condition ]; then commands else commands fi常见测试条件[ -f file ] # 文件存在且为普通文件 [ -d dir ] # 目录存在 [ -z $var ] # 变量为空 [ $a $b ] # 字符串相等 [ $n -gt 10 ] # 数值大于10循环结构for var in list; do commands done while [ condition ]; do commands done until [ condition ]; do commands done5.4 函数与错误处理函数提高代码复用性function_name() { local varvalue # 局部变量 commands return value }错误处理机制command || exit 1 # 命令失败时退出 set -e # 任何命令失败立即退出脚本 trap cleanup EXIT # 设置退出时执行的清理函数6. 实用技巧与高级特性6.1 命令组合与管道管道是Shell强大特性的核心command1 | command2 # 将command1输出作为command2输入命令替换$(command) # 执行命令并用输出替换 command # 旧式命令替换建议使用$()进程替换diff (cmd1) (cmd2) # 比较两个命令的输出6.2 正则表达式与文本处理sed流编辑器sed s/old/new/g file # 替换文本 sed -i.bak s/old/new/ file # 直接修改文件保留备份 sed /pattern/d file # 删除匹配行awk强大的文本处理awk {print $1} file # 打印每行第一个字段 awk -F: {print $1} /etc/passwd # 指定冒号为分隔符 awk $3 100 {print $0} file # 条件处理6.3 实用小技巧命令行效率技巧!! # 上一条命令 !$ # 上条命令的最后一个参数 ^old^new # 替换上条命令中的字符串 ctrlr # 反向搜索命令历史 ctrla/ctrle # 移动光标到行首/行尾 alt. # 插入上条命令的最后一个参数环境变量配置export PATH$PATH:/new/path # 临时添加PATH echo export VARvalue ~/.bashrc # 永久设置 source ~/.bashrc # 重新加载配置7. 常见问题排查7.1 命令找不到问题当遇到command not found错误时检查命令拼写是否正确使用which command查看命令位置检查PATH环境变量是否包含命令所在目录确认软件包是否已安装rpm -q或dpkg -l7.2 权限问题排查权限拒绝错误的处理步骤使用ls -l查看文件权限确认执行用户是否有足够权限检查SELinux/AppArmor安全上下文查看系统日志/var/log/messages或journalctl7.3 脚本调试技巧调试Shell脚本的方法bash -x script.sh # 打印每条执行的命令 set -x # 在脚本中开启调试 trap echo $LINENO DEBUG # 显示执行行号8. 安全最佳实践8.1 安全注意事项Shell使用中的安全准则避免使用root用户执行日常操作谨慎处理通配符如rm *不信任的用户输入必须严格过滤敏感信息不要硬编码在脚本中定期检查cron作业和启动项8.2 安全相关命令安全检查工具chkrootkit # 检查rootkit rkhunter # 更全面的安全检查 lynis audit system # 系统安全审计SSH安全加固ssh-keygen # 生成密钥对 ssh-copy-id userhost # 部署公钥 vim /etc/ssh/sshd_config # 修改SSH配置
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑