shell编程流程控制语句 if for while until用法

# 当在一行上有多个操作时,需要用命令分割符 分号 ; 隔开,比如 echo a; echo b
# 分号是用来隔断每个语法关键字或命令

# if 用法

#!/bin/bash
if [ 1 = 1 ] # 注意空格不能少,少了就报错 1=1是赋值 1 = 1 是比较 而且中括号跟表达式之间也有空格,少了也报错
then
 echo true
else
 echo false
fi

# 也可以这样表示

#!/bin/bash
if [ 1 = 1 ]; then
 echo true; echo correct
else
 echo false; echo incorrect
fi

# 也可以全部扔到一行上 风格太丑,不用

#!/bin/bash
if [ 1 = 1 ]; then echo true; echo correct; else echo false; echo incorrect; fi

其实[] 就是test 命令的简写方式

# for循环需要两层括号

#!/bin/bash
for((i=1;i<=10;i++))
do
 echo $i
done

# 或者这样 do放到一行上

#!/bin/bash
for((i=1;i<=10;i++)); do
 echo $i
done

# for in 用法

#!/bin/bash
for i in 'ab bbb' b c; do # 不需要括号包起来,不需要逗号隔开,用空格分隔 带空格的字符串用单/双引号引起来
 echo $i
done

# while 用法

#!/bin/bash
i=10
while [[ $i -gt 5 ]]; do # [[]] 是正确判断条件写法 上面提到过[]是test的简写
 echo $i
 ((i--))
done

# until 用法
# 意思是当条件满足就退出,否则就执行语句, 感觉比较另类

#!/bin/bash
i=10
until [[ i -lt 0 ]]; do
 echo $i
 ((i--))
done

# case 用法

#!/bin/bash
read i

case $i in
 a)
 echo it is a
 ;;

 b)
 echo it is b
 ;;

 c)
 echo it is c
 ;;

 d|e)
 echo it is d or e
 ;;

 [fgh])
 echo it is f or g or h
 ;;

 [i-l])
 echo it is i-l
 ;;

 ?)
 echo it is single unit
 ;;

 *)
 echo other
esac

# * 任意字串, ? 任意单个字符, [abc] a, b, 或c三字元其中之一, [a-n] 从a到n的任一字元 ,| 多重选择 或者的意思

# select 用法
# select 一般和case配合使用,会出现一个菜单,提示选择前面的数字,而且如果没有退出的话,会继续提示选择,如图。

#!/bin/bash
select i in a b c
do
case $i in
 a)
 echo aaa
 exit
 ;;

 b)
 echo bbb
 ;;

 c)
 echo ccc
 ;;

 *)
 echo other
 ;;
esac
done

lnmp1.2发布

更新pcre 至 pcre-8.37
更新cmake至 cmake-3.4.3
更新nginx至 nginx-1.8.1
更新php 至 php-7.0.3
更新mysql至 mysql-5.7.11
更新phpMyAdmin至 phpMyAdmin-4.5.4.1
支持CentOS6/CentOS7

旧代码优化、添加安装状态判断。

下载地址:链接: https://pan.baidu.com/s/13XsO4_HGlU8kxGcvin5Wiw 密码: 74d3

AMS\FMS修改hds-live、hls-live直播存储路径

在服务器上一般都需要修改文件默认存储路径,默认存储是在c盘下,这样很容易爆满,所以放到其它大的分区或nas中。

更改直播存储目录:
编辑 C:\Program Files\Adobe\Adobe Media Server 5\conf\ams.ini

VHOST.APPSDIR = c:\applications #存储目录,这里我就一个分区,所以放到c盘下。

复制配置文件:
直接把C:\Program Files\Adobe\Adobe Media Server 5\applications\下所有目录复制到c:\applications下
这样直播时,视频会记录到c盘的applications下,然后修改apache,直播视频从c盘的applications下找。

<Location /hds-live> #hds直播
HttpStreamingEnabled true
HttpStreamingLiveEventPath “c:\applications”
HttpStreamingContentPath “c:\applications”
HdsFmsDirPath “..”
HttpStreamingF4MMaxAge 2
HttpStreamingBootstrapMaxAge 2
HttpStreamingDrmmetaMaxAge 3600
HttpStreamingFragMaxAge -1
Options -Indexes FollowSymLinks
</Location>

