![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Shell
Shell基础和实战
浮云6363
这个作者很懒,什么都没留下…
展开
-
vim编辑器查找某个词
进入命令模式下输入:/XXX,这个是查找文件中“xxx”这个单词,是从文件上面到下面查找;?xxx,这个是查找文件中“xxx”这个单词,是从文件下面到上面查找,不管用/还是?查找到第一个字符串后,按回车,vim会高亮所有的匹配文;ubuntu下默认的是incsearch模式,就是输完命令后,会自动显示第一个(或最后一个)匹配。如果输入:set noincsearch 会转到普通模式,不会自动显示第一个匹配,回车后显示所有匹配。高亮所有的匹配后,按n键转到下一个匹配,按N键转到上一个匹配。..原创 2021-10-10 11:36:52 · 1577 阅读 · 0 评论 -
【shell】shell对文件和文件夹的判断
文件和文件对象参数:-e 判断对象是否存在-d 判断对象是否存在,并且为目录-f 判断对象是否存在,并且为常规文件-L 判断对象是否存在,并且为符号链接-h 判断对象是否存在,并且为软链接-s 判断对象是否存在,并且长度不为0-r 判断对象是否存在,并且可读-w 判断对象是否存在,并且可写-x 判断对象是否存在,并且可执行-O 判断对象是否存在,并且属于当前用户-G 判断对象是否存在,并且属于当前用户组-nt 判断file1是否比file2新 [ "/data/file1" -nt原创 2021-03-20 21:34:22 · 1435 阅读 · 0 评论 -
【shell】Shell中字符串截取详解
文章目录从指定位置开始截取从字符串左边开始计数从右边开始计数从指定字符(子字符串)开始截取使用 # 号截取右边字符使用 % 截取左边字符汇总Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取。从指定位置开始截取这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串。既然需要指定起始位置,那么就涉及到计数方向的问题,到底是从...原创 2020-02-19 00:24:41 · 874 阅读 · 0 评论 -
shell按月份循环执行hive脚本
在开发中,怎样编写脚本输入开始月份、结束月份自动跑数呢?对shell中getopts不懂的请查看我以前博客shell中的getopt提供以下脚本供参考:#!/bin/sh#*****************************************************************************************#*** 程序功能: 按天循环导入分...原创 2020-02-18 22:29:27 · 1203 阅读 · 0 评论 -
linux清空文件内容快捷方式
目录1. 通过重定向到 Null 来清空文件内容2. 使用 ‘true' 命令重定向来清空文件3. 使用 cat/cp/dd 实用工具及 /dev/null 设备来清空文件4. 使用 echo 命令清空文件5. 使用 truncate 命令来清空文件内容在 Linux 终端下处理文件时,我们想直接清空文件的内容但不删除文件,也不想打开文件通过编辑文件内容进行删除。接下来,将介绍几种借助一些实用...原创 2020-02-08 16:41:16 · 1359 阅读 · 0 评论 -
shell中的getopt
Linux中的位置变量和预定义变量shell中的getoptsgetopt是一个外部命令,不是bash内置命令,Linux发行版通常会自带getopt支持短选项和长选项老版本的getopt问题较多,增强版getopt比较好用,执行命令getopt -T; echo $?,如果输出4,则代表是增强版的如果短选项带argument且参数可选时,argument必须紧贴选项,如-carg 而...原创 2020-02-05 23:43:52 · 962 阅读 · 0 评论 -
shell中的getopts
在bash中,可以用以下三种方式来处理命令行参数:直接处理:使用$1,$2,...,$n进行解析getopts:单个字符选项的情况(如:-f file.txt等选项)getopt:可以处理单个字符选项,也可以处理长选项long-option(如:–prefix=/home等)Linux中的位置变量和预定义变量本篇主要聊聊getopts说明:getopts是bash的内部命令g...原创 2020-02-05 22:59:02 · 681 阅读 · 0 评论 -
shell脚本报错:value too great for base (error token is "08")
在shell开发中,会遇到将10以内的数字前面加0的情况,例如按小时分区执行hive脚本,具体代码如下:#!/bin/shSTART_DAY=$1END_DAY=$2FLAG_DAY=${START_DAY}START_HOUR=$3END_HOUR=$4executeHive() { while : do local STAT_HOUR=00 local...原创 2020-02-05 18:50:22 · 3045 阅读 · 0 评论 -
shell按小时循环执行hive脚本
在开发中,经常会遇到重刷以前脚本或提取以前数据,由于数据量极大,集群资源不够,只能按小时跑数据,怎样编写脚本输入开始日期、开始小时、结束日期、结束小时自动跑数呢?提供以下脚本供参考:#!/bin/sh#*****************************************************************************************#*** 程...原创 2020-01-22 16:21:01 · 1205 阅读 · 0 评论 -
使用shell按天循环执行指定连续周期内的hive代码
废话不多少,直接上代码:#!/bin/sh#*****************************************************************************************#*** 程序功能: 按天循环导入分区数据#*** 输入参数: -s <START_DAY> :需要导入的开始日期#*** -e &...原创 2019-12-08 15:48:55 · 841 阅读 · 0 评论 -
Linux中分卷压缩和合并解压
目录一、通过tar分卷压缩及解压1. 分卷压缩2. 解压3. 校验两个文件md5码是否一致二、通过zip分卷压缩及解压1. 分卷压缩2. 解压3. 校验两个文件md5码是否一致大家可能会遇到这样的情况,一个文件很大,压缩成一个压缩包后还是很大,不方便传输(比如需要微信给别人,微信限定传输的文件大小为100M),那我们可以通过分卷压缩成几个压缩包,然后分卷传输之后在合并解压,再通过md5码校验两...原创 2019-10-28 18:34:10 · 10914 阅读 · 1 评论 -
Linux中的unzip命令
目录unzip语法unzip参数Linux unzip命令用于解压缩zip文件unzip为.zip压缩文件的解压缩程序。unzip语法unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]unzip参数-c 将解压缩的结果显示到屏幕上...转载 2019-10-28 18:27:16 · 433 阅读 · 0 评论 -
Linux中的zip命令
目录zip语法zip参数Linux zip命令用于压缩文件。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。zip语法zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件....转载 2019-10-28 18:25:09 · 475 阅读 · 0 评论 -
Linux中的tar命令
目录tar语法tar相关参数Linux tar命令用于备份文件。tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。tar语法tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>...转载 2019-10-28 18:21:01 · 627 阅读 · 0 评论 -
Linux中的位置变量和预定义变量
目录位置变量脚本中$1-$9,表示第一个到第九个参数预定义变量$0: 表示脚本的名称$#:统计参数的个数$*:所有的参数,整体,\$@: 表示所有参数,一个参数是一个整体$?:上一条命令执行的结果$!: 表示进程PID位置变量脚本中$1-$9,表示第一个到第九个参数编写脚本vi location_var.sh#!/bin/bashecho $1echo this is the $...原创 2019-02-26 22:59:43 · 1442 阅读 · 1 评论 -
shell中如何使用函数
目录传递参数递归函数一个脚本调另一个脚本函数shell作为轻量级的脚本语言,也可以用户自定义函数,然后在shell脚本中调用,类似与Java中的类和方法。今天就来聊聊shell中函数的那些事。shell函数的定义语法如下:[ function ] funname [()]{action;[return int;]}说明:1、可以带function fun() 定义,也可以直接f...原创 2019-03-31 00:20:08 · 1081 阅读 · 1 评论 -
shell的日期处理
目录天的处理获取今天日期:`date +%Y%m%d` 或 ``date +%F`` 或 `date +%y%m%d `获取昨天日期:`date -d yesterday +%Y%m%d`获取前天日期:`date -d -2day +%Y%m%d`依次类推比如获取10天前的日期:`date -d -10day +%Y%m%d`或n天前的 `date -d "n days ago" +%y%m%d`...原创 2019-03-24 13:56:54 · 3466 阅读 · 0 评论 -
shell获取指定开始结束时间内的所有日期及实战应用
在大数据离线开发中,可能会遇到这样的情景:重刷从某天到某天的历史数据,比如重新跑从20180101到20190228的历史数据,按天分区。接到这样的需求最笨的解决办法就是将hql语句每天手动跑一次,这样可想而知多繁琐。第二中方法是编写脚本每月跑一次,脚本如下:#!/bin/bash#该脚本只能一个月的执行,输入的两个参数必须是月初、月末,格式为:yyyyMMdd#输出脚本名称echo 运...原创 2019-03-24 14:42:54 · 1666 阅读 · 0 评论 -
Linux中通用表达式
目录逻辑连接符内置判断字符串数值判断文件和目录判断数值运算逻辑连接符&&:与连接,第一个成功了,第二个才执行||:或连接,第一个失败了,第二个才执行;:无连接关系cd /fuyun && ll #第一条命令执行成功才执行第二条命令-bash: cd: /fuyun: No such file or directorycd ../ &&...原创 2019-03-24 16:30:48 · 507 阅读 · 0 评论 -
Linux Shell重定向(输入输出重定向)
目录硬件设备和文件描述符Linux Shell 输出重定向输出重定向举例错误输出重定向举例正确输出和错误信息同时保存/dev/null 文件Linux Shell 输入重定向输入重定向举例Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向;从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思。那么,什么是输入输出方向呢?标准的输入输出方向又是什么呢?一般情况...原创 2019-07-14 01:38:01 · 1843 阅读 · 0 评论 -
shell脚本通过参数名传递参数值
平常在写shell脚本都是用$1,$2…这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护。Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取。下面的例子定义了短参数名和长参数名两种获取参数值的方式。其实是根据getopt提供的特性进行整理而来。while ge...原创 2019-09-24 16:53:52 · 5083 阅读 · 0 评论 -
如何将hive命令执行结果赋值给shell变量和将一个shell脚本的变量赋值给另一个shell脚本
最近遇到把sas代码翻译成hive代码中发现这样一个问题,在sas代码中总是很多重复代码:从指标表中读取指标代码,如果指标代码在表中则执行此程序,不在则不执行。sas中有if和goto语句进行判断,但hive中并没有这样的语法。以前用的方法是将ETL的表和指标表进行join,on的条件为1=1(因为指标表和ETL的表没有关联字段),再在where条件加上指标表输出的字段is not null的语...原创 2019-02-17 21:14:22 · 6424 阅读 · 0 评论