Centos 上面用Shell脚本一键安装LAMP环境

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

   LAMP指的Linux(操作系统)、Apache(HTTP 服务器),MySQL(数据库软件)和PHP构建的web服务器。该网站架构是目前国际流行和通用的Web架构,LAMP跨平台、高性能等优势,是很多企业和公司搭建WEB服务的首选平台。

   1)系统环境介绍
     Centos 5.8 64位
     Apache:httpd-2.4.4.tar.gz
     PHP:   php-5.4.17.tar.gz 
     Mysql: mysql-5.6.12.tar.gz

   2)安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
#!/bin/bash
PATH= /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /sbin : /bin
export  PATH
#INFO函数定义输出字体颜色,echo -e 表示保持字符串的特殊含义,$1表示字体颜色编号,$2表示等待程序执行时间,$3表示echo输出内容。
function  INFO()
{
      echo  -e  "\e[$1;49;1m: $3 \033[39;49;0m"
      sleep  "$2"
      echo  ""
}
#非root用户不能执行该脚本
if   "$UID"  != 0 ];
         then
           echo  " "
                 INFO 35  "0"  "Must be root ro run this script."
         exit  1
fi
#USAGE函数定义脚本用法,可反复调用,basename其实就是脚本名,\n表示换行。
function  USAGE()
{
         INFO 35  "0.1"  "Please see the script of the usage:"
         basename =$( basename  "$0" )
         INFO \
           36  "0"  \
           "$(echo -e " Usage: \n\n./$ basename  (apache|mysql|php)  install  \n./$ basename  apache (start|stop|restart) \n./$ basename  mysql (start|stop|restart)\n ")"
}
#YUM_INSTALL函数安装依赖包,可反复调用,$@表示所有参数都分别被双引号引住"$1","$2",而$*表示所有这些参数都被双引号引住"$1$2"
function  YUM_INSTALL()
{
         for  in  $@;  do
           INFO 32 1  "Install depend on the [ $a ]"
                 yum -y  install  $a ||  exit  1
           if  [ $a =  "libXpm-devel"  ];  then
                ln  -s  /usr/lib/x86_64-linux-gnu/libXpm .so  /usr/lib/libXpm .so
           #elif [ $a = "libsasl2-dev" ]; then
           #     cp /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/
           fi
         done
}
#INSTALL函数定义安装程序,可一反复调用,安装apache程序的时候要先安装3个依赖包,在安装mysql的时候要用cmake编译。$1表示要安装的程序,$2表示yum安装对应的依赖包,$3表示程序解压后的目录,$4表示程序源码包。
function  INSTALL()
{
      YUM_INSTALL  "$2"  &&  cd  $SOURCE_PATH
      [ -d $3 ] &&  rm  -r $3; INFO 31 4  "Unpack the $4 installation package......"
      tar  zxvf $4;  cd  $3 ;  pwd  ; INFO 32 4  "Configure the $1......"
             if  [ $1 = apache ];
                 then
                         cp  -rf .. /apr-1 .4.8 srclib /apr
                         cp  -rf .. /apr-util-1 .5.2 srclib /apr-util
                . /configure  $5 ||  exit  1
      elif  [ $1 = mysql ];
           then
                cmake $5 ||  exit  1
      elif  [ $1 = openssl ];
           then
                . /config  $5 ||  exit  1
      elif  [ $1 = libpng ];
           then
                cp  scripts /makefile .linux makefile
      elif  [ $1 = jpegsrc.v6b. tar .gz ];
           then
                cp  /usr/share/libtool/config .guess  ./
                cp  /usr/share/libtool/config .sub ./
                . /configure  $5 ||  exit  1
                mkdir  -p   /usr/local/env/jpeg/bin
                mkdir  -p   /usr/local/env/jpeg/lib
                mkdir  -p   /usr/local/env/jpeg/include
                mkdir  -p  /usr/local/env/jpeg/man/man1
                  else
                . /configure  $5 ||  exit  1
             fi
      INFO 36 3  "Compile $1......"
             make  ||  exit  1 && INFO 34 4  "Install $1......"  make  install  && INFO 33 4  "$1 installation is successful......"
                                                                                                                                                                                                                                                                                
      if  [ $1 = mysql ];
           then
                echo  $INSTALL_PATH /mysql/lib/mysql  >>  /etc/ld .so.conf
                /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = libiconv ];
           then
                echo  "/usr/local/env/libiconv/lib"  >>  /etc/ld .so.conf
                /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = libxml2 ];
           then
                echo  "/usr/local/env/libxml2/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = libmcrypt ];
           then
                echo  "/usr/local/env/libmcrypt/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = mhash ];
           then
                echo  "/usr/local/lib"  >>  /etc/ld .so.conf
                echo  "/usr/local/lib64"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = gettext ];
           then
                         echo  "/usr/local/env/gettext/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = gd ];
           then
                sed  -i  '27 a void (*data);'  /usr/local/env/gd/include/gd_io .h
                echo  "/usr/local/env/gd/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = freetype ];
           then
                echo  "/usr/local/env/freetype/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add $1 library file to ld.so.conf......"
      fi
      if  [ $1 = jpegsrc.v6b. tar .gz ];
                 then
                         echo  "/usr/local/env/jpeg/lib"  >>  /etc/ld .so.conf
                         /sbin/ldconfig  && INFO 33 4  "Add jpeg library file to ld.so.conf......"
      fi
}
#SERVICE函数定义程序启动,关闭,重启。
function  SERVICE()
{
      if  [ $1 = apache -a $2 = start ];  then
           $INSTALL_PATH/$1 /bin/apachectl  -k start && \
           INFO 33  "2.5"  "Apache startup success......"
           exit
      elif  [ $1 = apache -a $2 = stop ];  then
           $INSTALL_PATH/$1 /bin/apachectl  -k stop && \
           INFO 31  "2.5"  "Apache has stopped......"
           exit
      elif  [ $1 = apache -a $2 = restart ];  then
           $INSTALL_PATH/$1 /bin/apachectl  -k stop ;  sleep  2
           INFO 31  "2.5"  "Apache has stopped......"
           $INSTALL_PATH/$1 /bin/apachectl  -k start && \
           INFO 34  "2.5"  "Apache has restarted......"
           exit
      elif  [ $1 = mysql -a $2 = start ];  then
           /bin/bash  $INSTALL_PATH/$1 /bin/mysqld_safe  --defaults- file =$INSTALL_PATH/$1 /my .cnf 2>&1 >  /dev/null  &
           INFO 33  "2.5"  "Mysql startup success......"
           echo  -e  "$(netstat -ntpl|grep " /:::3306 ")"
           exit
      elif  [ $1 = mysql -a $2 = stop ];  then
           kill  $( netstat  -ntpl| awk  '/:::3306/{print $NF}' | awk  -F  '/'  '{print $1}' ) && \
           INFO 31  "2.5"  "Mysql has stopped......"
           exit
      elif  [ $1 = mysql -a $2 = restart ];  then
           kill  $( netstat  -ntpl| awk  '/:::3306/{print $NF}' | awk  -F  '/'  '{print $1}' ) && \
           INFO 31  "3"  "Mysql has stopped......"
           /bin/bash  $INSTALL_PATH/$1 /bin/mysqld_safe  --defaults- file =$INSTALL_PATH/$1 /my .cnf 2>&1 >  /dev/null  &
           INFO 34  "2.5"  "Mysql has restarted......"
           exit
      fi
}
#CONFIG_MYSQL函数用来定义mysql的配置。
function  CONFIG_MYSQL()
{
      INFO 32 3  "Configure the mysql......"
         groups  mysql || groupadd mysql &&  id  mysql ||  useradd  -g mysql mysql
         cd  $INSTALL_PATH /mysql  pwd
                 . /scripts/mysql_install_db  \
                         --user=mysql \
                         --basedir=$INSTALL_PATH /mysql/  \
                         --datadir=$INSTALL_PATH /mysql/data/  \
                         --defaults- file =$INSTALL_PATH /mysql/my .cnf
         echo  "" sleep  3
         cp  $( dirname  $SOURCE_PATH) /conf/my .cnf ./
      INFO 35 2  "Mysql configuration is complete......"
}
#CONFIG_HTTPD函数用来配置apache。
function  CONFIG_HTTPD()
{
      INFO 32 3  "Configure the apache......"
      echo  -e  "<?php\nphpinfo();\n?>"  > $INSTALL_PATH /apache/htdocs/phpinfo .php
      sed  -i  's/^\ \ \ \ AddType application\/x-gzip .gz .tgz$/&\n\ \ \ \ AddType application\/x-httpd-php .php/'  \
      $INSTALL_PATH /apache/conf/httpd .conf
      sed  -i  's/^#ServerName www.example.com:80$/&\nServerName 127.0.0.1:80/'  $INSTALL_PATH /apache/conf/httpd .conf
      INFO 35 2  "Apache configuration is complete......"
}
#CONFIG_PHP函数用来配置php。
function  CONFIG_PHP()
{
      INFO 32 3  "Configure the php......"
      cp  $SOURCE_PATH/$1 /php .ini-development $INSTALL_PATH /php5/etc/php .ini
      INFO 35 2  "Php configuration is complete......"
}
#INSTALL_BRANCH函数定义程序安装,${TAR_NAME[@]}是shell脚本中数组写法,即取全部元素,即TAR_NAME里面的所有包,SERVER_NAME表示包的名称,COMPILE_DIR表示包名+版本后,即解压后的目录名。
function  INSTALL_BRANCH()
{
      for  in  ${TAR_NAME[@]};  do
              SERVER_NAME=$( echo  $i| awk  -F  "-[0-9]"  '{print $1}' )
              COMPILE_DIR=$( echo  $i| awk  -F  ".tar.gz"  '{print $1}' )
           if  [ $1 = $SERVER_NAME -a $1 = apr ];  then
                INSTALL apr  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/apr"
           elif  [ $1 = $SERVER_NAME -a $1 = apr-util ]; then
                INSTALL apr-util  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/apr-util --with-apr=/usr/local/env/apr"
           elif  [ $1 = $SERVER_NAME -a $1 = pcre ];  then
                INSTALL pcre  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/pcre"
           elif  [ $1 = $SERVER_NAME -a $1 = httpd ];  then
                INSTALL apache  "$HTTP_YUM"  "$COMPILE_DIR"  "$i"  "$HTTP_PARAMETERS"
                CONFIG_HTTPD
           elif  [ $1 = $SERVER_NAME -a $1 = mysql ];  then
                INSTALL mysql  "$MYSQL_YUM"  "$COMPILE_DIR"  "$i"  "$MYSQL_PARAMETERS"
                CONFIG_MYSQL
           elif  [ $1 = $SERVER_NAME -a $1 = libiconv ];  then
                INSTALL libiconv  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/libiconv"
           elif   [ $1 = $SERVER_NAME -a $1 = libxml2 ];  then
                INSTALL libxml2  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/libxml2 --with-iconv=/usr/local/env/libiconv"
           elif   [ $1 = $SERVER_NAME -a $1 = curl ];  then       
                INSTALL curl  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/curl --enable-utf8"
           elif   [ $1 = $SERVER_NAME -a $1 = libmcrypt ];  then                                  
                INSTALL libmcrypt  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/libmcrypt"
           elif   [ $1 = $SERVER_NAME -a $1 = mhash ];  then
                INSTALL mhash  " "  "$COMPILE_DIR"  "$i"  " "
           elif   [ $1 = $SERVER_NAME -a $1 = mcrypt ];  then
                INSTALL mcrypt  " "  "$COMPILE_DIR"  "$i"  "--prefix= /usr/local/env/mcrypt  \
                --with-libmcrypt-prefix= /usr/local/env/libmcrypt  \
                --with-libiconv-prefix= /usr/local/env/libiconv "
           elif    [ $1 = $SERVER_NAME -a $1 = gettext ];  then
                         INSTALL gettext  " "  "$COMPILE_DIR"  "$i"  "--prefix= /usr/local/env/gettext  \
                         --with-libiconv-prefix= /usr/local/env/libiconv  \
                --with-libxml2-prefix= /usr/local/env/libxml2 "
           elif   [ $1 = $SERVER_NAME -a $1 = freetype ];  then
                         INSTALL freetype  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/freetype"
           elif   [ $1 = $SERVER_NAME -a $1 = jpegsrc.v6b. tar .gz ];  then
                COMPILE_DIR= "jpeg-6b"
                         INSTALL jpegsrc.v6b. tar .gz  " "  "$COMPILE_DIR"  "$i"  "--prefix=/usr/local/env/jpeg --enable-shared --enable-static"
           elif   [ $1 = $SERVER_NAME -a $1 = libpng ];  then
                         INSTALL libpng  " "  "$COMPILE_DIR"  "$i"  " "
           elif   [ $1 = $SERVER_NAME -a $1 = gd ];  then
                INSTALL gd  " "  "$COMPILE_DIR"  "$i"  "--prefix= /usr/local/env/gd  --with-png= /usr  \
                --with-freetype= /usr/local/env/freetype  \
                --with-jpeg= /usr/local/env/jpeg   --with-fontconfig= /usr  --with-xpm= /usr "
           elif   [ $1 = $SERVER_NAME -a $1 = openssl ];  then
                INSTALL openssl  " "  "$COMPILE_DIR"  "$i"  "-fPIC --prefix=/usr/local/env/openssl shared"
           elif   [ $1 = $SERVER_NAME -a $1 = php ];  then
                INSTALL php5  "$PHP5_YUM"  "$COMPILE_DIR"  "$i"  "$PHP5_PARAMETERS"
                CONFIG_PHP  "$COMPILE_DIR"
                break
           else
                continue
           fi
      done
}
#MOD_CASE函数用KASE定义选择安装程序。
function  MOD_CASE()
{
      if  [[ $1 =~ apache|mysql|php ]] && [[ $2 =~  install |start|stop|restart ]];  then
           INFO 32  "1.5"  "Input the correct,according to the option to perform related operations......"
           echo  ""
           if  [ $2 =  install  ];  then
                case  "$1 $2"  in
                     "apache install" )
                          INFO 35  "2.5"  "Start to $1 the $2......"
                          INSTALL_BRANCH apr
                          INSTALL_BRANCH apr-util
                          INSTALL_BRANCH pcre
                          INSTALL_BRANCH httpd
                          ;;
                     "mysql install" )
                          INFO 35  "2.5"  "Start to $1 the $2......"
                          INSTALL_BRANCH mysql
                          ;;
                     "php install" )
                          INFO 35  "2.5"  "Start to $1 the $2......"
                          export  LD_LIBRARY_PATH= /lib/ : /usr/lib/ : /usr/local/lib : /usr/local/lamp/mysql/lib
                          INSTALL_BRANCH libiconv
                          INSTALL_BRANCH libxml2
                          INSTALL_BRANCH curl
                          INSTALL_BRANCH libmcrypt
                          INSTALL_BRANCH mhash
                          INSTALL_BRANCH mcrypt
                          INSTALL_BRANCH gettext
                          INSTALL_BRANCH freetype
                          INSTALL_BRANCH jpegsrc.v6b. tar .gz
                          INSTALL_BRANCH libpng
                          INSTALL_BRANCH gd
                          INSTALL_BRANCH openssl
                          #INSTALL_BRANCH httpd && INSTALL_BRANCH mysql && INSTALL_BRANCH php
                          INSTALL_BRANCH php
                          ;;
                esac
           else
                SERVICE $1 $2
           fi
      else
                INFO 31 1  "Input error, please try again!"
                INPUT
      fi
}
#LAMP程序安装的目录
INSTALL_PATH= "/usr/local/lamp"
#源码包存放目录
SOURCE_PATH= "$(cd $(dirname $0); pwd)/install_tar"
#源码包列表
TAR_NAME=(httpd-2.4.4. tar .gz mysql-5.6.12. tar .gz php-5.4.17. tar .gz apr-1.4.8. tar .gz apr-util-1.5.2. tar .gz pcre-8.10. tar .gz freetype-2.4.0. tar .gz jpegsrc.v6b. tar .gz libxml2-2.7.2. tar .gz mhash-0.9.9.9. tar .gz mcrypt-2.6.8. tar .gz gd-2.0.35. tar .gz libiconv-1.14. tar .gz gettext-0.18. tar .gz libmcrypt-2.5.8. tar .gz openssl-0.9.8p. tar .gz curl-7.32.0. tar .gz libpng-1.2.33. tar .gz)
#Apache,Mysql,PHP yum安装依赖包
HTTP_YUM= "build-essential libapr1 libapr1-dev libaprutil1 libaprutil1-dev gettext gettext-devel"
MYSQL_YUM= "cmake libncurses5 libncurses5-dev bison"
PHP5_YUM= "libxml2 libxml2-devel openssl libjpeg-devel bzip2 libXpm-devel libmcrypt-devel"
#Apache编译参数
HTTP_PARAMETERS="\
--prefix=$INSTALL_PATH /apache  \
-- enable -module=so \
-- enable -module=rewrite \
-- enable -shard=rewrite \
-- enable -shared=max \
--with-apr= /usr/local/env/apr  \
--with-apr-util= /usr/local/env/apr-util  \
--with-pcre= /usr/local/env/pcre  \
--with-included-apr \
"
#mysql编译参数
MYSQL_PARAMETERS="\
-DCMAKE_INSTALL_PREFIX=$INSTALL_PATH /mysql  \
-DYSQL_TCP_PORT=3306 \
-DMYSQL_DATADIR=$INSTALL_PATH /mysql/data  \
-DMYSQL_UNIX_ADDR=$INSTALL_PAHT /mysql/mysql .sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_DEBUG=0 \
"
#PHP编译参数
PHP5_PARAMETERS="\
--prefix=$INSTALL_PATH /php5  \
--with-config- file -path=$INSTALL_PATH /php5/etc  \
--with-mysql=$INSTALL_PATH /mysql  \
--with-apxs2=$INSTALL_PATH /apache/bin/apxs  \
--with-mysqli=$INSTALL_PATH /mysql/bin/mysql_config  \
--with-iconv= /usr/local/env/libiconv  \
--with-jpeg- dir = /usr/local/env/jpeg   \
--with-png- dir = /usr  \
--with-libxml- dir = /usr/local/env/libxml2   \
--with-pdo-mysql \
--with-zlib \
--with-curl= /usr/local/env/curl  \
--with-curlwrappers \
--with-mcrypt= /usr/local/env/libmcrypt  \
--with-gd= /usr/local/env/gd   \
--with-openssl= /usr/local/env/openssl  \
--with-mhash= /usr  \
--with-xmlrpc \
--with-xpm- dir  \
--with-freetype- dir = /usr/local/env/freetype  \
--with-zlib- dir  \
--with-ldap \
--with-ldap-sasl \
--with-pcre-regex \
--with-gettext= /usr/local/env/gettext  \
--with-ncurses \
-- enable -shared \
-- enable -xml \
-- enable -safe-mode \
-- enable -track-vars \
-- enable -magic-quotes \
-- enable -bcmath \
-- enable -sysvsem \
-- enable -sysshm \
-- enable -inline-optimization \
-- enable -mbregex \
-- enable -mbstring \
-- enable -gd-native-ttf \
-- enable -pcntl \
-- enable -sockets \
-- enable -zip \
-- enable -soap \
-- enable -discard-path \
-- enable -force-cgi-redirect \
-- enable -pdo \
-- enable -calendar \
-- enable -exif \
-- enable -zend-multibyte \
"
#--disable-rpath
#脚本调用帮助程序
if  [ $ # = 2 ]
      then
           INFO 33  "1.5"  "please wait......"
           echo  ""
           MOD_CASE  "$1"  "$2"
      else
           USAGE
           exit  1
fi

   3)脚本的用法

