文章 90
评论 0
浏览 849410
Centos与Ubuntu初始化shell脚本

Centos与Ubuntu初始化shell脚本

#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2020-12-18 #FileName:reset_Linux_OS_v4.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2020 All rights reserved #******************************************************************** Centos(){ centos_Version(){ Version=`grep -Eo "[0-9].[0-9]" /etc/redhat-release | tr '.' '%' | tr '\n' % |cut -d% -f 1` #Version=`sed -nr 's/.* ([0-9])\..*/\1/p' /etc/redhat-release` } centos_PS1(){ grep PS1 ~/.bash_profile &>/dev/null if [ $? = 1 ];then echo 'export PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >>~/.bash_profile echo -e "\033[1;31m1)提示符配置已经完成请使用su -命令进行生效\033[0m" else echo -e "\033[1;31m1)提示符已经配置无需重新配置\033[0m" fi } centos_hostname(){ centos_Version num=0 while [ $num -ne 1 -a $num -ne 2 ];do read -p "您是否要自己设置主机名?(1是2否):" num if [ $num = 1 ];then read -p "请输入主机名: " hostname case ${Version} in 8|7) hostnamectl set-hostname $hostname echo -e "\033[1;31m2)主机名设置完成\033[0m,\033[1;32m请使用su -命令进行生效\033[0m" ;; 6) sed -i "/H/s@\(^H.*=\).*$@\1${hostname}" /etc/sysconfig/network echo -e "\033[1;31m2)主机名设置完成\033[0m,\033[1;32m请重新启动系统\033[0m" ;; *) echo -e "\033[1;31m2,3)您的系统不是Centos6, 7, 8!!!\033[0m" esac elif [ $num = 2 ];then case ${Version} in 8|7) hostnamectl set-hostname centos8 if [ $Version = 7 ];then hostnamectl set-hostname centos7 fi echo -e "\033[1;31m2)主机名设置完成\033[0m,\033[1;32m请使用su -命令进行生效\033[0m" ;; 6) sed -i '/H/s@\(^H.*=\).*$@\1centos6@' /etc/sysconfig/network echo -e "\033[1;31m2)主机名设置完成\033[0m,\033[1;32m请重新启动系统\033[0m" ;; *) echo -e "\033[1;31m2,3)您的系统不是Centos6, 7, 8!!!\033[0m" esac else echo "选择错误请重新选择!!!" fi done } centos_firewalld(){ centos_Version case ${Version} in 8|7) systemctl stop firewalld systemctl disable firewalld &>/dev/null echo -e "\033[1;31m3)防火墙关闭完成\033[0m" ;; 6) service iptables stop chkconfig iptables off echo -e "\033[1;31m3)防火墙关闭完成\033[0m" ;; *) echo -e "\033[1;31m2,3)您的系统不是Centos6, 7, 8!!!\033[0m" esac } centos_selinux(){ sed -i '/SELINUX=/s@\(^S.*=\).*$@\1disabled@' /etc/selinux/config echo -e "\033[1;31m3)Selinux关闭完成,请重新启动系统\033[0m" } centos_yum(){ ping -c2 baidu.com >/dev/null if [ $? = 0 ];then Version=`grep -Eo "[0-9].[0-9]" /etc/redhat-release | tr '.' '%' | tr '\n' % |cut -d% -f 1` if [ $Version = 8 ];then mkdir -p /etc/yum.repos.d/yum-Backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum-Backup/ &>/dev/null curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo &>/dev/null echo -e "\033[1;31m4)阿里源设置完成\033[0m, \033[1;32m之前的配置文件存放在/etc/yum.repo.d/yum-Backup目录下\033[0m" elif [ $Version = 7 ];then mkdir -p /etc/yum.repos.d/yum-Backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum-Backup/ &>/dev/null curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null echo -e "\033[1;31m4)阿里源设置完成\033[0m, \033[1;32m之前的配置文件存放在/etc/yum.repo.d/yum-Backup目录下\033[0m" elif [ $Version = 6 ];then mkdir -p /etc/yum.repos.d/yum-Backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum-Backup/ &>/dev/null curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo &>/dev/null echo -e "\033[1;31m4)阿里源设置完成\033[0m, \033[1;32m之前的配置文件存放在/etc/yum.repo.d/yum-Backup目录下\033[0m" fi else echo -e "\033[1;31m4)YUM配置失败,请检查网络连接\033[0m" fi } centos_yum_install(){ yum install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump net-tools bc bzip2 zip unzip nfs-utils man-pages apr* redhat-rpm-config bash-completion bash-completion chrony wget epel-release -y sed -e 's!^metalink=!#metalink=!g' \ -e 's!^#baseurl=!baseurl=!g' \ -e 's!//download\.fedoraproject\.org/pub!//mirrors.tuna.tsinghua.edu.cn!g' \ -e 's!http://mirrors\.tuna!https://mirrors.tuna!g' \ -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo echo -e "\033[1;31m5)常用软件安装完成\033[0m" } centos_vim(){ if [ -e /usr/bin/vim ];then cat >~/.vimrc<<EOF set ignorecase set cursorline set autoindent set number set paste set et set ts=4 autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setline(2,"#") call setline(3,"#********************************************************************") call setline(4,"#Author:zhangzhuo") call setline(5,"#QQ: 1191400158") call setline(6,"#Date: ".strftime("%Y-%m-%d")) call setline(7,"#FileName:".expand("%")) call setline(8,"#URL: https://www.zhangzhuo.ltd") call setline(9,"#Description:The test script") call setline(10,"#Copyright (C): ".strftime("%Y")." All rights reserved") call setline(11,"#********************************************************************") call setline(12,"set -ue") endif endfunc autocmd BufNewFile * normal G EOF echo -e "\033[1;31m6)VIM配置完成\033[0m" else echo -e "\033[1;34m6)警告:\033[0m\033[1;31m请先安装VIM软件\033[0m" fi } centos_alias(){ cat <<EOF>>~/.bashrc alias diskadd="echo '- - -' > /sys/class/scsi_host/host0/scan; echo '- - -' > /sys/class/scsi_host/host1/scan ; echo '- - -' > /sys/class/scsi_host/host2/scan" alias df='df -h' alias cdnet='cd /etc/sysconfig/network-scripts/' alias free='free -h' EOF echo -e "\033[1;31m7)别名配置完成,\033[0m\033[1;32m 请使用source ~/.bashrc命令进行生\033[0m" } centos_net_name(){ grep 'net.ifnames=0 biosdevname=0' /etc/default/grub &>/dev/null if [ $? = 1 ];then sed -ri '/GRUB_CMDLINE_LINUX=/s#(")$# net.ifnames=0 biosdevname=0"#' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg mv /etc/sysconfig/network-scripts/ifcfg-`ip a | grep -Eo "[0-9]:.*e.*:" | tr -d ' ' | cut -d: -f2` /etc/sysconfig/network-scripts/ifcfg-eth0 sed -ri '/NAME=/s#(".*")$#"eth0"#' /etc/sysconfig/network-scripts/ifcfg-eth0 sed -ri '/DEVICE=/s#(".*")$#"eth0"#' /etc/sysconfig/network-scripts/ifcfg-eth0 echo -e '\e[1;31m网卡名已经修改完成,重启电脑生效!\e[0m' else echo -e '\e[1;31m网卡名已经修改无需重新修改!\e[0m' fi } centos_net_ip(){ while :;do read -p "请输入要设置的网卡名称: " NET_NAME { nmcli connection | grep -E "\b$NET_NAME\b" >/dev/null; } && break || echo "请重新输入正确且存在>的网卡名称!" done while :;do read -p "请输入要修改的IP地址: " IP { echo $IP | grep -E "^(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$">/dev/null; } && break || echo "请输入正确的IP地址!" done while :;do read -p "请输入子网掩码(0-32): " MASK [ $MASK -le 32 ] && break || echo "输入错误请重新输入!" done while :;do read -p "请输入网关: " GATEWAY { echo $GATEWAY | grep -E "^(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$">/dev/null; } && break || echo "请输入正确的网关!" done nmcli connection modify ${NET_NAME} ipv4.addresses ${IP}/${MASK} ipv4.gateway ${GATEWAY} ipv4.dns 114.114.114.114 && nmcli connection reload >/dev/null && nmcli connection up $NET_NAME >/dev/null && echo "网卡地址配置完成!" || echo "未知错误!请检查!" } mail_set(){ yum install -y postfix mailx &>/dev/null || echo "安装邮箱服务失败,请检查YUM源或网络!" if [ -a /etc/mail.rc ];then sed -i '$aset from=zz15049236211@163.com' /etc/mail.rc sed -i '$aset smtp=smtp.163.com' /etc/mail.rc sed -i '$aset smtp-auth-user=zz15049236211@163.com' /etc/mail.rc sed -i '$aset smtp-auth-password=RESVITPPKPFLZZMP' /etc/mail.rc systemctl restart postfix && echo "服务安装启动完成!" || echo "未知错误请检查!" else echo "/etc/mail.rc配置文件不存在请检查!" fi } centos_optimize(){ cat >/etc/security/limits.conf<<EOF * soft core unlimited * hard core unlimited * soft nproc 1000000 * hard nproc 1000000 * soft nofile 1000000 * hard nofile 1000000 * soft memlock 32000 * hard memlock 32000 * soft msgqueue 8192000 EOF echo -e "\033[1;31m资源限制优化完成,重启生效\033[0m" cat >/etc/sysctl.conf<<EOF #ontrols source route verification net.ipv4.conf.default.rp_filter = 1 net.ipv4.ip_nonlocal_bind = 1 net.ipv4.ip_forward = 1 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality ofthe kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to thecore filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 # Disable netfilter on bridges. #net.bridge.bridge-nf-call-ip6tables = 0 #net.bridge.bridge-nf-call-iptables = 0 #net.bridge.bridge-nf-call-arptables = 0 # Controls the default maxmimum size of a mesage queue kernel.msgmnb = 65536 # # Controls the maximum size of a message, in bytes kernel.msgmax = 65536 # Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736 # # Controls the maximum number of shared memory segments,in pages kernel.shmall = 4294967296 # TCP kernel paramater net.ipv4.tcp_mem = 786432 1048576 1572864 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 16384 4194304 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_sack = 1 # socket buffer net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 net.core.somaxconn = 20480 net.core.optmem_max = 81920 # TCP conn net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_syn_retries = 3 net.ipv4.tcp_retries1 = 3 net.ipv4.tcp_retries2 = 15 # tcp conn reuse net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_tw_reuse = 0 #Linux 从4.12内核版本开始移除了 tcp_tw_recycle 配置 #net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_max_tw_buckets = 20000 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syncookies = 1 # keepalive conn net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.ip_local_port_range = 10001 65000 EOF echo -e "\033[1;31m优化内核参数完成\033[0m" } PS3="请选择相应的编号(1-15):" MENU=" Centos设置终端提示符 CentOS设置主机名 CentOS关闭防火墙 CentOS关闭SLINUX CentOS1-4全执行 CentOS设置YUN源(阿里源) CentOS最小安装安装常用软件 Centos设置VIM CentOS配置别名 CentOS重设网卡名称 CentOS设置网卡IP地址(如果执行完10请先重启在执行此项) CentOS设置邮箱代理 CentOS系统优化(资源限制优化与内核参数优化) 重启系统 退出 " select menu in $MENU;do case $REPLY in 1) centos_PS1 ;; 2) centos_hostname ;; 3) centos_firewalld ;; 4) centos_selinux ;; 5) centos_PS1 centos_hostname centos_firewalld centos_selinux ;; 6) centos_yum ;; 7) centos_yum_install ;; 8) centos_vim ;; 9) centos_alias ;; 10) centos_net_name ;; 11) centos_net_ip ;; 12) mail_set ;; 13) centos_optimize ;; 14) init 6 ;; 15) break ;; *) echo -e "\e[1;31m输入错误,请输入正确的数字(1-15)!\e[0m" ;; esac done } Ubuntu(){ ubuntu_version(){ VERSION=`sed -En '/^VERSION_ID=/s@.*"([0-9]+.[0-9]+)".*@\1@p' /etc/os-release` } ubuntu_PS1(){ grep PS1 ~/.profile &>/dev/null if [ $? = 1 ];then echo 'export PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >>~/.profile echo -e "\033[1;31m终端提示符配置完成!\033[0m" else echo -e "\033[1;31m终端提示符已经配置无需重新配置!\033[0m" fi } ubuntu_hostname(){ ubuntu_version num=0 while [ $num -ne 1 -a $num -ne 2 ];do read -p "您是否要自己设置主机名?(1是2否):" num if [ $num = 1 ];then read -p "请输入主机名: " hostname case ${VERSION} in 20.04|18.04) hostnamectl set-hostname $hostname echo -e "\033[1;31m主机名设置完成\033[0m,\033[1;32m请使用su -命令进行生效\033[0m" ;; *) echo -e "\033[1;31m您的系统不是Ubuntu20.04 18.04!!!\033[0m" esac elif [ $num = 2 ];then case ${VERSION} in 20.04|18.04) hostnamectl set-hostname ubuntu20-04 if [ $VERSION = 18.04 ];then hostnamectl set-hostname ubuntu18-04 fi echo -e "\033[1;31m主机名设置完成\033[0m,\033[1;32m请使用su -命令进行生效\033[0m" ;; *) echo -e "\033[1;31m您的系统不是Ubuntu20.04 18.04!!!\033[0m" esac else echo "选择错误请重新选择!!!" fi done } ubuntu_root(){ read -p "请输入root密码: " ROOTPASSWD echo -e "${ROOTPASSWD}\n${ROOTPASSWD}" |sudo passwd root &>/dev/null sed -Ei '/^#PermitRootLogin/s@^#(.*)\ .*@\1 yes@' /etc/ssh/sshd_config systemctl restart sshd echo -e '\e[1;31mroot密码已经设置完成,并且可以远程登录\e[0m' } ubuntu_apt(){ ping -c2 baidu.com &>/dev/null if [ $? = 0 ];then sed -Eni.bak '/^[^#]/s@(^.*\ )(.*)(/ubuntu.*)@\1http://mirrors.aliyun.com\3@p' /etc/apt/sources.list apt update echo -e '\e[1;31m阿里源设置完成! \e[0m' else sed -Eni.bak '/^[^#]/s@(^.*\ )(.*)(/ubuntu.*)@\1http://mirrors.aliyun.com\3@p' /etc/apt/sources.list echo -e "\033[1;31m阿里源设置完成,但是请检查你的网络连接!\033[0m" fi } ubuntu_vim(){ if [ -e /usr/bin/vim ];then cat >~/.vimrc<<EOF set ignorecase set cursorline set autoindent set number set paste set et set ts=4 autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setline(2,"#") call setline(3,"#********************************************************************") call setline(4,"#Author:zhangzhuo") call setline(5,"#QQ: 1191400158") call setline(6,"#Date: ".strftime("%Y-%m-%d")) call setline(7,"#FileName:".expand("%")) call setline(8,"#URL: https://www.zhangzhuo.ltd") call setline(9,"#Description:The test script") call setline(10,"#Copyright (C): ".strftime("%Y")." All rights reserved") call setline(11,"#********************************************************************") call setline(12,"set -ue") endif endfunc autocmd BufNewFile * normal G EOF echo -e "\033[1;31mVIM配置完成\033[0m" else echo -e "\033[1;34m警告:\033[0m\033[1;31请先安装VIM\033[0m" fi } ubuntu_alias(){ cat <<EOF>>~/.bashrc alias df='df -h' alias free='free -h' EOF echo -e "\033[1;31m别名配置完成,请使用source ~/.bashrc生效\033[0m" } ubuntu_install(){ apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip libaprutil1-dev libapr1-dev apt install make apt install make-guile sed -ri 's/(APT::Periodic::Update-Package-Lists ")1(";)/\10\2/' /etc/apt/apt.conf.d/20auto-upgrades sed -ri 's/(APT::Periodic::Unattended-Upgrade ")1(";)/\10\2/' /etc/apt/apt.conf.d/20auto-upgrades echo -e "\033[1;31m常用软件安装完成,自动更新已经关闭\033[0m" } ubuntu_net_name(){ sed -ri '/GRUB_CMDLINE_LINUX=""/s@"(.*)"@"net.ifnames=0 biosdevname=0"@' /etc/default/grub grub-mkconfig -o /boot/grub/grub.cfg name=`ip a | grep -o "^[0-9]: e.*:" | tr -d ' ' | cut -d: -f2` for i in /etc/netplan/*;do sed -ri "s/$name:/eth0:/" $i; done echo -e "\033[1;31m设置完成请重新启动系统\033[0m" } ubuntu_optimize(){ cat >/etc/security/limits.conf<<EOF * soft core unlimited * hard core unlimited * soft nproc 1000000 * hard nproc 1000000 * soft nofile 1000000 * hard nofile 1000000 * soft memlock 32000 * hard memlock 32000 * soft msgqueue 8192000 root soft core unlimited root hard core unlimited root soft nproc 1000000 root hard nproc 1000000 root soft nofile 1000000 root hard nofile 1000000 root soft memlock 32000 root hard memlock 32000 root soft msgqueue 8192000 EOF echo -e "\033[1;31m资源限制优化完成,重启生效\033[0m" cat >/etc/sysctl.conf<<EOF # Controls source route verification net.ipv4.conf.default.rp_filter = 1 net.ipv4.ip_nonlocal_bind = 1 net.ipv4.ip_forward = 1 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality ofthe kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to thecore filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1 # Controls the use of TCP syncookies net.ipv4.tcp_syncookies = 1 # Disable netfilter on bridges. #net.bridge.bridge-nf-call-ip6tables = 0 #net.bridge.bridge-nf-call-iptables = 0 #net.bridge.bridge-nf-call-arptables = 0 # Controls the default maxmimum size of a mesage queue kernel.msgmnb = 65536 # # Controls the maximum size of a message, in bytes kernel.msgmax = 65536 # Controls the maximum shared segment size, in bytes kernel.shmmax = 68719476736 # # Controls the maximum number of shared memory segments,in pages kernel.shmall = 4294967296 # TCP kernel paramater net.ipv4.tcp_mem = 786432 1048576 1572864 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 16384 4194304 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_sack = 1 # socket buffer net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 net.core.somaxconn = 20480 net.core.optmem_max = 81920 # TCP conn net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_syn_retries = 3 net.ipv4.tcp_retries1 = 3 net.ipv4.tcp_retries2 = 15 # tcp conn reuse net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_tw_reuse = 0 #Linux 从4.12内核版本开始移除了 tcp_tw_recycle 配置 #net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_max_tw_buckets = 20000 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syncookies = 1 # keepalive conn net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.ip_local_port_range = 10001 65000 EOF echo -e "\033[1;31m优化内核参数完成\033[0m" } PS3="请选择相应的编号(1-12):" MENU=" Ubuntu设置终端提示符 Ubuntu配置主机名(需要以sudo执行脚本) Ubuntu设置root密码并且允许root远程登录(需要以sudo执行脚本) Ubuntu设置阿里源(需要以sudo执行脚本) Ubuntu安装常用软件,及关闭自动更新 Ubuntu配置VIM Ubuntu配置别名 Ubuntu修改网卡名称(需要以sudo执行脚本) Ubuntu系统优化(资源限制与内核优化) 执行1,6,7! 重启系统(需要以sudo执行脚本) 退出 " select menu in $MENU;do case $REPLY in 1) ubuntu_PS1 ;; 2) ubuntu_hostname ;; 3) ubuntu_root ;; 4) ubuntu_apt ;; 5) ubuntu_install ;; 6) ubuntu_vim ;; 7) ubuntu_alias ;; 8) ubuntu_net_name ;; 9) ubuntu_optimize ;; 10) ubuntu_PS1 ubuntu_vim ubuntu_alias ;; 11) reboot ;; 12) break ;; *) echo -e "\e[1;31m输入错误,请输入正确的数字(1-12)!\e[0m" ;; esac done } man(){ [ -f /etc/os-release ] || { echo -e "\e[1;31m未知错误正在退出....!\e[0m";exit; } centos=`cat /etc/os-release |grep -o centos |head -1` ubuntu=`cat /etc/os-release |grep -o ubuntu |head -1` if [ $centos == centos ] &>/dev/null;then echo -e "\e[1;31m您当前的系统为$centos正在执行脚本.....\e[0m" Centos elif [ $ubuntu == ubuntu ];then echo -e "\e[1;31m您当前的系统为$ubuntu正在执行脚本.....\e[0m" Ubuntu else echo -e "\e[1;31m您当前的系统不适合执行此脚本.....\e[0m" fi } man

标题:Centos与Ubuntu初始化shell脚本
作者:Carey
地址:HTTPS://zhangzhuo.ltd/articles/2020/11/28/1606559150116.html

生而为人

中午了,工作了一个上午,现在是午餐时间!
取消