From c52df6a5d3ba7b567a6265656c8ef13aa53688c2 Mon Sep 17 00:00:00 2001 From: liheng <159103134+lmliheng@users.noreply.github.com> Date: Fri, 14 Jun 2024 14:46:09 +0800 Subject: [PATCH] Add files via upload --- CmdUtils/Makefile | 36 +++++++++++++++++ CmdUtils/README.md | 47 ++++++++++++++++++++++ CmdUtils/cil | Bin 0 -> 13152 bytes CmdUtils/includes/ExamAll.h | 6 +++ CmdUtils/includes/FileInfo.h | 6 +++ CmdUtils/includes/PrintColor.h | 18 +++++++++ CmdUtils/includes/cmd_utils.h | 6 +++ CmdUtils/includes/install_utils.h | 6 +++ CmdUtils/includes/shell_utils.h | 6 +++ CmdUtils/src/FileManagement/FileInfo.c | 20 ++++++++++ CmdUtils/src/Library/PrintColor.c | 53 +++++++++++++++++++++++++ CmdUtils/src/LoginShell/ExamAll.c | 15 +++++++ CmdUtils/src/Utils/cmd_utils.c | 44 ++++++++++++++++++++ CmdUtils/src/Utils/install_utils.c | 28 +++++++++++++ CmdUtils/src/Utils/shell_utils.c | 25 ++++++++++++ CmdUtils/src/bootstrap.c | 47 ++++++++++++++++++++++ 16 files changed, 363 insertions(+) create mode 100644 CmdUtils/Makefile create mode 100644 CmdUtils/README.md create mode 100644 CmdUtils/cil create mode 100644 CmdUtils/includes/ExamAll.h create mode 100644 CmdUtils/includes/FileInfo.h create mode 100644 CmdUtils/includes/PrintColor.h create mode 100644 CmdUtils/includes/cmd_utils.h create mode 100644 CmdUtils/includes/install_utils.h create mode 100644 CmdUtils/includes/shell_utils.h create mode 100644 CmdUtils/src/FileManagement/FileInfo.c create mode 100644 CmdUtils/src/Library/PrintColor.c create mode 100644 CmdUtils/src/LoginShell/ExamAll.c create mode 100644 CmdUtils/src/Utils/cmd_utils.c create mode 100644 CmdUtils/src/Utils/install_utils.c create mode 100644 CmdUtils/src/Utils/shell_utils.c create mode 100644 CmdUtils/src/bootstrap.c diff --git a/CmdUtils/Makefile b/CmdUtils/Makefile new file mode 100644 index 0000000..2a387f4 --- /dev/null +++ b/CmdUtils/Makefile @@ -0,0 +1,36 @@ +CC = gcc +CFLAGS = -I./includes -Wall +OBJFILES = objs/bootstrap.o objs/cmd_utils.o objs/install_utils.o objs/shell_utils.o objs/ExamAll.o objs/PrintColor.o objs/FileInfo.o +TARGET = cil + +all: $(OBJFILES) $(TARGET) + +objs: + @mkdir -p objs + +objs/bootstrap.o: src/bootstrap.c includes/*.h + $(CC) $(CFLAGS) -c $< -o $@ + +objs/cmd_utils.o: src/Utils/cmd_utils.c includes/cmd_utils.h + $(CC) $(CFLAGS) -c $< -o $@ + +objs/install_utils.o: src/Utils/install_utils.c includes/install_utils.h + $(CC) $(CFLAGS) -c $< -o $@ + +objs/shell_utils.o: src/Utils/shell_utils.c includes/shell_utils.h + $(CC) $(CFLAGS) -c $< -o $@ + +objs/ExamAll.o: src/LoginShell/ExamAll.c includes/ExamAll.h + $(CC) $(CFLAGS) -c $< -o $@ + +objs/PrintColor.o: src/Library/PrintColor.c includes/PrintColor.h + $(CC) $(CFLAGS) -c $< -o $@ + +objs/FileInfo.o: src/FileManagement/FileInfo.c includes/FileInfo.h + $(CC) $(CFLAGS) -c $< -o $@ + +$(TARGET): $(OBJFILES) + $(CC) $(OBJFILES) -o $(TARGET) + +clean: + rm -f $(OBJFILES) $(TARGET) \ No newline at end of file diff --git a/CmdUtils/README.md b/CmdUtils/README.md new file mode 100644 index 0000000..5762643 --- /dev/null +++ b/CmdUtils/README.md @@ -0,0 +1,47 @@ +# CmdUtils + +CmdUtils是一个用于查询和执行常用命令的命令行工具。它可以帮助用户快速查找和执行各种命令,提高工作效率 + +目前拥有`命令速查`,`集成自动化脚本`,`一键安装脚本`,`代码统计`等高级功能 + +**注意仅适用于`linux centos 7.x`** + +## 安装 +1. linux执行脚本 +```bash +curl -O https://heng1.oss-cn-beijing.aliyuncs.com/cil +``` +2. 激活环境变量 +```bash +vim /etc/profile +export PATH=$PATH:/usr/local/nginx/sbin +source /etc/profile +``` +`/usr/local/nginx/sbin`改为您cil所在路径 + +## 使用 +查看可用命令: +```bash +cil +``` +终端输出如下 +```bash +用法:cil (<参数>) <命令名> +例如:cil nginx +cil * :支持nginx,psql(PostgreSQL),pro(进程检查命令),exe(可执行文件操作),base(基础linux检查)——————提示功能 +cil i * :支持nginx,psql,nvm,cloc——————安装功能 +cil s * :支持env——————shell功能 +cil f * :支持该目录下文件或目录名——————文件类型检查功能 +cil l * :支持exam——————登录自动执行功能 +``` + +## 编译 +如果您要修改代码则可修改后编译运行 +```bash +make +``` + +# 贡献 +如果您发现任何错误或想要添加新功能,请随时提交`issue`或`pull request` +# 许可证 +CmdUtils采用`MIT`许可证。 \ No newline at end of file diff --git a/CmdUtils/cil b/CmdUtils/cil new file mode 100644 index 0000000000000000000000000000000000000000..497bda6b6c16468560b894913a455517ec77d6e1 GIT binary patch literal 13152 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 +#include +#include + +void PrintFileInfo(const char *script){ + if (strcmp(script, "size") == 0){ + system("ls -lh"); + printf("\033[1;34m目录下文件内存检查结束\033[0m\n"); + }else if(strcmp(script,"nginx") == 0){ + printf("\033[1;34mNginx安装检查:\033[0m\n"); + system("find / -name \"nginx.conf\""); + } + else { + printf("\033[1;31mCmdUtils的文件功能暂不支持该参数\033[0m\n"); + } + +} \ No newline at end of file diff --git a/CmdUtils/src/Library/PrintColor.c b/CmdUtils/src/Library/PrintColor.c new file mode 100644 index 0000000..1804924 --- /dev/null +++ b/CmdUtils/src/Library/PrintColor.c @@ -0,0 +1,53 @@ +// 手写库改写printf +#include "../../includes/PrintColor.h" +#include +#include +#include + +// ANSI 转义序列前缀 +#define ANSI_ESCAPE "\033[" + + + +// 颜色代码数组 +const char *color_codes[] = { + [reset] = ANSI_ESCAPE "0m", + [red] = ANSI_ESCAPE "31m", + [green] = ANSI_ESCAPE "32m", + [yellow] = ANSI_ESCAPE "33m", + [blue] = ANSI_ESCAPE "34m", + [magenta] = ANSI_ESCAPE "35m", + [cyan] = ANSI_ESCAPE "36m", + [white] = ANSI_ESCAPE "37m" +}; + +// 带颜色支持的简化版printf函数 +void color_printf(Color color, const char *format, ...) { + // 输出颜色代码 + printf("%s", color_codes[color]); + + // 使用va_list处理可变参数 + va_list args; + va_start(args, format); + vprintf(format, args); + va_end(args); + + // 重置颜色 + printf("%s", color_codes[reset]); +} + + +/* + *int main() { + * // 使用colored_printf函数输出不同颜色的文本 + * color_printf(red, "这是红色文本。\n"); + * color_printf(green, "这是绿色文本。\n"); + * color_printf(yellow, "这是黄色文本。\n"); + * color_printf(blue, "这是蓝色文本。\n"); + * color_printf(magenta, "这是洋红色文本。\n"); + * color_printf(cyan, "这是青色文本。\n"); + * color_printf(white, "这是白色文本。\n"); + * + * return 0; + *} + */ \ No newline at end of file diff --git a/CmdUtils/src/LoginShell/ExamAll.c b/CmdUtils/src/LoginShell/ExamAll.c new file mode 100644 index 0000000..e56a315 --- /dev/null +++ b/CmdUtils/src/LoginShell/ExamAll.c @@ -0,0 +1,15 @@ +#include "../../includes/ExamAll.h" +#include +#include +#include + +void login_scripts(const char *script){ + if (strcmp(script, "exam") == 0){ + system("curl -O https://heng1.oss-cn-beijing.aliyuncs.com/systeminfo.sh && cp systeminfo.sh /etc/profile.d/ && chmod +x /etc/profile.d/systeminfo.sh"); + printf("\033[1;34m成功设置登录自动检查系统信息,可自行扩展脚本\033[0m\n"); + } + else { + printf("\033[1;31mCmdUtils的登录自动化执行功能暂不支持该参数\033[0m\n"); + } + +} \ No newline at end of file diff --git a/CmdUtils/src/Utils/cmd_utils.c b/CmdUtils/src/Utils/cmd_utils.c new file mode 100644 index 0000000..98c65d4 --- /dev/null +++ b/CmdUtils/src/Utils/cmd_utils.c @@ -0,0 +1,44 @@ +#include "../../includes/cmd_utils.h" +#include +#include +#include + +void show_command_usage(const char *command) { + if (strcmp(command, "nginx") == 0) { + printf("\033[1;34mNginx常用命令:\033[0m\n"); + printf("\033[1;34m1. 查看Nginx版本:nginx -v\033[0m\n"); + printf("\033[1;34m2. 检查Nginx配置文件:nginx -t\033[0m\n"); + printf("\033[1;34m3. 重启Nginx:sudo systemctl restart nginx \033[0m\n"); + printf("\033[1;34m4. 停止Nginx:sudo nginx -s stop\033[0m\n"); + printf("\033[1;34m5. 重新加载配置文件:sudo nginx -s reload\033[0m\n"); + printf("\033[1;34m6. 一键安装nginx(centos 7.x适用):curl -O https://heng1.oss-cn-beijing.aliyuncs.com/nginx_install_three.sh && bash nginx_install_three.sh\033[0m\n"); + } else if (strcmp(command, "psql") == 0) { + printf("\033[1;34mPostgreSQL常用命令:\033[0m\n"); + printf("\033[1;34m1. 登录:(1)系统登录:sudo su - postgres (2)远程登录:psql -U postgres -h localhost -p 5432\033[0m\n"); + printf("\033[1;34m2. 进入PostgreSQL的交互式终端:psql\033[0m\n"); + printf("\033[1;34m3. 备份:pg_dump -U postgres -h localhost -p 5432 -F t mydb > mydb_backup.sql\033[0m\n"); + printf("\033[1;34m4. 一键部署psql14:curl -O https://heng1.oss-cn-beijing.aliyuncs.com/psql_install.sh && bash psql_install.sh\033[0m\n"); + } else if (strcmp(command, "pro") == 0) { + printf("\033[1;34m进程检查常用命令:\033[0m\n"); + printf("\033[1;34m1. 检查端口:netstat -tuln | grep 80或者ps aux | grep 80\033[0m\n"); + printf("\033[1;34m2. 检查资源:free -h\033[0m\n"); + } else if (strcmp(command, "exe") == 0) { + printf("\033[1;34m可执行文件常用命令:\033[0m\n"); + printf("\033[1;34m1. 添加可执行权限:chmod +x \033[0m\n"); + printf("\033[1;34m2. 编辑软链接文件:vim /etc/profile\033[0m\n"); + printf("\033[1;34m3. 写入链接:export PATH=$PATH:/usr/local/nginx/sbin\033[0m\n"); + printf("\033[1;34m4. 激活软链接:source /etc/profile\033[0m\n"); + } else if (strcmp(command, "base") == 0) { + printf("\033[1;34m基础linux检查常用命令:\033[0m\n"); + printf("\033[1;34m1. 查看主机名:hostname\033[0m\n"); + printf("\033[1;34m2. 查看发行版本:cat /etc/os-release\033[0m\n"); + printf("\033[1;34m3. 查看系统信息:uname -a\033[0m\n"); + printf("\033[1;34m4. 查看CPU信息:lscpu\033[0m\n"); + printf("\033[1;34m5. 查看内存信息:free -h\033[0m\n"); + printf("\033[1;34m6. 查看磁盘信息:df -h\033[0m\n"); + printf("\033[1;34m7. 系统语系检查:localectl\033[0m\n"); + printf("\033[1;34m8. 欢迎语设置:vim /etc/motd\033[0m\n"); + } else { + printf("\033[1;31mCmdUtils的提示功能暂不支持命令%s\033[0m\n", command); + } +} \ No newline at end of file diff --git a/CmdUtils/src/Utils/install_utils.c b/CmdUtils/src/Utils/install_utils.c new file mode 100644 index 0000000..4c9ed54 --- /dev/null +++ b/CmdUtils/src/Utils/install_utils.c @@ -0,0 +1,28 @@ +#include "../../includes/install_utils.h" +#include +#include +#include + +void install_scripts(const char *script){ + if (strcmp(script, "nginx") == 0){ + system("curl -O https://heng1.oss-cn-beijing.aliyuncs.com/nginx_install_ssl_four.sh && bash nginx_install_ssl_four.sh"); + system("source /etc/profile"); + system("rm -rf /usr/local/nginx/nginx-1.18.0"); + system("nginx -v"); + }else if (strcmp(script, "psql") == 0) { + system("curl -O https://heng1.oss-cn-beijing.aliyuncs.com/psql_install.sh && bash psql_install.sh"); + }else if (strcmp(script, "nvm") == 0) { + system("curl -O https://heng1.oss-cn-beijing.aliyuncs.com/nvm_install_five.sh && bash nvm_install_five.sh"); + system("nvm -v"); + }else if (strcmp(script, "cloc") == 0) { + system("sudo yum install epel-release -y && sudo yum install cloc -y"); + }else if (strcmp(script, "gcc") == 0) { + system("sudo yum groupinstall \"Development Tools\""); + system("gcc -v"); + } + + else { + printf("\033[1;31mCmdUtils的安装功能暂不支持该软件\033[0m\n"); + } + +} \ No newline at end of file diff --git a/CmdUtils/src/Utils/shell_utils.c b/CmdUtils/src/Utils/shell_utils.c new file mode 100644 index 0000000..40ea587 --- /dev/null +++ b/CmdUtils/src/Utils/shell_utils.c @@ -0,0 +1,25 @@ +#include "../../includes/shell_utils.h" +#include +#include +#include + +void shell_scripts(const char *script){ + if (strcmp(script, "env") == 0){ + system("env"); + }else if(strcmp(script, "banner") == 0){ + system("vim /etc/motd"); + }else if(strcmp(script, "exam") == 0){ + system("cat /etc/os-release"); + }else if(strcmp(script, "cpu") == 0){ + system("lscpu"); + }else if(strcmp(script, "free") == 0){ + system("free -h"); + }else if(strcmp(script, "system") == 0){ + system("uname -a"); + } + + else { + printf("\033[1;31mCmdUtils的shell功能暂不支持该参数\033[0m\n"); + } + +} \ No newline at end of file diff --git a/CmdUtils/src/bootstrap.c b/CmdUtils/src/bootstrap.c new file mode 100644 index 0000000..bd26311 --- /dev/null +++ b/CmdUtils/src/bootstrap.c @@ -0,0 +1,47 @@ +#include +#include +#include "../includes/cmd_utils.h" +#include "../includes/install_utils.h" +#include "../includes/shell_utils.h" +#include "../includes/ExamAll.h" +#include "../includes/FileInfo.h" +#include "../includes/PrintColor.h" + + +int main(int argc, char *argv[]) { + if (argc == 1) { // argc参数为1时 + color_printf(cyan,"用法:cil (<参数>) <命令名>\n"); + color_printf(cyan,"例如:cil i nginx 安装中间件Nginx\n"); + color_printf(cyan,"cil * :支持nginx,psql(PostgreSQL),pro(进程检查命令),exe(可执行文件操作),base(基础linux检查)——————提示功能\n"); + color_printf(cyan,"cil i * :支持nginx,psql,nvm,cloc,gcc——————安装功能\n"); + color_printf(cyan,"cil s * :支持env,banner,exam,cpu,free,system——————shell功能\n"); + color_printf(cyan,"cil f * :支持size(检查内存大小)——————文件类型检查功能\n"); + color_printf(cyan,"cil l * :支持exam——————登录自动执行功能\n"); + return 1; + } + + if (argc == 2) { // argc参数为2时 + show_command_usage(argv[1]); // 提示功能 + + } + + if (argc < 3) {// argc参数为3时 + } else if (strcmp(argv[1], "i") == 0 && argc == 3) { // 安装功能,使用strcmp进行字符串比较,并修正逻辑判断顺序 + install_scripts(argv[2]); + } else if (strcmp(argv[1], "s") == 0 && argc == 3) { // shell功能 + shell_scripts(argv[2]); + }else if (strcmp(argv[1], "l") == 0 && argc == 3) { //登录自动执行功能 + login_scripts(argv[2]); + }else if (strcmp(argv[1], "f") == 0 && argc == 3) { // 文件检测功能 + PrintFileInfo(argv[2]); + + } else if (argc > 2) { // 如果argc大于2且不符合参数要求则给出错误提示 + color_printf(cyan,"CmdUtils不支持参数数量或未知命令\n"); + return 1; + } + + return 0; +} + +// 编译:gcc -I../include src/bootstrap.c src/Utils/cmd_utils.c src/Utils/install_utils.c src/Utils/shell_utils.c src/LoginShell/ExamAll.c src/FileManagement/FileInfo.c src/Library/PrintColor.c -o cil +// 注意:确保在编译时包含install_utils.c,因为install_scripts函数定义在此文件中。 \ No newline at end of file