• shell常见命令总结(二)


    1.1. shell的数据类型

      shell的数据类型是动态的数据类型。即不需要事先定义,而可以直接使用。使用过程中,能随时变换类型。比如 awk {‘print $1’}  /opt/test.txt  从文本文件中打印从第一列,然后可以直接用$1进行算数比较运算。

    b=grep “8-7-112-132” /opt/

    b就是一个list类型。可以使用 for i in b

    1.2. 其他常用命令

    1.2.1. tr单个字符替换

    只能用一个字符替换另一个字符,如 a=`echo $IP|tr ‘.’ ‘_’`,把IP地址中的点换成下划线。

    echo $file|tr ‘ ’ ‘ ’   #将文件中所有的空格换成换行

    echo $file|tr ‘[a-z] ‘[A-Z]‘  #将所有小写换成对应的大写(前面和后面的是一一对应)。

    echo $file|tr -d  ‘ ’    #删除文件所有的空格

    1.2.2. 简单判断语句test[exp1 -gt exp2] && {sh log4.sh}

    判断条件为真时,执行后面的语句,否则不执行。

    test[exp1 -gt exp2] || {sh log4.sh},同理,这个语句表示,当前面的语句为假时,后面的语句才执行。

    1.2.3. 表达式结果赋值语句

    path=$((cd dirname $0);pwd)

    dirname $a,表示将文件a的路径列出来,两个命令先后执行,用分号隔开。

    想将pwd显示的结果赋值给path变量,如果直接等于pwd就不对了。还比如,

    grep_ip=$(echo $odl_ip|sed  ‘s/./\./g’)

    将变量old_ip中的点,换成.,而sed没有参数,表示只将替换的结果显示在屏幕上,并不改变文件的内容(由于前面是变量,不是文件,不能使用-i选项)

    1.2.4. 命令赋值语句

    赋值语句等号右边的句式太长时,需要让他们连接起来表示是一个整体,就需要用反引号括起来。

    ip_list=`cat test.txt|grep “8.7.112.133”`

    1.3. 算数表达式

    shell中算数表示式有三种写法(注意,如果用expr方式,+ 号左右要有空格,而后面两种写法要不要空格都可以)

    a=1;b=2

    c=`expr $a + $b` c=$(expr $a + $b)

    c=$(( $a + $b))

    c=$[ $a + $b ]

    乘法:c = $(( $a * $b))

    除法:c=$(( $a $b))

    幂运算:c=$(( $a ** $b))

    1.4. shell中的函数

    因为执行循序是从前往后,所以函数要先定义再调用。

    ./test.sh  a  b

    表示执行test.sh脚本,传递的参数是ab。且ab是传给main函数的。在main函数中,$0,表示脚本名字,$#参数个数,2$@原样列出参数a b$? 函数的执行结果;

    如果test.sh脚本中有change_ip方法,change_ip() old_ip  new_ip,则在change_ip方法中,$@就是 old_ip new_ip了。

    1.5. 获取当前文件所在目录

    path=$(cd $(dirname $0);pwd)

    1.6. 执行非当前用户的命令

    su - oracle -c “sqlplus / as sysdba @tmp/shutdown.sql”

    达到既执行Oracle用户的命令,有没有把当前用户切换到Oracle用户。

    执行SQL命令时,需要先将命令放在一个文件中,用户之后再删除。

    echo -e “shutdown immediate; exit;”>/tmp/shutdown.sql   /tmp目录所有用户都有权限

    1.7. shell中的单引号和双引号

      单引号和双引号都是引用字符串,不同的是,双引号中的特殊字符:美元符号、反引号、反斜杠、大中小括号($`)会保留特殊的转义作用,而单引号中所有的特殊符号都失去了特殊意义,将会原样显示。

      在grepsedawk命令中,需要注意,grepsed通常用双引号,而awk中用单引号。

      有些命令中的格式,需要具体对待,如awk ‘{print $1}’必须用单引号,而$1符号仍未特殊意义。

  • 相关阅读:
    Keras -- 词向量 CNN
    KUDU实时分析
    Keras
    Kalfka
    Linux云
    管理KUDU
    列存储与行存储
    算法笔记 第5章 入门篇(3) --数学问题 学习笔记
    算法笔记 上机训练实战指南 第4章 入门篇(2) --算法初步 4.6two pointers 学习笔记
    算法笔记 上机训练实战指南 第4章 入门篇(2) --算法初步 4.4贪心 学习笔记
  • 原文地址:https://www.cnblogs.com/yahutiaotiao/p/8045030.html
Copyright © 2020-2023  润新知