linux运维命令大全,零基础入门到精通,收藏这篇就够了

本文章已经生成可运行项目,

Linux运维常用命令大全

1. 基础命令

文件操作
ls
  • 概念:列出目录内容

  • 示例:```
    ls # 列出当前目录文件
    ls -l # 详细列表(权限、所有者、大小、时间)
    ls -a # 显示隐藏文件(以.开头的文件)
    ls -lhS # 按大小降序排列,人类可读格式
    ls -ltr # 按修改时间倒序排列

    
    
    
cp
  • 概念:复制文件或目录

  • 示例:```
    cp file1.txt file2.txt # 复制文件
    cp -r dir1 dir2 # 递归复制目录
    cp -a source dest # 保留权限、属性的归档复制
    cp -v file1.txt /path/to/dir/ # 显示复制过程

    
    
    
mv
  • 概念:移动或重命名文件/目录

  • 示例:```
    mv oldname.txt newname.txt # 重命名文件
    mv file.txt /path/to/dir/ # 移动文件到目录
    mv -f file.txt /existing/path/ # 强制移动(覆盖不提示)
    mv dir1 dir2 # 重命名目录

    
    
    
rm
  • 概念:删除文件或目录

  • 示例:```
    rm file.txt # 删除文件
    rm -r dir/ # 递归删除目录及其内容
    rm -rf dir/ # 强制删除目录(无提示,危险操作)
    rm *.log # 删除所有.log文件

    
    
    
touch
  • 概念:创建空文件或更新文件时间戳

  • 示例:```
    touch newfile.txt # 创建空文件
    touch file1.txt file2.txt # 创建多个文件
    touch -t 202312312359 file.txt # 设置文件时间戳为指定日期时间

    
    
    
cat
  • 概念:连接并显示文件内容

  • 示例:```
    cat file.txt # 显示文件内容
    cat file1.txt file2.txt > combined.txt # 合并文件
    cat -n file.txt # 显示行号
    cat > newfile.txt # 从标准输入创建文件(Ctrl+D结束)

    
    
    
more/less
  • 概念:分页查看文件内容(less支持前后滚动)

  • 示例:```
    more largefile.txt # 空格键翻页,q退出
    less largefile.txt # 支持上下键滚动,/pattern搜索,q退出
    less +G largefile.txt # 直接跳转到文件末尾

    
    
    
head/tail
  • 概念:查看文件开头/结尾内容

  • 示例:```
    head file.txt # 查看前10行(默认)
    head -n 20 file.txt # 查看前20行
    tail file.txt # 查看最后10行
    tail -n 15 file.txt # 查看最后15行
    tail -f /var/log/messages # 实时跟踪日志文件更新
    tail -F /var/log/messages # 跟踪文件,即使文件被轮转

    
    
    
目录管理
cd
  • 概念:切换当前工作目录

  • 示例:```
    cd /path/to/dir # 进入指定目录
    cd … # 返回上一级目录
    cd # 回到当前用户家目录
    cd ~username # 进入指定用户的家目录
    cd - # 回到上一次工作目录

    
    
    
pwd
  • 概念:显示当前工作目录的绝对路径

  • 示例:```
    pwd # 输出当前目录路径

    
    
    
mkdir
  • 概念:创建目录

  • 示例:```
    mkdir newdir # 创建单个目录
    mkdir -p dir1/dir2/dir3 # 创建多级目录(父目录不存在则自动创建)
    mkdir -m 755 secure_dir # 创建指定权限的目录

    
    
    
rmdir
  • 概念:删除空目录(非空目录需用rm -r)

  • 示例:```
    rmdir emptydir # 删除空目录
    rmdir -p dir1/dir2 # 删除多级空目录

    
    
    
权限管理
chmod
  • 概念︰修改文件/目录权限

  • 示例:```
    chmod u+x file.sh # 给所有者添加执行权限
    chmod g+w file.txt # 给所属组添加写权限
    chmod o-r file.txt # 移除其他用户的读权限
    chmod 755 file.sh # 数字模式:rwxr-xr-x
    chmod -R 770 dir/ # 递归修改目录及其内容权限
    chmod u+s /usr/bin/program # 设置SUID权限

    
    
    
chown
  • 概念:修改文件/目录的所有者和所属组

  • 示例:```
    chown user file.txt # 修改所有者
    chown user:group file.txt # 修改所有者和所属组
    chown -R user:group dir/ # 递归修改目录
    chown :group file.txt # 只修改所属组

    
    
    
chgrp
  • 概念:修改文件/目录的所属组(chown的简化版)

  • 示例:```
    chgrp group file.txt # 修改所属组
    chgrp -R group dir/ # 递归修改目录所属组

    
    
    

2. 系统管理

用户管理
useradd
  • 概念:创建新用户

  • 示例:```
    useradd -m username # 创建用户并自动创建家目录
    useradd -s /bin/bash username # 指定登录shell
    useradd -G group1,group2 username # 添加用户到多个附加组
    useradd -d /home/custom username # 指定自定义家目录

    
    
    
userdel
  • 概念:删除用户

  • 示例:```
    userdel username # 删除用户(保留家目录)
    userdel -r username # 删除用户及家目录

    
    
    
usermod
  • 概念:修改用户属性

  • 示例:```
    usermod -l newname oldname # 修改用户名
    usermod -aG group username # 添加用户到附加组(不删除现有组)
    usermod -d /new/home username # 修改家目录
    usermod -L username # 锁定用户账号
    usermod -U username # 解锁用户账号

    
    
    
passwd
  • 概念:修改用户密码

  • 示例:```
    passwd username # 修改指定用户密码(需root权限)
    passwd # 修改当前用户密码
    passwd -l username # 锁定用户密码
    passwd -u username # 解锁用户密码
    passwd -d username # 删除用户密码(允许空密码登录,不推荐)

    
    
    
groupadd/groupdel
  • 概念:创建/删除用户组

  • 示例:```
    groupadd groupname # 创建组
    groupadd -g 1001 groupname # 指定GID创建组
    groupdel groupname # 删除组

    
    
    
su/sudo
  • 概念:切换用户身份/以超级用户权限执行命令

  • 示例:```
    su - root # 切换到root用户(带环境变量)
    su username # 切换到普通用户
    sudo command # 以root权限执行单个命令
    sudo -i # 切换到root shell
    sudo visudo # 安全编辑sudoers文件

    
    
    
service管理
systemctl
  • 概念:管理systemd服务(CentOS 7+)

  • 示例:```
    sudo systemctl start httpd # 启动服务
    sudo systemctl stop httpd # 停止服务
    sudo systemctl restart httpd # 重启服务
    sudo systemctl reload httpd # 重载配置(不中断服务)
    sudo systemctl enable httpd # 设置开机自启
    sudo systemctl disable httpd # 禁止开机自启
    systemctl status httpd # 查看服务状态
    systemctl list-unit-files --type=service # 列出所有服务状态
    systemctl is-active httpd # 检查服务是否活跃

    
    
    
service
  • 概念:管理SysV服务(兼容旧版本CentOS)

  • 示例:```
    sudo service httpd start # 启动服务
    sudo service httpd stop # 停止服务
    sudo service httpd restart # 重启服务
    sudo service httpd status # 查看服务状态

    
    
    
进程管理
ps
  • 概念:查看进程状态

  • 示例:```
    ps aux # 查看所有进程详细信息
    ps aux | grep “nginx” # 查找特定进程
    ps -ef # 显示进程树(父进程关系)
    ps -eo pid,ppid,cmd # 自定义输出字段
    ps aux --sort=-%cpu | head # 按CPU使用率排序前10

    
    
    
