136 lines
8.6 KiB
Markdown
136 lines
8.6 KiB
Markdown
<br>
|
||
<div align="center">
|
||
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ibG9nbyIgd2lkdGg9IjYyIiBoZWlnaHQ9IjY2IiB2aWV3Qm94PSIwIDAgNjIgNjYiPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuY2xzLTEgewogICAgICAgIGZpbGw6ICNmOGQxZDk7CiAgICAgIH0KCiAgICAgIC5jbHMtMSwgLmNscy0yLCAuY2xzLTMgewogICAgICAgIGZpbGwtcnVsZTogZXZlbm9kZDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjYmFiNWVjOwogICAgICB9CgogICAgICAuY2xzLTMgewogICAgICAgIGZpbGw6IHVybCgjbGluZWFyLWdyYWRpZW50KTsKICAgICAgfQogICAgPC9zdHlsZT4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iMTkuNDEiIHkxPSI2NiIgeDI9IjQ0LjU5IiB5Mj0iMTIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYmFiNWVjIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2YxYjdiZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHBhdGggaWQ9ImNscy0xIiBjbGFzcz0iY2xzLTEiIGQ9Ik0wLDE3TDMwLDBWMzlMMCw1N1YxN1oiLz4KICA8cGF0aCBpZD0iY2xzLTIiIGNsYXNzPSJjbHMtMiIgZD0iTTMzLDM5TDYyLDU2VjE3TDMzLDBWMzlaIi8+CiAgPHBhdGggaWQ9ImNscy0zIiBkYXRhLW5hbWU9ImNscy0zIiBjbGFzcz0iY2xzLTMiIGQ9Ik0xOCwyOEw0NiwxMlY0OUwxOCw2NlYyOFoiLz4KPC9zdmc+" width=100/>
|
||
</div>
|
||
<div align="center">
|
||
<h1>OUC Shell</h1>
|
||
</div>
|
||
<br>
|
||
<div align="center">
|
||
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNTMiIGhlaWdodD0iMTgiIHJvbGU9ImltZyIgYXJpYS1sYWJlbD0iT3JnYW5pemF0aW9uOiBJVHN0dWRpbyI+Cjx0aXRsZT5Pcmdhbml6YXRpb246IElUU3R1ZGlvPC90aXRsZT4KPGxpbmVhckdyYWRpZW50IGlkPSJzIiB4Mj0iMCIgeTI9IjEwMCUiPgo8c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iLjciLz4KPHN0b3Agb2Zmc2V0PSIuMSIgc3RvcC1jb2xvcj0iI2FhYSIgc3RvcC1vcGFjaXR5PSIuMSIvPgo8c3RvcCBvZmZzZXQ9Ii45IiBzdG9wLWNvbG9yPSIjMDAwIiBzdG9wLW9wYWNpdHk9Ii4zIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwMCIgc3RvcC1vcGFjaXR5PSIuNSIvPgo8L2xpbmVhckdyYWRpZW50PjxjbGlwUGF0aCBpZD0iciI+PHJlY3Qgd2lkdGg9IjE1MyIgaGVpZ2h0PSIxOCIgcng9IjQiIGZpbGw9IiNmZmYiLz4KPC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjcikiPjxyZWN0IHdpZHRoPSI5OCIgaGVpZ2h0PSIxOCIgZmlsbD0iIzU1NSIvPgo8cmVjdCB4PSI5OCIgd2lkdGg9IjU1IiBoZWlnaHQ9IjE4IiBmaWxsPSIjZjhkMWQ5Ii8+PHJlY3Qgd2lkdGg9IjE1MyIgaGVpZ2h0PSIxOCIgZmlsbD0idXJsKCNzKSIvPjwvZz4KPGcgZmlsbD0iI2ZmZiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1mYW1pbHk9IlZlcmRhbmEsR2VuZXZhLERlamFWdSBTYW5zLHNhbnMtc2VyaWYiIHRleHQtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iIGZvbnQtc2l6ZT0iMTEwIj4KPGltYWdlIHg9IjUiIHk9IjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgaHJlZj0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCcFpEMGliRzluYnlJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWlCNGJXeHVjenA0YkdsdWF6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNVGs1T1M5NGJHbHVheUlnZDJsa2RHZzlJall5SWlCb1pXbG5hSFE5SWpZMklpQjJhV1YzUW05NFBTSXdJREFnTmpJZ05qWWlQZ29nSUR4a1pXWnpQZ29nSUNBZ1BITjBlV3hsUGdvZ0lDQWdJQ0F1WTJ4ekxURWdld29nSUNBZ0lDQWdJR1pwYkd3NklDTm1PR1F4WkRrN0NpQWdJQ0FnSUgwS0NpQWdJQ0FnSUM1amJITXRNU3dnTG1Oc2N5MHlMQ0F1WTJ4ekxUTWdld29nSUNBZ0lDQWdJR1pwYkd3dGNuVnNaVG9nWlhabGJtOWtaRHNLSUNBZ0lDQWdmUW9LSUNBZ0lDQWdMbU5zY3kweUlIc0tJQ0FnSUNBZ0lDQm1hV3hzT2lBalltRmlOV1ZqT3dvZ0lDQWdJQ0I5Q2dvZ0lDQWdJQ0F1WTJ4ekxUTWdld29nSUNBZ0lDQWdJR1pwYkd3NklIVnliQ2dqYkdsdVpXRnlMV2R5WVdScFpXNTBLVHNLSUNBZ0lDQWdmUW9nSUNBZ1BDOXpkSGxzWlQ0S0lDQWdJRHhzYVc1bFlYSkhjbUZrYVdWdWRDQnBaRDBpYkdsdVpXRnlMV2R5WVdScFpXNTBJaUI0TVQwaU1Ua3VOREVpSUhreFBTSTJOaUlnZURJOUlqUTBMalU1SWlCNU1qMGlNVElpSUdkeVlXUnBaVzUwVlc1cGRITTlJblZ6WlhKVGNHRmpaVTl1VlhObElqNEtJQ0FnSUNBZ1BITjBiM0FnYjJabWMyVjBQU0l3SWlCemRHOXdMV052Ykc5eVBTSWpZbUZpTldWaklpOCtDaUFnSUNBZ0lEeHpkRzl3SUc5bVpuTmxkRDBpTVNJZ2MzUnZjQzFqYjJ4dmNqMGlJMll4WWpkaVppSXZQZ29nSUNBZ1BDOXNhVzVsWVhKSGNtRmthV1Z1ZEQ0S0lDQThMMlJsWm5NK0NpQWdQSEJoZEdnZ2FXUTlJbU5zY3kweElpQmpiR0Z6Y3owaVkyeHpMVEVpSUdROUlrMHdMREUzVERNd0xEQldNemxNTUN3MU4xWXhOMW9pTHo0S0lDQThjR0YwYUNCcFpEMGlZMnh6TFRJaUlHTnNZWE56UFNKamJITXRNaUlnWkQwaVRUTXpMRE01VERZeUxEVTJWakUzVERNekxEQldNemxhSWk4K0NpQWdQSEJoZEdnZ2FXUTlJbU5zY3kweklpQmtZWFJoTFc1aGJXVTlJbU5zY3kweklpQmpiR0Z6Y3owaVkyeHpMVE1pSUdROUlrMHhPQ3d5T0V3ME5pd3hNbFkwT1V3eE9DdzJObFl5T0ZvaUx6NEtQQzl6ZG1jK0NnPT0iLz48dGV4dCBhcmlhLWhpZGRlbj0idHJ1ZSIgeD0iNTg1IiB5PSIxNDAiIGZpbGw9IiMwMTAxMDEiIGZpbGwtb3BhY2l0eT0iLjMiIHRyYW5zZm9ybT0ic2NhbGUoLjEpIiB0ZXh0TGVuZ3RoPSI3MTAiPk9yZ2FuaXphdGlvbjwvdGV4dD48dGV4dCB4PSI1ODUiIHk9IjEzMCIgdHJhbnNmb3JtPSJzY2FsZSguMSkiIGZpbGw9IiNmZmYiIHRleHRMZW5ndGg9IjcxMCI+T3JnYW5pemF0aW9uPC90ZXh0Pjx0ZXh0IGFyaWEtaGlkZGVuPSJ0cnVlIiB4PSIxMjQ1IiB5PSIxNDAiIGZpbGw9IiNjY2MiIGZpbGwtb3BhY2l0eT0iLjMiIHRyYW5zZm9ybT0ic2NhbGUoLjEpIiB0ZXh0TGVuZ3RoPSI0NTAiPklUU3R1ZGlvPC90ZXh0Pjx0ZXh0IHg9IjEyNDUiIHk9IjEzMCIgdHJhbnNmb3JtPSJzY2FsZSguMSkiIGZpbGw9IiMzMzMiIHRleHRMZW5ndGg9IjQ1MCI+SVRTdHVkaW88L3RleHQ+PC9nPjwvc3ZnPg=="/>
|
||
<img src="https://img.shields.io/badge/Language-Shell-green">
|
||
<img src="https://img.shields.io/badge/License-MIT-Black">
|
||
</div>
|
||
<br>
|
||
|
||
为方便🐏大学生,爱特工作室编写了一些非常实用的Shell小程序,并且你可以非常方便地通过一个配置文件来启用和配置所有这里有的功能,而且只需要注册一个**Systemd**服务就可以实现自动化流程,非常方便
|
||
|
||
## ❗ 严正声明
|
||
|
||
本项目**仅供个人和学习使用**,禁止将本项目的代码作为商业及非法用途,禁止恶意修改本仓库代码,禁止通过本仓库代码挖掘校园网信息系统漏洞,违者将承担法律责任
|
||
|
||
## 🍕 食用方法
|
||
|
||
1.克隆本仓库
|
||
|
||
```
|
||
git clone git@github.com:ITStudioOUC/OUC_Shell.git
|
||
```
|
||
|
||
2.运行脚本
|
||
|
||
```
|
||
cd OUC_shell
|
||
bash main.sh
|
||
```
|
||
|
||
在首次运行或重新生成配置文件时,脚本会自动生成配置文件 `config.toml` ,之后脚本会自动退出,在你编辑好配置文件后重新启动脚本即可
|
||
|
||
3.注册服务 / 设置自启动
|
||
|
||
**Linux(systemd)**
|
||
|
||
- 创建服务文件
|
||
```
|
||
touch /etc/systemd/system/oucshell.service
|
||
```
|
||
- 编辑服务文件(按实际路径替换)
|
||
```
|
||
# 这只是一个systemd服务注册示例,不要直接拿来用
|
||
[Unit]
|
||
Description=Campus Helper Service (Electricity & More)
|
||
After=network.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
User=root
|
||
WorkingDirectory=/绝对路径/到/OUC_Shell # 替换为你的仓库路径
|
||
ExecStart=/bin/bash /绝对路径/到/OUC_Shell/main.sh # 替换为你的 main.sh 路径
|
||
Restart=always
|
||
RestartSec=10
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
- 启动并设置开机自启
|
||
```
|
||
systemctl start oucshell.service
|
||
systemctl enable oucshell.service
|
||
```
|
||
|
||
**macOS(LaunchAgent,随用户登录启动)**
|
||
|
||
- 安装依赖(macOS 自带 curl,需安装 jq 与 bc)
|
||
```
|
||
brew install jq bc
|
||
```
|
||
> **注意**:下方 plist 文件中的所有 `/绝对路径/到/OUC_Shell` 都需要替换为你的实际仓库绝对路径(例如 `/Users/yourname/github_project/OUC_Shell`),否则服务无法正常运行。
|
||
- 创建 LaunchAgent(把路径换成你自己的绝对路径)
|
||
cat > ~/Library/LaunchAgents/cn.ouc.shell.plist <<'EOF'
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||
<plist version="1.0">
|
||
<dict>
|
||
<key>Label</key>
|
||
<string>cn.ouc.shell</string>
|
||
<key>ProgramArguments</key>
|
||
<array>
|
||
<string>/bin/bash</string>
|
||
<string>/绝对路径/到/OUC_Shell/main.sh</string>
|
||
</array>
|
||
<key>WorkingDirectory</key><string>/绝对路径/到/OUC_Shell</string>
|
||
<key>StandardOutPath</key><string>/绝对路径/到/OUC_Shell/service.log</string>
|
||
<key>StandardErrorPath</key><string>/绝对路径/到/OUC_Shell/service.log</string>
|
||
<key>RunAtLoad</key><true/>
|
||
<key>KeepAlive</key><true/>
|
||
</dict>
|
||
</plist>
|
||
EOF
|
||
|
||
launchctl load ~/Library/LaunchAgents/cn.ouc.shell.plist
|
||
```
|
||
- 请将 `/绝对路径/到/OUC_Shell` 替换为你的实际仓库路径(例如 `/Users/yourname/github_project/OUC_Shell`)。
|
||
- 停止/重载:`launchctl unload ~/Library/LaunchAgents/cn.ouc.shell.plist` 后再 `load`。
|
||
- 查看运行日志
|
||
```
|
||
tail -f /绝对路径/到/OUC_Shell/service.log
|
||
|
||
# 效果演示
|
||
|
||

|
||
|
||
## 🤝 贡献者
|
||
|
||
<!-- readme: contributors -start -->
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td align="center">
|
||
<a href="https://github.com/Yaosanqi137">
|
||
<img src="https://avatars.githubusercontent.com/u/99163721?v=4" width="100;" alt="Yaosanqi137"/>
|
||
<br />
|
||
<sub><b>Yaosanqi137</b></sub>
|
||
</a>
|
||
</td>
|
||
<td align="center">
|
||
<a href="https://github.com/Howard-aile">
|
||
<img src="https://avatars.githubusercontent.com/u/156976283?v=4" width="100;" alt="Howard-aile"/>
|
||
<br />
|
||
<sub><b>Howard-aile</b></sub>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
<tbody>
|
||
</table>
|
||
<!-- readme: contributors -end -->
|