美文网首页linux_shell
Shell常用命令(md格式方便阅读和复制粘贴)

Shell常用命令(md格式方便阅读和复制粘贴)

作者: AlanTuringWu | 来源:发表于2021-08-27 00:55 被阅读0次

    Shell

    Shell中的变量

    系统变量

    $HOME 表示进入当前账号的/home/用户名     
    示例:cd $HOME    pwd查看之后会发现当前目录已经进入到:/home/maowu   (maowu是当前用户名称,自己定义的。)
    

    自定义变量

    定义变量:变量=值    (注意:没有空格,没有类型) 
    撤销变量:unset 变量
    声明静态变量:readonly 变量  (注意:不能unset)
    

    自定义变量规则

    1.变量名称可以为字母、数字和下划线组成,不能以数字开头,环境变量建议大写。
    2.等号两侧不能有空格。
    3.变量类型默认为字符串,不能进行运算。
    4.变量对应的值有空格,需要使用""或者''括起来。
    

    Shell特殊变量

    $n
    概念:n代表数字,$0代表该脚本名称 $1-$9代表第一到第九个参数,10以上的参数需要用{}包含,如:${10}
    用途:主要写在脚本文件里面,用来接收执行脚本命令时传递的参数。如: xsync /opt/moudle    (注:xsync为自定义命令,可以在脚本文件里面用变量 $1 接受参数:/opt/moudle)
    
    $#
    概念:获取所有输入参数的个数
    用途:xsync aa bb cc   ($#可以在脚本文件里面表示一共有多少个输入参数,当前结果为3)
    
    $*
    概念:这个变量代表命令行中的所有参数,把所有参数看成一个整体。
    
    $@
    概念:这个变量代表命令行中的所有参数,每个参数是一个单独的个体。
    
    $?
    概念:返回最后一次执行命令的返回状态,0表示上一个命令正确执行,非0表示不正常
    

    运算符

    $((运算式)) 或  $[运算式] 如:echo $((2+3)) 或者 echo $[2+3]
    
    expr + - \* / % 加 减 乘 除 取余数 (expr运算符间有空格,如:expr 2 + 3)
    

    条件判断

    基本语法

    [ condition ]   
    注意:condition前后要有空格,除了能正常判断为true或者false。条件非空即为true,[  ]返回false,可以用echo $? 判断上一次命令的结果,0为true,非0为false。
    

    常用判断条件

    整数之间的比较
    
    = 字符串比较
    -lt 小于      -le 小于等于
    -eq 等于      -gt 大于
    -ge 大于等于   -ne 不等于
    
    示例:
    [ 23 -ge 23 ]
    
    文件权限进行判断
    -r 有读的权限     -w 有写的权限
    -x 有执行的权限
    [ -r /opt/module/aaa.txt ]
    
    文件类型进行判断
    -f 文件存在并且是一个常规的文件
    -e 文件存在(文件和文件夹都认为是文件)                 -d 文件存在并且是一个目录
    
    A && B 当 A 为 true 才执行 B     A || B 当 A 为 false 才执行 B
    

    流程控制

    注意:以下所有示例代码需要写到文件里面:
         touch xxxx.sh   创建文件
         vim xxxx.sh     编辑文件
         ./xxxx.sh.      运行文件()
    

    If判断

    基本语法
    if [ conditon ];then
       程序
    fi
    
    或者
    
    if [ conditon ]
       then
         程序
    fi
    
    或者带elif
    
    if [ conditon ]
       then
         程序
    elif [ condition ]
       then
         程序
    fi
    注意:condition的前后空格,if,elif后要有空格。
    
    示例:
    #!/bin/bash
    if [ $1 = "1" ]
       then
         echo "输入的数字为1"
    elif [ $1 = "2" ]
       then
         echo "输出的数字为2"
    fi 
    

    case语句

    基本语法
    case $变量名 in
        "值1")
           如果变量值等于值1,则执行这里。
           ;;
        "值2")
           如果变量值等于值2,则执行这里。
           ;;
            *)
           如果变量值都不是以上的值,则执行这里
           ;;
    esac
    
    示例:
    #!/bin/bash
    case $1 in
      "java")
      echo $JAVA_HOME
      ;;
      "hadoop")
      echo $HADOOP_HOME
      ;;
      *)
      echo "i have no idea"
      ;;
    esac
    

    for循环

    基本语法
    for(( 初始值;循环控制条件;变量变化))
       do
         程序
       done
    
    
    或者
    for 变量 in 值1 值2 值3
       do
         程序
       done 
       
    示例:
    #!/bin/bash
    for((i = 0;i <= 100;i++))
       do
         s=$(($s + $i))
    done
    echo $s
    
    
    #!/bin/bash
    for i in $1 $2 $3
      do
        echo "武哥已经掌握的知识有$i"
      done
    

    * 和@加上""的使用区别

    for i in "$*" 会将所有参数作为一个整体传递,相当于只有一个参数。
    for i in "$@" 会将参数分开,有几个参数就输出几个参数
    

    while循环

    基本语法
    while [ conditon ]
       do
         程序
       done  
    
    示例:
    #!/bin/bash
    s=0
    i=1
    while [ $i -le 100 ]
      do
        s=$[$s+$i]
        i=$[$i+1]
      done
    echo $s
    

    read读取控制台输入

    基本语法

    read(选项)(参数)
    选项:
    -p 指定读取时的提示文字
    -t 指定读取时等待的时间
    参数:
     也就是变量,指定读取值的变量名
    
    示例:
    #!/bin/bash
    read -t 7 -p "请在7秒内输入参数:" NAME
    echo $NAME
    

    函数

    系统函数

    basename [string / pathname][suffix]  保留文件的最后一级的名称,传入的时文件就保留文件
    
    示例:
    basename /home/maowu/bin/batch.sh
    batch.sh
    
    basename /home/maowu/bin/
    bin
    
    basename batch.sh
    batch.sh
    
    basename /home/maowu/bin/batch.sh .sh
    batch
    
    dirname 文件绝对路径,返回文件的目录部分
    
    示例:
    dirname /home/maowu/bin/batch.sh
    /home/maowu/bin
    

    自定义函数

    [ function ]functionname[()]
    {
        程序;
        [return int;]
    }
    functionname
    
    注意:必须要调用函数之前就要声明函数
    
    示例:
    #!/bin/bash
    function sum(){
       s=0
       s=$[$1+$2]
       echo $s
    }
    read -t 5 -p "input a:" a
    read -t 5 -p "input b:" b
    sum $a $b
    

    Shell工具

    cut

    概念:
    在文件中负责剪切数据,cut从文件的每一行进行剪切字节、字符和字段。
    
    基本用法:
    cut [选项参数] filename    默认分隔符是制表符 \t
    选项参数:
    -f 列号,提取第几列
    -d 分隔符,按照指定分隔符分割列
    

    相关文章

      网友评论

        本文标题:Shell常用命令(md格式方便阅读和复制粘贴)

        本文链接:https://www.haomeiwen.com/subject/xovpiltx.html