top/htop
  • 概念:实时监控系统进程和资源占用

  • 示例:```
    top # 基本实时监控(按q退出)
    top -p 1234 # 监控指定PID的进程
    htop # 增强版top(需安装,支持鼠标操作)

    top交互命令:P(CPU排序)、M(内存排序)、N(PID排序)、k(终止进程)

    
    
    
kill/pkill
  • 概念:终止进程

  • 示例:```
    kill 1234 # 发送SIGTERM信号终止进程
    kill -9 1234 # 发送SIGKILL信号强制终止进程
    kill -HUP 1234 # 发送SIGHUP信号重载配置
    pkill nginx # 终止所有nginx进程
    killall httpd # 终止所有httpd进程

    
    
    
pstree
  • 概念:以树状图显示进程关系

  • 示例:```
    pstree # 显示简单进程树
    pstree -p # 显示进程PID
    pstree -u # 显示进程所属用户
    pstree nginx # 显示特定进程的树状结构

    
    
    
jobs/bg/fg
  • 概念:管理后台任务

  • 示例:```
    jobs # 查看后台任务
    command & # 将命令放入后台执行
    bg %1 # 将任务1放到后台运行
    fg %1 # 将任务1调回前台
    Ctrl+Z # 暂停当前前台任务

    
    
    

3. 网络管理

网络配置
ip
  • 概念:查看/配置网络接口(替代ifconfig)

  • 示例:```
    ip addr # 查看所有网络接口信息
    ip addr show eth0 # 查看指定接口
    ip addr add 192.168.1.100/24 dev eth0 # 添加IP地址
    ip addr del 192.168.1.100/24 dev eth0 # 删除IP地址
    ip link set eth0 up/down # 启用/禁用接口
    ip route # 查看路由表
    ip route add default via 192.168.1.1 # 添加默认网关

    
    
    
ifconfig
  • 概念:查看/配置网络接口(传统命令)

  • 示例:```
    ifconfig # 查看所有活动接口
    ifconfig eth0 # 查看指定接口
    ifconfig eth0 192.168.1.100 netmask 255.255.255.0 # 设置IP和子网掩码
    ifconfig eth0 up/down # 启用/禁用接口

    
    
    
netstat/ss
  • 概念:查看网络连接状态

  • 示例:```
    netstat -tuln # 显示监听的TCP/UDP端口
    netstat -an # 显示所有连接
    netstat -p # 显示进程PID和名称(需root)
    ss -tuln # 现代版netstat,更快
    ss -o state established ‘( dport = :80 or sport = :80 )’ # 过滤80端口连接

    
    
    
hostname/hostnamectl
  • 概念:查看/设置主机名

  • 示例:```
    hostname # 查看主机名
    hostnamectl set-hostname newhostname # 设置主机名(永久生效)
    hostnamectl # 查看详细主机信息

    
    
    
网络测试
ping
  • 概念:测试网络连通性

  • 示例:```
    ping google.com # 测试到google.com的连通性
    ping -c 4 192.168.1.1 # 发送4个ICMP包后停止
    ping -i 2 -c 10 192.168.1.1 # 每2秒发送一个,共10个

    
    
    
traceroute/mtr
  • 概念:跟踪数据包路径

  • 示例:```
    traceroute google.com # 跟踪到目标的路由路径
    mtr google.com # 结合ping和traceroute的持续监控工具

    
    
    
curl/wget
  • 概念:HTTP客户端/文件下载工具

  • 示例:```
    curl http://example.com # 获取网页内容
    curl -I http://example.com # 只获取HTTP头信息
    curl -O http://example.com/file.iso # 下载文件
    wget http://example.com/file.iso # 下载文件
    wget -c http://example.com/file.iso # 断点续传

    
    
    
ssh/scp/sftp
  • 概念:远程登录/文件传输

  • 示例:```
    ssh username@remote_host # 远程登录
    ssh -p 2222 username@host # 指定端口登录
    scp file.txt username@host:/path/ # 本地文件复制到远程
    scp username@host:/path/file.txt . # 远程文件复制到本地
    scp -r dir/ username@host:/path/ # 递归复制目录
    sftp username@host # SFTP交互式文件传输

    
    
    
防火墙管理
firewall-cmd
  • 概念:firewalld防火墙管理工具(CentOS 7+)

  • 示例:```
    sudo firewall-cmd --state # 查看防火墙状态
    sudo firewall-cmd --list-ports # 查看开放端口
    sudo firewall-cmd --add-port=80/tcp --permanent # 永久开放80端口
    sudo firewall-cmd --remove-port=80/tcp --permanent # 永久关闭80端口
    sudo firewall-cmd --reload # 重新加载规则使其生效
    sudo firewall-cmd --zone=public --add-service=http --permanent # 开放HTTP服务

    
    
    
iptables
  • 概念:传统防火墙管理工具

  • 示例:```
    sudo iptables -L # 查看规则
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许80端口入站
    sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # 允许特定网段
    sudo iptables-save > /etc/sysconfig/iptables # 保存规则

    
    
    

4. 存储管理

磁盘信息
df
  • 概念:查看磁盘空间使用情况

  • 示例:```
    df -h # 人类可读格式显示
    df -i # 显示inode使用情况
    df -T # 显示文件系统类型
    df /dev/sda1 # 查看指定分区

    
    
    
du
  • 概念:查看目录/文件大小

  • 示例:```
    du -sh /path/to/dir # 显示目录总大小(人类可读)
    du -h --max-depth=1 /path # 显示一级子目录大小
    du -ah /path # 显示所有文件和目录大小
    du -c file1 file2 # 显示多个文件总大小

    
    
    
lsblk
  • 概念:列出块设备信息

  • 示例:```
    lsblk # 显示所有块设备
    lsblk -f # 显示文件系统信息
    lsblk -o NAME,SIZE,TYPE,MOUNTPOINT # 自定义输出字段

    
    
    
fdisk/parted
  • 概念:磁盘分区工具

  • 示例:```
    sudo fdisk -l # 列出所有磁盘分区
    sudo fdisk /dev/sdb # 交互式分区/dev/sdb
    sudo parted /dev/sdb # 高级分区工具(支持GPT)

    
    
    
挂载管理
mount/umount
  • 概念:挂载/卸载文件系统

  • 示例:```
    mount /dev/sdb1 /mnt/data # 挂载分区到/mnt/data
    mount -t ext4 /dev/sdb1 /mnt/data # 指定文件系统类型
    mount -o ro /dev/sdb1 /mnt/data # 只读挂载
    umount /mnt/data # 卸载分区
    umount -l /mnt/data # 强制卸载(当文件被占用时)
    mount -a # 挂载/etc/fstab中所有文件系统

    
    
    
/etc/fstab
  • 概念:文件系统表,定义开机自动挂载项

  • 示例配置:```

    设备 挂载点 类型 选项 备份 检查

    /dev/sdb1 /mnt/data ext4 defaults 0 2
    UUID=xxx /boot xfs defaults 0 1

    
    
  • 操作命令:```
    sudo blkid # 获取设备UUID
    sudo vim /etc/fstab # 编辑fstab文件
    mount -a # 测试fstab配置是否正确

    
    
    
LVM管理
  • 概念:逻辑卷管理,灵活管理磁盘空间

  • 示例:```

    创建物理卷

    sudo pvcreate /dev/sdb1 /dev/sdc1

    创建卷组

    sudo vgcreate vg_data /dev/sdb1 /dev/sdc1

    创建逻辑卷

    sudo lvcreate -L 100G -n lv_data vg_data

    格式化逻辑卷

    sudo mkfs.ext4 /dev/vg_data/lv_data

    扩展逻辑卷

    sudo lvextend -L +50G /dev/vg_data/lv_data
    sudo resize2fs /dev/vg_data/lv_data # ext4文件系统扩容

    
    
    

