好记性不如烂笔头--linux学习笔记9练手写个shell脚本
#!/bin/bash
#auto make install httpd
#by authors baker95935 #httpd define path variable
H_FILES=httpd-2.4..tar.bz2
H_FILES_DIR=httpd-2.4.
H_URL=http://mirrors.shuosc.org/apache/httpd/
H_PREFIX=/usr/local/apache2/ if [ -Z "$1" ];then
echo -e "\033[36mplease select install menu follow:\033[0m"
echo -e "\033[32m1)编译安装apache服务器\033[1m"
echo "2)编译安装mysql服务器"
echo "3)编译安装php服务器"
echo "4)配置index.php并启动lamp服务"
echo -e "\033[31musage:{/bin/sh $0 1|2|3|4|help}\033[0m"
exit
fi if [ $ -eq ];then
wget -c $H_URL/$H_FILES &&tar -jxvf $H_FILES &&cd $H_FILES_DIR; if [ $? -eq ];then
#make && make install
echo -e "\033[32mTHE $H_FILES_DIR server install successfully!\033[0m" else echo -e "\033[32mTHE $H_FILES_DIR server install failed,please check...\033[0m"
exit fi
else
echo -e "\033[32m dowload failed,please check url\033[1m"
exit
fi
练手写的shell脚本,可自动下载apache,然后切换到apache的目录
如果在加上编译 和安装 就是可以自动完成了
if语句里面的几个参数标注下
1)-z 就是为空
2)$1 就是第一个参数
$2就是在命令行中输入的第2个参数
比如 /bin/bash auto_install_httpd.sh 1
这个里面的1 就是第一个参数
3)$? 是上个命令的退出状态或者返回值
4)格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
例如:
echo -e "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
那些ascii code 是对颜色调用的始末.
\033[ ; m …… \033[0m
字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
===============================================ANSI控制码的说明
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标
好记性不如烂笔头--linux学习笔记9练手写个shell脚本的更多相关文章
- 好记性不如烂笔头-linux学习笔记1
好记性不如烂笔头-linux学习笔记1 linux的文件系统有ext2,ext3,ext4,目前主流是ext4 linux主要用于服务器级别的操作系统,安装时需要至少2个分区 一个是交换分区,swap ...
- 好记性不如烂笔头-linux学习笔记2kickstart自动化安装和cacti
kickstart自动化安装的逻辑梳理 主要是安装tftp nfs dhcp 然后配置kickstart 原来就是先安装tftp 可实现不同机器的文件下载 然后在安装nfs 就是主服务器的文件系统 然 ...
- 好记性不如烂笔头--linux学习笔记8关于nginx的动静分离
动静分离逻辑梳理 就是给nginx配置访问规则,不同后缀的文件访问不同的目录 worker_processes 1; events { worker_connections 1024; } http ...
- 好记性不如烂笔头-linux学习笔记6keepalived实现主备操作
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工 ...
- 好记性不如烂笔头-linux学习笔记5mysql主从复制
mysql主从复制的原理 mysql master服务器,开启bin-log日志,开启IO线程 slave服务器,开启IO线程,开启SQL线程(执行SQL) 1)slave服务器,通过授权用户开启IO ...
- 好记性不如烂笔头-linux学习笔记4apache相关知识
apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 比较好,效率高,但是吃的内存比较大. 2 如果是高负载高并发 ...
- 好记性不如烂笔头-linux学习笔记3mysql数据库导入导出
1 数据库文件导出 mysqldump -uroot -p123456 test > 1.sql 2数据库文件导入 mysql -uroot -p123456 test <1.sql 3 ...
- 好记性比如烂笔头--linux学习笔记7关于linux中的shell脚本编程
之前看的各种面试,貌似都有shell脚本编程,没了解之前感觉很复杂,现在了解了些,没想象中那么难. 逻辑主要是这样的 编写.sh的脚本文件,文件里面的代码,就是在命令行输入的可执行命令的加强版,所谓加 ...
- 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识 在tf第一个例子的时候需要很多预备知识. tf基本知识 香农熵 交叉熵代价函数cross-entropy 卷积神经网络 s ...
随机推荐
- Mongo Plugin插件(编辑器PyCharm的Mongo插件安装与使用)
博主接触到MongoDB数据库.用普通的Navicat工具 是不支持的 正准备重新安装一款对应的可视化工具.刚好发现在PyCharm编辑中有连接mongoDB数据的插件 Mongo Plugin 这里 ...
- ionic2常见问题——cordova使用Gradle构建下载maven太慢,使用阿里云镜像
问题描述 当我们写完ionic2项目准备打包app时(暂时介绍android) 执行命令ionic build android的时候下载maven太慢,cmd命令行工具来下载经常会出现假死状态(下载超 ...
- C primer plus 5 读书笔记3
1.ASCII 码前31位控制字符(非打印字符)的表示方法:(1)使用ASCII码表示比如蜂鸣字符用7(十进制)表示:(2),使用特殊的符号序列,即转义序列.如 ‘\a’表示蜂鸣字符.(3),使用十六 ...
- EM算法及其应用(一)
EM算法及其应用(一) EM算法及其应用(二): K-means 与 高斯混合模型 EM算法是期望最大化 (Expectation Maximization) 算法的简称,用于含有隐变量的情况下,概率 ...
- 浏览器的get请求和post请求的区别
GET 请求和 POST 请求: 1). 使用GET方式传递参数: ①. 在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为 ...
- 同时发出 ajax 拿到正确的返回值问题
方案 大概意思就是前端在data里面 传一个标示给后台, 后台再ajax返回的时候携带这个标示
- Ethereum以太网搭建本地开放环境简明教程
引言: 区块链技术的风起云涌预示着一个去中心化时代的来临,ethereum技术栈是目前业界最为应用广泛的基于区块链技术的技术方案,本文将记录如何基于本地环境来搭建私有区块链的开发环境. 部署私有区块链 ...
- C/C++函数中使用可变参数
先说明可变参数是什么,先回顾一下C++里面的函数重载,如果重复给出如下声明: int func(); int func(int); int func(float); int func(int, int ...
- js 判断哪个获得焦点
if(document.activeElement.id="txtIdHouse") { } var xx = document.activeElement.id; xx就是现 ...
- InputStream,String和Reader之间的转换
1.String –> InputStreamInputStrem is = new ByteArrayInputStream(str.getBytes());orByteArrayInputS ...