Linux-Shell手札
文章平均质量分 59
Shell脚本攻略 biu biu biu~~~
小小工匠
show me the code ,change the world
展开
-
Shell - Linxu磁盘分区可用性检测
遍历所有挂载点,进行读写测试即可。原创 2022-11-14 23:45:00 · 29602 阅读 · 0 评论 -
Shell遍历hadoop目录的批量操作
需求背景每天产生3T(约2.5W个gz压缩文件)的DPI日志文件,因存储等各种问题,需要尽可能的节约存储。日志文件中有26个字段,根据业务需求需要提取6个字段。解决方法通过shell脚本通过MR程序(推荐,本篇不做论述)结论: 经验证得出的结论shell脚本大约5~10S处理一个文件,比较慢,对于这样大量且分散的情况,不推荐,但可以提供一个思路。 根据实际情况处理步骤原创 2016-01-05 09:25:19 · 13190 阅读 · 1 评论 -
Shell脚本攻略01-简介/终端打印
概述 终端打印 玩转变量与环境变量 使用函数填加环境变量 通过shell进行数学运算 玩转文件描述符与重定向 数组和关联数组 使用别名 获取终端信息 获取、设置日期及延时 调试脚本 函数和参数 将命令序列的输出读入变量 以不按回车键的方式获取字符”n” 运行命令直至执行成功 字段分隔符和迭代器 比较与测试简介原创 2016-12-01 02:31:53 · 10356 阅读 · 0 评论 -
Shell脚本攻略02-玩转变量与环境变量
变量是任何一种编程语言都必不可少的组成部分,用于存放各类数据。脚本语言通常不需要在使用变量之前声明其类型。只需要直接赋值就可以了。在Bash中,每一个变量的值都是字符串。无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。有一些特殊的变量会被shell环境和操作系统环境用来存储一些特别的值,这类变量就被称为环境变量。原创 2016-12-03 00:29:17 · 11570 阅读 · 0 评论 -
Shell脚本攻略03-使用shell进行数学运算
概述无论哪种编程语言都少不了算术操作,在这则攻略中,我们将会研究在shell中进行算术运算的各种方法。原创 2016-12-03 23:31:05 · 9928 阅读 · 0 评论 -
Shell脚本攻略04-玩转文件描述符及重定向
概述文件描述符是与文件输入、输出相关联的整数。它们用来跟踪已打开的文件。最常见的文件描述符是stdin、 stdout和stderr。我们甚至可以将某个文件描述符的内容重定向到另一个文件描述符中。下面给出一些对文件描述符进行操作和重定向的例子。理论知识在编写脚本的时候会频繁使用标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。通过内容过滤将输出重定向到文件是我们平日里的基本原创 2016-12-04 18:03:42 · 10666 阅读 · 0 评论 -
Shell脚本攻略05-数组和关联数组
概述之前梳理的博文 Shell 数组 http://blog.csdn.net/yangshangwei/article/details/52372608数组是shell脚本非常重要的组成部分,它借助索引将多个独立的数据存储为一个集合。普通数组只能使用整数作为数组索引。 Bash也支持关联数组,它可以使用字符串作为数组索引。在很多情况下,采用字符串式索引更容易理解,这时候关联数组就派上用场了。原创 2016-12-08 01:03:08 · 9793 阅读 · 0 评论 -
Linux 中启用 Shell 脚本的调试模式
概述脚本是存储在一个文件的一系列命令。在终端上输入一个个命令,按顺序执行的方法太弱了,使用脚本,系统中的用户可以在一个文件中存储所有命令,反复调用该文件多次重新执行命令。在学习脚本或写脚本的初期阶段,我们通常从写小脚本或者几行命令的短脚本开始,调试这样的脚本时我们通常无非就是通过观察它们的输出来确保其正常工作。然而,当我们开始写非常长或上千行命令的高级脚本,例如改变系统设置的脚本,在网络上执行关键备原创 2017-01-15 19:39:06 · 11128 阅读 · 0 评论 -
在 Shell 脚本中执行语法检查调试模式
shell 脚本调试系列Linux 中启用 Shell 脚本的调试模式在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行概述写完脚本后,建议在运行脚本之前先检查脚本中的语法,而不是查看它们的输出以确认它们是否正常工作。在本系列的这一部分,我们将了解如何使用语法检查调试模式。记住我们之前在本系列的 Linux 中启用 Shell 脚本的调试模式 中解释了不同原创 2017-01-15 20:14:51 · 16269 阅读 · 0 评论 -
在 Shell 脚本中跟踪调试命令的执行
shell 脚本调试系列本系列的前面部分清晰地阐明了另外两种 shell 脚本调试模式:详细模式和语法检查模式,并用易于理解的例子展示了如何在这些模式下启用 shell 脚本调试。Linux 中启用 Shell 脚本的调试模式在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行概述shell 跟踪简单的来说就是跟踪 shell 脚本中的命令的执行。要打开 sh原创 2017-01-15 20:26:43 · 18204 阅读 · 0 评论 -
Shell-实际业务操作01
#!/bin/sh################################ 名称: MvOtherCdrTo251.sh## 描述: /ocs/data/output目录下的25开头(251,257,258除外)对应目录下的/normal/bak下的文件 全部转移到/ocs/data/output/251/normal/bak## 参数: 暂无## 作者: 小工匠## 日期: 2原创 2017-06-19 09:37:37 · 11063 阅读 · 0 评论 -
Shell-实际业务操作02
#!/bin/sh################################ 名称: MvCdr4Classify.sh## 描述: 将/ocs/data/output/251/normal/bak目录下的全部话单按照类别存储到对应的目录下(VOICE\DATA\SMS)## 规则 001 Data 002 Voice 004 SMS##原创 2017-06-19 09:39:21 · 11243 阅读 · 0 评论 -
Shell-实际业务操作03
#!/bin/sh################################ 名称: TarCdrAndTransfer.sh.sh## 描述: 将/bakcdr/cdrbak/VOICE[DATA/SMS]/normal目录下的日期目录Tar成GZ包,mv到 /bakcdr/cdrbak/VOICE/gz_file,## 然后通过FTP传递到目标主机 151 cd原创 2017-06-19 09:40:19 · 11398 阅读 · 0 评论 -
Shell 正则表达式
什么是正则表达式正则表达式是用于描述字符排列和匹配模式的一种语法规则。 它主要用于字符串的模式分割、匹配、查找以及替换操作。概念看看就行,为了保证博文的完整性,记录下,其实没太大用….正则表达式的分类 1.基本的正则表达式(Basic Regular Expression 又叫Basic RegEx 简称BREs) 2.扩展的正则表达式(Extended Regular Expressi原创 2016-09-07 19:32:10 · 9814 阅读 · 0 评论 -
Shell 输入/输出重定向
概述大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令需要注意的是文件描述符: 0 通常是标准输入(STDIN), 1 是标准输出(STDOUT), 2 是标准错误输出(STDERR)。输出重定向语法重定原创 2016-08-31 21:09:38 · 11792 阅读 · 1 评论 -
Shell 文件包含
概述和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。语法Shell 文件包含的语法格式如下:. filename # 注意点号(.)和文件名中间有一空格或source filename栗子创建两个 shell 脚本文件。 test1.sh 代码如下:#!/bin/bash# author: 小工匠# url: http://blog.c原创 2016-08-31 21:47:22 · 9509 阅读 · 0 评论 -
Shell 概述
简介Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。Shell 脚本Shell 脚本(shell sc原创 2016-08-26 00:29:57 · 9159 阅读 · 2 评论 -
Shell 变量
规则定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="testName"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。除了显式地直接赋值,还原创 2016-08-29 21:17:36 · 8887 阅读 · 0 评论 -
Shell 传递参数
概述$n我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……实例以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:#!/bin/bash# author:xiaogongjiang# date:2016-08-29echo "Shell 传递参数实例!";e原创 2016-08-29 22:23:14 · 9289 阅读 · 0 评论 -
Shell 数组
概述数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号来表示,元素用”空格”符号分割开,语法格式如下:array_name=(value1 ... valuen)实例定义数组#!/bin/bashmy_array=(A B "C" D)我们也可以使用下标原创 2016-08-30 20:19:50 · 9557 阅读 · 0 评论 -
Shell 基本运算符
概述Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号 ` 而不是单引号 ‘):#!/bin/bashval=`expr 2原创 2016-08-30 20:37:05 · 11554 阅读 · 1 评论 -
Shell echo-使用echo实现更复杂的输出格式控制
语法Shell 的 echo 指令是用于字符串的输出。命令格式:echo string当然也可以使用echo实现更复杂的输出格式控制。复杂输出格式1.显示普通字符串echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo It is a test2.显示转义字符echo "\"It is a test\""结果将是:"It is a test"同样,双引号原创 2016-08-30 21:03:22 · 17908 阅读 · 0 评论 -
Shell printf 命令
上篇博文我们说了 Shell echo-使用echo实现更复杂的输出格式控制这篇博文我们来学习 Shell 的另一个输出命令 printf。语法printf 命令模仿 C 程序库(library)里的 printf() 程序。标准所定义,因此使用printf的脚本比使用echo移植性好。printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右原创 2016-08-30 21:45:05 · 13948 阅读 · 0 评论 -
Shell test命令
概述Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。或者使用 [ ] 来判断数值测试#!/bin/bashnum1=100num2=100if test $[num1] -eq $[num2]then echo '两个数相等!'else echo '两个数不相等!'fi输出结果:两个数相等!字符串测试#!/bin/ba原创 2016-08-30 22:11:43 · 9919 阅读 · 0 评论 -
Shell 流程控制
概述和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):<?phpif (isset($_GET["q"])) { search(q);}else { // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。if elseifif 语句语法格式:if conditionthen co原创 2016-08-30 22:45:47 · 8976 阅读 · 0 评论 -
Shell 函数
语法linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[ function ] funname [()]{ action; [return int;]}说明:1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,原创 2016-08-30 23:30:33 · 9344 阅读 · 0 评论