5. 包管理

yum/dnf
  • 概念:RPM包管理工具(dnf是yum的下一代)

  • 示例:```

    安装软件包

    sudo yum install nginx
    sudo dnf install nginx # CentOS 8+推荐使用dnf

    卸载软件包

    sudo yum remove nginx
    sudo dnf remove nginx

    更新软件包

    sudo yum update # 更新所有包
    sudo yum update nginx # 更新指定包
    sudo yum upgrade # 升级系统

    搜索软件包

    yum search “web server”
    dnf search nginx

    查看包信息

    yum info nginx
    dnf info nginx

    列出已安装包

    yum list installed
    dnf list installed | grep nginx

    清理缓存

    sudo yum clean all
    sudo dnf clean all

    重建缓存

    sudo yum makecache
    sudo dnf makecache

    
    
    
rpm
  • 概念:直接操作RPM包的底层工具

  • 示例:```
    rpm -ivh package.rpm # 安装RPM包
    rpm -Uvh package.rpm # 升级RPM包
    rpm -e package # 卸载RPM包
    rpm -qa # 列出所有已安装RPM包
    rpm -qa | grep nginx # 查找特定包
    rpm -ql package # 列出包安装的文件
    rpm -qf /usr/bin/nginx # 查看文件属于哪个包

    
    
    

6. 日志管理

日志文件位置
  • /var/log/messages:系统通用日志
  • /var/log/secure:安全相关日志(SSH登录等)
  • /var/log/httpd/:Apache日志
  • /var/log/nginx/:Nginx日志
  • /var/log/mysql/:MySQL日志
  • /var/log/cron:定时任务日志
日志查看命令
tail/journalctl
  • 示例:```
    tail -f /var/log/messages # 实时查看系统日志
    tail -n 100 /var/log/secure # 查看最近100行安全日志

    systemd日志(CentOS 7+)

    journalctl # 查看所有日志
    journalctl -u nginx # 查看特定服务日志
    journalctl -f # 实时跟踪日志
    journalctl --since “1 hour ago” # 查看1小时前至今的日志
    journalctl --until “2023-12-31” # 查看截止到指定日期的日志
    journalctl -k # 查看内核日志

    
    
    
grep/awk在日志分析中的应用
  • 示例:```

    查找包含"error"的日志行

    grep “error” /var/log/messages

    统计特定IP的访问次数

    grep “192.168.1.100” /var/log/httpd/access.log | wc -l

    提取访问状态码为404的请求

    awk ‘$9 == 404 {print $0}’ /var/log/httpd/access.log

    统计不同状态码的数量

    awk ‘{print $9}’ /var/log/httpd/access.log | sort | uniq -c

    
    
    
logrotate
  • 概念:日志轮转工具,防止日志文件过大

  • 配置文件位置/etc/logrotate.conf/etc/logrotate.d/

  • 示例配置/etc/logrotate.d/nginx):```
    /var/log/nginx/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 nginx nginx
    sharedscripts
    postrotate
    /bin/kill -USR1 cat /run/nginx.pid 2>/dev/null 2>/dev/null || true
    endscript
    }

    
    
    

7. 性能监控

CPU监控
top/htop/mpstat
  • 示例:```
    top -o %CPU # 按CPU使用率排序
    mpstat -P ALL 2 # 每2秒显示所有CPU核心使用情况
    sar -u 1 5 # 每1秒采样一次CPU,共5次(需安装sysstat)

    
    
    
内存监控
free/vmstat
  • 示例:```
    free -h # 人类可读格式显示内存使用
    free -m # 以MB为单位显示
    vmstat 2 # 每2秒显示内存和系统状态
    vmstat -s # 显示内存统计摘要

    
    
    
磁盘I/O监控
iostat/iotop
  • 示例:```
    iostat -x 2 # 每2秒显示详细I/O统计
    iostat -p sda 2 # 监控指定磁盘
    iotop # 实时监控进程I/O(需安装,按q退出)

    
    
    
网络监控
iftop/nload
  • 示例:```
    sudo iftop -i eth0 # 监控eth0接口带宽
    sudo nload # 实时监控网络流量(分上传/下载)

    
    
    

8. 文本处理

文本查看/编辑
vi/vim
  • 概念:强大的文本编辑器

  • 常用操作:```
    vim file.txt # 打开文件

    编辑模式:按i进入插入模式

    保存退出:Esc -> :wq -> 回车

    不保存退出:Esc -> :q! -> 回车

    查找:/pattern -> 回车(n下一个,N上一个)

    替换::%s/old/new/g -> 回车(全局替换)

    
    
    
nano
  • 概念:简单易用的文本编辑器

  • 示例:```
    nano file.txt # 打开文件(底部有操作提示)

    Ctrl+O保存,Ctrl+X退出,Ctrl+W搜索

    
    
    
文本搜索与过滤
grep/egrep
  • 概念:在文件中搜索指定模式的文本

  • 示例:```
    grep “error” file.log # 搜索包含"error"的行
    grep -i “Error” file.log # 忽略大小写
    grep -n “error” file.log # 显示行号
    grep -r “error” /var/log/ # 递归搜索目录
    grep -v “info” file.log # 排除包含"info"的行
    grep -E “error|warning” file.log # 搜索多个模式(egrep等价)

    
    
    
sed
  • 概念:流编辑器,用于文本替换和处理

  • 示例:```
    sed ‘s/old/new/g’ file.txt # 全局替换old为new(不修改原文件)
    sed -i ‘s/old/new/g’ file.txt # 直接修改原文件
    sed ‘/^#/d’ file.txt # 删除注释行(以#开头的行)
    sed ‘10d’ file.txt # 删除第10行
    sed -n ‘5,10p’ file.txt # 只显示第5-10行

    
    
    
awk
  • 概念:文本处理语言,用于数据提取和报告

  • 示例:```
    awk ‘{print $1, $3}’ data.txt # 打印第1和第3列
    awk -F: ‘{print $1}’ /etc/passwd # 以:为分隔符,打印第1列(用户名)
    awk ‘$3 > 1000 {print $0}’ /etc/passwd # 第3列(UID)大于1000的行
    awk ‘{sum += $2} END {print sum}’ data.txt # 计算第2列的总和

    
    
    
文本处理工具链
cut/sort/uniq/wc
  • 示例:```

    提取第1列,排序,去重,统计数量

    cut -d: -f1 /etc/passwd | sort | uniq | wc -l

    统计访问日志中IP出现次数并排序

    awk ‘{print $1}’ access.log | sort | uniq -c | sort -nr | head -10

    查找占用空间最大的前10个文件

    du -ah /path | sort -rh | head -10

    
    
    

9. 实用技巧

命令别名
  • 概念:为常用命令创建简短别名

  • 示例:```
    alias ll=‘ls -lha’ # 临时别名(当前shell有效)
    alias grep=‘grep --color=auto’ # 彩色显示grep结果

    永久别名(添加到/.bashrc或/.bash_profile)

    echo “alias ll=‘ls -lha’” >> ~/.bashrc
    source ~/.bashrc # 使别名立即生效

    
    
    
