博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell——Day3
阅读量:5072 次
发布时间:2019-06-12

本文共 2257 字,大约阅读时间需要 7 分钟。

a.sort排序

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

[root@lsl ~]# vi b.txtuser1user2ab110611522cg
[root@lsl ~]# sort -n b.txt  //按照数值大小写对输入信息进行排序abcguser1user2156101122

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

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

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

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

vi c.txt   //在文件中输入多个重复值和非重复值进行测试aabbbbbcggg
[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=$RANDOMecho "$[$[$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

          

 

 

  

      

 

转载于:https://www.cnblogs.com/Blockblogs/p/11545393.html

你可能感兴趣的文章
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
21.Longest Palindromic Substring(最长回文子串)
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>
Spring MVC 入门(二)
查看>>
Java处理多人同时读写文件的文件锁处理
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
判断文本框输入的文字长度
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
Scaling Pinterest - From 0 To 10s Of Billions Of Page Views A Month In Two Years
查看>>
SelectSort 选择排序
查看>>
关于android 加载https网页的问题
查看>>
BZOJ 1047 HAOI2007 理想的正方形 单调队列
查看>>
各种语言推断是否是手机设备
查看>>
这个看起来有点简单!--------实验吧
查看>>
小知识:js如何更改css样式
查看>>
PHP count down
查看>>
JVM参数调优:Eclipse启动实践
查看>>