shell脚本幸福你我他

384 阅读4分钟

shell脚本库

1.创作背景

近日吾学习了linux,感觉是个不错的体验,但在安装软件如mysql等不是很方便,没有Windows那样的傻瓜式安装,故写下这些脚本。

仓库地址

2.不定时更新

吾会在学习的过程中把一些常见的操作写成脚本,提高可复用性,人类最大的特点就是会创造和使用工具。忙活了几天,起早摸黑写了这些shell 脚本,希望大家喜欢,可以的话点个star吧。

3.下面是我linux学习笔记

linux学习笔记 - 掘金 (juejin.cn)

4.脚本使用说明

image-20220410130956349

src下面存放的两个目录是脚本文件所在位置

config-scripts目录

#./src/config-scripts/
change_yum_source.sh #更换yum源脚本
disable_selinux.sh #更改默认安装限制脚本
git_config.sh #git常用配置如ssh配置
static_ip_cfg.sh #主要是提供给本地虚拟机配置静态IP
update_date.sh #时间更新脚本

install-scripts目录

#./src/install-scripts/
git_install.sh #编译安装git脚本
install_commonly_page.sh #安装一些常用的包
nginx_install.sh #nginx安装脚本
node_install.sh #node安装脚本

注意:

以上的文件里面我写的都是函数

直接运行单个文件没有效果

注意:

可能刚下载的文件上传到linux上格式会不对

这时需要vim每个脚本文件

:set fileformat=unix

这样就能执行了

注意:

在使用git_config配置模块时要单独使用

先输入

ssh-agent bash

sh init.sh

init.sh入口文件

#! /bin/bash
#导入静态IP配置模块
. ./src/config-scripts/static_ip_cfg.sh
# staticIpCfg

#导入更换yum源模块
. ./src/config-scripts/change_yum_source.sh
# changeYumSource

#导入常用包安装模块
. ./src/install-scripts/install_commonly_page.sh
# installCommonlyPage

#导入更新时间模块
. ./src/config-scripts/update_date.sh
# updateDate

#导入更改软件安装限制
. ./src/config-scripts/disable_selinux.sh
# disableSelinux

#导入node安装模块
. ./src/install-scripts/node_install.sh
# nodeInstall

#导入nginx安装模块
. ./src/install-scripts/nginx_install.sh
# nginxInstall

#导入git安装模块
. ./src/install-scripts/git_install.sh
# gitInstall

#导入git配置模块
. ./src/config-scripts/git_config.sh
#girConfig

如何使用

  1. 把文件下载到linux上面
  2. 修改init.sh
  3. 选择你想要的如何解开注释
  4. cd shell-scripts
  5. sh init.sh

使用截图

image-20220410132425866

安装的时候要求输入链接

image-20220410132339225

找到二进制文件右键复制链接

如何把链接输入进终端就行了

image-20220410132605335

并且会自动配置环境变量

image-20220410132639213

5.说明

关于mysql及其他相关的脚本,吾正在努力编写中

6.原理

不过是一些命令的巧妙组合,和一些复杂的安装配置步骤结合而成

下面放上git_install.sh源码和git_config.sh源码做示例

一些内容我放到linux笔记里的

linux学习笔记 - 掘金 (juejin.cn)

function gitInstall(){
#安装git
echo -e "\033[1;5;34m==========开始安装git==========\033[0m"
echo -e "\033[1;35m请输入git链接地址(输入abc表示默认使用默认的版本安装)\033[0m"
read gitaddr
if [[ $gitadd -eq "abc" ]]
then 
gitaddr='https://github.com/git/git/archive/refs/tags/v2.34.1.tar.gz'
fi
wget -O ~/git.tar.gz $gitaddr
mkdir ~/git
tar -xvf ~/git.tar.gz -C ~/git --strip-components 1
#安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
#编译
cd ~/git
make prefix=/usr/local/git all
#安装
make prefix=/usr/local/git install
#配置环境变量
echo 'export GIT_HOME=/usr/local/git/bin' >>/etc/profile
echo 'export PATH=$GIT_HTME:$PATH' >> /etc/profile
#重新加载资源
source /etc/profile
echo -e "\033[1;5;32m==========git安装成功==========\033[0m"
git --version
rm -rf ~/git.tar.gz ~/git
}

为了整这个git ssh配置劳累了一上午,特别是两主机间验证这个步骤必须要先

ssh-agent bash

但是键入ssh-agent bash命令会导致脚本直接退出

所以使用者先手动输入一下ssh-agent bash

再执行脚本

function gitConfig(){
echo -e "\033[1;5;34m=========开始配置git==========\033[0m"
function testGit(){
ssh -v git@github.com
ssh-agent -s
}

userName=`git config  user.name`
userEmail=`git config  user.email`
if [[ ${#userName} -eq 0 ]]
then
echo -e "\033[1;35m请输入用户名\033[0m"
read name
git config user.name $name
fi
if [[ ${#userEmail} -eq 0 ]]
then
echo -e "\033[1;35m请输入邮箱\033[0m"
read email
git config  user.email $email
fi

echo -e "\033[1;35m其他默认配置如避免乱码\033[0m"
git config --global core.autocrlf false
git config --global core.quotepath off
git config --global gui.encoding utf-8

echo -e "\033[1;5;32m==========配置完成=========\033[0m"
git config --list

userName=`git config  user.name`
userEmail=`git config  user.email`
echo $userName $userEmail
echo -e "\033[1;5;34m是否要生成ssh keys可能会覆盖之前的请谨慎操作\033[0m"
select check in "是" "否"
do
  case $check in
     "否")
        exit
        break;;
     "是")
        mkdir -p ~/.ssh/$userName
        ssh-keygen -t rsa -C $userEmail -f ~/.ssh/$userName/ssh_rsa
        break ;;
  esac
done
echo -e "\033[1;5;32m密钥生成成功请复制到github上或者在~/.ssh/$userName/ssh_rsa.pub下复制\033[0m"
cat ~/.ssh/$userName/ssh_rsa.pub

echo -e "\033[1;35m复制完成请输入yes\033[0m"
read istrue
if [[ $istrue -eq "yes" ]]
then
   echo -e  "\033[1;4;34m开始验证服务\033[0m"
   testGit
   ssh-add ~/.ssh/$userName/ssh_rsa
   ssh -T git@github.com
   echo -e "\033[1;5;32m如果最后输出的内容出现successly则成功\033[0m"
else
echo -e "\033[1;5;31m配置失败"
fi

}

5.希望

希望广大社区linux爱好者和我一起编写一些shell脚本,幸福你我他

再也不用为安装和配置而烦恼

另外点赞是对我最好的鼓励,谢谢大家