管道与重定向
  • 概念:将命令连接起来或重定向输入输出

  • 示例:```

    管道:将前一个命令输出作为后一个命令输入

    ps aux | grep nginx | wc -l #统计nginx进程数

    重定向:>覆盖,>>追加

    command > output.txt # 标准输出重定向到文件
    command >> output.txt # 追加到文件
    command 2> error.txt # 错误输出重定向
    command &> all_output.txt # 所有输出重定向
    command < input.txt # 从文件读取输入

    组合使用

    grep “error” /var/log/* 2>/dev/null | tee errors.log # 查找错误并保存到文件同时显示

    
    
    
后台任务与进程管理
  • 示例:```

    后台运行命令

    nohup ./long_running_script.sh & # 忽略挂断信号,后台运行
    nohup command > output.log 2>&1 & # 重定向输出到日志文件

    终端复用(screen/tmux)

    screen -S session1 # 创建会话
    screen -ls # 列出会话
    screen -r session1 # 恢复会话
    Ctrl+A+D # 分离会话

    tmux new -s session1 # 创建tmux会话
    tmux attach -t session1 # 恢复会话
    Ctrl+B+D # 分离tmux会话

    
    
    
文件查找与处理
find
  • 概念:强大的文件查找工具

  • 示例:```
    find / -name “.log" # 按名称查找
    find /var -size +100M # 查找大于100MB的文件
    find . -mtime -7 # 查找7天内修改的文件
    find . -type d -name “.git” # 查找类型为目录且名称为.git的
    find / -user root -perm 600 # 查找所有者为root且权限为600的文件
    find . -name "
    .txt” -exec rm {} ; # 查找并删除.txt文件(谨慎使用)
    find . -name “*.tmp” -delete # 查找并删除.tmp文件

    
    
    
locate
  • 概念:快速文件查找(基于数据库)

  • 示例:```
    locate “*.log” # 快速查找.log文件
    sudo updatedb # 更新数据库(默认每天自动更新)
    locate -i “readme.md” # 忽略大小写查找

    
    
    
压缩与解压
  • 示例:```

    tar

    tar -czvf archive.tar.gz dir/ # 打包并gzip压缩
    tar -xzvf archive.tar.gz # 解压tar.gz
    tar -cjvf archive.tar.bz2 dir/ # 打包并bzip2压缩
    tar -xjvf archive.tar.bz2 # 解压tar.bz2

    zip

    zip -r archive.zip dir/ # 创建zip压缩包
    unzip archive.zip # 解压zip

    gzip

    gzip file.txt # 压缩文件(生成file.txt.gz)
    gunzip file.txt.gz # 解压gzip文件

    
    
    
系统信息查看
  • 示例:```
    uname -a # 查看内核版本和系统信息
    cat /etc/redhat-release # 查看CentOS版本
    lsb_release -a # 查看系统版本(需安装redhat-lsb)
    hostnamectl # 查看主机信息
    lscpu # 查看CPU信息
    free -h # 内存信息
    df -h # 磁盘信息
    uptime # 系统运行时间和负载

    
    
    

10. 附录

常用快捷键
快捷键功能描述
Ctrl+C终止当前命令
Ctrl+Z暂停当前命令(可通过fg恢复)
Ctrl+D退出当前shell(等价于exit)
Ctrl+L清屏(等价于clear)
Ctrl+A光标移到行首
Ctrl+E光标移到行尾
Ctrl+U删除光标前所有字符
Ctrl+K删除光标后所有字符
Ctrl+W删除光标前一个单词
Tab自动补全命令或路径
Ctrl+R搜索命令历史
通配符
通配符含义
*匹配任意字符序列(0个或多个)
?匹配任意单个字符
[abc]匹配a、b或c中的任意一个
[a-z]匹配任意小写字母
[0-9]匹配任意数字
[^abc]匹配除a、b、c外的任意字符
{file1,file2}匹配file1或file2
特殊符号
符号含义
~当前用户家目录
.当前目录
父目录
/根目录
$VAR引用变量VAR的值
#注释符号(一行中#后的内容被忽略)
&将命令放入后台执行
;分隔多个命令,顺序执行
&&逻辑与,前一个命令成功才执行后一个
>输出重定向(覆盖)
>>输出重定向(追加)
<输入重定向
2>错误输出重定向
*通配符,匹配任意字符序列
文件操作扩展
rename
  • 概念:批量重命名文件,支持字符串替换

  • 示例:```
    rename ‘s/old/new/’ *.txt # 将所有.txt文件中的"old"替换为"new"
    rename ‘y/A-Z/a-z/’ *.TXT # 将所有.TXT文件转为小写后缀

    
    
    
tree
  • 概念:以树状图显示目录结构

  • 示例:```
    tree # 显示当前目录树
    tree -L 2 # 限制显示深度为2级
    tree -d # 只显示目录

    
    
    
chattr/lsattr
  • 概念:修改/查看文件扩展属性(如防删除、只读)

  • 示例:```
    chattr +i important.txt # 设置文件不可修改、删除
    chattr -i important.txt # 取消不可修改属性
    lsattr important.txt # 查看文件扩展属性

    
    
    
basename/dirname
  • 概念:提取文件名或目录名

  • 示例:```
    basename /path/to/file.txt # 输出:file.txt
    dirname /path/to/file.txt # 输出:/path/to

    
    
    
文本处理扩展
rev
  • 概念:反转文件内容的每行字符

  • 示例:```
    rev file.txt # 反转显示file.txt内容
    echo “hello” | rev # 输出:olleh

    
    
    
iconv/dos2unix
  • 概念:文件编码转换/Windows换行符转Unix

  • 示例:```
    iconv -f GBK -t UTF-8 input.txt > output.txt # GBK转UTF-8
    dos2unix winfile.txt # 将CRLF转换为LF格式

    
    
    
vimdiff
  • 概念:可视化文件比较工具

  • 示例:```
    vimdiff file1.txt file2.txt # 分屏显示两个文件差异

    
    
    
系统监控高级命令
dmesg
  • 概念:查看内核启动信息和硬件诊断

  • 示例:```
    dmesg | grep -i error # 查找内核错误信息
    dmesg | less # 分页查看所有启动信息

    
    
    
sar
  • 概念:系统活动报告,收集历史性能数据

  • 示例:```
    sar -u 5 3 # 每5秒采样一次CPU,共3次
    sar -r 1 5 # 监控内存使用
    sar -n DEV 2 # 监控网络接口流量

    
    
    
strace/ltrace
  • 概念:跟踪进程系统调用/库函数调用

  • 示例:```
    strace -p 1234 # 跟踪PID 1234的系统调用
    ltrace ls # 跟踪ls命令的库函数调用

    
    
    
网络诊断工具
nmap
  • 概念:网络端口扫描和服务探测

  • 示例:```
    nmap 192.168.1.1 # 扫描目标主机开放端口
    nmap -p 1-1000 192.168.1.1 # 扫描指定端口范围
    nmap -sV 192.168.1.1 # 探测服务版本

    
    
    
tcpdump
  • 概念:网络抓包工具,分析网络流量

  • 示例:```
    tcpdump -i eth0 port 80 # 抓取eth0上80端口流量
    tcpdump -w capture.pcap # 保存抓包到文件
    tcpdump -r capture.pcap # 读取保存的抓包文件

    
    
    
磁盘管理高级命令
parted
  • 概念:支持GPT分区的磁盘分区工具(大于2TB磁盘)

  • 示例:```
    parted /dev/sdb # 交互式分区/dev/sdb
    parted -s /dev/sdb mklabel gpt # 非交互式创建GPT标签
    parted -s /dev/sdb mkpart primary 0% 100% # 创建整个磁盘分区

    
    
    
swapon/swapoff
  • 概念:启用/关闭交换分区

  • 示例:```
    swapon /dev/sdb1 # 启用交换分区
    swapon -s # 查看所有活动交换分区
    swapoff /dev/sdb1 # 关闭交换分区

    
    
    
