• shell-day1



      shell概述:这里说的是命令行shell,例如"bash/sh/ksh/csh"(Unix/Linux系统)、cmd.exe命令提示字符(windwos系统),这里主要介绍Unix/Linux系统。

    shell不但可以命令手机,还可以用来编程。运维人员可以通过shell来自动化管理系统,Linux系统所有命令都可以被shell调用。

    1.脚本调用方式

    ./*.sh            #要求有执行权限,必须声明shell类型(#!/bin/sh)
    sh *.sh          #使用sh执行脚本
    sh -x *.sh      #sh -x 表示显示执行过程
    

    2.变量

    使用>写第一个脚本
    cat > hello.sh
    echo "Hello World!"
    #ctrl + D结束
    chmod +x hello.sh
    #使用上面三种方法来执行脚本
    
    接下来在终端上使用即可
    1.定义变量
    a1="Hello World"
    a2=`date "+%Y-%m-%d %H-%M-%S"`
    2.获取变量并输出
    第一种:
    echo $a1     #echo ${a1}
    >>Hello World
    echo $a2
    >>2018-01-02 23-40-57
    第二种:切片取值
    echo ${a1:0:2}  #变量都是从0开始,第二个为1,0为开始位,展示两位,也就是Hl
    >>He                    #如果是echo ${a1:0}则打印0包括后面全部的值
    第三种:组合
    echo $a1,$a2
    >>Hello World,2018-01-02 23-40-57
    3.删除变量
    unset 变量名
    unset a1
    

    3.read命令

    read命令接收标准输入(键盘)的输入,得到输入后,read命令将数据放入一个标准变量中
    
    cat test.sh
    
    #!/bin/bash
    echo -n "Enter your name:"    #-n表示不换行,echo默认会换行
    read name    #变量
    echo "Hello $name"   #显示输入的信息
    exit 0    #退出
    
    #read有一个-p参数,后面可以跟提示信息,就跟echo一样,这样就可以简写
    
    read -p  "Enter your name:" name
    echo "Hello $name"
    

    4.sort命令

    sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
    
    cat test.txt
    b
    b
    d
    f
    a
    c
    sort test.txt 
    a
    b
    b
    c
    d
    e
    f
    
    #-u选项,输出时去掉重复行
    sort -u test.txt  
    a
    b
    c
    d
    e
    f
    
    #-r,选项,降序,默认是升序
    sort -r test.txt
    f
    e
    d
    c
    b
    b
    a
    
    #-o选项,sort默认是把结果输出到标准实处,需要用重定向才能写入文件,例如sort test.txt > test2.txt,但是,要把结果输出到源文件中,就不行了,原文件会空,-o可以完美解决
    sort -r test.txt -o test.txt
    cat test.txt
    f
    e
    d
    c
    b
    a
    
    #-n选项,有时候会遇到10比2大的情况,sort会比较字符,1比2小,所以放在2前面,-n可以避免
    cat test.txt
    1
    2
    3
    4
    10
    sort test.txt
    1
    10
    2
    3
    4
    sort -n test.txt
    1
    2
    3
    4
    10
    
    #-t和-k选项
    有个文件
    cat a.txt
    a.9.2
    d.7.3
    c.5.1
    现在我要根据第二列的数字来排序,如何做到?可以使用-k和-t
    sort -n -k 2 -t . a.txt #-k选择第几列-t选择分隔符,这里是.
    c.5.1
    d.7.3
    a.9.2
    

  • 相关阅读:
    高阶函数之函数柯里化function currying
    学习javascript设计模式之状态模式
    学习javascript设计模式之代理模式
    学习javascript设计模式之发布-订阅(观察者)模式
    Json序列化提示缺少编译器要求的成员“ystem.Runtime.CompilerServices.ExtensionAttribute..ctor”
    获取实例
    webservice跨域问题
    IIS客户端没有权限
    IIS7.5 错误代码0x8007007e HTTP 错误 500.19
    获取当前文件夹路径
  • 原文地址:https://www.cnblogs.com/wazy/p/8184312.html
Copyright © 2020-2023  润新知