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

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

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

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

if [ $UID -ne 0 ]
thenecho "Error: You must be root to run the script!"exit 1
fi

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

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

MACHINE_LONG_BIT=$(getconf LONG_BIT)

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

if grep -q mysql /etc/group
thenecho "mysql group exists"
elsegroupadd mysql
fiif groups mysql | grep -q -E ' mysql(\s|$)'
thenecho "mysql user exists"
elseuseradd -r -g mysql mysql
fi

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

     FILELIST=`ls $BINARY_MYSQL_PATH/bin`for FILENAME in $FILELISTdoln -sn --force $BINARY_MYSQL_PATH/bin/$FILENAME /bin/$FILENAMEdone

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

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

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

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

如何注释一段代码

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

:<<BLOCK
BINARY_MYSQL_PATH="$ROOT_PATH"/binary/mysql
if [ ! -d "$BINARY_MYSQL_PATH" ]
thenmkdir -p $BINARY_MYSQL_PATH
fi
BLOCK

shell如何进行交互

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

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

如何关闭selinux

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/

$(cd "$(dirname "$0")"; pwd) 

lnmp_auto:自动化安装lnmp环境脚本相关推荐

  1. 亚马逊AWS EC2云实例AMI安装LNMP环境(3)——Mysql5.5

    概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...

  2. CentOS6.9编译安装LNMP环境

    CentOS6.9编译安装LNMP环境 今天尝试一下用编译的方式来搭建lnmp运行环境.所有软件都采用当前最新版本,除了CentOS.这是由于目前企业大多数应该都还在使用CentOS6的缘故,并且Ce ...

  3. tengine简单安装_树莓派使用宝塔面板安装LNMP环境

    书接上回,前面说到我被垃圾Rock 64搞的死去活来,索性在树莓派上装了Ubuntu 20.04 LTS. 为了方便配置V2Ray,我忙活了一天终于把LNMP环境搞定了.下面说说怎么搞的,避免后面再踩 ...

  4. 阿里云Ubuntu安装LNMP环境之Mysql

    在QQ群很多朋友问阿里云服务器怎么安装LNMP环境,怎么把项目放到服务器上面去,在这里,我就从头开始教大家怎么在阿里云服务器安装LNMP环境. 在这之前,我们先要知道什么是LNMP. L: 表示的是L ...

  5. ansible----playbook安装lnmp环境

    一.ansible--playbook介绍 playbook是由一个或多个"play"组成的列表.play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task ...

  6. 【项目上线】详细步骤03:一键安装lnmp环境,配置Nginx+Node+MongoDB+MySQL+PHP环境...

    Lnmp.org网址:https://lnmp.org/install.html 一.一键安装lnmp环境 第一步: wget -c http://soft.vpser.net/lnmp/lnmp1. ...

  7. 亚马逊AWS EC2云实例AMI安装LNMP环境(1)——Nginx安装

    概括:这里选择亚马逊EC2的Linux AMI实例,该Linux服务器是亚马逊预配置的Linux环境,内置多个YUM源,属于亚马逊首推的稳定Linux服务器.默认登录用户名为ec2-user,执行ro ...

  8. CentOS 6.4用源代码安装LNMP环境

    2019独角兽企业重金招聘Python工程师标准>>> CentOS 6.4用源代码安装LNMP环境 对于在Linux系统中安装web服务其实都是差不多的,只是软件的选择不一样,不过 ...

  9. 处理一键安装LNMP环境之后,phpinfo.php打开不显示内容的问题

    ############################################################################################# ##本文内容 ...

最新文章

  1. 《zabbix用户权限分配管理》-8
  2. boost::log::expressions::channel_severity_filter_actor用法的测试程序
  3. python的三元运算
  4. java hotspot 是什么_什么是HotSpot
  5. java linkedhashset_java之LinkedHashSet
  6. jsp获得文件的绝对路径
  7. 索引-前端技术-pyhui版
  8. c#元胞自动机_元胞自动机+生命游戏
  9. Android StorageManager 存储设备管理
  10. FFplay硬件加速
  11. NSA武器库知识整理
  12. python正态检验_Python的数据正态性检验
  13. Stata: 实时估计个股贝塔(beta)系数
  14. chm文件打不开的办法
  15. 软件开发合同纠纷的律师随笔
  16. ubuntu20.04下搜狗输入法不能输中文问题解决
  17. 【PAT甲级 模拟 测试点0、3、4、5、7、8分析】1026 Table Tennis (30 分)
  18. jdbc写入数据库乱码问题
  19. 3、SYN-SENT
  20. 单片机直流电机驱动电路

热门文章

  1. 设计模式学习笔记-观察者模式
  2. JAVA四种基本排序总结
  3. LeetCode—221. 最大正方形
  4. mysql集群初始化配置_集群Cluster MySQL的安装配置和使用
  5. 王者荣耀6月23服务器维护,王者荣耀6.23维护到什么时候?6月23日长枪掠火版本异常介绍...
  6. 解决java.net.ConnectException: Connection refused:connect报错
  7. Java技术:收集16 条 yyds 的代码规范,值得一读!
  8. 硬件:电脑DNS出现错误对应的解决方案
  9. 计算机硬件:内存条的基础知识笔记
  10. 收集42款经典的Chrome 插件