实用工具
watch
  • 概念:周期性执行命令并全屏显示结果

  • 示例:```
    watch -n 1 ‘df -h’ # 每秒刷新磁盘使用情况
    watch -d ‘ls -l’ # 高亮显示文件变化

    
    
    
bc
  • 概念:高精度计算器工具

  • 示例:```
    bc -l # 启动交互式计算器(-l加载数学库)
    echo “2^32” | bc # 计算2的32次方
    echo “scale=2; 10/3” | bc # 设置小数位数计算除法

    
    
    
type
  • 概念:判断命令类型(内置/外部/别名)

  • 示例:```
    type cd # 显示cd是shell内置命令
    type ls # 显示ls是别名或外部命令路径
    type -t python # 仅显示类型(alias/builtin/file)

    
    
    
SELinux管理
getenforce/setenforce
  • 概念:查看/临时切换SELinux模式

  • 示例:```
    getenforce # 查看当前模式(Enforcing/Permissive/Disabled)
    setenforce 0 # 临时切换到Permissive模式
    setenforce 1 # 切换回Enforcing模式

    
    
    
永久修改SELinux配置
  • 概念:通过配置文件修改SELinux模式

  • 示例:```
    sudo vim /etc/selinux/config # 修改配置文件

    设置SELINUX=disabled 禁用SELinux(需重启)

    
    
    
文件上传下载工具
sz/rz
  • 概念:基于ZModem协议的文件传输工具

  • 示例:```
    yum install -y lrzsz # 安装lrzsz工具
    sz filename # 下载文件到本地
    rz # 上传本地文件到服务器(弹出文件选择窗口)

    
    
    
curl高级用法
REST API交互
  • 概念:使用curl发送HTTP请求测试API

  • 示例:```

    POST请求

    curl -H “Content-Type: application/json” -X POST -d ‘{“name”:“test”}’ http://api.example.com

    GET请求带参数

    curl “http://api.example.com/data?param1=value1&param2=value2”

    带认证信息

    curl -u username:password http://api.example.com

    
    
    
文件下载与限速
  • 示例:```
    curl -O http://example.com/file.iso # 下载文件
    curl --limit-rate 100k http://example.com/largefile.iso # 限速100KB/s

    
    
    
进程管理高级命令
pgrep/pkill
  • 概念:通过进程名查找/终止进程

  • 示例:```
    pgrep nginx # 查找nginx进程PID
    pkill -9 nginx # 终止所有nginx进程
    pgrep -u root # 查找root用户的进程

    
    
    
ipcs/ipcrm
  • 概念:管理进程间通信(IPC)资源
  • 示例:```
    ipcs -m # 显示共享内存
    ipcs -s # 显示信号量
    ipcrm -m shmid # 删除指定ID的共享内存
    
    
    
包管理差异(CentOS vs Ubuntu)
RPM包管理(CentOS)
  • 概念:RedHat系系统的包管理工具

  • 示例:```

    安装RPM包

    rpm -ivh package.rpm

    升级RPM包

    rpm -Uvh package.rpm

    卸载RPM包

    rpm -e package

    查询已安装包

    rpm -qa | grep package

    
    
    
DPKG包管理(Ubuntu)
  • 概念:Debian系系统的包管理工具

  • 示例:```

    安装DEB包

    dpkg -i package.deb

    卸载DEB包

    dpkg -r package

    查看包信息

    dpkg -s package

    列出包内容

    dpkg -L package

    
    
    
源码编译安装
  • 概念:从源码编译安装软件的通用流程

  • 示例:```

    安装编译工具(CentOS)

    yum groupinstall “Development Tools” -y

    安装编译工具(Ubuntu)

    apt install build-essential -y

    通用编译流程

    wget https://example.com/source.tar.gz
    tar -zxvf source.tar.gz
    cd source-dir
    ./configure --prefix=/usr/local/app
    make
    make install

    
    
    

12. 在线下载工具

wget高级用法
  • 概念:功能强大的命令行下载工具

  • 示例:```

    断点续传

    wget -c https://example.com/largefile.iso

    后台下载

    wget -b https://example.com/file.tar.gz

    限速下载

    wget --limit-rate=200k https://example.com/file.zip

    指定User-Agent

    wget -U “Mozilla/5.0” https://example.com

    
    
    
curl高级用法
  • 概念:支持多种协议的URL传输工具

  • 示例:```

    下载文件并重命名

    curl -o newname.zip https://example.com/file.zip

    跟随重定向

    curl -L https://example.com/redirect

    发送表单数据

    curl -d “username=admin&password=123” https://example.com/login

    带Cookie请求

    curl -b “sessionid=xxx” https://example.com/profile

    
    
    
axel多线程下载
  • 概念:多线程下载工具,加速下载速度

  • 示例:```

    安装(CentOS)

    yum install axel -y

    安装(Ubuntu)

    apt install axel -y

    使用10线程下载

    axel -n 10 https://example.com/largefile.iso

    
    
    

13. 压缩解压大全

支持多种格式的压缩解压命令
格式压缩命令解压命令
.tartar -cvf file.tar dir/tar -xvf file.tar
.tar.gztar -czvf file.tar.gz dir/tar -xzvf file.tar.gz
.tar.bz2tar -cjvf file.tar.bz2 dir/tar -xjvf file.tar.bz2
.tar.xztar -cJvf file.tar.xz dir/tar -xJvf file.tar.xz
.zipzip -r file.zip dir/unzip file.zip
.rarrar a file.rar dir/rar x file.rar
.7z7z a file.7z dir/7z x file.7z
安装额外压缩工具
# 安装rar(CentOS)
wget https://www.rarlab.com/rar/rarlinux-x64.tar.gz
tar -zxvf rarlinux-x64.tar.gz
cd rar
make install

# 安装p7zip(Ubuntu)
apt install p7zip-full -y

# 安装p7zip(CentOS)
yum install p7zip p7zip-plugins -y

高级压缩示例
# 压缩时排除特定文件
tar --exclude=*.log -czvf backup.tar.gz /data

# 分卷压缩
split -b 100M largefile.tar.gz "largefile.part-"

# 合并分卷并解压
cat largefile.part-* | tar -xzvf -

14. 性能监控高级命令

系统性能综合监控
sar详细用法
  • 概念:系统活动报告工具,收集和报告系统活动

  • 示例:```

    安装sysstat(包含sar)

    yum install sysstat -y # CentOS
    apt install sysstat -y # Ubuntu

    监控CPU使用率(每5秒一次,共3次)

    sar -u 5 3

    监控内存使用

    sar -r 1 5

    监控磁盘I/O

    sar -b 2 10

    监控网络流量

    sar -n DEV 1 5

    
    
    
Java内存监控工具
JDK自带工具
  • 概念:JDK提供的Java进程监控工具集

  • 示例:```

    查看Java进程

    jps -l

    查看JVM内存使用

    jstat -gc 12345 5000 10 # PID 12345,每5秒一次,共10次

    生成堆转储文件

    jmap -dump:format=b,file=heapdump.hprof 12345

    查看线程状态

    jstack 12345 > threaddump.txt

    查看JVM参数

    jinfo -flags 12345

    
    
    
第三方Java监控工具
# 安装jconsole(图形化,需X11转发)
yum install java-1.8.0-openjdk-devel -y  # 包含jconsole

# 安装arthas(阿里开源Java诊断工具)
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar  # 交互式选择进程

15. Ubuntu与CentOS命令差异对比

包管理差异
操作CentOSUbuntu
更新源yum updateapt update
安装包yum install pkgapt install pkg
卸载包yum remove pkgapt remove pkg
搜索包yum search pkgapt search pkg
清理缓存yum clean allapt clean
服务管理差异
操作CentOSUbuntu
启动服务systemctl start servicesystemctl start service
停止服务systemctl stop servicesystemctl stop service
开机启动systemctl enable servicesystemctl enable service
查看状态systemctl status servicesystemctl status service
服务列表systemctl list-unit-filessystemctl list-unit-files
防火墙差异
操作CentOS (firewalld)Ubuntu (ufw)
查看状态firewall-cmd --stateufw status
启用systemctl enable --now firewalldufw enable
开放端口firewall-cmd --add-port=80/tcp --permanentufw allow 80/tcp
关闭端口firewall-cmd --remove-port=80/tcp --permanentufw deny 80/tcp
重载规则firewall-cmd --reloadufw reload

