插件窝 干货文章 Linux Shell的常用操作有哪些

Linux Shell的常用操作有哪些

bash 递归 显示 操作 122    来源:    2025-04-21

Linux Shell 是系统管理员和开发人员的核心工具,掌握常用操作能极大提升效率。以下是分类整理的 Shell 常用操作及示例:


一、文件与目录操作

  1. 导航与查看

    pwd                 # 显示当前目录
    ls -lht             # 按修改时间倒序+人类可读大小显示
    tree -L 2           # 树形显示目录结构(深度2层)
    
  2. 文件操作

    cp -av src/ dest/   # 归档模式复制(保留属性)
    mv -i file1 dir/    # 交互式移动(覆盖前确认)
    rm -rf dir/         # 强制递归删除(慎用!)
    
  3. 内容查看

    head -n 20 file.log # 查看前20行
    tail -f /var/log/syslog # 实时追踪日志
    grep -r "error" /var/log/ # 递归搜索关键词
    

二、文本处理三剑客

  1. grep 过滤

    grep -E "404|500" access.log # 匹配多个模式
    grep -v "debug" file.txt    # 反向匹配(排除行)
    
  2. sed 流编辑

    sed 's/foo/bar/g' file.txt  # 全局替换文本
    sed -i.bak '1d' file.txt    # 删除首行并备份原文件
    
  3. awk 数据分析

    awk '{sum+=$3} END{print sum}' data.csv  # 计算第三列总和
    awk -F',' '{print $1,$4}' users.csv      # 指定逗号分隔符
    

三、系统管理

  1. 进程管理

    ps aux | grep nginx       # 查看进程详情
    kill -9 $(pidof mysqld)   # 强制结束进程
    htop                      # 交互式进程监控(需安装)
    
  2. 磁盘与内存

    df -hT /                  # 显示根分区磁盘使用(人类可读)
    du -sh * | sort -rh       # 排序当前目录大小
    free -m                   # 以MB显示内存
    
  3. 用户与权限

    chmod -R 750 /opt/app     # 递归设置目录权限
    chown user:group file     # 修改属主和属组
    sudo -u www-data whoami   # 以特定用户执行命令
    

四、网络操作

  1. 连接测试

    curl -I https://example.com # 仅显示HTTP头
    wget --limit-rate=1m file.tar.gz # 限速下载
    
  2. 端口与路由

    netstat -tulnp            # 查看监听端口
    ss -s                     # 更快的socket统计
    traceroute -w 1 google.com # 路由追踪(1秒超时)
    

五、高效技巧

  1. 快捷键

    • Ctrl+R:反向搜索历史命令
    • Ctrl+U:删除光标前所有内容
    • !!:重复上条命令(如 sudo !!
  2. 重定向与管道

    command 2>&1 | tee log.txt  # 同时输出到屏幕和文件
    diff <(ls dir1) <(ls dir2)  # 比较两个命令输出
    
  3. 后台任务

    nohup ./script.sh &         # 脱离终端后台运行
    screen -S session_name      # 创建持久会话(防止断开丢失)
    

六、脚本编程要点

  1. 变量与条件

    today=$(date +%F)          # 获取当前日期
    [ -f "/path/file" ] && echo "存在" || echo "不存在"
    
  2. 循环示例

    for user in $(cat users.list); do
     echo "Processing $user..."
    done
    
  3. 调试脚本

    bash -x script.sh          # 显示执行过程
    set -e                     # 遇到错误立即退出
    

七、实用工具推荐

  • jq:JSON 处理
    bash curl api.example.com | jq '.data[] | .id'
  • rsync:增量同步
    bash rsync -azP src/ user@remote:/backup/
  • tmux:终端复用器(替代 screen)

掌握这些操作后,可组合使用解决复杂问题。例如统计日志中每个 IP 的访问次数:

awk '{print $1}' access.log | sort | uniq -c | sort -nr

建议通过 man [command] 查阅手册获取更详细参数说明。