zoukankan      html  css  js  c++  java
  • shell脚本

    符号:
    *            通配符
                单个任意字符
    ~            宿主目录
    &&        连接符,前一个成功了后面一个才执行
    |            管道符,前者的输出作为后者的输入
    ||            或,只要其中一个通过,整个式子通过
                换行符,在命令中,表示命令未打完,下一行接着打,在编码中,可转义,如: ,
    ;            连接,如:cd /tmp;ls        表示进入tmp目录中后,查看
    {}            展开,如:mkdir    file{1..10},会创建file1,file2,file3,。。。file10个文件夹
    []            连续的范围,如:grep [a-z]   /tmp/a.txt
    ""            字符串,但是可以获取变量
    ''            字符串,字符
    ``               括起来的东西可以当做命令来执行,~号

    --------------------------------------------
    变量
            自定义变量
            系统变量
    自定义变量:
    如:
    a="helloworld"    
    echo "$a"     
    ip=192.168.18.105
    ping -c 4 $ip       

    交互式获取变量:read -p "please input a name" name
    echo "$name"                
                                    变量不能是数字

    系统变量:(又称为内部变量,变量名都是大写)
    $HOME
    $HOSTNAME
    $PWD
    $PID
    $PATH

    echo $PATH           命令的搜索路径
         
    PATH=$PATH:/vfast            这样/vfast中的文件在其他路径下就可以直接使用,把/vfast提升到系统变量搜索中
    -----------------
    A=apple
    B=bnanana
    echo $A.$B                只适用与当前环境,换个shell就不能识别出来


    如果        export A,新打开一个shell就会识别a,把它提升为环境变量,与这个shell平级的shell不能识别,但是他的子shell可以识别


    ------------------------------------------
    变量符号:


      
      $0    :        脚本名称
    $1    :        第一个参数的名字
    $2    :        第二个参数的名字
    。。。
    $10    :        第10个参数的名字。注意:${10}要括号括起来,否则会识别为1,0
    $#    :        未知参数的个数
    $$    :        脚本执行时候pid号是多少,进程号,因为脚本执行完之后,ps aux查看时候是不显示的
    $@    :        未知参数的列表

    $?        :     返回值
                                0:表示成功
                                    非0:表示失败,常见的非0值,127命令未找到,126:没有权限

    -----------------------------------
    脚本的写法:
    后缀名一般以    .sh    .c    .py    结尾

    书写规范:
    #!/bin/bash            定义开头指定的运行环境
    #    说明脚本的作用,介绍
    定义变量
    函数
    主程序
    ---------------------------
    脚本的执行:
    需要拥有x权限,拒绝777
    有两种执行方式:
                sh    x.sh            在原来shell基础上又开启了一个新的shell,执行,输出,又返回到原来的shell
                source    x.sh        在当前shell执行,当前shell输出
    -----------------------------
    echo指令的简单使用:
    echo    -n    不换行
                -e        解释转义字符
                            tab制表符
                        换行,回车
                            删除前一个字符
                a            提示音
                常用颜色

    echo -e "33[30m 黑色字 33[0m"
    echo -e "33[31m 红色字 33[0m"
    echo -e "33[32m 绿色字 33[0m"
    echo -e "33[33m 黄色字 33[0m"
    echo -e "33[34m 蓝色字 33[0m"
    echo -e "33[35m 紫色字 33[0m"
    echo -e "33[36m 天蓝字 33[0m"
    echo -e "33[37m 白色字 33[0m"

    echo -e "33[40;37m 黑底白字 33[0m"
    echo -e "33[41;37m 红底白字 33[0m"
    echo -e "33[42;37m 绿底白字 33[0m"
    echo -e "33[43;37m 黄底白字 33[0m"
    echo -e "33[44;37m 蓝底白字 33[0m"
    echo -e "33[45;37m 紫底白字 33[0m"
    echo -e "33[46;37m 天蓝底白字 33[0m"
    echo -e "33[47;30m 白底黑字 33[0m

    ------------------------------------------------

    输入输出重定向

        >    >>        <        <<

     passwd zhangsan --stdin <pass.txt                    重定向输入源,pass。txt中写入密码,就会把张三的密码改变

      <        表示重定向输入,        >    表示输出
    <<            重定向追加输入            >>    重定向追加输出到

        head -1 /etc/rc.d/* >/vfast/a.txt 2>/vfast/error.txt  2表示错误输出,正确输入,放到/vfast/a.txt        错误输出。放到/vfast/error.txt

        head -1 /etc/rc.d/* $>/vfast/a.txt 2>/vfast/a.txt

                                
















  • 相关阅读:
    suse系统FTP问题
    Oracle SQL编写注意事项
    EXP-00056: ORACLE error 6550 encountered报错;
    Linux 单网卡多 IP 的配置方法
    Authorized users only. All activity may be monitored and reported.
    使用jconsole检测linux服务器
    Suse系统用户不能登录报错
    性能测试介绍
    判断浏览器是否是手机端
    JSONP 跨域请求
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/26b4ce230f83c24b50d1975ff50dd5c0.html
Copyright © 2011-2022 走看看