Linux shell编程命令-Linux基础环境命令学习笔记

1、正则表达式

    1)^开始  *前一个字符重复0次以上

           +       1次以上

           ?        0次或者1次

          .  一个任意字符(.*连用)

          {m,n}      m到n次

          [0-9][a-z]    任意数字或字母

      $结束字符

 

    2)sed和awk命令

        sed '匹配条件/执行的动作' /etc/passwd  sed 's/old/new/g'

        awk -F: '{print $1}' /etc/passwd    1表示第一列,2表示第二列  -F:表示分隔符为:

2、变量

    1)环境变量  系统环境变量(/etc/profile)  用户环境变量(/home/用户名/.bash_profile)

        set查看

    2)位置变量  $0-9

        $0  脚本名称

        $1-9  位置参数

    3)预定义变量

        $!  后台运行的最后一个进程的PID号

        $?  程序退出的代表(0成功)

        $*  所有参数的内容

        $$  当前进程的ID号码

        $#  当前shell的参数个数

        $@  所有参数内容(逐个读取)

    4)自定义变量

        name=[value]  ps:等号两边不能有空格,变量名对大小敏感

        $变量名  取值

3、算术运算

    + - * / %

    $((表达式))

    $[表达式]

    expr expression  expr 5 + 2  变量间有空格

4、内置测试判断

    Test 测试表达式

    [ 测试表达式 ]  ps:测试表达式与[]间一定有空格

    数值比较    

      -lt  小于  ex:test &a -lt &b  echo $?

      -gt  大于

      -eq  等于

      -ne  不等于

      -le  小于等于

      -ge  大于等于

    字串测试

      =  等于

      !=  不等于

      -z 字串  字串长度伪(为0)则真

      -n 字串  字串长度不伪则真

    文件测试

      -e 文件名  文件存在则真

      -r 文件名  文件存在且可读为真

      -w 文件名  可写

      -x 文件名  可执行

      -s 文件名  文件中至少存在一个字符

      -d 文件名  文件存在且为目录

      -f 文件名  文件存在且为普通文件

    !(非)>>-a(与)>>-o(或)

5、命令间的逻辑符合

    &&  逻辑与

      cmd1 && cmd2  cmd1执行成功才执行cmd2

    ||  逻辑或

      cmd1 || cmd2  cmd1失败了才执行cmd2

    ;  无逻辑关系

6、常用命令

    date -s "2016-04-12 15:20:13"  修改系统时间

    date '+Y%m%d'  按照年月日格式输出系统时间

    date -d '7 day ago' '+Y%m%d'  输出7天前的时间

 7、取字符串

    ${变量名:offset:length}       echo ${a%.*}

8、书写规范

    #!/bin/bash    声明运行环境

    运行方式    a.赋予权限直接运行

            b.通过运行环境运行  bash 1.sh  sh 1.sh

            c.  . 1.sh  source 1.sh

9、控制语句

    1)for语句

        a.  for 变量 in 值1 值2...值N    变量依次取值1...值N

            do

            命令集合          {1..50}  `seq 50`  取值1到50

            done

        b.  for((初始化变量;结束循环条件;变量运算))

    2)while循环

        a.  while [ 条件 ]        let i=i+1---i=$[i+1]  i自增1

        b.  while read -r line

            do

            echo $line

            done < /etc/passwd      从路径中逐行读取并赋值给line

    3)if语句

        if 条件

        then

          命令序列

        elif 条件

        then  

          命令序列

        else

          命令序列

        fi

    4)case语句

        a.  case $变量名称 in

            条件1)

                  命令序列

                  ;;

            条件2)

                  命令序列

                  ;;

            *)                  以上都不满足

            esac

10、函数

    a.  name(){

        命令序列

        }

    b.  function name{

        命令序列

        }

11、计划任务

    1)一次性计划任务

      at 时间        ctrl+d结束输入

      at -l  列出当前计划任务

    2)周期性计划任务  service crond start(status,restart)

        a.开机自启动

            chkconfig --list  列出系统服务是否开机自启动(3和5)

        b.制定计划任务内容

            crontab -e(ENTER)  >>  进入vi命令

            时间和命令  分 时 日 月 周(没有用*代替  -表示连续时间  ,表示若干不连续时间  /表示间隔时间) cmd命令    */10 * * * * ntpdate 时间服务器IP 每10分钟同步一次时钟

        c.重启服务  service crond restart

posted @ 2017-04-24 09:50  绝对肖奈  阅读(207)  评论(0编辑  收藏  举报