7.Linux系统管理

七言 2025-8-1 86 8/1

[toc]

Linux系统管理

linux文件归档压缩

zip -创建压缩文件

  • 将文件/目录压缩为ZIP格式

    语法

    zip [选项] 压缩包名.zip 文件或目录

  • 常用选项 选项 说明
    -r 递归压缩目录(必需,否则目录会被压缩为空文件夹)
    -e 为压缩文件设置密码保护(解压时需要密码)
    -x 压缩时排除指定的文件或目录
    -m 压缩后删除源文件(相当于“移动”到压缩包中)

    示例

    # 压缩文件
    $ zip archive.zip file1.txt file2.jpg
     
    # 压缩目录(递归)
    $ zip -r backup.zip /path/to/folder
     
    # 加密压缩(输入密码)
    $ zip -e secure.zip sensitive_data.txt
     
    # 将文件添加到现有压缩包
    $ zip archive.zip newfile.log

    unzip -解压文件

  • 解压ZIP文件

    语法

    unzip [选项] 压缩包名.zip

  • 常用选项 选项 说明
    -d 将解压后的文件存放到指定目录(默认为当前目录)
    -l 列出压缩包中的文件列表(不解压)
    -o 解压时覆盖已存在的文件(无需确认)

    示例

    # 解压到当前目录
    $ unzip archive.zip
     
    # 解压到指定目录
    $ unzip data.zip -d /target/path
     
    # 查看压缩包内容
    $ unzip -l archive.zip
     
    # 覆盖解压(不提示)
    $ unzip -o backup.zip
     
    # 解压加密文件(密码交互输入)
    $ unzip secure.zip

    tar -打包文件

  • 将多个文件/目录打包成一个 .tar 文件(或 .tar.gz、.tar.bz2 等压缩格式)

    语法

    tar [主选项] 归档文件名.tar [文件/目录...]

  • 常用选项 选项 说明
    -c 创建新的归档文件(打包)
    -x 解压缩归档文件
    -z 用 gzip 压缩/解压(.tar.gz 或 .tgz)
    -v 显示详细过程
    -f 指定归档文件名(必须放在最后,如 -f archive.tar)

    示例

  • 打包与压缩
    # 打包目录(不压缩)
    $ tar -cvf archive.tar /path/to/dir
     
    # 打包并gzip压缩(.tar.gz)
    $ tar -czvf archive.tar.gz /path/to/dir

  • 解压操作
    $ tar -xvf archive.tar          # 解压.tar
    $ tar -xzvf archive.tar.gz      # 解压.tar.gz
     
    # 解压到指定目录
    $ tar -xzvf archive.tar.gz -C /target/path
     
    # 解压单个文件
    $ tar -xzvf archive.tar.gz path/to/file.txt

    linux软件安装与更新

    rpm - 管理rpm软件包

  • 用于安装、查询、验证、更新和删除 .rpm 软件包

    语法

    rpm [选项] [操作] 软件包文件或包名

  • 软件包安装
    # 安装软件包
    $ rpm -ivh package.rpm
     
    # 忽略依赖强制安装(谨慎使用)
    $ rpm -ivh --nodeps package.rpm
     
    # 测试安装(不实际执行)
    $ rpm -ivh --test package.rpm

  • 软件包升级
    # 升级软件包(不存在则安装)
    $ rpm -Uvh package-2.0.rpm
     
    # 只升级已安装的包
    $ rpm -Fvh package-2.0.rpm

  • 软件包卸载
    # 卸载指定软件包
    $ rpm -e package_name
     
    # 强制卸载(忽略依赖)
    $ rpm -e --nodeps package_name

  • 软件包查询
    # 查询所有安装的软件包
    $ rpm -qa
    $ rpm -qa | grep httpd  # 过滤特定包
     
    # 查询软件包信息
    $ rpm -qi package_name
     
    # 查询软件包文件列表
    $ rpm -ql package_name
     
    # 查询文件所属包
    $ rpm -qf /path/to/file
     
    # 查询软件包依赖
    $ rpm -qR package_name
     
    # 查未安装包的信息
    $ rpm -qip path/to/package.rpm

    yum -包管理工具

  • 基于 RPM 包格式,但能自动解决依赖关系,支持从 仓库 安装、更新、卸载软件
  • 软件包安装与卸载
    # 安装软件包
    $ sudo yum install httpd
     
    # 安装多个软件包
    $ sudo yum install nginx php-fpm mysql-server
     
    # 重新安装软件包
    $ sudo yum reinstall httpd
     
    # 卸载软件包(保留依赖)
    $ sudo yum remove httpd
     
    # 卸载软件包及其未使用依赖
    $ sudo yum autoremove httpd

  • 软件包更新
    # 检查可用更新
    $ sudo yum check-update
     
    # 更新所有软件包
    $ sudo yum update
     
    # 更新单个软件包
    $ sudo yum update httpd
     
    # 仅安全更新
    $ sudo yum --security update

  • 查询与搜索
    # 搜索软件包
    $ yum search php
     
    # 列出所有可用软件包
    $ yum list available
     
    # 列出所有已安装软件包
    $ yum list installed
     
    # 查看软件包信息
    $ yum info nginx
     
    # 查看文件所属软件包
    $ yum provides */bin/bash

    linux定时任务

    crontab -定时执行任务

  • 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户
  • 在规定的时间执行命令或脚本
  • 时间字段后跟的要执行的命令或脚本
  • 编写任务时的时间字段
          • command_to_execute │ │ │ │ │ │ │ │ │ └─── 星期 (0-7, 0或7=周日) │ │ │ └───── 月份 (1-12) │ │ └─────── 每月中的天数 (1-31) │ └───────── 小时 (0-23) └─────────── 分钟 (0-59)
            
             
            > 示例
             
            ```bash
            # 基础时间模式
          • 每分钟运行

            0 # 每小时的第0分钟运行 15,45 # 每小时第15和45分钟运行 /10 # 每10分钟运行 0 0 # 每天00:00运行 0 9-17 1-5 # 工作日9:00-17:00每小时运行 0 0 1 1 * # 每年1月1日00:00运行

            
             
  • corntab基础命令 动作 命令
    编辑任务 crontab -e
    查看任务 crontab -l
    删除任务 crontab -r
    指定用户(root) crontab -u alice -e,不加-u参数的话,默认是当前用户

  • 实战步骤 打开编辑器 $ crontab -e # 首次使用会让你选择编辑器,内定的文字编辑器是vi 写入任务 # 每晚 23:55 打包日志 55 23 * * * tar -czf /backup/logs-$(date +%F).tar.gz /var/log 保存退出:编辑器会提示 crontab: installing new crontab,任务立即生效 查看任务 $ crontab -l
  • 查看cron的日志
    $ tail -f /var/log/cron

    linux系统服务

    linux进程

    ps -显示进程动态

  • 查看所有进程 ps auxps -ef aux 更直观,ef 更标准

    示例

    $ ps -ef|grep tomcat

    kill -杀掉进程

  • 用来终止指定的进程
  • kill -9 强制终止进程

    语法

    kill [选项] 
    <PID> ...

  • 获取PID的方式
    $ ps aux | grep nginx          # 查 PID 再 kill
    $ pgrep -f nginx               # 直接返回 PID
    $ pidof nginx                  # 简洁返回 PID
    $ lsof -ti :80                 # 根据端口找 PID

    linux系统服务

    systemctl -管理系统服务与状态

    语法

    systemctl [全局选项] <子命令> [unit名称...]
  • unit 可以是 服务(service)、挂载(mount)、设备(device)、套接字(socket) 等
  • 常用子命令 任务 命令 旧命令对照
    启动服务 sudo systemctl start nginx service nginx start
    停止服务 sudo systemctl stop nginx service nginx stop
    重启服务 sudo systemctl restart nginx service nginx restart
    重载配置 sudo systemctl reload nginx service nginx reload
    查看状态 systemctl status nginx service nginx status
    开机自启 sudo systemctl enable nginx chkconfig nginx on
    关闭自启 sudo systemctl disable nginx chkconfig nginx off
    查看是否自启 systemctl is-enabled nginx chkconfig --list nginx
    查看启动失败 systemctl --failed
    重新加载所有 unit sudo systemctl daemon-reload 修改 unit 文件后必须执行

    linux防火墙

  • 查看防火墙状态:systemctl status firewalld
  • 关闭防火墙:systemctl stop firewalld
  • 开机不启动防火墙:systemctl disable firewalld
  • 查看防火墙是否开机启动:systemctl is-enabled firewalld
- THE END -

七言

8月01日16:05

最后修改:2025年8月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论