linux下超级程序!在linux界面实现类图像化界面的操作体验!

news2024/11/17 19:51:12

linux下超级程序!在linux界面实现类图像化界面的操作体验!

本期带来一个超级程序!在linux界面实现类图像化界面的操作体验。具体功能代码如下:
在这里插入图片描述

1500行完整代码

在这里插入图片描述

想要完成部署,只需在本地创建一个LinuxGJ.sh的文件,然后将源码复制进去即可,启动的时候使用指令,sh LinuxGJ.sh即可开启使用!
完成源码如下:

 #!/usr/bin/bash                               
 # *******************************************#
 #                                            #
 # * CDDN          : M乔木                    #
 # * qq邮箱        : 2776617348@qq.com        #
 # * 创建时间      : 2023-12-29 11:40:59      #
 # * 解释器        : 这是一个shell脚本        #
 #                                            #
 # *******************************************#
#声明函数
function phpintnginx(){
    clear 
    echo "开始配置nginx支持php页面..."
    sleep 1
    echo "开始配置nginx请求php信息..."
    cd /etc/nginx/
    mv nginx.conf nginx.conf.LinuxGj
    sleep 1
    echo "你的初始化nginx配置文件已更名为:nginx.conf.LinuxGj"
    echo "正在创建新的配置文件..."
    cat >>nginx.conf<<EOF
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
        location / {
             root   html;
              index  index.php index.html index.htm;
          }
        location ~ \.php$ {
             root           html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
             include        fastcgi_params;
         }
}
EOF
    cd /
    sleep 1
    echo "正在检查配置文件语法..."
    nginx -t &>/dev/null
    nginx -s reload &>/dev/null
    sleep 1
    echo "nginx关联php文件成功"
    wbcg
}
function pingip(){
> /opt/a.md
> /opt/b.md
for i in {1..254}
do
{
	ping -W1 -c3 10.12.153.$i &>/dev/null
	if [ $? -eq 0  ]
	then
		echo "10.12.153.${i} 此ip繁忙" >> /opt/b.md 
	else
		echo "10.12.153.${i} 此ip空闲" >> /opt/a.md
	fi
}&
done
sleep 3
read -p "请选择查看空闲IP还是已用iP[1|2]" IPnumxz
case $IPnumxz in
1)
echo "========================================="
echo "已显示前十条空闲ip"
cat /opt/a.md | head
echo "========================================="
  sleep 6
   ;;
2)
echo "========================================="
echo "已显示前十条已用ip"
cat /opt/b.md | head
echo "========================================="
sleep 6
   ;;
*)
   echo "序列号输入错误重新运行"
	pingip
esac
rm -f /opt/a.md
rm -f /opt/b.md
    onekey
}
function akey(){
    clear
    cat<<EOF
******************
*1.启动apache    *
*2.停止apache    *
*3.重启apache    *
*4.查看apache状态*
*5.返回上一级    *
*6.退出程序      *
******************
EOF
read -p "请输入序列号" akeynum
case $akeynum in
1)  
    systemctl start httpd
    echo "已启动apache"
    sleep 2
    akey
    ;;
2)
    systemctl stop httpd
    echo "已停止apache"
    sleep 2
    akey
    ;;
3)
    systemctl restart httpd
    echo "已重启apache"
    sleep 2
    akey
    ;;
4)  
    systemctl status httpd
    echo "已打开apache状态"
    sleep 3
    akey
    ;;
5)  
    lnmpkey
    ;;
6)
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo "序列号输入错误"
    sleep 1
    echo "重新输入"
    akey
    esac
}
function pkey(){
    clear
    cat<<EOF
*****************
*1.启动php      *
*2.停止php      *
*3.重启php      *
*4.查看php状态  *
*5.返回上一级   *
*6.退出程序     *
*****************
EOF
read -p "请输入序列号" pkeynum
case $pkeynum in
1)  
    systemctl start php-fpm
    echo "已启动php"
    sleep 2
    pkey
    ;;
2)
    systemctl stop php-fpm
    echo "已停止php"
    sleep 2
    pkey
    ;;
3)
    systemctl restart php-fpm
    echo "已重启php"
    sleep 2
    pkey
    ;;
4)  
    systemctl status php-fpm
    echo "已打开php状态"
    sleep 3
    pkey
    ;;
5)  
    lnmpkey
    ;;
6)
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo "序列号输入错误"
    sleep 1
    echo "重新输入"
    pkey
    esac
}
function mkey(){
    clear
    cat<<EOF
*****************
*1.启动MySQL    *
*2.停止MySQL    *
*3.重启MySQL    *
*4.查看MySQL状态*
*5.返回上一级   *
*6.退出程序     *
*****************
EOF
read -p "请输入序列号" mkeynum
case $mkeynum in
1)  
    systemctl start mysqld
    echo "已启动MySQL"
    sleep 2
    mkey
    ;;
2)
    systemctl stop mysqld
    echo "已停止MySQL"
    sleep 2
    mkey
    ;;
3)
    systemctl restart mysqld
    echo "已重启MySQL"
    sleep 2
    mkey
    ;;
4)  
    systemctl status mysqld
    echo "已打开MySQL状态"
    sleep 3
    mkey
    ;;
5)  
    lnmpkey
    ;;
6)
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo "序列号输入错误"
    sleep 1
    echo "重新输入"
    mkey
    esac
}
function nkey(){
    clear
    cat<<EOF
*****************
*1.启动nginx    *
*2.停止nginx    *
*3.重启nginx    *
*4.查看nginx状态*
*5.返回上一级   *
*6.退出程序     *
*****************
EOF
read -p "请输入序列号" nkeynum
case $nkeynum in
1)  
    systemctl start nginx
    echo "已启动nginx"
    sleep 2
    nkey
    ;;
