分类: Linux

  • Linux指令大全:从入门到精通

    第一部分:基础入门指令

    文件与目录操作

    # 查看当前目录
    pwd
    
    # 列出文件
    ls                    # 简单列表
    ls -la               # 详细列表(包括隐藏文件)
    ls -lh               # 人类可读的文件大小
    
    # 目录操作
    mkdir dirname        # 创建目录
    mkdir -p path/to/dir # 创建多级目录
    rmdir dirname        # 删除空目录
    
    # 切换目录
    cd /path             # 绝对路径
    cd ..               # 上级目录
    cd ~                # 家目录
    cd -                # 返回上一次目录
    
    # 文件操作
    touch filename       # 创建空文件
    cp source dest       # 复制文件
    cp -r source dest    # 递归复制目录
    mv source dest       # 移动/重命名
    rm filename          # 删除文件
    rm -rf dirname       # 强制递归删除(谨慎使用!)

    文件查看与编辑

    # 查看文件内容
    cat filename         # 显示全部内容
    less filename        # 分页查看
    head -n 10 file      # 查看前10行
    tail -n 20 file      # 查看后20行
    tail -f logfile      # 实时查看日志
    
    # 文本处理
    grep "pattern" file  # 搜索文本
    grep -r "text" dir   # 递归搜索
    grep -i "text" file  # 忽略大小写
    
    # 文件比较
    diff file1 file2     # 比较文件差异

    第二部分:系统管理指令

    进程管理

    # 进程查看
    ps aux               # 查看所有进程
    ps -ef | grep nginx  # 查找特定进程
    top                  # 实时进程监控
    htop                 # 增强版top(需安装)
    
    # 进程控制
    kill PID             # 结束进程
    kill -9 PID          # 强制结束
    pkill process_name   # 按名称结束进程
    
    # 后台作业
    command &            # 后台运行
    jobs                 # 查看后台作业
    fg %1               # 调到前台
    bg %1               # 后台继续运行

    系统信息

    # 系统状态
    uname -a             # 系统信息
    uptime               # 运行时间
    free -h              # 内存使用
    df -h                # 磁盘空间
    du -sh dirname       # 目录大小
    
    # 硬件信息
    lscpu                # CPU信息
    lsblk                # 块设备信息
    lspci                # PCI设备
    lsusb                # USB设备

    用户与权限

    # 用户管理
    whoami               # 当前用户
    id username          # 用户信息
    sudo command         # 以管理员身份执行
    su - username        # 切换用户
    
    # 权限管理
    chmod 755 file       # 修改权限
    chmod +x script.sh   # 添加执行权限
    chown user:group file # 修改所有者
    chown -R user dir    # 递归修改

    第三部分:网络与通信

    网络配置与测试

    # 网络信息
    ip addr show         # 显示IP地址
    ifconfig             # 传统网络配置(已过时)
    netstat -tulpn       # 网络连接状态
    ss -tulpn            # netstat的现代替代
    
    # 网络测试
    ping hostname        # 连通性测试
    traceroute hostname  # 路由追踪
    mtr hostname         # 增强版traceroute
    dig domain.com       # DNS查询
    nslookup domain.com  # DNS查询(旧版)

    文件传输

    # 下载工具
    wget URL             # 简单下载
    wget -c URL          # 断点续传
    curl URL             # 更强大的下载工具
    
    # 远程传输
    scp file user@host:/path  # 安全复制
    rsync -avz source dest    # 高效同步

    第四部分:实用工具与技巧

    文本处理三剑客

    # grep - 文本搜索
    grep -v "exclude" file   # 反向匹配
    grep -E "pattern" file   # 扩展正则表达式
    grep -A 3 -B 3 "text" file # 显示前后行
    
    # sed - 流编辑器
    sed 's/old/new/g' file   # 全局替换
    sed -n '10,20p' file     # 显示10-20行
    sed '/pattern/d' file    # 删除匹配行
    
    # awk - 文本分析工具
    awk '{print $1}' file    # 打印第一列
    awk -F':' '{print $1}' /etc/passwd  # 指定分隔符
    awk '/pattern/ {count++} END {print count}' file  # 计数

    压缩与归档

    # tar - 归档工具
    tar -czvf archive.tar.gz dir/   # 创建压缩包
    tar -xzvf archive.tar.gz        # 解压
    tar -tzvf archive.tar.gz        # 查看内容
    
    # 其他压缩工具
    zip -r archive.zip dir/         # zip压缩
    unzip archive.zip               # zip解压
    gzip file                       # gzip压缩
    gunzip file.gz                  # gzip解压

    包管理(根据不同发行版)

    # Ubuntu/Debian (APT)
    apt update                     # 更新源列表
    apt upgrade                    # 升级软件包
    apt install package            # 安装软件
    apt remove package             # 删除软件
    
    # CentOS/RHEL (YUM/DNF)
    yum install package            # 安装软件
    yum update                     # 更新软件
    dnf install package            # DNF(新版YUM)
    
    # Arch Linux (Pacman)
    pacman -Syu                    # 更新系统
    pacman -S package              # 安装软件
    pacman -R package              # 删除软件

    第五部分:实用场景示例

    场景1:日志分析

    # 查找错误日志
    grep -i "error" /var/log/syslog
    
    # 统计访问日志的IP
    awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -20
    
    # 实时监控日志
    tail -f /var/log/nginx/access.log | grep "404"

    场景2:系统监控脚本

    #!/bin/bash
    # 监控系统资源
    echo "=== 系统状态报告 ==="
    echo "时间: $(date)"
    echo "负载: $(uptime)"
    echo "内存: $(free -h | grep Mem)"
    echo "磁盘:"
    df -h | grep -E "Filesystem|/dev/sd"
    echo "前5个CPU进程:"
    ps aux --sort=-%cpu | head -6

    场景3:批量文件处理

    # 批量重命名
    for file in *.txt; do
        mv "$file" "backup_$file"
    done
    
    # 批量转换文件编码
    find . -name "*.txt" -exec iconv -f GBK -t UTF-8 {} -o {}.utf8 \;
    
    # 查找并删除临时文件
    find /tmp -name "*.tmp" -mtime +7 -delete

    第六部分:高级技巧

    快捷键与历史

    Ctrl + C           # 终止当前命令
    Ctrl + Z           # 暂停进程
    Ctrl + D           # 退出终端
    Ctrl + R           # 搜索历史命令
    !!                 # 上一条命令
    !$                 # 上一条命令的最后一个参数

    管道与重定向

    # 管道:将一个命令的输出作为另一个命令的输入
    ls -la | grep ".conf" | wc -l
    
    # 重定向
    command > file      # 输出重定向(覆盖)
    command >> file     # 输出重定向(追加)
    command < file      # 输入重定向
    command 2> error.log # 错误重定向
    command &> all.log  # 所有输出重定向

    命令组合

    # 顺序执行
    command1 ; command2   # 无论command1是否成功都执行command2
    command1 && command2  # 只有command1成功才执行command2
    command1 || command2  # 只有command1失败才执行command2
    
    # 命令替换
    echo "今天是 $(date)"