掌控终端:运维与开发者的 Linux 命令全景攻略

在这里插入图片描述

本文面向 Linux 系统管理员、运维工程师和开发人员,提供一套全面、精炼且实用的命令行操作指南。

内容涵盖从 Shell 基础、文件与目录管理,到文本处理、高级权限控制、系统与网络监控、自动化运维等十三大核心领域,并配以详尽示例与最佳实践,助您在各种业务场景中游刃有余。
通过理论与实战相结合,本文将帮助您优化日常运维流程、提升系统性能,并在复杂环境下迅速排障,是打造专业级 Linux 技能体系的必备利器。


一、Shell 基础

  • 提示符

    • 常见格式:[user@host cwd]$
    • ~ 代表当前用户主目录。
  • 查看帮助

    man <command>        # 阅读完整手册
    <command> --help     # 快速使用说明
    
  • 历史与快捷

    • history:列出最近命令,配合!n重复执行第 n 条。
    • Ctrl+R:反向搜索历史。
    • Tab 自动补全文件/命令名。
  • 别名

    alias ll='ls -lh'    # 设置别名
    unalias ll           # 删除别名
    

二、文件与目录操作

命令功能进阶示例
pwd显示当前目录pwd -P 显示真实路径(去除符号链接)
mkdir创建目录mkdir -p /a/b/c 递归创建多级目录
touch创建空文件/更新时间戳touch -c file.txt 只有文件存在时才更新
ls列出目录内容ls -lXt 按修改时间倒序长格式显示
cp复制文件/目录cp --preserve=mode,timestamps src dst 保留权限和时间戳
mv移动/重命名mv -v *.txt /backup/ 复制时显示详细信息
rm删除文件/目录rm -I *.log 批量删除前提示
tree树状显示目录结构tree -L 2 -h 只显示两层,带人类可读大小
find查找文件find /var/log -type f -mtime +7 -exec rm {} \;
删除 7 天前的日志  
| `locate`| 快速查找(数据库)| `updatedb` 先更新数据库;`locate passwd`               |

---

## 三、文件内容查看与文本处理