2)
    systemctl stop nginx
    echo "已停止nginx"
    sleep 2
    nkey
    ;;
3)
    systemctl restart nginx
    echo "已重启nginx"
    sleep 2
    nkey
    ;;
4)  
    systemctl status nginx
    echo "已打开nginx状态"
    sleep 3
    nkey
    ;;
5)  
    lnmpkey
    ;;
6)
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo "序列号输入错误"
    sleep 1
    echo "重新输入"
    nkey
    esac
}
function lnmpkey(){
    clear
    cat<<EOF
*********************
*1.nginx管理        *
*2.MySQL管理        *
*3.PHP管理          *
*4.apache管理       *
*5.返回主菜单       *
*6.退出程序         *
*********************
EOF
read -p "请输入序列号" numlnmp
case $numlnmp in
1)  
    nkey
    ;;
2)  
    mkey
    ;;
3)
    pkey
    ;;
4)
    akey
    ;;
5)
    menus
    ;;
6)
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo "序列号输入错误"
    sleep 1
    echo "重新输入"
    lnmpkey
esac
}
function onekey(){
    clear
    cat<<EOF
**********************
*1.LNMP管理界面      *
*2.查看空闲局域网IP  *
*3.切换系统提示到中文*
*4.查看防火墙selinux *
*5.查看yum仓库       *
*6.返回主菜单        * 
*7.退出程序          *      
**********************
EOF
read -p "请输入序列号" numkey
case $numkey in
1)
    lnmpkey
    ;;
2)
    pingip
    ;;
3)
    export  LANG=zh_CN.UTF-8 &>/dev/null
    onekey
    ;;
4)
    getenforce && systemctl status firewalld 
    sleep 5
    onekey
    ;;
5)
    echo "开始清理yum缓存"
    sleep 1
    yum clean all &>/dev/null
    echo "开始生成yum缓存"
    sleep 1
    yum makecache &>/dev/null
    echo "开始抓取yum仓库包数量"
    sleep 1
    yum  repolist 
    sleep 5
    onekey
    ;;
6)
    menus
    ;;
7)
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo "序列号输入错误"
    sleep 1
    echo "重新输入"
    onekey
esac
}
function Apachefunct(){
    clear 
    echo "开始安装apache..."
    sleep 1
    #调用函数 关闭防火墙
    fwset
    #安装阿帕奇
    sleep 1
    echo "即将开始安装阿帕奇服务器 本次安转将持续两分钟请耐心等待..."
    yum -y install httpd  &>/dev/null
    #启动阿帕奇
    systemctl start httpd
    echo "apache安装成功! 现在可以使用system工具来使用管理PHP了!"
    sleep 1
cat<<EOF
system工具管理apache
systemctl start httpd  --启动apache
systemctl restart httpd  --重启apache
systemctl stop httpd  --停止apache
systemctl status httpd  --查看apache状态
EOF
    sleep 3
    wbcg
}
function PHPfunct(){
    clear
    echo "开始安装PHP..."
    sleep 1
    echo "本次安装将根据网速的情况持续2分钟到五分钟左右,请耐心等待..."
    yum -y install php php-fpm php-curl php-intl php-mcrypt php-mysql php-mbstring php-xml php-dom php-gd gd &>/dev/null
    echo "PHP安装成功! 现在可以使用system工具来使用管理PHP了!"
    sleep 1
cat<<EOF
system工具管理PHP
systemctl start php-fpm  --启动php
systemctl restart php-fpm  --重启php
systemctl stop php-fpm  --停止php
systemctl status php-fpm  --查看php状态
EOF
    sleep 3
    wbcg
}
function MySqlfunct(){
    clear
    echo "开始安装MySQL..."
    sleep 1
    read -p "请选择是否清理环境[y|n]" hjmysql
    case $hjmysql in
y)  
    echo "开始清理环境"
    yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y &>/dev/null
    userdel -r mysql &>/dev/null
    rm -rf /etc/my* &>/dev/null
    rm -rf /var/lib/mysql  &>/dev/null
    sleep 1
    echo "环境清理完毕..."
    ;;
n)  
    sleep 1
    echo "已跳过清理环境..."
    sleep 1
    ;;
*)  
    echo "序列号输入错误,已退出"
    echo "请重新运行程序"
    exit 9
    esac
    #调用关闭防火墙函数 fwset
    fwset
    #下载MySQLyum源
    echo "开始安装MySQL 整个过程将根据网络持续1~5分钟 请耐心等待..."
    yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm &>/dev/null
    #清理缓存生成缓存
    yum clean all &>/dev/null
    yum makecache &>/dev/null
    #安装MySQL
    yum install -y mysql-community-server --enablerepo mysql57-community --disablerepo mysql80-community &>/dev/null
    #安装结束
    sleep 1
    echo "安装成功!开始感受畅快淋漓的澎湃MySQL的体验"
    read -p "请选择是否关闭密码策略并修改密码[y|n]" MYpasswd
    case $MYpasswd in
y)  
    systemctl start  mysqld
    passwdmysql=`awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log`
    echo '正在设置密码,请稍后'
    echo 'validate-password=OFF' >> /etc/my.cnf
    systemctl restart  mysqld
    read -p '请输入新密码:' passwdmysqldx
    mysqladmin -uroot -p"$passwdmysql" password "$passwdmysqldx" &>/dev/null
    echo '安装完成,密码已设置为:'$passwdmysqldx
    sleep 1
    cat<<EOF
