• 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

  • 相关阅读:
    shell 遍历当前目录以及所有子目录下文件
    linux shell 字符串操作(长度,查找,替换)详解
    将自定义结构存入std::set 或者 std::map
    CentOS下搭建SVN服务器
    基于Debian的linux系统软件安装命令
    rm搭配grep删除符合条件的文件
    Centos系统环境
    怎么恢复用mysqldump备份数据和恢复数据
    mac 安装 node.js 的 canvas
    centos 6.5 安装 node.js 的 canvas模块
  • 原文地址:https://www.cnblogs.com/jdxn/p/6755382.html
Copyright © 2020-2023  润新知