zoukankan      html  css  js  c++  java
  • shell——Day3

    a.sort排序

    默认排序按照升序,按照每行文件的首字母(数字)的ASCII表的顺序进行排序。

    [root@lsl ~]# vi b.txt
    user1
    user2
    a
    b
    1
    10
    6
    11
    5
    22
    c
    g
    [root@lsl ~]# sort -n b.txt  //按照数值大小写对输入信息进行排序
    a
    b
    c
    g
    user1
    user2
    1
    5
    6
    10
    11
    22

    例:分割passwd目录下第三列,进行p排序

    sort -t ":" -k3 -n /etc/passwd
    

     从图中可以看出文件按照 0 1 2 3 4 5进行排序

     例:统计重复值和非重复值

    vi c.txt   //在文件中输入多个重复值和非重复值进行测试
    a
    a
    b
    b
    b
    b
    b
    c
    g
    g
    g
    
    [root@lsl ~]# sort c.txt | uniq -c -d   //统计重复值
    

    [root@lsl ~]# sort c.txt | uniq -c -u

    注:sort 参数

    -n 按照数值大小排序

    -f 忽略字母大小写

    -t 指定分隔符(cut-d)

    -k 指定所取到的列

    -u 去重(连续相同的值)

     

    b.编程原理:

    1、编程介绍

    目的:让硬件设备实现人类指定的某些特定的功能

    硬件设备如何识别这些编程语言

    早期语言:basic

                      汇编语言

                      局限性,每个厂家都有自己硬件设备所能够识别的汇编语言格式

    高级语言:   C语言  C++ C#、Java、python、 go、perl、shell(更趋向于人类能够读写)

    编译:将人类能够识别的编程语言,翻译成计算机能够识别的语言

    根据编程方式分为:

    1)编译型:一次编译,全部执行

    2)解释性:编译一行,解释一行,执行一行

    程序=指令+数据

    2、shell脚本程序介绍

    优点:指令操作系统命令

    python的优点:具有大量的第三方模块,能实现任何功能(自动化运维方向)

    shell脚本的第一句话:

    #!/bin/bash //指定下面的内容用什么语言做解释

    cat /etc/shells 查看有哪些shell程序

    linux下每一个程序都有一个用户来启动

    用户分类:

    1、超级用户 root

    2、普通用户  1)可登录管理操作系统的用户

                          2)系统用户  --/sbin/nologin   用来启动该用户指定的程序

    cat /etc/shell   //查看当前系统支持的shell程序

    SHELL= /etc/bash  //默认的SHELL环境变量

    如何执行shell:

    1、/bin/bash  程序

    2、chmod +x程序  //给该程序赋予权限

    */全路径/程序.sh

    二者区别:第一种是在当前shell下运行的脚本程序

                      第二种新建子shell去执行程序

    c、变量

    1)基于变量特性支持的不同。我们将开发语言分为:

    1、强类型语言:变量必须被定义

    2、弱类型语言:语言能够自动识别变量类型

    编程语言分类:面向过程,针对指令;面向对象,针对数据

    变量分类:数值型 整形

                                  浮点型

                                  布尔类型        

                       字符型  普通字符集

                                    数组(遍历)

                        declare (用于定义数据类型)

    2)导入变量

    1、直接定义  a=1

    2、传参的方式 $0 $1 $2 ...${10}

    $0 这个程式的执行名字
    $n 这个程式的第n个参数值,n=1..9
    $* 这个程式的所有参数,此选项参数可超过9个。
    $# 这个程式的参数个数
    $$ 这个程式的PID(脚本运行的当前进程ID号)
    $! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
    $? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
    $- 显示shell使用的当前选项,与set命令功能相同
    $@ 跟$*类似,但是可以当作数组用
    

    3)变量的命令

    1、下划线:YUN_NAME

    2、驼峰:YUN | NAME

    4)test 文件测试,用于条件判断

     shell中进行判断时一般有两种判断方式:

    1、直接判断命令正确与否

    2、使用test去做判断

    注:使用了test做判断就必须加"[ ]"写法要注意问题,中括号前后需要加空格。

     例:产生0-99以内的随机数

    [root@lsl ~]# vi bash.sh
    #!/bin/bash
    #
    declare -i a=$RANDOM
    echo "$[$[$RANDOM%100]+1]"

    [root@lsl ~]# bash -x bash.sh //显示语句执行过程

    *test除了可以判断是否相等,还可以作为一下判断:

    a.数值判断:

    -eq 等于     -ge 大于等于   -le 小于等于  -gt 大于   -lt 小于  -ne 不等于

    b.字符串判断:

    -n 判断字符串长度是否不为空

    -z 判断字符串长度是否为空

     = 判断两边字符串是否相等

     !=判断两边字符串不相等

    c.文件判断:

    -d  -b  -c  -e(判断文件是否存在) -f  -L  -r-w-x

    d.多条件关联

    -e  1.sh -a -x 1.sh(-e是否为普通文件,-a-x执行权限)

    5)逻辑运算

    &&与     ||或       !非

    结构体: 初始条件 a=1  

                   while  循环体条件(a<10);do

                             循环体

                             条件控制语句 let a++

                             done

    6)算数运算

    +      -      *      /      %      //      **       =      +     =       -+

    算数格式:  $[1+1]

                     $((1+1))

                     let i++

                     expr 1+1

              

      

          

  • 相关阅读:
    php RSA公钥私钥加解密和验证用法
    php格式化RSA公钥私钥字符串
    你的周末时光是什么样的?
    php-redis 消息订阅笔记
    php redis 常用操作
    MySql索引笔记
    yii1框架,事务使用方法
    python 项目打包成exe可执行程序
    Linux修改默认端口
    C++字符串作为参数的传递
  • 原文地址:https://www.cnblogs.com/Blockblogs/p/11545393.html
Copyright © 2011-2022 走看看