linuxcfg.sh
背景介绍:
今天跟导师聊了很多,感触颇深,差距颇大,收获颇多~
对基线和版本的控制有了更深入的了解。
-----------------------------------------------------------------------------------
每个人都有自己使用linux的环境,这些环境可以提升自己的工作效率,在岁月长河中,慢慢去完善这些“习惯”。
1 #!/bin/bash 2 3 yesnoinput() 4 { 5 while : 6 do 7 read ANSWER 8 case $ANSWER in 9 "yes"|"YES") 10 return 0 11 ;; 12 "no"|"NO") 13 return 1 14 ;; 15 *) 16 echo -n "[WARNING] Unknown input. " 17 ;; 18 esac 19 printf "Please input [yes..no]: " 20 done 21 } 22 23 iptablesconfig() 24 { 25 iptables -P INPUT ACCEPT 26 iptables -P FORWARD ACCEPT 27 iptables -P OUTPUT ACCEPT 28 29 iptables -F 30 iptables -X 31 iptables -Z 32 33 iptables-save >/etc/sysconfig/iptables 34 35 touch /etc/rc.d/rc.local 36 chmod 755 /etc/rc.d/rc.local 37 sed -i /iptables/d /etc/rc.d/rc.local 38 echo "iptables-restore < /etc/sysconfig/iptables" >>/etc/rc.d/rc.local 39 40 sed -i 's/SELINUX=.*$/SELINUX=disabled/g' /etc/sysconfig/selinux &>/dev/null #centos7 41 sed -i 's/SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config &>/dev/null #centos6 42 43 setenforce 0 &>/dev/null 44 systemctl stop firewalld &>/dev/null 45 systemctl disable firewalld &>/dev/null 46 } 47 48 systemconfig() 49 { 50 #修改系统语言 需要为英文 51 sed -i 's/^LANG=.*$/LANG="en_US.UTF-8"/g' /etc/locale.conf 52 53 #修改时区相差八小时问题 54 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 55 56 #ssh登陆慢 57 sed -i '/^UseDNS/d' /etc/ssh/sshd_config 58 sed -i '/^#UseDNS/a\UseDNS no' /etc/ssh/sshd_config 59 sed -i '/^GSSAPIAuthentication/d' /etc/ssh/sshd_config 60 sed -i '/^#GSSAPIAuthentication/a\GSSAPIAuthentication no' /etc/ssh/sshd_config 61 systemctl restart sshd 62 63 #配置DNS服务器 64 echo "nameserver 114.114.114.114" >/etc/resolv.conf 65 66 #修改history相关属性 67 mkdir -p /etc/profile.d 68 69 echo " 70 PS1='\[\033[01;35m\][\u@\h \w]\\\$ \[\033[00m\]' 71 HISTSIZE=1000000 72 73 mkdir -p /root/.history 74 HISTFILE=/root/.history/history_\`echo \$SSH_CLIENT | cut -d' ' -f1\` 75 HISTTIMEFORMAT=\"[%F %T] \" 76 export HISTTIMEFORMAT 77 export PROMPT_COMMAND=\"history -a\" 78 79 export LANG=en_US.UTF-8 80 export LESSCHARSET=UTF-8 81 82 " >/etc/profile.d/private.sh 83 84 source /etc/profile.d/private.sh 85 86 } 87 88 vimconfig() 89 { 90 touch ~/.vimrc 91 92 echo " 93 set nocompatible 94 set backspace=indent,eol,start 95 \"\"set backup 96 syntax on 97 set hlsearch 98 filetype plugin on 99 set ruler 100 set ts=4 101 set sw=4 102 set shiftwidth=4 103 set softtabstop=4 104 set nu 105 set autoindent 106 \"\"set textwidth=200 107 set noexpandtab 108 set encoding=utf-8 109 set fileencoding=utf-8 110 set fileencodings=ucs-bom,utf-8,chinese 111 set modeline 112 set t_vb= 113 " > ~/.vimrc 114 115 } 116 117 gitconfig() 118 { 119 touch ~/.gitconfig 120 121 echo " 122 [user] 123 name = 124 email = 125 [credential] 126 helper = store 127 [http] 128 sslVerify = false 129 [i18n] 130 logOutputEncoding = UTF-8 131 commitEncoding = UTF-8 132 [core] 133 editor = vim 134 autocrlf = input 135 quotepath = false 136 [push] 137 default = current 138 [alias] 139 lg = log --graph --format=format:'%C(cyan)[%ai]%C(reset) %C(bold blue)%h%C(reset) %C(bold green)(%ar)%C(reset) %C(bold red)%an%C(reset) %C(white)%s%C(reset) %C(bold yellow)%d%C(reset)' 140 st = status 141 ls = log --graph --format=format:'%C(cyan)[%ai]%C(reset) %C(bold blue)%h%C(reset) %C(bold green)(%ar)%C(reset) %C(bold red)%an%C(reset) %C(white)%s%C(reset) %C(bold yellow)%d%C(reset)' --stat 142 so = show 143 cl = clean -xd 144 [color] 145 ui = auto 146 [color \"branch\"] 147 current = yellow reverse bold 148 local = yellow bold 149 remote = green bold 150 [color \"status\"] 151 added = yellow bold 152 changed = red bold 153 untracked = green bold 154 [color \"diff\"] 155 meta = yellow bold 156 frag = magenta bold 157 commit = yellow bold 158 old = red bold 159 new = green bold 160 whitespace = red reverse 161 [color \"diff-highlight\"] 162 oldNormal = red bold 163 oldHighlight = red bold 52 164 newNormal = green bold 165 newHighlight = green bold 22 166 " > ~/.gitconfig 167 } 168 169 yumconfig() 170 { 171 sed -i 's!cachedir=.*$!cachedir=/opt/yum/!g' /etc/yum.conf 172 sed -i 's/^keepcache=.*$/keepcache=1/g' /etc/yum.conf 173 sed -i 's/^gpgcheck=.*$/gpgcheck=0/g' /etc/yum.conf 174 sed -i 's/^plugins=.*$/plugins=0/g' /etc/yum.conf 175 sed -i 's/^enabled=.*$/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf 176 177 mkdir -p /etc/yum.repos.d/ 178 rm -rf /etc/yum.repos.d/* 179 180 echo " 181 [base] 182 name=Base 183 baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ 184 enabled=1 185 186 [epel] 187 name=epel 188 baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ 189 enabled=1 190 191 [extra] 192 name=extra 193 baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ 194 enabled=0 195 196 [docker] 197 name=docker 198 baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/ 199 enabled=0 200 201 [svn] 202 name=svn 203 baseurl=http://opensource.wandisco.com/centos/7/svn-1.11/RPMS/ 204 enabled=0 205 206 [gitlab] 207 name=gitlab-ee 208 baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/x86_64/ 209 enabled=0 210 211 [intel] 212 name=intel 213 baseurl=https://download.01.org/QAT/repo 214 enabled=0 215 " >/etc/yum.repos.d/CentOS-Base.repo 216 217 yum clean all && yum makecache 218 219 # yum -y install vim git wget mlocate net-tools doxygen tree zip bzip2 file screen lrzsz 220 # yum -y install autoconf libtool automake gcc gcc-c++ 221 222 # centos5.4 mirrors 223 # http://mirrors.aliyun.com/centos-vault/5.4/os/x86_64/ 224 # http://archives.fedoraproject.org/pub/archive/epel/5/x86_64/ 225 # http://mirrors.aliyun.com/centos-vault/5.4/extras/x86_64/ 226 # http://mirrors.aliyun.com/centos-vault/5.4/centosplus/x86_64/ 227 # http://mirrors.aliyun.com/centos-vault/5.4/updates/x86_64/ 228 # http://opensource.wandisco.com/centos/5/svn-1.9/RPMS/ 229 } 230 231 echo -n "[INFO] Are you sure to excute this script now?[yes/no]: " 232 yesnoinput 233 234 if [ "$?" -ne 0 ]; then 235 echo "Exit script!" 236 exit 1 237 fi 238 239 iptablesconfig 240 systemconfig 241 vimconfig 242 gitconfig 243 yumconfig