16. iptables详细操作

基础规则管理
  • 概念:Linux内核防火墙,通过规则链过滤网络流量

  • 示例:```

    查看所有规则

    iptables -L -n --line-numbers

    清空所有规则

    iptables -F

    保存规则(CentOS)

    service iptables save

    保存规则(Ubuntu)

    iptables-save > /etc/iptables/rules.v4

    恢复规则(Ubuntu)

    iptables-restore < /etc/iptables/rules.v4

    
    
    
常用规则配置
# 允许SSH连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP和HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 阻止特定IP
iptables -A INPUT -s 192.168.1.100 -j DROP

# 端口转发(将80端口转发到8080)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

规则持久化
# CentOS持久化
yum install iptables-services -y
systemctl enable iptables
service iptables save

# Ubuntu持久化
apt install iptables-persistent -y
netfilter-persistent save
netfilter-persistent reload

17. 进程管理高级操作

进程查找与过滤
  • 概念:根据不同条件查找进程

  • 示例:```

    按名称查找进程

    pgrep nginx
    ps aux | grep nginx

    按端口查找进程

    lsof -i:8080
    netstat -tulnlp | grep 8080
    ss -tulnlp | grep 8080

    按用户查找进程

    ps -u root

    按CPU/内存使用率排序

    ps aux --sort=-%cpu | head -10 # CPU最高的10个进程
    ps aux --sort=-%mem | head -10 # 内存最高的10个进程

    
    
    