- **查看**  
  ```bash
  cat file            # 输出所有内容
  tac file            # 反向输出
  head -n 20 file     # 前 20 行
  tail -n 50 file     # 后 50 行
  tail -f /var/log/syslog  # 实时追踪新日志
  less file           # 分页查看(支持搜索 `/pattern`)
  • 文本搜索

    grep -Rni "错误" /var/log      # 忽略大小写、显示行号
    egrep -E "foo|bar" file        # 支持正则“或”
    fgrep -F "literal string" file # 字面匹配
    
  • 统计与排序

    sort file                      # 排序
    uniq -c                       # 合并相邻重复,计数
    wc -l file                    # 行数
    cut -d: -f1 /etc/passwd       # 按分隔符提取字段
    paste a.txt b.txt             # 横向合并文件
    tr 'a-z' 'A-Z' <file          # 转换小写到大写
    
  • 流式编辑

    awk '{ if ($5 > 1000) print $1, $5 }' file
    sed -i 's/old/new/g' *.txt     # 原地替换
    xargs -I{} rm {} < list.txt    # 将 stdin 内容作为参数执行命令
    

四、权限与所有者

4.1 权限基础

数字权限二进制含义
0000
1–x001只执行
2-w-010只写
3-wx011写+执行
4r–100只读
5r-x101读+执行
6rw-110读+写
7rwx111读+写+执行

4.2 常用命令

  • 修改权限

    chmod 755 script.sh
    chmod u=rw,go=r file        # 符号模式
    chmod +x *.sh               # 给所有脚本執行權限
    
  • 修改所有者/所属组

    chown user:group file.txt
    chown -R www-data:www-data /var/www
    chgrp staff report.pdf      # 只改组
    
  • 高级 ACL

    setfacl -m u:alice:rw file
    getfacl file
    
  • 特殊权限位

    • SetUID (s):二进制文件以文件所有者权限执行
      chmod u+s /usr/bin/passwd
      
    • SetGID:目录新建文件继承组
      chmod g+s /shared
      
    • Sticky Bit (t):目录内文件只能被所有者或 root 删除
      chmod +t /tmp
      

五、进程管理

  • 查看进程

    ps aux | grep java
    top                      # 交互监控
    htop                     # 用户友好(需安装)
    pgrep -l nginx           # 按名查找 PID
    
  • 后台/前台作业

    myscript.sh &            # 后台启动
    jobs                     # 列出作业
    fg %1                    # 恢复到前台
    bg %1                    # 在后台继续
    nohup longjob &> out.log &  # 即使断开仍继续
    
  • 结束或调整优先级

    kill -15 1234            # 温和结束(SIGTERM)
    kill -9 1234             # 强制(SIGKILL)
    pkill -f 'python.*app'   # 按正则匹配进程名
    nice -n 10 command       # 设置启动时优先级
    renice -n -5 -p 1234     # 修改运行中进程优先级
    

六、系统监控与信息

  • 磁盘

    df -hT                    # 文件系统类型 & 人类可读
    du -sh /var/log/*         # 每个子目录大小
    
  • 内存 & CPU

    free -m                   # 以 MB 显示
    vmstat 2                  # 每 2 秒输出一次
    iostat -xz 5              # CPU & 磁盘统计
    
  • 用户 & 会话

    who                       # 在线用户
    w                         # 用户 & 进程详情
    id alice                  # 用户 UID/GID/组
    uptime                    # 系统正常运行时长
    uname -a                  # 内核 & 系统信息
    
  • 日志

    journalctl -u nginx.service    # systemd 日志
    journalctl --since "2 hours ago"
    tail -n 100 /var/log/syslog
    

七、网络工具

  • 连通性测试

    ping -c4 8.8.8.8
    traceroute example.com
    
  • 接口配置

    ip addr show
    ip link set eth0 up
    ifconfig eth0 192.168.1.10/24
    
  • 端口与连接

    ss -tunlp
    netstat -tuln
    lsof -i :22
    
  • HTTP 请求 & 下载

    curl -I https://api.github.com
    curl -X POST -d '{"foo":"bar"}' https://httpbin.org/post
    wget -c file.iso           # 断点续传
    
  • 远程传输

    ssh user@host
    scp file.txt user@host:/path/
    rsync -avzP src/ user@host:/dest/
    

八、包管理

  • Debian/Ubuntu (APT)

    sudo apt update
    sudo apt install nginx
    sudo apt autoremove
    
  • RHEL/CentOS (YUM/DNF)

    sudo dnf install httpd
    sudo yum remove package
    
  • Arch (Pacman)

    sudo pacman -Syu
    sudo pacman -Rns package
    

九、压缩与归档

tar -czvf backup.tar.gz /etc
tar -xJvf archive.tar.xz
gzip -d file.gz
bzip2 file
zip -r project.zip src/
unzip project.zip -d out/

十、Shell 重定向与管道

  • 重定向

    • > 覆盖写入
    • >> 追加
    • 2> 单独重定向 stderr
    • &> 同时重定向 stdout 和 stderr
    • < 从文件读取 stdin
  • 管道

    dmesg | grep -i error | tee errors.log
    

十一、环境与脚本

  • 环境变量

    echo $PATH
    export EDITOR=vim
    env | grep LANG
    
  • 启动脚本

    • ~/.bashrc~/.bash_profile/etc/profile
    • source ~/.bashrc 使修改立即生效

十二、定时任务

  • cron

    crontab -e
    # 每天凌晨 2 点执行备份
    0 2 * * * /usr/local/bin/backup.sh
    
  • at

    echo "/usr/local/bin/job.sh" | at now + 1 hour
    
  • systemd Timer

    # /etc/systemd/system/cleanup.timer
    [Timer]
    OnCalendar=daily
    

十三、用户与组管理

sudo useradd -m bob
sudo passwd bob
sudo usermod -aG wheel bob    # 加入 wheel 组
sudo groupadd devs
sudo groupdel oldgroup
sudo userdel -r olduser       # 删除用户及家目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeepTechTalk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值