7.Linux系统管理

七言 2025-8-1 11 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


*   **解压操作**
```bash
$ 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


*   **软件包升级**
```bash
# 升级软件包(不存在则安装)
$ rpm -Uvh package-2.0.rpm

# 只升级已安装的包
$ rpm -Fvh package-2.0.rpm
  • 软件包卸载
    
    # 卸载指定软件包
    $ rpm -e package_name

强制卸载(忽略依赖)

$ rpm -e --nodeps package_name


*   **软件包查询**
```bash
# 查询所有安装的软件包
$ 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


*   **软件包更新**
```bash
# 检查可用更新
$ 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)

示例

# 基础时间模式
*    *    *    *    *  # 每分钟运行
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 条评论