system工具管理MySQL
systemctl start mysqld  --启动MySQL
systemctl restart mysqld  --重启MySQL
systemctl stop mysqld  --停止MySQL
systemctl status mysqld  --查看MySQL状态
EOF
    sleep 3
    wbcg
    ;;
n)
    systemctl start  mysqld
    passwdmysql=`awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log`
    echo "初始密码为:"$passwdmysql
    echo "初始密码为:$passwdmysql" >/MySQL.txt
    sleep 1
    echo "初始密码已发送到根目录下"
    sleep 1
    read -p "是否要修改密码 修改密码要符合密码强度策略[y|n]" passwdxg
    case $passwdxg in
y)  
    read -p "请输入新密码:" adminpasswd
    mysqladmin -uroot -p"$passwdmysql" password "$adminpasswd" &>/dev/null 
    ;;
n)  
    echo ""
    ;;
*)  
    echo "序列号输入错误 无法修改密码"
    sleep 1
    echo "请自行到根下的MySQL.txt文件获取初始密码并修改"
    sleep 1
    echo "修改密码命令已发送到MySQL.txt中 请查收!"
    echo "请使用此命令修改密码:mysqladmin -uroot -p""initial-passwd"" password ""new-passwd""" >> /MySQL.txt
    esac
    cat<<EOF
system工具管理MySQL
systemctl start mysqld  --启动MySQL
systemctl restart mysqld  --重启MySQL
systemctl stop mysqld  --停止MySQL
systemctl status mysqld  --查看MySQL状态
EOF
    sleep 3
    wbcg
    ;;
*)  
    echo "序列号输入错误,已退出"
    echo "已结束运行程序"
    exit 9
    esac
}
function NGfunct(){
    clear
    read -p "安装前是否准备环境[y|n]" NGfunctjc
    case $NGfunctjc in
y)  
    sleep 1
    ;;
n)
    echo "请前往系统设置[关闭防火墙|校准时间|固定IP]"
    sleep 3
    systemft
    ;;
*)
    echo "序列号输入错误,已退出"
    echo "请重新运行程序"
    exit 9
    esac
    echo "开始安装Nginx..."
    yum -y install nginx
    echo "============================================================="
    echo "现在可以使用system工具开始管理Nginx了"
    echo "支持操作 systenctl[start|restart|stop|status]Nginx"
    echo "============================================================="
    sleep 3
    wbcg
}
function JCset(){
    clear	
    #开机欢迎
    SHAN='\E[33;5m'      #黄色闪烁警示
    RES='\E[0m'              # 清除颜色
        echo    "****************************************"
        echo    "*                                      *"
        echo -e "* ${SHAN} 欢迎使用乔木的基础环境配置脚本3.0 ${RES}  *"
        echo    "*  CSDN:    M乔木                      *"
        echo    "*  邮箱:    2776617348@qq.com          *"
        echo    "*                                      *"
        echo    "****************************************" 
		#关闭防火墙
		echo "开始关闭防火墙..."
        sleep 1
		systemctl disable firewalld &>/dev/null
		echo "防火墙已关闭..."
        sleep 1
      		#关闭selinux
		echo "开始关闭selinux..."
        sleep 1
	    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux	
		echo "selinux已关闭..."
        sleep 1
		#修改主机名 定义变量nameeJC 接收输入
		echo "开始修改主机名..."
        sleep 1
		read -p "请输入你想修改的主机名" nameeJC
		hostnamectl set-hostname $nameeJC
		echo "主机名修改完毕,设置为$nameeJC"
        sleep 1
	#固定IP
        clear
    SHAN='\E[33;5m'      #黄色闪烁警示
    RES='\E[0m'              # 清除颜色
    echo    "****************************************"
    echo    "*                                      *"
    echo -e "* ${SHAN} 欢迎使用固定IP程序 ${RES}                 *"
    echo    "*  CSDN:    M乔木                      *"
    echo    "*  邮箱:    2776617348@qq.com          *"
    echo    "*                                      *"
    echo    "****************************************"
    echo "正在配置网卡,请稍后..."
    sleep 1
    #获取当前网卡配置文件
    echo "获取当前网卡配置文件"
    sleep 1
    wkname=`ls /etc/sysconfig/network-scripts/ | grep ifcfg-ens | cut -d'-' -f2`  
    #获取IP
    echo "获取IP"
    sleep 1
    ipname=`ip -f inet a show dev $wkname | awk "/inet/{print $2}" | awk '{print $2}' | cut -d'/' -f1`
    #删除原有的网卡配置文件
    echo "删除原有的网卡配置文件"
    sleep 1
    rm -rf /etc/sysconfig/network-scripts/ifcfg-$wkname
    #设置判断选择网关
    echo "桥接模式选择1"
    echo "NAT模式选择2"
    echo "自动获取默认网关3"
    read -p "请输入你的网关:[1|2|3] " wgsname
    case $wgsname in
1)
    wgname=10.12.153.254
    ;;
2)
    wgname=192.168.100.2
    ;;
3)  yum -y install net-tools &>/dev/null
    wgname=`route -n | grep '^0.0.0.0' | awk '{print $2}'`
    ;;
*)
    echo "序列号输入错误,已退出"
    echo "请重新运行程序"
    exit 9
    esac
    sleep 1
    #设置判断开启DNS
    read -p "是否开启DNS:[y|n] " dnsname
    case $dnsname in
y)
    dnsa=DNS1=114.114.114.114
    dnsb=DNS2=8.8.8.8
    ;;
n)
    dnsa=#DNS1=114.114.114.114
    dnsb=#DNS2=8.8.8.8
    ;;
