大数据学习笔记——Shell

本文详细介绍了Linux Shell的基本知识,包括常用的符号、系统及自定义变量、条件判断、流程控制、读取控制台输入、函数以及常用的Shell工具如cut、sed、awk和sort的使用。通过实例解析,帮助读者掌握Shell脚本的编写技巧,提升Linux系统管理效率。
摘要由CSDN通过智能技术生成

记录一下学习到的相关知识,方便以后查看和学习

作用:外层的应用程序通过Shell来操作LInux的内核

1.常见的shell解析器:sh、bash(bash是centos系统默认的解析器,sh是bash的软链接)

2.shell执行方法:

        1) sh / bash 脚本名称 (本质是解析器执行脚本)

        2)相对 / 绝对路径 (本质是脚本自己执行,所以需要赋权限


二、常用符号

系统变量

        $HOME:显示家目录

        $PWD:显示当前目录

        $SHELL:显示默认解析器

        $USER:显示当前用户

自定义变量

        1)定义变量:变量名=值  (=两边不能有空格)

        2)撤销变量:unset 变量名

        3)声明静态变量:readonly 变量名  (不能被unset撤销)

        4)声明全局变量:export 变量名

特殊变量

        1)$n

                n表示数字,$0表示该脚本的名称,$1-9分别表示表示第一到第九个参数

                10以上的参数用大括号,eg:${10}

        2)$#

                获取所有输入的参数个数(常用于循环中)

        3)$* 和 $@

                都代表命令行中所有的参数

                $*把所有参数看成一个整体,$@把每个参数看成单独的个体

        4)$?        

                代表最后一次执行的命令的返回状态。

                若这个变量值为0,证明上一个命令正确执行;反之执行失败(具体返回的值由命令决定)

运算符

基本语法:

        "$((运算式))"  或者  "$[运算式]"

        expr +,-,\*,/,%        (加、减、乘、除、取余)   

eg:

        1)计算2+3     

expr 2 + 3     //运算符间要有空格

        2)计算(2+3)*4

expr `expr 2 + 3` \* 4

        或者

res=$[(2+3)*4]

echo $res


三、条件判断

1.语法:

        [ 判断条件condition ]        (条件前后有空格,条件非空返回true,反之false)

2.常用判断条件

        1)两个整数比较

                = 字符串比较         -lt 小于        -le 小于等于         -gt 大于

                -ge 大于等于        -eq 等于        -ne 不等于

        2)按照文件权限判断

                -r:有读的权限

                -w:有写的权限

                -x:有执行的权限

        3)按照文件类型进行判断

                -f  :文件存在并且是一个常规文件

                -e :文件存在

                -d :文件存在并且是一个目录

        4)多条件判断

                &&:前一条命令执行成功时,才执行后一条命令

                 ||  :上一条命令执行失败后,才执行下一条命令


四、流程控制

if 判断

基本语法:

if [ 条件判断式 ];then

        程序

fi

或者

if [ 条件判断式 ]

        then

                程序

fi

case语句 

基本语法:

case $变量名 in

        "值1")

                若值等于1,执行此行

        ;;

        "值2")

                若值等于2,执行此行

        ;;

        .....其他分支.....

        *)

                若变量的值都不匹配,则执行

        ;;

esac

for循环 

语法1:

for 值 in 值1 值2 值3......

        do

                程序

        done

语法2:

for((初始值;循环控制条件;变量变化))

        do

                程序

        done 

 while循环

while [ 条件判断式 ]

        do

                程序

        done


五、读取控制台输入

语法:read(选项)(参数)

选项:-p:指定读取值时的提示符

           -t:指定读取值时等待的时间(秒)

参数:

        变量:指定读取值的变量名


六、函数

系统函数

        1)basename

                语法: basename [string / pathname] [suffix]   (功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。

               选项:suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。

        2)dirname

                语法:dirname 文件绝对路径
                功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录部分)

自定义函数

语法:

[function]funame[()]

{

        Action;

        [return int;]

}

(要在调用函数的地方之前,先声明函数,因为shell是逐行运行)


七、shell工具★★★

cut

功能:从文件的一行剪切字节、字符和字段并输出

语法:cut [选项参数] filename

选项参数

功能

-f

列号,提取第几列

-d

分隔符,按照指定分隔符分割列

sed

功能:是一种编辑器,它一次处理一行内容。

语法:sed [选项参数]  ‘命令’  filename

选项参数

功能

-e

直接在指令列模式上进行sed的动作编辑。

命令

功能描述

a 

新增,a的后面可以接字串,在下一行出现

d

删除

s

查找并替换

awk

功能:一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。

语法:awk [选项参数] ‘pattern1{action1}  pattern2{action2}...’ filename

说明

        pattern:表示AWK在数据中查找的内容,就是匹配模式

        action:在找到匹配内容时所执行的一系列命令

选项参数

功能

-F

指定输入文件折分隔符

-v

赋值一个用户定义变量

变量

说明

FILENAME

文件名

NR

已读的记录数

NF

浏览记录的域的个数(切割后,列的个数)

sort

功能:将文件进行排序,并将排序结果标准输出

语法:sort(选项)(参数)

参数

指定待排序的文件列表

选项

说明

-n

依照数值的大小排序

-r

以相反的顺序来排序

-t

设置排序时所用的分隔字符

-k

指定需要排序的列

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值