1
2
3
4
5
6
7
8
9
10
11
12
#下载安装脚本和源码包
wget https: //sourceforge .net /projects/opensourcefile/files/
Install_Centos_LAMP_v.0.1.zip /download  --no-check-certificate
unzip Install_Centos_LAMP_v.0.1.zip
chmod  +x Install_Centos_LAMP_v.0.1.sh
#查看脚本的用法,可通过该脚本安装apache,mysql,php,启动,关闭和重启apache和mysql。
. /Install_Centos_LAMP_v .0.1.sh
: Please see the script of the usage:
: Usage:
. /Install_Centos_LAMP_v .0.1.sh (apache|mysql|php)  install
. /Install_Centos_LAMP_v .0.1.sh apache (start|stop|restart)
. /Install_Centos_LAMP_v .0.1.sh mysql (start|stop|restart)


    本脚本应用了Shell编程里面的函数,数组,流程控制,变量,字体的加亮等功能,希望对学习WEB和Shell编程的同学有所帮助,最后非常感谢我的同学宝宝的支持。










本文转自 sfzhang 51CTO博客,原文链接:http://blog.51cto.com/sfzhang88/1281640,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
36 17
|
14天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
27 12
|
13天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
27 8
|
14天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
17天前
|
Kubernetes Linux Docker
在centos7上搭建k8s环境
在centos7上搭建k8s环境
|
18天前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
26天前
|
存储 Shell 数据安全/隐私保护
minio一键安装脚本分享(shell和python)
minio一键安装脚本分享(shell和python)
38 0
|
29天前
|
Ubuntu Linux Shell
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
|
28天前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
22 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
29天前
|
监控 Shell Linux
在Linux中,如何使用shell脚本进行系统监控和报告?
在Linux中,如何使用shell脚本进行系统监控和报告?