*)
    echo "序列号输入错误,已退出"
    echo "请重新运行程序"
    exit 9
    esac
    sleep 1
    #创建新的网卡配置文件
    cd /etc/sysconfig/network-scripts/
    cat >ifcfg-$wkname <<EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="$wkname"
DEVICE="$wkname"
ONBOOT="yes"
IPADDR=$ipname
PREFIX=24
GATEWAY=$wgname
$dnsa
$dnsb
EOF
    cd /root
    #重启网络服务
    echo "重启网络服务"
    systemctl restart network
    #结束配置
    echo    "****************************************"
    echo    "*                                      *"
    echo -e "*  ${SHAN} 本次配置结束! ${RES}                     *"
    echo    "*  CSDN:    M乔木                      *"
    echo    "*  邮箱:    2776617348@qq.com          *"
    echo -e "*  ${SHAN} 欢迎下次使用! ${RES}                     *"
    echo    "*                                      *"
    echo    "****************************************"
	#调用函数yumpz	yum仓库函数
	yumpz
	#下载传文件服务
        sleep 1
        echo "开始下载配置命令包并同步网络时间..."
        sleep 1
        echo "下载时间根据网络的不同速度也不同,请耐心等待..."
		yum -y install lrzsz &>/dev/null	
		#校准时间
        yum -y install ntpdate &>/dev/null
        ntpdate time.windows.com &>/dev/null
		#下载cowsay 
		yum -y install cowsay &>/dev/null
		#下载扩展tab补全包
		yum -y install bash-completion &>/dev/null
		#下载vim编辑器
		yum -y install vim &>/dev/null
		#下载wget下载工具
		yum -y install wget &>/dev/null
		#下载网络工具包
		yum -y install net-tools &>/dev/null
		echo "下载结束 同步网络时间成功"
		#开机设置提示 定义变量nameeJC
		echo "开始设置开机提示..."
        sleep 1
		read -p "请输入你想要设置的开机欢迎词" nameeJC
        cd /root/
		echo "开始生成开机提示文件..."
cat >>kj.sh<<EOF		
#!/usr/bin/bash
        #查看cpu负载
        uptime
        #内存使用
        free -m
        #磁盘空间
        df -Th
        #看日历
        cal
        #登录欢迎
        cowsay -f tux "$nameeJC"
        #结束
        echo "欢迎回来" 
