• Linux_Shell基础


    目录

    查看系统中可以使用的shell

    cat /etc/shells
    /bin/sh
    /bin/dash
    /bin/bash
    /bin/rbash
    /usr/bin/screen

    重定向

    > 重定向覆盖输出
    >> 重定向追加输出
    < 重定向覆盖输入
    << 重定向追加输入

    Example
    find / -name passwd > find.txt
    find / -user jmilk >> find.txt
    find / -user jmilk 2> find.txt 错误信息覆盖重定向
    find / -user jmilk 2>> find.txt 错误信息追加重定向
    find / -user jmilk &> find.txt 将正确信息与错误信息一定重定向

    重定向输入邮件内容
    mail -s “mail jmilk” jmilk@fan.com < find.txt
    su - jmilk
    mail jmilk

    管道

    将管道左边的输出当成管道右边的输入。
    错误信息不能通过管道
    find / -user jmilk | grep proc > find.txt
    vim find.txt
    将错误信息转化为正确信息之后再通过管道
    find / -user jmilk 2>&1 | grep proc > find.txt
    vim find.txt

    变量

    创建一个变量
    name=aaaaaaaaaaaaa
    echo $name

    Shell变量
    set 查看全部的Shell变量
    set | grep ^name 查看刚赋值的name变量
    unset name 撤销name变量
    set | grep ^name

    用户标签变量:是Shell变量额一部分
    PS1=“u @ h w :”
    PS1= “ C:”

    export指令与echo的不同

    ok1=111111111111111
    ok2=222222222222222
    export ok1
    echo $ok1
    echo $ok2
    bash
    echo $ok1
    echo $ok2

    算术运算符

    q=6
    w=2
    e=5
    expr $q + $w
    expr $q - $w
    expr $q * $w
    expr $q / $w
    expr $q \% $e
    echo $[$q+$w]

    用户个性化系统变量文件

    vim /etc/profile
    vim ~/.bash_profile
    vim ~/.bashrc
    vim /etc/bashrc

    通配符

    echo /etc/httpd/*
    echo /etc/httpd/???
    echo /etc/httpd/[ml]*
    echo /etc/httpd/[a-l]*
    echo /etc/httpd/[^ml]*

    引号

    touch log$(date +%y%m%d)
    touch log `date +%y%m%d`
    name=jmilk
    touch hello $name
    touch “hello $name”
    touch ‘hello $name’
    rm -f “hello jmilk”
    rm -f hello $name
    echo “today is `date`”
    echo ‘today is `date`’
    cp /etc

    文件比较运算符

    -e filename 如果 filename存在,则为真
    -e /var/log/syslog
    -d filename 如果 filename为目录,则为真
    -d /tmp/mydir
    -f filename 如果 filename为常规文件,则为真
    -f /usr/bin/grep
    -L filename 如果 filename为符号链接,则为真
    -L /usr/bin/grep
    -r filename 如果 filename可读,则为真
    -r /var/log/syslog
    -w filename 如果 filename可写,则为真
    -w /var/mytmp.txt
    -x filename 如果 filename可执行,则为真
    -L /usr/bin/grep
    filename1-nt filename2 如果 filename1比 filename2新,则为真
    /tmp/install/etc/services -nt /etc/services
    filename1-ot filename2 如果 filename1比 filename2旧,则为真
    /boot/bzImage -ot arch/i386/boot/bzImage
    字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
    -z string 如果 string长度为零,则为真
    -z “$myvar”
    -n string 如果 string长度非零,则为真
    -n “$myvar”
    string1= string2 如果 string1与 string2相同,则为真
    $myvar” = “one two three”
    string1!= string2 如果 string1与 string2不同,则为真
    $myvar” != “one two three”
    算术比较运算符
    num1-eq num2 等于 [ 3 -eq $mynum ]
    num1-ne num2 不等于 [ 3 -ne $mynum ]
    num1-lt num2 小于 [ 3 -lt $mynum ]
    num1-le num2 小于或等于 [ 3 -le $mynum ]
    num1-gt num2 大于 [ 3 -gt $mynum ]
    num1-ge num2 大于或等于 [ 3 -ge $mynum ]

  • 相关阅读:
    codeforces 519E A and B and Lecture Rooms lca倍增
    codeforces 702E Analysis of Pathes in Functional Graph 倍增
    hdu 5126 stars cdq分治套cdq分治+树状数组
    hdu 5442 Favorite Donut 最大表示法+kmp
    hdu 5446 Unknown Treasure 中国剩余定理+lucas
    hdu 5769 Substring 后缀数组
    codevs 1913 数字梯形问题 费用流
    Python for Infomatics 第13章 网页服务二(译)
    Python for Infomatics 第13章 网页服务一(译)
    Python for Infomatics 第12章 网络编程六(译)
  • 原文地址:https://www.cnblogs.com/jmilkfan-fanguiju/p/7533793.html
Copyright © 2020-2023  润新知