zoukankan      html  css  js  c++  java
  • linux shell常用语法

    特殊变量

    $0 当前脚本的文件名
    $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
    $# 传递给脚本或函数的参数个数。
    $* 传递给脚本或函数的所有参数。
    $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
    $? 上个命令的退出状态,或函数的返回值。
    $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

    条件

    = 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串
    != 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串

    -eq 等于 应用于:整型比较

    -ne 不等于 应用于:整型比较
    -lt 小于 应用于:整型比较
    -gt 大于 应用于:整型比较
    -le 小于或等于 应用于:整型比较
    -ge 大于或等于 应用于:整型比较
    -a 双方都成立(and) 逻辑表达式 –a 逻辑表达式
    -o 单方成立(or) 逻辑表达式 –o 逻辑表达式
    -z 空字符串
    -n 非空字符串

    -f 常用!侦测『档案』是否存在 eg: if [ -f filename ]
    -d 常用!侦测『目录』是否存在
    -b 侦测是否为一个『 block 档案』
    -c 侦测是否为一个『 character 档案』
    -S 侦测是否为一个『 socket 标签档案』
    -L 侦测是否为一个『 symbolic link 的档案』
    -e 侦测『某个东西』是否存在!
    2. 关于程序的逻辑卷标!
    -G 侦测是否由 GID 所执行的程序所拥有
    -O 侦测是否由 UID 所执行的程序所拥有
    -p 侦测是否为程序间传送信息的 name pipe 或是 FIFO (老实说,这个不太懂!)
    3. 关于档案的属性侦测!
    -r 侦测是否为可读的属性
    -w 侦测是否为可以写入的属性
    -x 侦测是否为可执行的属性
    -s 侦测是否为『非空白档案』
    -u 侦测是否具有『 SUID 』的属性
    -g 侦测是否具有『 SGID 』的属性
    -k 侦测是否具有『 sticky bit 』的属性
    4. 两个档案之间的判断与比较 ;例如[ test file1 -nt file2 ]
    -nt 第一个档案比第二个档案新
    -ot 第一个档案比第二个档案旧
    -ef 第一个档案与第二个档案为同一个档案( link 之类的档案)
    5. 逻辑的『和(and)』『或(or)』
    && 逻辑的 AND 的意思
    || 逻辑的 OR 的意思

    条件语句 比较整数用-gt -lt等命令 不要用<>

    shell命令对空格换行敏感 这点非常重要 

    for循环in后面可以跟字符串用空格分开(实际是一个数组类型)  (xargs命令遇到空格问题可以开启--null)

    数学表达式用expr,bc命令

    生成数字数组用seq

    for i in `seq 5 6`
    do
      echo "for"$i
    done

    count=0
    until [ $count -gt 1 ]
    do
      count=`expr $count + 1`
      echo "until"$count
    done
    while [ $count -gt 1 ]
    do
      count=`expr $count - 1`
      echo "while"$count
    done

    if [ 1 = 1 ] && [ 2 -eq 2 ]; then
      echo "if"
    elif [ 1 = 1 ]; then
      echo "elif"
    else
      echo "else"
    fi

    awk -F可以指定分隔符 不指定就是空格 支持正则

    echo "aaa123bbb" | awk -F[0-9] '{print $0":"$1"-"$4; }'

    find ./ -name "a*" -exec cat {} ;

    find ./ -name "a*"|xargs --null

    pubkey

    ssh-keygen -t rsa -b1024

    公钥导入下面这个文件 没有就创建

    ~/.ssh/authorized_keys 

    然后ssh -i私匙 或者 scp -i

    截取字符串 下标起始一个是从0 一个是从1

    {str:0:3}

    expr substr 1 3

  • 相关阅读:
    Python批量 png转ico
    线性回归
    【论文集合】多语言机器翻译
    【论文集合】curriculum learning总结/课程学习论文
    crf++分词
    强化学习的探索策略方式
    关于multiprocessing中的logging的数据打印到本地失败或重复问题
    置信区间绘图、以10次平均值为例
    打印CSDN博客内容JS
    SUMO学习笔记(3)
  • 原文地址:https://www.cnblogs.com/zsummer/p/5178780.html
Copyright © 2011-2022 走看看