进程终止操作
  • 概念:终止进程的不同方式和信号

  • 示例:```

    正常终止(SIGTERM - 15)

    kill 1234

    强制终止(SIGKILL - 9)

    kill -9 1234

    重启进程(SIGHUP - 1)

    kill -1 1234

    终止指定名称的所有进程

    pkill nginx
    killall nginx

    终止占用端口的进程

    fuser -k 8080/tcp

    
    
    
端口占用解决完整流程
# 1. 查找占用端口的进程
lsof -i:8080
# 或
netstat -tulnlp | grep 8080

# 2. 终止进程(假设PID为1234)
kill -9 1234

# 3. 强制释放端口(如果kill后端口仍被占用)
fuser -k 8080/tcp

# 4. 验证端口是否释放
ss -tuln | grep 8080

18. 线上问题排查方法论

系统资源瓶颈排查
CPU瓶颈
# 查看CPU使用率
top  # 按P排序
htop  # 更直观的CPU使用展示

# 查看每个CPU核心的使用情况
mpstat -P ALL 1

# 查看进程线程CPU占用
ps -Lp 1234 -o %cpu,pid,tid,comm  # 查看进程1234的线程CPU占用

内存瓶颈
# 查看内存使用概况
free -h
vmstat 1

# 查看进程内存占用
top  # 按M排序
ps aux --sort=-%mem | head -10

# 查看内存泄漏嫌疑
valgrind --leak-check=full ./program  # C程序内存泄漏检测
jmap -histo:live 1234  # Java进程对象统计

磁盘I/O瓶颈
# 查看磁盘I/O负载
iostat -x 1
iotop  # 按IO使用率排序进程

# 查看磁盘空间
df -h
du -sh /var/* | sort -rh  # 按大小排序目录

# 查找大文件
find / -type f -size +100M -exec du -h {} \;

网络问题排查
# 检查网络连接
netstat -an | grep ESTABLISHED  # 已建立连接
ss -ti  # TCP连接详情

# 抓包分析
tcpdump -i eth0 port 80 -w capture.pcap
tcpdump -r capture.pcap host 192.168.1.1

# 路由追踪
traceroute example.com
mtr example.com  # 结合ping和traceroute

# DNS排查
nslookup example.com
dig example.com
host example.com

日志分析技巧
# 实时跟踪日志
tail -f /var/log/application.log

# 查找错误日志
grep -i error /var/log/application.log
grep -iE "error|exception" /var/log/application.log

# 按时间范围过滤日志
sed -n '/2023-10-01 10:00:00/,/2023-10-01 11:00:00/p' /var/log/application.log

# 统计错误出现次数
grep -i error /var/log/application.log | wc -l

# 分析访问日志(按IP统计访问次数)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

19. 防火墙完整操作指南

firewalld(CentOS)详细配置
# 安装与启动
yum install firewalld -y
systemctl enable --now firewalld

# 基本操作
firewall-cmd --state  # 查看状态
firewall-cmd --reload  # 重载规则
firewall-cmd --complete-reload  # 完全重启(中断连接)

# 管理端口
firewall-cmd --add-port=80/tcp --permanent  # 永久开放80端口
firewall-cmd --remove-port=80/tcp --permanent  # 永久关闭80端口
firewall-cmd --list-ports  # 查看开放端口

# 管理服务
firewall-cmd --add-service=http --permanent  # 开放HTTP服务
firewall-cmd --list-services  # 查看开放服务

# 端口转发
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.100:toport=8080 --permanent

# 区域管理
firewall-cmd --get-active-zones  # 查看活动区域
firewall-cmd --zone=public --add-interface=eth0 --permanent  # 接口加入区域

ufw(Ubuntu)详细配置
# 安装与启动
apt install ufw -y
ufw enable  # 启用防火墙
ufw disable  # 禁用防火墙

# 基本操作
ufw status verbose  # 详细状态
ufw reload  # 重载规则

# 管理端口
ufw allow 80/tcp  # 允许80/tcp
ufw deny 22/udp  # 拒绝22/udp
ufw delete allow 80/tcp  # 删除规则

# 管理服务
ufw allow ssh  # 允许SSH服务
ufw allow http  # 允许HTTP服务

# 高级规则(允许特定IP)
ufw allow from 192.168.1.0/24 to any port 3306
ufw deny from 10.0.0.1 to any

# 端口转发(需先启用ipv4转发)
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sysctl -p
ufw route allow proto tcp from any to any port 8080 to 192.168.1.100 port 80

20. 常用服务运维命令

Redis运维
# 安装(CentOS)
yum install redis -y
systemctl enable --now redis

# 安装(Ubuntu)
apt install redis-server -y

# 基本操作
redis-cli ping  # 测试连接
redis-cli info  # 查看信息
redis-cli keys "*"  # 列出所有键
redis-cli get key  # 获取键值
redis-cli set key value  # 设置键值

# 持久化操作
redis-cli save  # 手动触发RDB持久化
redis-cli bgsave  # 后台执行RDB持久化
redis-cli config set appendonly yes  # 启用AOF

# 备份与恢复
cp /var/lib/redis/dump.rdb /backup/  # 备份RDB文件
redis-cli FLUSHALL  # 清空数据库(谨慎操作)
# 恢复:停止Redis,替换dump.rdb,启动Redis

# 集群管理
redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 ...
redis-cli --cluster info 192.168.1.1:6379

MySQL运维
# 安装(CentOS)
yum install mysql-server -y
systemctl enable --now mysqld

# 安装(Ubuntu)
apt install mysql-server -y

# 基本操作
mysql -u root -p  # 登录
mysqladmin -u root -p status  # 查看状态
mysql -e "show databases;"  # 执行SQL命令

# 备份与恢复
mysqldump -u root -p --all-databases > all_db_backup.sql  # 全库备份
mysqldump -u root -p dbname > dbname_backup.sql  # 单库备份
mysql -u root -p dbname < dbname_backup.sql  # 恢复数据库

# 主从复制配置
# 主库:
vi /etc/my.cnf
server-id=1
log_bin=mysql-bin
binlog_do_db=testdb

# 从库:
vi /etc/my.cnf
server-id=2
replicate_do_db=testdb

# 从库连接主库:
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G

Java项目部署与监控
# 运行Java项目
java -jar app.jar
nohup java -jar app.jar > app.log 2>&1 &  # 后台运行

# 设置JVM参数
java -Xms512m -Xmx1024m -jar app.jar

# 查看Java进程详细信息
jinfo -flags 1234  # 查看JVM参数
jstat -gcutil 1234 1000  # 每1秒输出GC信息

# 分析堆内存
jmap -heap 1234  # 查看堆配置及使用情况
jmap -dump:format=b,file=heap.hprof 1234  # 生成堆转储文件
jhat heap.hprof  # 启动堆分析服务器(访问7000端口)

# 查看线程状态
jstack 1234 > threads.txt
grep -A 10 "BLOCKED" threads.txt  # 查找阻塞线程

21. crontab定时任务完全指南

基本格式与语法
* * * * * command
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 6) (星期天=0或7)
| | | +------- 月份 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)

特殊符号用法
符号含义示例
*所有值* * * * * 每分钟
,分隔多个值0 8,18 * * * 每天8点和18点
-范围0 9-17 * * 1-5 工作日9到17点每小时
/间隔*/15 * * * * 每15分钟
@reboot启动时@reboot /script/start.sh
@daily每天@daily /script/backup.sh
常用示例
# 编辑定时任务
crontab -e

# 查看定时任务
crontab -l

# 删除定时任务
crontab -r

# 每分钟执行
*/1 * * * * /path/to/script.sh

# 每天凌晨3点执行
0 3 * * * /path/to/backup.sh

# 每周日23点执行
0 23 * * 0 /path/to/cleanup.sh

# 每月1号和15号中午12点执行
0 12 1,15 * * /path/to/report.sh

# 工作日8:00-18:00每小时执行
0 8-18 * * 1-5 /path/to/check.sh

# 每15分钟执行并输出日志
*/15 * * * * /path/to/script.sh >> /var/log/script.log 2>&1

定时任务管理与日志
# 查看cron服务状态
systemctl status crond  # CentOS
systemctl status cron   # Ubuntu

# 查看cron日志(CentOS)
tail -f /var/log/cron

# 查看cron日志(Ubuntu)
grep CRON /var/log/syslog

# 设置定时任务权限(限制用户)
vi /etc/cron.allow  # 仅允许文件中列出的用户使用crontab
vi /etc/cron.deny   # 禁止文件中列出的用户使用crontab

# 定时任务环境变量问题解决
# 在脚本中使用绝对路径或在crontab中定义PATH
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/1 * * * * /path/to/script.sh

22. 系统状态全面监控命令

系统运行状态
uptime详细解读
uptime
# 输出示例:15:45:30 up 2 days, 3:10, 2 users, load average: 0.88, 0.65, 0.50
# 解读:当前时间 运行时间 用户数 1/5/15分钟负载

# 查看更详细的启动时间
who -b
last reboot

系统信息综合查看
# 查看内核版本
uname -a
cat /proc/version

# 查看操作系统版本
cat /etc/redhat-release  # CentOS
cat /etc/lsb-release     # Ubuntu

# 查看硬件信息
lscpu  # CPU信息
lsmem  # 内存信息
lsblk  # 磁盘信息

# 查看系统资源概览
inxi -Fxz  # 需要安装:yum install inxi / apt install inxi

磁盘与文件系统
高级磁盘监控
# 查看磁盘I/O性能
iostat -x 1
iotop -oP  # 只显示有I/O活动的进程

# 文件系统详细信息
df -Th  # 显示文件系统类型
blkid   # 查看块设备UUID和类型

# 磁盘分区详情
fdisk -l /dev/sda
parted /dev/sda print

# 查找大文件和目录
du -Sh /var | sort -rh | head -10  # 目录大小排序
find / -type f -size +100M -print0 | xargs -0 du -h | sort -rh  # 大文件查找

网络状态深度分析
# 网络连接统计
ss -s  # 连接摘要
ss -tuln  # 监听TCP/UDP端口
ss -ti  # TCP连接详情(包含RTT信息)

# 网络流量实时监控
iftop -i eth0  # 按带宽排序
nload  # 分上下行显示流量

# 网络接口详细信息
ethtool eth0  # 链路状态、速度等
ip -s link show eth0  # 接口统计信息

# 路由表和ARP缓存
ip route show
arp -n

这两年,IT行业面临经济周期波动与AI产业结构调整的双重压力,确实有很多运维与网络工程师因企业缩编或技术迭代而暂时失业。

很多人都在提运维网工失业后就只能去跑滴滴送外卖了,但我想分享的是,对于运维人员来说,即便失业以后仍然有很多副业可以尝试。

运维副业方向

运维,千万不要再错过这些副业机会!

第一个是知识付费类副业:输出经验打造个人IP

在线教育平台讲师

操作路径:在慕课网、极客时间等平台开设《CCNA实战》《Linux运维从入门到精通》等课程,或与培训机构合作录制专题课。
收益模式:课程销售分成、企业内训。

技术博客与公众号运营

操作路径:撰写网络协议解析、故障排查案例、设备评测等深度文章,通过公众号广告、付费专栏及企业合作变现。
收益关键:每周更新2-3篇原创,结合SEO优化与社群运营。

第二个是技术类副业:深耕专业领域变现

企业网络设备配置与优化服务

操作路径:为中小型企业提供路由器、交换机、防火墙等设备的配置调试、性能优化及故障排查服务。可通过本地IT服务公司合作或自建线上接单平台获客。
收益模式:按项目收费或签订年度维护合同。

远程IT基础设施代维

操作路径:通过承接服务器监控、日志分析、备份恢复等远程代维任务。适合熟悉Zabbix、ELK等技术栈的工程师。
收益模式:按工时计费或包月服务。

网络安全顾问与渗透测试

操作路径:利用OWASP Top 10漏洞分析、Nmap/BurpSuite等工具,为企业提供漏洞扫描、渗透测试及安全加固方案。需考取CISP等认证提升资质。
收益模式:单次渗透测试报告收费;长期安全顾问年费。

比如不久前跟我一起聊天的一个粉丝,他自己之前是大四实习的时候做的运维,发现运维7*24小时待命受不了,就准备转网安,学了差不多2个月,然后开始挖漏洞,光是补天的漏洞奖励也有个四五千,他说自己每个月的房租和饭钱就够了。

在这里插入图片描述

为什么我会推荐你网安是运维人员的绝佳副业&转型方向?

1.你的经验是巨大优势: 你比任何人都懂系统、网络和架构。漏洞挖掘、内网渗透、应急响应,这些核心安全能力本质上是“攻击视角下的运维”。你的运维背景不是从零开始,而是降维打击。

2.越老越吃香,规避年龄危机: 安全行业极度依赖经验。你的排查思路、风险意识和对复杂系统的理解能力,会随着项目积累而愈发珍贵,真正做到“姜还是老的辣”。

3.职业选择极其灵活: 你可以加入企业成为安全专家,可以兼职“挖洞“获取丰厚奖金,甚至可以成为自由顾问。这种多样性为你提供了前所未有的抗风险能力。

4.市场需求爆发,前景广阔: 在国家级政策的推动下,从一线城市到二三线地区,安全人才缺口正在急剧扩大。现在布局,正是抢占未来先机的黄金时刻。

在这里插入图片描述

运维转行学习路线

在这里插入图片描述

(一)第一阶段:网络安全筑基

1. 阶段目标

你已经有运维经验了,所以操作系统、网络协议这些你不是零基础。但要学安全,得重新过一遍——只不过这次我们是带着“安全视角”去学。

2. 学习内容

**操作系统强化:**你需要重点学习 Windows、Linux 操作系统安全配置,对比运维工作中常规配置与安全配置的差异,深化系统安全认知(比如说日志审计配置,为应急响应日志分析打基础)。

**网络协议深化:**结合过往网络协议应用经验,聚焦 TCP/IP 协议簇中的安全漏洞及防护机制,如 ARP 欺骗、TCP 三次握手漏洞等(为 SRC 漏扫中协议层漏洞识别铺垫)。

**Web 与数据库基础:**补充 Web 架构、HTTP 协议及 MySQL、SQL Server 等数据库安全相关知识,了解 Web 应用与数据库在网安中的作用。

**编程语言入门:**学习 Python 基础语法,掌握简单脚本编写,为后续 SRC 漏扫自动化脚本开发及应急响应工具使用打基础。

**工具实战:**集中训练抓包工具(Wireshark)、渗透测试工具(Nmap)、漏洞扫描工具(Nessus 基础版)的使用,结合模拟场景练习工具应用(掌握基础扫描逻辑,为 SRC 漏扫工具进阶做准备)。

(二)第二阶段:漏洞挖掘与 SRC 漏扫实战

1. 阶段目标

这阶段是真正开始“动手”了。信息收集、漏洞分析、工具联动,一样不能少。

熟练运用漏洞挖掘及 SRC 漏扫工具,具备独立挖掘常见漏洞及 SRC 平台漏扫实战能力,尝试通过 SRC 挖洞搞钱,不管是低危漏洞还是高危漏洞,先挖到一个。

2. 学习内容

信息收集实战:结合运维中对网络拓扑、设备信息的了解,强化基本信息收集、网络空间搜索引擎(Shodan、ZoomEye)、域名及端口信息收集技巧,针对企业级网络场景开展信息收集练习(为 SRC 漏扫目标筛选提供支撑)。

漏洞原理与分析:深入学习 SQL 注入、CSRF、文件上传等常见漏洞的原理、危害及利用方法,结合运维工作中遇到的类似问题进行关联分析(明确 SRC 漏扫重点漏洞类型)。

工具进阶与 SRC 漏扫应用:

  • 系统学习 SQLMap、BurpSuite、AWVS 等工具的高级功能,开展工具联用实战训练;

  • 专项学习 SRC 漏扫流程:包括 SRC 平台规则解读(如漏洞提交规范、奖励机制)、漏扫目标范围界定、漏扫策略制定(全量扫描 vs 定向扫描)、漏扫结果验证与复现;

  • 实战训练:使用 AWVS+BurpSuite 组合开展 SRC 平台目标漏扫,练习 “扫描 - 验证 - 漏洞报告撰写 - 平台提交” 全流程。
    SRC 实战演练:选择合适的 SRC 平台(如补天、CNVD)进行漏洞挖掘与漏扫实战,积累实战经验,尝试获取挖洞收益。

恭喜你,如果学到这里,你基本可以下班搞搞副业创收了,并且具备渗透测试工程师必备的「渗透技巧」、「溯源能力」,让你在黑客盛行的年代别背锅,工作实现升职加薪的同时也能开创副业创收!

如果你想要入坑黑客&网络安全,笔者给大家准备了一份:全网最全的网络安全资料包需要保存下方图片,微信扫码即可前往获取!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

(三)第三阶段:渗透测试技能学习

1. 阶段目标

全面掌握渗透测试理论与实战技能,能够独立完成渗透测试项目,编写规范的渗透测试报告,具备渗透测试工程师岗位能力,为护网红蓝对抗及应急响应提供技术支撑。

2. 学习内容

渗透测试核心理论:系统学习渗透测试流程、方法论及法律法规知识,明确渗透测试边界与规范(与红蓝对抗攻击边界要求一致)。

实战技能训练:开展漏洞扫描、漏洞利用、电商系统渗透测试、内网渗透、权限提升(Windows、Linux)、代码审计等实战训练,结合运维中熟悉的系统环境设计测试场景(强化红蓝对抗攻击端技术能力)。

工具开发实践:基于 Python 编程基础,学习渗透测试工具开发技巧,开发简单的自动化测试脚本(可拓展用于 SRC 漏扫自动化及应急响应辅助工具)。

报告编写指导:学习渗透测试报告的结构与编写规范,完成多个不同场景的渗透测试报告撰写练习(与 SRC 漏洞报告、应急响应报告撰写逻辑互通)。

(四)第四阶段:企业级安全攻防(含红蓝对抗)、应急响应

1. 阶段目标

掌握企业级安全攻防、护网红蓝对抗及应急响应核心技能,考取网安行业相关证书。

2. 学习内容

护网红蓝对抗专项:

  • 红蓝对抗基础:学习护网行动背景、红蓝对抗规则(攻击范围、禁止行为)、红蓝双方角色职责(红队:模拟攻击;蓝队:防御检测与应急处置);

  • 红队实战技能:强化内网渗透、横向移动、权限维持、免杀攻击等高级技巧,模拟护网中常见攻击场景;

  • 蓝队实战技能:学习安全设备(防火墙、IDS/IPS、WAF)联动防御配置、安全监控平台(SOC)使用、攻击行为研判与溯源方法;

  • 模拟护网演练:参与团队式红蓝对抗演练,完整体验 “攻击 - 检测 - 防御 - 处置” 全流程。
    应急响应专项:

  • 应急响应流程:学习应急响应 6 步流程(准备 - 检测 - 遏制 - 根除 - 恢复 - 总结),掌握各环节核心任务;

  • 实战技能:开展操作系统入侵响应(如病毒木马清除、异常进程终止)、数据泄露应急处置、漏洞应急修补等实战训练;

  • 工具应用:学习应急响应工具(如 Autoruns、Process Monitor、病毒分析工具)的使用,提升处置效率;

  • 案例复盘:分析真实网络安全事件应急响应案例(如勒索病毒事件),总结处置经验。
    其他企业级攻防技能:学习社工与钓鱼、CTF 夺旗赛解析等内容,结合运维中企业安全防护需求深化理解。

证书备考:针对网安行业相关证书考试内容(含红蓝对抗、应急响应考点)进行专项复习,参加模拟考试,查漏补缺。

运维转行网络攻防知识库分享

网络安全这行,不是会几个工具就能搞定的。你得有体系,懂原理,能实战。尤其是从运维转过来的,别浪费你原来的经验——你比纯新人强多了。

但也要沉得住气,别学了两天Web安全就觉得自己是黑客了。内网、域渗透、代码审计、应急响应,要学的还多着呢。

如果你真的想转,按这个路子一步步走,没问题。如果你只是好奇,我劝你再想想——这行要持续学习,挺累的,但也是真有意思。

关于如何学习网络安全,笔者也给大家整理好了全套网络安全知识库,需要的可以扫码获取!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

1、网络安全意识
在这里插入图片描述

2、Linux操作系统
在这里插入图片描述

3、WEB架构基础与HTTP协议
在这里插入图片描述

4、Web渗透测试
在这里插入图片描述

5、渗透测试案例分享
在这里插入图片描述

6、渗透测试实战技巧
在这里插入图片描述

7、攻防对战实战
在这里插入图片描述

8、CTF之MISC实战讲解
在这里插入图片描述

关于如何学习网络安全,笔者也给大家整理好了全套网络安全知识库,需要的可以扫码获取!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

本文已生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值