零基础学习云计算及大数据DBA集群架构师Linux Bash Shell编程及系统自动化2015年1月11日周一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学习云计算及大数据DBA集群架构师Linux Bash Shell编程及系统自动化2015年1月11日周一相关的知识,希望对你有一定的参考价值。

基础命令
1.sort 排序   根据首字母的ascii进行排序
    -n   根据数字大小升序排序
    -r   降序排序
    -u  剔除重复的行
    -k -t 结合一起用  -k 指定列  -t指定分隔符
2.uniq  剔除重复的行
3.seq 序列
seq 10  -->代表以1为起始,以1为间隔罗列到10之前的数字
seq 2 10 -->代表以2为起始,以1为间隔罗列到10之前的数字
seq 1 2 10 -->代表以1为起始,以2为间隔罗列10之前的数字
seq 10 -1 1

==================================
shell
1.作用
2.构成元素
  1) 文件名.sh
  2) 文件第一行 #!/bin/bash
  3) 正文   变量   流程判断语句   系统命令
3.执行脚本的方法
  1) bash 脚本名称
  2) ./脚本名称   -->需要对脚本有可执行的权限

==========
变量
1.定义:可变化的值,可以反复调用,不停变更数值.
2.设置方式: 变量名=赋值.
3.调用的方式 $变量名
4.分类   1)本地变量:只针对当前环境生效.
         2)环境变量:针对子shell有效. 设置的方式 export 变量名=5.清除 unset 变量名
6.替换 
   1) 显示位数    ${变量名:数1:数2}   --> 显示从数一位开始,数二代表显示几位   注意:计数从零开始
[[email protected] ~]# num=123456789
[[email protected] ~]# echo ${num:1:6}
234567
   2) 剔除某一些开始字符
[[email protected] ~]# echo ${file#/tmp}
/a/b/c/d/e/f/test
   3) 只保留文件名
[[email protected] ~]# echo ${file##/*/}
test
   4) 改变量中的文件后缀名
[[email protected] ~]# echo ${file%}.sh
/tmp/a/b/c/d/e/f/test.sh
[[email protected] ~]# echo ${file%.txt}.sh

7.类型变量
使用declare来声明变量类型
[[email protected] ~]# a=1
[[email protected] ~]# b=2
[[email protected] ~]# c=a+b
[[email protected] ~]# echo $a
1
[[email protected] ~]# echo $b
2
[[email protected] ~]# echo $c
a+b
[[email protected] ~]# declare -i A=1
[[email protected] ~]# declare -i B=2
[[email protected] ~]# declare -i C=A+B
[[email protected] ~]# echo $C
3


$(())   代表的是算术表达式, 
[[email protected] ~]# c=$(($a + $b))
[[email protected] ~]# echo $c


==========================================
1.条件判断语句
if  condition      -->condition指的是判断的条件 
then
        CMD1       --> CMD1指的是满足判断条件后执行的语句
else    
        CMD2       --> CMD2指的是不满足判断条件执行的语句
fi

if  condition
then
     CMD1
elif condition
then
     CMD2
else
     CMD3
fi

read可以用来将键盘输入赋值给某一个变量
用法 read 变量名
值

read -p "提示信息" 变量名

2.test判断  man test查看的相关的判断指令
用法[]
数字的判断
 -gt  大于
 -ge  大于等于
 -lt  小于
 -le  小于等于
 -ne  不等于
 -eq  等于
字符的判断
 -z   空
  =   字符相等
 !=   字符不相等
 -n   非空
逻辑与  -a  
逻辑或  -o
文件的判断
-d  文件是不是一个目录
-f  是不是一个普通文件
-e  文件是不是存在

=======================
for :1.作用:循环语句
用法
for  变量 in  取值范围
do    
    CMD
done

for i in  test1 test2     {1..10}   $(seq 1 10)
do
    CMD
done

命令行方式:for i in {1..10};do echo $i;done



===========================================
while   循环语句 
用法   while  condition    -->满足condition则执行cmd
    do
        CMD
    done

bash -x 以调试模式来运行脚本    会将脚本运行的过程显示出来

until   循环语句
用法:    until   condition   -->不满足condition,则执行cmd
    do
        CMD
    done

case 多条件判断 语句
用法:
case 取值 in
     取值1)  
        CMD1 ;;
     取值2)
        CMD2 ;;
     取值3)
        CMD3 ;;
     *)                             *代表除了以上所有的取值,做某一些操作.
        CMD4 ;;
esac

continue 作用于循环语句中   代表跳出这个循环进入下个循环.
break    作用于循环语句中      代表直接跳出该循环.

continue的例子:                    
for i in {1..10}
do
        if [ $i -eq 5 ]
        then
                continue
        fi
        echo $i
done

[[email protected] tmp]# bash continue.sh 
1
2
3
4
6
7
8
9
10

break的例子
continue的例子:                    

for i in {1..10}
do
        if [ $i -eq 5 ]
        then
                break
        fi
        echo $i
done

[[email protected] tmp]# bash break.sh 
1
2
3
4

思考:要求输出100以下所有能够被7整除,但不能够被5整除的数字.

 

以上是关于零基础学习云计算及大数据DBA集群架构师Linux Bash Shell编程及系统自动化2015年1月11日周一的主要内容,如果未能解决你的问题,请参考以下文章

零基础学习云计算及大数据DBA集群架构师Linux系统配置及网络配置2015年12月28日周一

零基础学习云计算及大数据DBA集群架构师Linux系统环境及权限管理2015年12月24日周四

零基础学习云计算及大数据DBA集群架构师Linux系统网络服务及安全配置1.4-1.8

零基础学习云计算及大数据DBA集群架构师Linux系统环境及权限管理2015年12月25日周五

零基础学习云计算及大数据DBA集群架构师Linux系统配置及网络配置2015年12月30日周三

零基础学习云计算及大数据DBA集群架构师Linux系统配置及网络配置2015年12月31日周四