zoukankan      html  css  js  c++  java
  • 【转】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 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/

    1
    $(cd "$(dirname "$0")"; pwd)
  • 相关阅读:
    python初接触
    Visual Studio Code 必备插件
    C# 基础知识 -- 枚举(Enum)
    Visual Studio : Console.WriteLine(); 快捷键
    C# 调用Outlook发送邮件
    C# Dos、Unix、Mac文件格式之间的相互转换
    Treeview控件失去焦点,将选择的节点设置为高亮显示
    oracle中的Exists、In、Any、All
    TreeView控件如何控制滚动条的位置
    oracle 查看最大连接数与当前连接数
  • 原文地址:https://www.cnblogs.com/wuling129/p/4935938.html
Copyright © 2011-2022 走看看