lnmp_auto:自动化安装lnmp环境脚本

朋友找我在一台机器上帮忙安装下discuz。想着搭建过好几次的lnmp了,但是还没有使用过“一键安装”的自动化脚本,去网上有搜索出来,但是运行的时候发现用root运行别人的脚本还是真危险的事情,于是明白这不是个轮子,而是个井,每个程序员有必要自己挖一口的了。所以想着自己写个自动化安装lnmp的脚本lnmp_auto。

源代码在github上:https://github.com/jianfengye/lnmp_auto

本文记录下写的过程中遇到的几个shell问题:

如何判断当前用户是否是root用户

1
2
3
4
5
if  [ $UID  -ne 0 ]
then
      echo  "Error: You must be root to run the script!"
      exit  1
fi

如何判断机器是64位还是32位

有很多种方法,但是如果要输出最简单明了的估计是这种方法了:

1
MACHINE_LONG_BIT=$(getconf LONG_BIT)

如何判断一个组存在,并且这个组内有某个用户

1
2
3
4
5
6
7
8
9
10
11
12
13
if  grep -q mysql /etc/group
then
      echo  "mysql group exists"
else
      groupadd mysql
fi
 
if  groups mysql | grep -q -E ' mysql(\s|$)'
then
      echo  "mysql user exists"
else
     useradd -r -g mysql mysql
fi

如何将一个目录内的所有文件批量软连接到另外一个目录内

1
2
3
4
5
FILELIST=`ls $BINARY_MYSQL_PATH /bin`
for  FILENAME in $FILELIST
do
      ln -sn --force $BINARY_MYSQL_PATH /bin/ $FILENAME  /bin/ $FILENAME
done

在sed中要替换的正则包含/符号和变量$XXX怎么办

我们一般使用sed "s/XXXX/OOOO/" file来做替换

但是如果XXXX中包含/并且还有可能包含变量的话,就需要将/符号替换成:了

1
sed -i "s:/usr/local/mysql/data:${BINARY_MYSQL_PATH}/data:"  mysql.server.init

如何注释一段代码

在shell中注释一行代码是#,那么注释一段代码就需要使用:<<BLOCK

1
2
3
4
5
6
7
:<<BLOCK
BINARY_MYSQL_PATH= "$ROOT_PATH" /binary/mysql
if  [ ! -d "$BINARY_MYSQL_PATH"  ]
then
      mkdir  -p $BINARY_MYSQL_PATH
fi
BLOCK

shell如何进行交互

使用read命令将输出记录到一个变量中

1
2
3
4
5
6
checkinstall= "n"
read -p "Are you sure want to install php into service?(y/n):"  checkinstall
if  [ $checkinstall = "y"  ]
then
fi

如何关闭selinux

1
sed -i "s/enforcing/disabled/"  /etc/selinux/config

这里的i参数就是在当前文件直接做替换,如果觉得不保险可以先做备份

如何获取运行shell的shell文件夹路径

这里不是获取当前的路径(当前路径直接使用pwd就可以获取),比如我在/home/yejianfeng,运行sh lnmp_auto/lnmp_auto.sh,如何获取到lnmp_auto.sh的文件夹路径/home/yejianfeng/lnmp_auto/





本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3364682.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值