【转】lnmp_auto:自动化安装lnmp环境脚本
原文链接:
lnmp_auto:自动化安装lnmp环境脚本 这哥们整理的这篇博文很好 转载分享
博文转载如下:
源代码在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 1fi |
如何判断机器是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/groupthen echo "mysql group exists"else groupadd mysqlfiif groups mysql | grep -q -E ' mysql(\s|$)'then echo "mysql user exists"else useradd -r -g mysql mysqlfi |
如何将一个目录内的所有文件批量软连接到另外一个目录内
|
1
2
3
4
5
|
FILELIST=`ls $BINARY_MYSQL_PATH/bin`for FILENAME in $FILELISTdo ln -sn --force $BINARY_MYSQL_PATH/bin/$FILENAME /bin/$FILENAMEdone |
在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
|
:<<BLOCKBINARY_MYSQL_PATH="$ROOT_PATH"/binary/mysqlif [ ! -d "$BINARY_MYSQL_PATH" ]then mkdir -p $BINARY_MYSQL_PATHfiBLOCK |
shell如何进行交互
使用read命令将输出记录到一个变量中
|
1
2
3
4
5
6
|
checkinstall="n"read -p "Are you sure want to install php into service?(y/n):" checkinstallif [ $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/
|
1
|
$(cd "$(dirname "$0")"; pwd) |
浙公网安备 33010602011771号