Shell脚本笔记 1】的更多相关文章

今天开始自己的shell脚本练习,刚好公司有太服务器,要时间对数据的cp是按月的: 考虑:首先寻找规律,发现都放置在/opt/www/aaa/  里面有很多的2级和3级目录和文件,但我追踪要备份的是年月为文件名的格式:2015_06 这样的格式,首先我们不清楚这个目录下有多少这样的2015_06的子目录所以需要统计: @qq.com :: CST 2015 pathh=/opt/www/acc/musicFile/ @首先定义的是源文件路径 pathd=/opt2/musicFile/ @要备份…
  如何查询文件里的某个字符串? grep “字符串” 文件 例:grep "abc" tmp.txt   如何将查询出来的内容赋给变量? str=$(grep "abc" tmp.txt)    如何打印变量的值? echo $varname 注:要想引用变量,最好写成${varname}的形式   如何在屏幕上输出提示,让用户输入y或n来选择进行下一步? echo -n "Continue?" read ANS case $ANS in y|…
控制Shell脚本 一.处理信号 1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. 登录Linux时,系统会分配给登录用户一个终端(Session).在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个Session.当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号.这个信号的默认操作为终止进程,因此前台进程组和后台有终端输出…
一些零碎的基础知识 一.认识Shell脚本 一)相关概念 Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序. Shell脚本语言是弱类型语言,与其他脚本语言相比的优势是可以处理偏操作系统底层的业务. 查看系统默认Shell: #方法一: echo $SHELL #方法二: grep root /etc/passwd 二)开发规范 1)脚本第一行指定解释器 #!/bin/bash 2)开头添加版本.版权等信息 3)脚本中尽量不要用中文 4)扩展名为…
Shell变量 一)全局环境变量 全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了.另外全局变量会被子shell的同名变量覆盖. #定义一个全局变量 export a="I want break free" #或者 b="Sunday Morning" export b #删除一个全局变量 unset a 二)局部环境变量 局部环境变量只能在定义它们的进程中可见. #注意变量名.等号.和值之间是没有空格的…
函数别名 设置别名 alias name="command" alias ll="ls -laS" 取消别名 unalias name 求取数学表达式 value=$[6/3] value=$((6/3)) let "value += 1" 定义局部变量 local value 定义整数 declare -i value 命令替换 value=`command` value=$(command) 系统变量 $n,第n个參数 $#,參数个数 $0,…
shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell Linux 启动过程: BIOS -> MBR -> BootLoader(grub) -> kernel -> systemd -> 系统初始化 -> shell BIOS 基本输入输出系统 选择U盘启动还是硬盘启动:MBR 硬盘里可引导的部分:BootLoader(grub) 启动内核工具 选择启动的内核: kernel 启动内核:systemd…
1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; then statement …. else statement …. fi 3.if …elif…elif…else 是多分支语句,使用格式如下: if condition ; then statement …. elif condition ; then statement ….. elif co…
呈现数据 一.文件描述符 Linux系统将每个对象当做文件处理,这包括输入和输出进程.Linux用文件描述符来标识每个文件对象.每个进程最多可以有9个 文件描述符,bash shell保留了前三个文件描述符. 文件描述符                                  缩写                                                    描述 0-----------------------------------STDIN--------…
shell中的数学计算 一.使用方括号 #!/bin/bash a= b= c= res=$[$a * ($c-$b)] echo $res 二.使用(()) +)) ((i=+)) b=$((-*)) )) )) #计算a的平方 <)) #输出1 echo $((i++)) )) #产生一个不大于60的随机数 三.bc的用法 bc技术器实际上是一种编程语言,它可以识别: 数字(整数和浮点数)变量(简单变量和数组)注释(以#或C语言中的/* */开始的行)表达式编程语句(例如if-then语句)…
Shell函数 1.定义语法 标准写法: funciton funName () { order....... return n } 简化写法1: funciton funName { order....... return n } 简化写法2: funName () { order....... return n } 注意: 1)不加rueturn的情况下,函数返回码是函数中最后一条命令返回的退出状态码. 2)退出状态码必须是0~255 2.函数执行 1)不带参数函数:直接函数名    fun…
数组 一)定义 #最常用:小括号加空格: a=( ) #键值对形式: b=([]=x []=men []=z) #定义变量的形式 c[]=; c[]=; c[]= #命令结果作为数组元素 d=($(command)) e=(``) 二)打印 ]} echo ${a[@]} echo ${a[*]} echo ${#a[*]} #打印数组个数 三)赋值 a[]=xxx 四)删除 unset a[] unset a 五)截取及替换 :} #截取第一个到第三个元素 /b} #第一号元素替换为b,该操作…
循环 一.whlie和until循环 while循环基本语法: while <条件表达式> do 指令 done #注意代码缩进 util循环基本语法: until <表达式> do 指令 done #与while的区别:不成立时进入循环,成立时终止循环 注意while条件表达式跟if的区别:if后的表达式是形如'[ a -eq b ]'这样的表达式,此时返回0为真,while后跟(( a < b)),返回1时为真. # !/bin/bash i= while ((sum&g…
条件判断 一.条件测试与比较 一)条件测试基础语法 下列测试语法中如果测试的表达式成立,条件测试就会结束,并返回0. 1.test条件测试 语法:test  <测试表达式> 2.中括号条件测试 语法: [ <测试表达式> ]    注意:中括号的内部和两边都要有空格 3.双中括号条件测试 语法: [[ <测试表达式> ]]  注意:空格 4.也可以这么写: 5.文件相关 6.字符串测试 [ || #注意等号两端要有空格 7.整数二元操作符 8.逻辑操作符 #两种写法都没…
linux shell脚本的语法蛋疼,而且对于java开发人员来说又不常用,常常是学了一次等到下次用的时候又忘记了.因此制作这个速查笔记,用于要写shell脚本时快速回忆&速查. 获取当前脚本绝对路径 echo $(cd `dirname $0`;pwd) 判断字符串包含 if [[ "abcd" =~ "bc" ]]then echo "contain"fi…
第二十三章:使用数据库 MySQL数据库 MySQL客户端界面 mysql命令行参数 参数 描述 -A 禁用自动重新生成哈希表 -b 禁用 出错后的beep声 -B 不使用历史文件 -C 压缩客户端和服务器之间发送的所有消息 -D 指定要用的数据库 -e 执行指定语句并退出 -E 竖直方向显示查询输出,每行一个数据字段 -f 如果有SQL错误产生,继续执行 -G 使能命名命令的使用 -h 指定MySQL服务器主机名(默认为localhost) -H 用HTML代码显示查询输出 -i 忽略函数名后…
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整理出来一篇blog,详见<Linux Shell文本处理工具集锦>下面是文本处理之外的简单介绍,如果你觉得自己的shell需要充充电,强烈建议读读这本<linux Shell脚本攻略>. 嗨,Echo一下 从 echo开始:带引号的 echo和不带引号的 echo区别:使用带引号时,b…
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50vZlGSGNt0jYq7BN4mac4RrVC96KKq SED(Linux指令)_百度百科 http://baike.baidu.com/link?url=DQklcY8r4u33kGGfZt5Q-Mm6JHgKOGJQqQvpvfB3mYk5R_kiZ4X6jcdBs10ni1cZFm7-Oh…
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟,15分钟的平均负载 $ uptime 16:20:51 up 2 days, 3:11, 9 users, load average: 0.01, 0.02, 0.05 2.磁盘使用情况 $ df -h Filesystem Size Used Avail Use% Mounted on /dev…
这本书买了好久了,除了刚到手的那几天翻看了一下以外,竟然到今天都没有看过.突然想要写一个shell脚本,发现什么也不会,是时候开始学习了,今天先把最简单的一章再看一遍顺便做一些笔记,明天继续后面的! man命令用来访问存储在Linux系统上的手册页面.在想要查找的工具的名称前面输入man命令,就可以找到那个工具相应的手册条目. 如果你是新接触bash shell,可能一开始会觉得手册页并不太有用.但是,如果养成了阅读手册的习惯,尤其是阅读第一段或是DESCRIPTION部分的前两段,最终你会学到…
前言: 通过对spark集群脚本的研读, 对一些重要的shell脚本技巧, 做下笔记. *). 取当前脚本的目录 sbin=`dirname "$0"` sbin=`cd "$sbin"; pwd` 代码评注:# 以上代码为获取执行脚本所在的目录的常用技巧# sbin=$(dirname $0) 返回可能是相对路径, 比如./ # sbin=$(cd $sbin; pwd) 采用pwd, 来返回脚本所在目录的绝对路径 *). 循环遍历脚本参数 while (( &q…
总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理到远程ssh等等,都给出来作者挑选的一些比较经验实用的shell命令和shell脚本,不过也可以看出来,这本书是作者从自身实用的角度来挑选shell命令和脚本,所以覆盖面比较全,但是会感觉有点零碎,比如对于shell的基本语法就不会展开讲,只是会提到,需要有基本的shell底子,另外就是像sed.awk这种大神级别的shell命令,…
公司说不准用云笔记了,吓得我赶紧把笔记贴到博客上先..... 近3年前的了,只有一半的章节,后面的没空记录了.... 第1章 可以cat /proc/meminfo文件来观察Linux系统上虚拟内存的当前状态 ipcs命令专门用来查看系统上的当前共享内存页面 Ubuntu使用一个表来管理在系统开机时要自动启动的进程,在/etc/init.d目录,可将开机时启动或停止某个应用的脚本放在这个目录下.这些脚本通过/etc/rcX.d目录下的入口启动,这里X代表运行级(run level) Linux才…
前一阵子系统学习了下<linux shell脚本攻略>这本书.在此记录下自己的学习笔记 1. 输出颜色字符  echo -e "\e[1:41m" 1表示背景色   2.  echo 打印!需要注意  echo "hello, bash!"  会出错  需要改成 echo 'hello, bash!'   3. printf可用于格式化输出  printf "format"  var1 var2 ...   4.  echo  ech…
LINUX SHELL脚本攻略笔记[速查]…
Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp…
目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20.2 SHELL变量及运用 20.2.1 shell变量 20.2.2 用户定义变量 20.2.3 命令的替换,使用$()或反引号 20.2.4 命令的嵌套使用\((\)()) 20.2.5 shell中双引号和单引号的区别 20.2.6 环境变量 20.2.7 设置PATH环境变量 20.2.8 s…
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超过64个字符. 2.在某些系统上,命令行部分包含了命令的完整路径名称.不过有些系统却不是这样:命令行的部分会原封不动地传递给被引用的程序. 3.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序. 4.你需要知道解释其的完整路径名称.这可以用来规避可移植问题,因为不同的厂商可能将同样的东西放…
第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本. NetBSD Unix操作系统移植了ash shell,并且作为默认shell.NetBSD开发人员给ash shell添加了一些新功能,使它更接近Bourne shell.新功能包括:emacs和vi编辑器命令进行命令行编辑,以及历史命令来查看前面输入的命令.ash shell这个版本也被Fr…
包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7rJlzYt-3S-39oMAViQQ8oHDQMdBumP3MyIaxUFmo7ZH-6b0J37 一 .shell简介 Shell不仅是命令的收集,更是一门非常棒的编程语言.可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的…