EOF
	echo "sh /root/kj.sh" >> /etc/bashrc
		echo "开机提示设置成功..."
        sleep 1
        echo    "****************************************"
        echo    "*                                      *"
        echo -e "*  ${SHAN} 配置结束即将重启... ${RES}               *"
        echo    "*  CSDN:    M乔木                      *"
        echo    "*  邮箱:    2776617348@qq.com          *"
        echo -e "*  ${SHAN} 欢迎下次使用! ${RES}                     *"
        echo    "*                                      *"
        echo    "****************************************"
                #重启程序结束
		reboot
}
function fwset(){
    echo "开始关闭防火墙..."
        sleep 1
		systemctl disable firewalld &>/dev/null
		echo "防火墙已关闭..."
        sleep 1
      		#关闭selinux
		echo "开始关闭selinux..."
        sleep 1
        sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
	    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux	
		echo "selinux已关闭..."
        sleep 1
        echo "请在稍后重启服务器 否则关闭的服务不会生效"
        sleep 2
}
function hostTS(){
    echo "开始设置开机提示..."
        sleep 1
		read -p "请输入你想要设置的开机欢迎词" TSname
        cd /root/
		echo "开始生成开机提示文件..."
cat >>kj.sh<<EOF		
#!/usr/bin/bash
        #查看cpu负载
        uptime
        #内存使用
        free -m
        #磁盘空间
        df -Th
        #看日历
        cal
        #登录欢迎
        cowsay -f tux "$TSname"
        #结束
        echo "欢迎回来" " 
EOF
	echo "sh /root/kj.sh" >> /etc/bashrc
		echo "开机提示设置成功:$TSname"
}
function hostnames(){
    echo "开始修改主机名..."
        sleep 1
		read -p "请输入你想修改的主机名" nameht
		hostnamectl set-hostname $nameht
		echo "主机名修改完毕,设置为$nameht"
        sleep 1
}
function yumpz(){
    clear
    echo "欢迎使用yum仓库程序"
    sleep 1
    cat <<EOF
***************
*1.局域网仓库 *
*2.阿里仓库   *
***************
EOF
    read -p "请选择连接阿里仓库还是局域网仓库[输入序号]" pzcurl
    case $pzcurl in
1)  echo "开始配置yum源文件..."
    sleep 1
	read -p "请输入你想连接的yum仓库ip地址,回车默认连接1号仓库" yumpzss
    yumipone="10.12.153.1"
    yumpzss=${yumpzss:-$yumipone}
	rm -f /etc/yum.repos.d/* &>/dev/null || rm -rf /etc/yum.repos.d/* && echo "检测到/etc/yum.repos.d/下有目录,已删除"
	cd /etc/yum.repos.d/
	echo "开始创建yum源仓库文件..."
cat >>jc.repo<<EOF
[base]
name=base
baseurl=http://$yumpzss/base
gpgcheck=0
enable=1

[epel]
name=epel
baseurl=http://$yumpzss/epel
gpgcheck=0
enable=1

[extras]
name=extras
baseurl=http://$yumpzss/extras
enable=1
gpgcheck=0

[updates]
name=updates
baseurl=http://$yumpzss/updates
gpgcheck=0
enable=1

[remi-safe]
name=remi-safe
baseurl=http://$yumpzss/remi-safe
gpgcheck=0
enable=1

[mysql57]
name=mysql57
baseurl=http://$yumpzss/mysql57
gpgcheck=0
enable=1 
EOF
    ;;
2)  echo "开始配置yum源文件..."
    sleep 1
    echo "开始清理环境..."
    rm -f /etc/yum.repos.d/* &>/dev/null || rm -rf /etc/yum.repos.d/* && echo "检测到/etc/yum.repos.d/下有目录,已删除"
	#阿里源基础包下载
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    #阿里包加强包下载
    curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
    echo "源文件下载完成!"
esac
    sleep 1
    echo "配置yum源文件结束..."
    sleep 1
 	#启动动画
    echo "即将开始配置yum缓存..."
    sleep 1
    #清理缓存
    echo "开始清理本机yum缓存..."
	yum clean all &>/dev/null
    echo "清理完毕..."
    sleep 1
    echo "开始生成本地缓存..."
	yum makecache &>/dev/null
    echo "缓存生成完毕..."
    #列出yum包数
    sleep 1
	echo "即将检索本次安装yun包总数..."
	yum repolist 
    sleep 3
}
function gdIPD(){
    clear
    SHAN='\E[33;5m'      #黄色闪烁警示
    RES='\E[0m'              # 清除颜色
    echo    "****************************************"
    echo    "*                                      *"
    echo -e "* ${SHAN} 欢迎使用固定IP程序 ${RES}                 *"
    echo    "*  CSDN:    M乔木                      *"
    echo    "*  邮箱:    2776617348@qq.com          *"
    echo    "*                                      *"
    echo    "****************************************"
    echo "正在配置网卡,请稍后..."
    sleep 1
    #获取当前网卡配置文件
    echo "获取当前网卡配置文件"
    sleep 1
    #wkname=`ls /etc/sysconfig/network-scripts/ | grep ifcfg-ens | cut -d'-' -f2`
    wkname=`ls /etc/sysconfig/network-scripts/ | awk '/ifcfg/{print}' | cut -d- -f2 | head -1`  
    #获取IP
    echo "获取IP"
    sleep 1
    ipname=`ip -f inet a show dev $wkname | awk "/inet/{print $2}" | awk '{print $2}' | cut -d'/' -f1`
    #删除原有的网卡配置文件
    echo "删除原有的网卡配置文件"
    sleep 1
    rm -rf /etc/sysconfig/network-scripts/ifcfg-$wkname
    #设置判断选择网关
    echo "桥接模式选择1"
    echo "NAT模式选择2"
    echo "自动获取默认网关3"
    read -p "请输入你的网关:[1|2|3] " wgsname
    case $wgsname in
1)
    wgname=10.12.153.254
    ;;
2)
    wgname=192.168.100.2
    ;;
3)  yum -y install net-tools &>/dev/null
    wgname=`route -n | grep '^0.0.0.0' | awk '{print $2}'`
    ;;
*)
    echo "序列号输入错误,已退出"
    echo "请重新运行程序"
    exit 9
    esac
    sleep 1
    #设置判断开启DNS
    read -p "是否开启DNS:[y|n] " dnsname
    case $dnsname in
y)
    dnsa=DNS1=114.114.114.114
    dnsb=DNS2=8.8.8.8
    ;;
n)
    dnsa=#DNS1=114.114.114.114
    dnsb=#DNS2=8.8.8.8
    esac
    sleep 1
    #创建新的网卡配置文件
    cd /etc/sysconfig/network-scripts/
    cat >ifcfg-$wkname <<EOF
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="$wkname"
DEVICE="$wkname"
ONBOOT="yes"
IPADDR=$ipname
PREFIX=24
GATEWAY=$wgname
$dnsa
$dnsb
EOF
    cd /root
    #重启网络服务
    echo "重启网络服务"
    systemctl restart network
    #结束配置
    echo    "****************************************"
    echo    "*                                      *"
    echo -e "*  ${SHAN} 本次配置结束! ${RES}                     *"
    echo    "*  CSDN:    M乔木                      *"
    echo    "*  邮箱:    2776617348@qq.com          *"
    echo -e "*  ${SHAN} 欢迎下次使用! ${RES}                     *"
    echo    "*                                      *"
    echo    "****************************************"
}
function systemset(){
clear
cat<<EOF
******************************
*1.固定ip                    *
*2.校准时间                  *
*3.连接yum仓库               *
*4.设置主机名                *
*5.设置开机提示              *
*6.关闭防火墙关闭selinux     *
*7.一键布置环境[功能整合自动]*
*8.返回主菜单                *
*9.退出程序                  *
******************************
EOF
read -p "请输入序列号" setname
case $setname in
1)  gdIPD
    systemset
    ;;
2)  echo "开始校准时间..."
    yum -y install ntpdate &>/dev/null
    ntpdate time.windows.com &>/dev/null 
    sjs=`date`
    echo "时间校准成功"
    echo "当前时间为:"$sjs
    sleep 3
    systemset
    ;;
3)  yumpz
    systemset
    ;;
4)  hostnames
    systemset
    ;;
5)  hostTS
    systemset
    ;;
6)  fwset
    systemset
    ;;
7)  JCset
    ;;
8)  menus
    ;;
9)  clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)  
    echo ================================================
    echo 输入错误的序列号请重新运行程序
esac
echo ================================================
cat <<EOF
1.继续查询
2.退出程序
EOF
read -p "请输入序列号" numks
case $numks in 
1)  systemset
    ;;
2)  clear
    echo "已退出"
    ;;
*)  clear
    echo ================================================
    echo 序列号输入错误 已结束运行!
    echo ================================================
    exit 9
esac
echo    "****************************************"
echo    "*                                      *"
echo -e "* ${SHAN} 欢迎下次使用${RES}                        *"
echo    "*  CSDN:    M乔木                      *"
echo    "*  邮箱:    2776617348@qq.com          *"
echo    "*                                      *"
echo    "****************************************"
    exit 0
}
function systemft(){
clear
cat <<EOF
****************
*1.系统信息查询*
*2.系统功能设置*
*3.返回主菜单  *
*4.退出桌面管家*
****************
EOF
read -p "请输入序列号" systemname
case $systemname in
1)  information
    ;;
2)  systemset
    ;;
3)  menus
    ;;
4)  clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)  echo ================================================
    echo 输入错误的序列号请重新运行程序
esac
echo ================================================
cat <<EOF
1.继续查询
2.退出程序
EOF
read -p "请输入序列号" numka
case $numka in 
1)  systemft
    ;;
2)
    clear
    echo "已退出"
    ;;
*)  clear
    echo ================================================
    echo 序列号输入错误 已结束运行!
    echo ================================================
    exit 9
esac
echo    "****************************************"
echo    "*                                      *"
echo -e "* ${SHAN} 欢迎下次使用${RES}                        *"
echo    "*  CSDN:    M乔木                      *"
echo    "*  邮箱:    2776617348@qq.com          *"
echo    "*                                      *"
echo    "****************************************"
    exit 0
}
function information(){
clear
SHAN='\E[33;5m'      #黄色闪烁警示
RES='\E[0m'              # 清除颜色
echo    "********************************"
echo    "*                              *"
echo -e "* ${SHAN} 欢迎使用信息查询工具箱${RES}      *"
echo    "*  CSDN:    M乔木              *"
echo    "*  邮箱:    2776617348@qq.com  *"
echo    "*                              *"
echo    "********************************"
cat <<EOF
***************************
*1.剩余空闲内存查询       *
*2.根目录使用的情况       *
*3.当前登录的用户         *
*4.本机ip查询(终端)       *
*5.客户端IP查询(win端设备)*
*6.查询网络情况           *
*7.返回主菜单             *
*8.退出桌面管家           *
***************************
EOF
read -p "请输入序列号" num
case $num in
1)  echo ================================================
    echo 剩余空闲内存:`free -h | awk '/^Mem/{print $4}'`
    ;;
2)  echo ================================================
    echo 总空间:`df -Th | awk '/\/$/{print $3}'`
    echo 已用空间:`df -Th | awk '/\/$/{print $4}'`
    echo 可用空间:`df -Th | awk '/\/$/{print $5}'`
    ;;
3)  echo ================================================
    echo 当前登录的用户:`echo $USER`
    ;;
4)  echo ================================================
    echo 本机ip查询[终端]:`ip a  | grep inet | tail -2 | head -1 | awk '{print $2}' | cut -d'/' -f1`
    ;;
5)  echo ================================================
    echo 客户端IP查询[win端设备]:`w | grep root | tail -1 | awk '{print $3}'`
    ;;
6)  read -p "请输入你的ip地址,回车默认测试本机ip!" ipnum
    ipnmus=`ip a | awk '/inet/{print}' | head -3 | tail -1 | awk '{print $2}' | cut -d/ -f1`
    ipnum=${ipnum:-$ipnmus}
    ping  -W1 -c3 $ipnum &>/dev/null && echo "网络通畅,测试结束" || echo "网络未连接,请检查配置文件"
    ;;
7)  menus
    ;;
8)  clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo ================================================
    echo 输入错误的序列号请重新运行程序
esac
echo ================================================
cat <<EOF
1.继续查询
2.退出程序
EOF
read -p "请输入序列号" numkb
case $numkb in 
1)  information
    ;;
2)
    clear
    echo "已退出"
    ;;
*)  clear
    echo ================================================
    echo 序列号输入错误 已结束运行!
    echo ================================================
    exit 9
esac
echo    "****************************************"
echo    "*                                      *"
echo -e "* ${SHAN} 欢迎下次使用${RES}                        *"
echo    "*  CSDN:    M乔木                      *"
echo    "*  邮箱:    2776617348@qq.com          *"
echo    "*                                      *"
echo    "****************************************"
exit 0
}
function wbcg(){
    echo "LNMP"
clear
cat<<EOF
****************
*1.Nginx       *
*2.MySql       *
*3.PHP         *
*4.Apache      *
*5.关联phpNginx*
*6.返回主菜单  *
*7.退出桌面管家*
****************
EOF
read -p "请输入序号" wbcgid
case $wbcgid in
1)  
    NGfunct
    ;;
2)  
    MySqlfunct
    ;;
3)  
    PHPfunct
    ;;
4)  
    Apachefunct
    ;;
5)  
    phpintnginx
    ;;
6)  
    menus
    ;;
7)  
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)
    echo ================================================
    echo 输入错误的序列号请重新运行程序
esac
echo ================================================
cat <<EOF
1.继续查询
2.退出程序
EOF
read -p "请输入序列号" numwzgn
case $numwzgn in 
1)  wbcg
    ;;
2)
    clear
    echo "已退出"
    ;;
*)  clear
    echo ================================================
    echo 序列号输入错误 已结束运行!
    echo ================================================
    exit 9
esac
echo    "****************************************"
echo    "*                                      *"
echo -e "* ${SHAN} 欢迎下次使用${RES}                        *"
echo    "*  CSDN:    M乔木                      *"
echo    "*  邮箱:    2776617348@qq.com          *"
echo    "*                                      *"
echo    "****************************************"
    exit 0
}
function bth(){
    echo "飞云"
}
function DBback(){
    echo "开始备份数据库..."
    read -p "请输入你的数据库的用户名" dbname
    read -p "请输入你的数据库密码" dbpasswd
    mkdir /DBbake
    mysqldump -u$dbname -p$dbpasswd -A >/DBbake/"`date +%F-%T`DBbake".sql
    echo "数据库备份完成!存储目录为:/DBbake,请到该目录下查看"
    exit 0
}
function passwdbcm(){
    nb=$RANDOM@
    na=$RANDOM#
    echo $nb$na$nb
}
function appstore(){
clear
cat<<EOF
************************
*      应用商店        * 
************************
*1.vim文本编辑器       *
*2.ntpdate校准时间工具 *
*3.cowsay奶牛说        *
*4.tab补全包           *
*5.wget下载工具        * 
*6.网络工具包          *
*7.lrzsz工具           *
*8.返回主菜单          *       
*9.退出桌面管家        *
************************
EOF
read -p "请输入序号" appnum
case $appnum in
1)  echo "正在下载vim文本编辑器..."
    yum -y install vim &>/dev/null
    echo "安装成功已退出"
    ;;
2)  echo "开始下载ntpdate校准时间工具,并校准时间..."
    yum -y install ntpdate $>/dev/null
    ntpdate time.windows.com &>/dev/null
    echo "安装成功已退出"
    ;;
3)  echo "开始下载cowsay..."
    yum -y install cowsay &>/dev/null
    echo "安装成功已退出"
    ;;
4)  echo "开始下载tab补全包"
    yum -y install bash-completion &>/dev/null
    echo "安装成功已退出"
    ;;
5)  echo "开始下载wget工具..."
    yum -y install wget &>/dev/null
    echo "安装成功已退出"
    ;;
6)  echo "开始下载网络工具包..."
    yum -y install net-tools &>/dev/null
    echo "安装成功已退出"
    ;;
7)  echo "正在上下传文件工具.."
    yum -y install lrzsz &>/dev/null
    echo "安装成功已退出"
    ;;
8)   menus
    ;;
9)  clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)  clear
    echo "该序列号软件还未开发,敬请期待"
    echo "已退出程序"
esac
exit 2
}
function menus(){
clear
SHAN='\E[33;5m'      #黄色闪烁警示
RES='\E[0m'              # 清除颜色
echo    "*********************************"
echo    "*                               *"
echo -e "*    ${SHAN} 欢迎使用Linux桌面管家 ${RES}    *"
echo    "*   CSDN:  M乔木                *"
echo    "*   邮箱:  2776617348@qq.com    *"
echo    "*                               *"
echo    "*********************************"
cat <<EOF
********************
*1.系统功能设置    *
*2.LNMP部署        *
*3.飞云堡垒机      *
*4.备份数据库      *
*5.密码生成器      *
*6.应用商店        *
*7.小程序          *
*8.退出程序        *
********************
EOF
read -p "请输入序列号" nova
case $nova in
1)   
    systemft
    ;;
2)   
    wbcg
    ;;
3)   
    echo "功能暂未开发,敬请期待"
    bth
    ;;
4)   
    DBback
    ;;
5)   
    echo "随机密码已生成:" 
    passwdbcm
    ;;
6)   
    appstore
    ;;
7)  
    onekey
    ;;
8)  
    clear 
    cat <<EOF
***************
*"已退出程序!"*
***************
EOF
    exit 0
    ;;
*)  
    clear 
    cat <<EOF
*********************************
*"序列号输入错误,功能暂未开发"  *
*"已退出程序!"                  *
*********************************
EOF
     exit 9
esac
}
#====================================================

#调用显示主菜单 menus
    menus

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1363314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传感数据分析——高通滤波与低通滤波

传感数据分析——高通滤波与低通滤波 文章目录 传感数据分析——高通滤波与低通滤波前言一、运行环境二、Python实现总结 前言 对于传感信号而言&#xff0c;我们可以提取其中的高频信息和低频信息&#xff0c;低频信息往往是信号的趋势&#xff0c;高频信息往往是一些突变或异…

构建自己的私人GPT

创作不易&#xff0c;请大家多鼓励支持。 在现实生活中&#xff0c;很多人的资料是不愿意公布在互联网上的&#xff0c;但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢&#xff1f;于是我们构建自己或公司的私人GPT变得非常重要。 一、本地部署…

win10下vscode+cmake编译C代码操作详解

0 工具准备 1.Visual Studio Code 1.85.1 2.cmake 3.24.01 前言 当我们只有一个.c文件时直接使用vscodeCode Runner插件即可完成编译&#xff0c;如果我们的工程很复杂包含多个.c文件时建议使用cmake来生成对应的make&#xff0c;指导编译器完成编译&#xff0c;否则会提示各…

数字图像处理(图像灰度变换、图像直方图及均衡、图像中值滤波、图像空域锐化增强、图像频域滤波)

数字图像处理&#xff08;图像灰度变换、图像直方图及均衡、图像中值滤波、图像空域锐化增强、图像频域滤波&#xff09; 目录 1 图像灰度变换 1.1 灰度线性变换 1.2 图像二值化 1.3 负象变换 1.4 灰度非线性变换 1.5 程序设计流程图 2 图像直方图及均衡 2.1 直方图 2…

无心剑七绝《高斯黎曼》

七绝高斯黎曼 高耸云端四海惊 斯人伟绩震豪英 黎霞璀璨通灵处 曼妙方程万世名 2024年1月6日 平水韵八庚平韵 《七绝高斯黎曼》是无心剑所作的一首以数学家为主题的七言绝句。全诗巧妙地将两位杰出的数学家——高斯&#xff08;Carl Friedrich Gauss&#xff09;与黎曼&#…

大模型机器人原理解析:如何从RT/RT2、Berkeley Gello到发展到斯坦福Mobile ALOHA、Google家务机器人

前言 23年7月&#xff0c;我在朋友圈评估Google的RT2说道&#xff1a; “大模型正在革新一切领域啊&#xff0c;超帅&#xff0c;通过大模型不仅能理解“人话”&#xff0c;还能对“人话”进行推理&#xff0c;并转变为机器人能理解的指令&#xff0c;从而分阶段完成任务。回…

express框架

目录 一、express介绍二、express 使用2.1 express下载2.2 express初体验 三、express 路由3.1 路由的使用3.2 获取参数3.3 获取路由参数 四、express响应设置五、express中间件5.1 什么是中间件5.2 中间件的作用5.3 中间件的类型5.3.1 定义全局中间件5.3.2 多个全局中间件5.3.…

协程池与新脚本语言

今天的主人公名为——Melang。 这是一款使用C语言开发的“新”的脚本语言&#xff0c;然而其已经默默问世了6年之久。 下面笔者就带你走进Melang world。 What is Melang Melang是一款协程并发脚本语言。它是一款解释型&#xff0c;而非编译型语言。 在Melang中&#xff…

html中的form表单以及相关控件input、文本域、下拉select等等的详细解释 ,点赞加关注持续更新~

文章目录 表单创建表单forminput 标签input标签的value属性设置input标签格式单选框多选框上传文件下拉菜单文本域设置文本域格式label 标签按钮 表单 作用&#xff1a;收集用户信息。 使用场景&#xff1a; 登录页面注册页面搜索区域 创建表单form <form action".…

实战环境搭建-linux下安装jdk1.8

查看安装jdk版本信息,主要是怕之前有遗漏的,或者安装失败的java rpm -qa | grep java 显示如下信息: 卸载: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 还有一些其他的命令…

MATLAB插值函数

一、MATLAB插值函数概览 1&#xff09;本节重点介绍的插值函数 MATLAB插值函数适用情况基础句式interp1 函数interp1 主要用于一维数据的插值interp1(x, y, x_interp, ‘linear’); 其中 x 和 y 是已知数据点&#xff0c;x_interp 是要插值的目标点。interp2 函数interp2 用于…

【STM32】PWR电源控制

1 PWR简介 PWR&#xff08;Power Control&#xff09;电源控制 PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能 可编程电压监测器&#xff08;PVD&#xff09;可以监控VDD电源电压&#xff0c;当VDD下降到PVD阀值以下或上升到P…

回首2023,期待2024!

2023&#xff0c;在改变中到来 2023年1月1日&#xff0c;我从成都冷清的学校回到了哈尔滨的老家&#xff0c;开始了保研之前的最后一个寒假 当时的目标是将之前的科研理论转化为实际&#xff0c;生产出一篇sci&#xff0c;助力保研加分 星移斗转&#xff0c;事与愿违&#x…

从零实现CLIP模型

1. 引言 CLIP代表语言图像对比预训练模型&#xff0c;是OpenAI于2021年开发的一个深度学习模型。CLIP模型中图像和文本嵌入共享相同的潜在特征空间&#xff0c;从而能够在两种模式之间直接进行对比学习。这是通过训练模型使相关的图像和文本更紧密地结合在一起&#xff0c;同时…

MySQL高级DBA的理论与实践,MySQL数据库管理员从入门到精通

一、教程描述 数据库管理员&#xff08;Database Administrator&#xff09;&#xff0c;简称DBA&#xff0c;想要成为高级的MySQL DBA&#xff0c;就要耐得住寂寞&#xff0c;持续不断地学习&#xff0c;除了数据库专业知识外&#xff0c;还需要了解主机、系统、网络、存储、…

SSD固态硬盘的黄金原则:抱最高的希望,做最坏的打算-1

随着SSD固态硬盘日益普及&#xff0c;在个人电脑中已成为基本的配置选项。在体验SSD固态硬盘带来的性能优势的同时&#xff0c;你有没有想过一个问题&#xff0c;SSD的数据如果误删除或发生故障丢失&#xff0c;还有没有可能找回来呢&#xff1f;这也许是固态硬盘飞入寻常百姓家…

C++_命令行操作

命令行操作 介绍第一步编译 源码第二部 找到exe 可执行文件第三步看图操作代码测试源码测试结果 介绍 本文介绍命令行操作 1.argc 表示当前输入 参数个数 2.argv 表示当前输入 字符串内容 第一步编译 源码 #include<iostream> #include<string>using namespace st…

构建网络信息安全的中国方案 - 国密SSL协议介绍以及国密Nginx服务器部署

国密SSL协议 国密SSL协议指的是采用国密算法&#xff0c;符合国密标准的安全传输协议。简而言之&#xff0c;国密SSL就是SSL/TLS协议的国密版本。TLS协议定义有三个版本号&#xff0c;为0x0301、0x0302、0x0303&#xff0c;分别对应TLS 1.0、1.1、1.2。国密SSL为了避免冲突&am…

Go (一) 基础部分5 -- 单元测试,协程(goroutine),管道(channel)

一、单元测试 Go自带一个轻量级的"测试框架testing"和自带的"go test"命令来实现单元测试和性能测试。 1.确保每个函数时可运行&#xff0c;并且运行结果是正确的。 2.确保写出来的代码性能是好的。 3.单元测试能及时的发现程序设计或实现的逻辑错误&#…

Nginx 常用变量 与 防盗链

目录 1.常用变量 2. $http_referer 配置防盗链 2.1 referer 2.2 配置防盗链 1.常用变量 变量说明 $args 请求中的参数&#xff0c;也叫查询参数 $content_length HTTP响应信息里的"Content-Length" $document_root nginx虚拟主机配置文件中的root站点根目录…