zoukankan      html  css  js  c++  java
  • Centos,Ubuntu安装初始化脚本

    #!/bin/bash
    #
    #********************************************************************
    #Author:            Wuvikr
    #QQ:                744123155
    #Date:              2020-09-30
    #FileName?          init_for_centos_or_ubuntu.sh
    #URL:               http://www.wuvikr.top
    #Description?       The init script
    #Copyright (C):     2020 All rights reserved
    #********************************************************************
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    
    trap "echo -e 'e[1;36mThank you for using, goodbye !e[0m'" EXIT
    trap "echo -e 'e[1;31m该脚本已经禁用ctrl + c,请按 0 正常退出,谢谢配合 !e[0m'" SIGINT
    LinuxVersion=`awk -F '=|"' '/^NAME/{print $3}' /etc/os-release`
    
    if [ "$LinuxVersion" = 'Ubuntu' ];then
        Version_ID=`cat /etc/os-release | sed -rn '/VERSION_ID/s#^[^0-9]+(.*)"$#1#p'`
        echo "您的机器Linux发行版是Ubuntu $Version_ID!"
        if [ "$Version_ID" = '18.04' ];then
            apt_source=bionic
            net_file=50-cloud-init.yaml
        else
            apt_source=focal
            net_file=00-installer-config.yaml
        fi
    else
        LinuxVersion='CentOS Linux'
        Version_ID=`sed -rn 's/^[^0-9]+(.)..*/1/p' /etc/redhat-release`
        echo "您的机器Linux发行版是CentOS Linux $Version_ID!"
    fi
    
    green='echo -e e[1;32m'
    end='e[0m'
    
    #关闭SELinux
    disable_selinux(){
        sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
        ${green}SElinux已经禁用,重新启动后生效!$end
    }
    
    
    #关闭防火墙
    disable_firewalld(){
        if [ "$LinuxVersion" = 'Ubuntu' ];then
            ufw disable &> /dev/null
        elif [ "$Version_ID" != 6 ];then
            systemctl disable --now firewalld &> /dev/null
        else
            chkconfig iptables off
        fi
        ${green}防火墙已经禁用!$end
    }
    
    
    #修改命令提示符颜色
    set_ps1(){
        echo -e 'e[1;31m1.红色e[0m'
        echo -e 'e[1;32m2.绿色e[0m'
        echo -e 'e[1;33m3.黄色e[0m'
        echo -e 'e[1;34m4.蓝色e[0m'
        echo -e 'e[1;35m5.紫色e[0m'
        echo -e 'e[1;36m6.青色e[0m'
        echo -e 'e[1;37m7.白色e[0m'
        read -p "请选择你想要的颜色[1-7]" PS1_color
        if [ "$LinuxVersion" = 'Ubuntu' ];then
            sed -ri "/\:\w/s#(^[^]+).*#1\[\e[1;3${PS1_color}m\][\u@\h:\W]\\$ \[\e[0m\]'#" /root/.bashrc
        else
            echo "PS1='[e[1;3${PS1_color}m][u@h W]\$[e[0m]'" >> /etc/profile.d/env.sh
        fi
        ${green}提示符已经修改成功,重新登录后生效!$end
    }
    
    
    #修改网卡名
    set_eth(){
        if [ "$LinuxVersion" = 'Ubuntu' ];then
            sed -i.bak '/GRUB_CMDLINE_LINUX=/s#"$# net.ifnames=0"#' /etc/default/grub
            grub-mkconfig -o /boot/grub/grub.cfg &> /dev/null
            sed -i 's/ens33/eth0/' /etc/netplan/$net_file
        elif [ "$Version_ID" != 6 ];then
            sed -i.bak '/GRUB_CMDLINE_LINUX=/s#"$# net.ifnames=0"#' /etc/default/grub
            grub2-mkconfig -o /boot/grub2/grub.cfg &> /dev/null
            mv /etc/sysconfig/network-scripts/ifcfg-* /etc/sysconfig/network-scripts/ifcfg-eth0
            sed -ri 's/(NAME=).*/1eth0/' /etc/sysconfig/network-scripts/ifcfg-eth0
            sed -ri 's/(DEVICE=).*/1eth0/' /etc/sysconfig/network-scripts/ifcfg-eth0
            sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth0
        fi
        ${green}网卡名称已经修改成功,重新启动后生效!$end
    }
    
    
    #安装常用软件
    install_soft(){
        if [ "$LinuxVersion" = 'CentOS Linux' ];then
            echo -e 'e[1;33m正在安装,请稍候...e[0m'
            yum -y install vim curl tree wget bash-completion net-tools lrzsz lsof zip unzip autofs rsync tcpdump psmisc lbzip2 man-pages chrony &> /dev/null && ${green}vim curl tree wget bash-completion net-tools lrzsz lsof zip unzip autofs rsync tcpdump psmisc lbzip2 man-pages chrony 已经安装成功! $end
        else
            echo -e 'e[1;33m正在安装,请稍候...e[0m'
            apt -y install vim curl tree wget bash-completion net-tools lrzsz lsof zip unzip autofs rsync tcpdump psmisc lbzip2 chrony &> /dev/null && ${green}vim curl tree wget bash-completion net-tools lrzsz lsof zip unzip autofs rsync tcpdump psmisc lbzip2 chrony 已经安装成功!$end
        fi
    }
    
    
    #添加常用别名
    add_alias(){
        if [ "$LinuxVersion" = 'CentOS Linux' ];then
            echo >> /etc/profile.d/env.sh
            echo "alias vinet='vim /etc/sysconfig/network-scripts/ifcfg-eth0'" >> /etc/profile.d/env.sh
            echo "alias yumi='yum -y install'" >> /etc/profile.d/env.sh
            echo "alias yump='yum provides'" >> /etc/profile.d/env.sh
            echo "alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'" >> /etc/profile.d/env.sh
        else
            echo "alias apti='apt -y install'" >> /etc/profile.d/env.sh
            echo "alias vinet='vim /etc/netplan/$net_file'" >> /etc/profile.d/env.sh
            echo "alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'" >> /etc/profile.d/env.sh
        fi
      ${green}别名添加成功,重新登录后生效!$end
    }
    
    
    #修改镜像源
    mirrors_sources(){
        if [ "$LinuxVersion" = 'Ubuntu' ];then
            cat > /etc/apt/sources.list <<EOF
    deb http://mirrors.aliyun.com/ubuntu/ $apt_source main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ $apt_source main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ $apt_source-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ $apt_source-security main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ $apt_source-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ $apt_source-updates main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ $apt_source-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ $apt_source-proposed main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ $apt_source-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ $apt_source-backports main restricted universe multiverse
    EOF
        elif [  "$Version_ID" = 6 ];then
            rm -rf /etc/yum.repos.d/*
            cat > /etc/yum.repos.d/CentOS6.repo <<EOF
    [base]
    name=CentOS6-base
    baseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/
            https://mirrors.huaweicloud.com/centos/6/os/x86_64/
            https://mirrors.163.com/centos/6/os/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
    
    [epel]
    name=CentOS6-epel
    baseurl=https://mirrors.aliyun.com/epel/6/x86_64/
            https://mirrors.huaweicloud.com/epel/6/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6
    
    [extras]
    name=CentOS6-extras
    baseurl=https://mirrors.aliyun.com/centos/6/extras/x86_64/
            https://mirrors.huaweicloud.com/centos/6/extras/x86_64/
            https://mirrors.163.com/centos/6/extras/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
    EOF
        elif [  "$Version_ID" = 7 ];then
            rm -rf /etc/yum.repos.d/*
            cat > /etc/yum.repos.d/CentOS7.repo <<EOF
    [Packages]
    name=Base
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
            https://mirrors.huaweicloud.com/centos/7/os/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
    
    [epel]
    name=epel
    baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
            https://mirrors.huaweicloud.com/epel/7/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
    
    [extras]
    name=extras
    baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
            https://mirrors.huaweicloud.com/centos/7/extras/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
    EOF
        elif [  "$Version_ID" = 8 ];then
            rm -rf /etc/yum.repos.d/*
            cat > /etc/yum.repos.d/CentOS8.repo <<EOF
    [baseOS]
    name=baseOS
    baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
            https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
            https://mirrors.163.com/centos/8/BaseOS/x86_64/os/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
    
    [AppStream]
    name=AppStream
    baseurl=https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
            https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/
            https://mirrors.163.com/centos/8/AppStream/x86_64/os/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
    
    
    [epel]
    name=epel
    baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
            https://mirrors.huaweicloud.com/epel/8/Everything/x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-8
    
    [extras]
    name=extras
    baseurl=https://mirrors.aliyun.com/centos/8/extras/x86_64/os/
            https://mirrors.huaweicloud.com/centos/8/extras/x86_64/os/
            https://mirrors.163.com/centos/8/extras/x86_64/os/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
    EOF
        fi
        ${green}mirrors源修改成功$end
    }
    
    
    #修改vim格式
    vim_style(){
      cat > /root/.vimrc <<EOF
    "保存.vimrc文件时自动重启加载,即让此文件立即生效
    autocmd BufWritePost $MYVIMRC source $MYVIMRC
    "TAB长度
    set tabstop=2
    "输入tab制表符时,自动替换成空格
    set expandtab
    "设置自动缩进长度为2空格
    set shiftwidth=2
    "设置行号
    "set number
    "语法高亮
    syntax on
    "高亮显示括号匹配
    set showmatch
    "忽略大小写
    set ignorecase
    "当前行显示下划线
    set cursorline
    "自动缩进
    set autoindent
    "搜索到最后匹配的位置后,再次搜索不回到第一个匹配处
    set nowrapscan
    
    ""定义函数SetTitle,自动插入文件头
    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:            Wuvikr")
        call setline(5,"#QQ:                744123155")
        call setline(6,"#Date:              ".strftime("%Y-%m-%d"))
        call setline(7,"#FileName           ".expand("%"))
        call setline(8,"#URL:               http://www.wuvikr.top")
        call setline(9,"#Description        The test script")
        call setline(10,"#Copyright (C):     ".strftime("%Y")." All rights reserved")
        call setline(11,"#********************************************************************")
        call setline(12,"PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin")
        call setline(13,"export PATH")
        call setline(14,"")
        endif
    endfunc
    "新建文件后,自动定位到文件末尾
    autocmd BufNewFile * normal G
    
    "自动补全括号引号
    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {}<ESC>i
    :inoremap } <c-r>=ClosePair('}')<CR>
    :inoremap [ []<ESC>i
    :inoremap ] <c-r>=ClosePair(']')<CR>
    :inoremap " ""<ESC>i
    :inoremap ' ''<ESC>i
    :inoremap < <><ESC>i
    :inoremap > <c-r>=ClosePair('>')<CR>
    function! ClosePair(char)
        if getline('.')[col('.') - 1] == a:char
            return "<Right>"
        else
            return a:char
        endif
    endfunction 
    EOF
      echo "export EDITOR=vim" >> /etc/profile.d/env.sh
      ${green}vim格式修改成功!$end
    }
    
    #主程序入口
    while true;do
    cat <<EOF
    1. 禁用SElinux
    2. 关闭防火墙
    3. 修改命令提示符
    4. 修改网卡名
    5. 安装常用软件
    6. 添加常用别名
    7. 修改mirrors源
    8. 修改vim格式
    9. 我全都要
    0. 退出
    EOF
    
        read -p "请选择你想要的操作(0-9): "
        case $REPLY in
        1)
            if [ "$LinuxVersion" = 'Ubuntu' ]
            then
                echo -e 'e[1;33m您的系统发行版本为Ubuntu,默认没有安装selinux,请重新选择其他操作!e[0m'
                continue
            fi
            disable_selinux
            ;;
        2)
            disable_firewalld
            ;;
        3)
            set_ps1
            ;;
        4)
            if [ "$Version_ID" = 6 ];then
                echo -e 'e[1;33m您的系统版本为CentOS 6,不需要修改网卡名,请重新选择其他操作!e[0m'
                continue
            fi
            set_eth
            ;;
        5)
            install_soft
            ;;
        6)
            add_alias
            ;;
        7)
            mirrors_sources
            ;;
        8)
            vim_style
            ;;
        9)  
            if [ "$LinuxVersion" = 'Ubuntu' ];then
                disable_firewalld
                set_ps1
                set_eth
                mirrors_sources
                install_soft
                add_alias
                vim_style
            else
                disable_selinux
                disable_firewalld
                set_ps1
                set_eth
                mirrors_sources
                install_soft
                add_alias
                vim_style
            fi
            ;;
        0)
            break
            ;;
        *)
            echo -e "e[1;31m请输入正确的数字e[0m"
        esac
    done
    
  • 相关阅读:
    hdu 4521 小明系列问题——小明序列(线段树 or DP)
    hdu 1115 Lifting the Stone
    hdu 5476 Explore Track of Point(2015上海网络赛)
    Codeforces 527C Glass Carving
    hdu 4414 Finding crosses
    LA 5135 Mining Your Own Business
    uva 11324 The Largest Clique
    hdu 4288 Coder
    PowerShell随笔3 ---别名
    PowerShell随笔2---初始命令
  • 原文地址:https://www.cnblogs.com/wuvikr/p/13726583.html
Copyright © 2011-2022 走看看