<Location /hls-live> #hls直播
HLSHttpStreamingEnabled true
HttpStreamingLiveEventPath “c:\applications”
HttpStreamingContentPath “c:\applications”
HLSMediaFileDuration 8000
HLSSlidingWindowLength 6
HLSFmsDirPath “..”
HttpStreamingUnavailableResponseCode 503
HLSAMFToId3MappingFilePath conf/AMF_to_Id3_Mapping.xml
HLSM3U8MaxAge 2
HLSTSSegmentMaxAge -1
HLSMetaMaxAge 3600
HLSMaxEventAge 300
Options -Indexes FollowSymLinks
</Location>

重启AMS和apache服务,使用OSMF Player测试。

HDS访问地址:http://42.62.101.177/hds-live/livepkgr/目录名/liveevent/流名称.f4m
HLS访问地址:http://42.62.101.177/hls-live/livepkgr/目录名/liveevent/流名称.m3u8

再次提醒hds需要播放器支持,hls可以直接在苹果设备的Safari上看。

lnmp1.1一键安装版本更新

lnmp1.1更新内容:

lnmp安装脚本添加yum安装编译环境判断,提高安装成功率。
修改内存判断,mysql-5.6.19内存小于512的话可能无法启动,这里判断是否大于等于1G。
升级phpmyadmin至phpMyAdmin-4.3.11。
添加vsftpd安装脚本 install_vsftpd.sh。
添加nginx虚拟主机增加脚本 add_vhost.sh。

百度网盘地址:

链接:http://pan.baidu.com/s/1mgFv34k
密码:vfos

 

xshell使用密钥登陆linux服务器

使用用户名方式登陆linux服务器,存在暴力破解可能,如果使用证书就可以避免这种问题。当然也可以通过修改ssh端口的方式绕开非法的扫描。

通过密钥方式登陆,需要在xshell中创建私钥和公钥,私钥位于客户端,公钥位于服务器端,通过私钥去解公钥。

在xshell中制作密钥:

1、点击“工具”-“新建用户密钥生成向导”

2、密钥类型选择 rsa (默认可以),长度1024(默认)

3、

4、密钥名称,自己修改。

5、公钥格式选”ssh2-openssh”,并另存为到桌面上。

6、完成后会自动弹出 用户密钥 (私钥)   #主机密钥为公钥

xshell的密钥生成完毕。现在需要将桌面上的公钥id_rsa_1024_2014-12-03.pub上传到服务器中,路径:~/.ssh/

[root@g2 ~]# cd .ssh/
[root@g2 .ssh]# ll
总用量 4
-rw-r--r-- 1 root root 208 12月 3 14:30 id_rsa_1024_2014-12-03.pub
[root@g2 .ssh]# mv id_rsa_1024_2014-12-03.pub authorized_keys
[root@g2 .ssh]# chmod 400 authorized_keys
[root@g2 .ssh]# ll
总用量 4
-r-------- 1 root root 208 12月 3 14:30 authorized_keys

修改/etc/ssh/sshd_config下面4项:
RSAAuthentication yes #RSA加密方式认证
PubkeyAuthentication yes #公钥验证
AuthorizedKeysFile .ssh/authorized_keys #公钥文件
PasswordAuthentication no #禁止密码登陆
重启ssh服务

xshell认证方式修改为密钥验证:

方法:Public Key 用户名:root 用户密钥:生成密钥时的私钥。 密码没有设置,为空。

这样就可以密钥登陆了。

PS:

一个服务器上会有多个人员的账号,这样就需要为不同人员创建不同的密钥实现权限分离,比如说为用户A创建密钥,将公钥放到/home/A/.ssh下,给用户A私钥让其登陆,用户B也如此操作。如果用同一个私钥及公钥,那么其他用户直接可以在xshell中修改用户为root,直接跃为root权限,风险太大,所以为不同用户创建不同密钥。