[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)
- 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 aux
或ps -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 -
最后修改:2025年8月1日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.qian777.cn/54.html
共有 0 条评论