记一下服务器的初始配置。
前言 前些日子,入手了一台服务器,特此记录一下它的初始配置。
正文 注:本人主机为 CentOS 7 x64 系统,以下内容均基于此环境 。
安全设置 请查考 肉鸡是怎样炼成的
字符集修改 1 2 3 4 5 6 cd /etc/sysconfig/sudo vi i18n LANG="zh_CN.utf8" source /etc/sysconfig/i18n
设置 DNS 1 2 3 vi /etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8
配置 Yum 源 1 2 3 4 5 6 cd /etc/yum.repos.d/sudo mv CentOS-Base.repo CentOS-Base.repo_bak sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
设置时区 1 2 3 4 yum install ntp -y timedatectl set -timezone Asia/Shanghai timedatectl set -ntp yes timedatectl
软件安装 常用软件 1 2 3 4 5 yum install epel-release -y yum -y update yum clean all yum makecache yum -y install wget bind -utils net-tools lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget ncurses-devel autoconf automake zlib-devel python-devel
Vim 1 2 3 4 yum -y install vim curl -sLf https://spacevim.org/cn/install.sh | bash -s -- -h vi ~/.SpaceVim.d/
Git 1 2 3 4 5 6 7 8 yum -y install git git config --global user.name SimonMa git config --global user.email simon@tomotoes.com git config --global http.sslverify false git config --global https.sslverify false ssh-keygen -t rsa -C "simon@tomotoes.com"
Zsh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 yum -y install zsh chsh -s /bin/zsh reboot sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh) " vi ~/.zshrc ZSH_THEME="agnoster" yum install autojump -y yum install autojump-zsh git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM /plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom} /plugins/zsh-syntax-highlighting plugins=( git autojump zsh-autosuggestions zsh-syntax-highlighting z extract ) source ~/.zshrc更新 upgrade_oh_my_zsh 卸载 uninstall_oh_my_zsh
连按两次 Tab 会列出所有的补全列表并直接开始选择,补全项可以使用 ctrl+n/p/f/b 上下左右切换命令选项补全。在 zsh 中只需要键入 tar - 就会列出所有的选项和帮助说明 命令参数补全。键入 kill 就会列出所有的进程名和对应的进程号 更智能的历史命令。在用或者方向上键查找历史命令时,zsh 支持限制查找。比如,输入 ls,然后再按方向上键,则只会查找用过的 ls 命令。而此时使用则会仍然按之前的方式查找,忽略 ls 多个终端会话共享历史记录 智能跳转,安装了 autojump 之后,zsh 会自动记录你访问过的目录,通过 j 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过 hadoop-1.0.0 目录,输入 j hado 即可正确跳转。j –stat 可以看你的历史路径库。 目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。 在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。在你知道路径的情况下,比如 /usr/local/bin 你可以输入 cd /u/l/b 然后按进行补全快速输入 通配符搜索:ls -l /*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find。使用 / 来递归搜索 扩展环境变量,输入环境变量然后按 就可以转换成表达的值 在 .zshrc 中添加 setopt HIST_IGNORE_DUPS 可以消除重复记录,也可以利用 sort -t “;” -k 2 -u ~/.zsh_history | sort -o ~/.zsh_history 手动清除 至此,你现在的 zsh 应该具备如下几个特性:各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下tab
键,补全项可以使用ctrl+n/p/f/b 上下左右
切换。比如你想杀掉 java 的进程,只需要输入kill java + tab 键
,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个 tab 键
,zsh 会列出所有访问过的主机和用户名进行补全; 即使你没有安装autojump
,只要输入d
,就会列出你在这个回话中访问的目录,输入前面的序号,就可以直接跳转; 可以忽略 cd 命令, 输入..
或者...
和当前目录名都可以跳转; 当然,除了上面几点,zsh 还有很多丰富的插件可以使用,这就需要继续的探索了… Nodejs 1 2 3 4 5 6 7 8 9 10 11 12 13 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash source ~/.bashrcnvm install stable nvm list npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm.taobao.org/dist npm config set puppeteer_download_host https://npm.taobao.org/mirrors
Nginx 1 2 3 4 5 6 7 8 9 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm sudo yum install -y nginx sudo systemctl start nginx.service sudo systemctl enable nginx.service
命令别名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 vi ~/.zshrc alias shadow='/etc/init.d/shadowsocks' alias vi='vim' alias ls='ls --color=auto' alias ll="ls --color -al" alias grep='grep --color=auto' alias now='date "+%Y-%m-%d %H:%M:%S"' alias reboot='sudo /sbin/reboot' alias poweroff='sudo /sbin/poweroff' alias halt='sudo /sbin/halt' alias shutdown='sudo /sbin/shutdown' alias mkdir='mkdir -pv' extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar e $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1 ' cannot be extracted via extract()" ;; esac else echo "'$1 ' is not a valid file" fi } alias size='f(){ du -sh $1* | sort -hr; }; f' alias portopen='f(){ /sbin/iptables -I INPUT -p tcp --dport $1 -j ACCEPT; }; f' alias portclose='f(){ /sbin/iptables -I INPUT -p tcp --dport $1 -j DROP; }; f' alias untar='tar xvf ' alias -s html='vim' alias -s rb='vim' alias -s py='vim' alias -s js='vim' alias -s md='vim' alias -s mjs='vim' alias -s css='vim' alias -s c='vim' alias -s java='vim' alias -s txt='vim' alias -s gz='tar -xzvf' alias -s tgz='tar -xzvf' alias -s zip='unzip' alias -s bz2='tar -xjvf' alias -s json='vim' alias -s go='vim' alias cat=ccatalias man=tldreval "$(thefuck --alias) " source ~/.oh-my-zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zshsource ~/.oh-my-zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zshZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=10" source ~/.zshrc
1 2 3 4 5 6 7 8 9 10 11 12 alias alias name=valuealias c='clear' unalias aliasnamevi ~/.zshrc
安装 这两天,我完成了 CentosInit
项目,一个高度自定义的 Centos 初始化脚本。
欢迎
Star
,
PR
!
如果你想快速配置以上初始化措施,请执行以下命令:
通过 curl
1 sh -c "$(curl -fsSL https://tomotoes.com/Centos-init/install.sh) "
通过 wget
1 sh -c "$(wget https://tomotoes.com/Centos-init/install.sh -O -) "
基本介绍 脚本功能一共分为四大类:
初始化配置(update)
1 2 3 4 5 6 7 8 9 updateLanguage updateTime updateLanguage updateTime updateDNS updateYumSource updateHostname updateUlimit updateCoreConfig
安装常用软件(install)
1 2 3 4 5 6 7 8 9 10 11 12 installCommonSoft installGit installVim installZsh installNode installNpmPackages installPython installPipPackages installDocker installNginx installCcat installShadowSocks
配置安装后的软件(config)
1 2 3 4 5 6 7 configVim configZsh configGit configNode configDocker configNginx configShadowSocks
必要的安全配置(secure)
基础项
1 2 3 4 5 deleteOrLockUnnecessaryUsersAndGroups setPrivileges closeCtrlAltDel closeIpv6 closeSELinux
高阶项
1 2 3 4 updateSSHPort useKeyLogin useIptable preventCrackingPassword
用户相关项
1 2 3 4 getUserInfo addUser joinWheelGroup banRootLogin
单独功能安装 如果你想安装某一种功能( Update | Install | Config | Secure )
请参考以下案列:
1 2 3 4 5 ONLY_UPDATE=Y sh -c "$(curl -fsSL https://tomotoes.com/Centos-init/install.sh) " ONLY_INSTALL=Y ONLY_CONFIG=Y sh -c "$(curl -fsSL https://tomotoes.com/Centos-init/install.sh) "
交互模式 你也设置设置交互模式,在交互模式下,可高达自定义化你想使用的功能。
每执行完一项功能,都会询问你下一步。
使用功能的方法如下:
1 2 INTERACTIVE=Y sh -c "$(curl -fsSL https://tomotoes.com/Centos-init/install.sh) "
结束语 转载本站文章请注明作者和出处 tomotoes.com ,请勿用于任何商业用途。