#!/bin/sh ################################################################################ ## ## ## Copyright (c) International Business Machines Corp., 2001 ## ## ## ## This program is free software; you can redistribute it and#or modify ## ## it un…
Shell脚本系列教程二: 开始Shell编程 2.1 如何写shell script? (1) 最常用的是使用vi或者mcedit来编写shell脚本, 但是你也可以使用任何你喜欢的编辑器; (2) 脚本写好之后, 要给脚本设置可执行权限: 语法为: chmod  [option]  mode  script-name $ chmod +x script-name # 对所有用户(a, 默认) $ script-name 这里, 775这3个数字分别表示此文件对于用户(u), 组(g), 其他…
Shell变量 一)全局环境变量 全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了.另外全局变量会被子shell的同名变量覆盖. #定义一个全局变量 export a="I want break free" #或者 b="Sunday Morning" export b #删除一个全局变量 unset a 二)局部环境变量 局部环境变量只能在定义它们的进程中可见. #注意变量名.等号.和值之间是没有空格的…
整理自: https://www.runoob.com/?s=shell Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念. 由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身. 用shell脚本可以在linux中很方便的执行一些机械的操作. 这个hell…
定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头. 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 有效的 Shell 变量名示例如下: DEVICENAME LD_LIBR…
当前文件夹下有一些文件和文件夹,当中每一个文件夹里都有若干.txt文件. 如今要求在当前文件夹创建一个新文件夹all,且将那些文件夹全部.txt文件 都复制到文件夹all.在ubuntu12.04的shell脚本实现例如以下: #!/bin/sh # 提示信息 echo "start:" # 定义变量 dst=all pst=.txt # 拷贝文件到目标目录 if [ -d ${dst} ] then echo "${dst} existed" else echo…
练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 for i in $(seq 0 2 100); do sum=$(($sum+$i)) done echo "Even sum: $sum." 示例2: #!/bin/bash # declare -i sum=0 for i in {1..100}; do if [ $[$i%2] -eq 0 ]; then sum=$[…
4.cat命令 1)  cat -s    摆脱多余的空白行 2)  cat -T    将制表符显示为^I 3)  cat -n    显示行号 4) cat -b    跳过空白行,然后显示行号 5.find命令 1) find .  -print   列出当前目录下的所有子目录及其文件和文件夹 find .. -print   列出父目录下的所有子目录及其文件和文件夹 2) find path -name  "filename"  -print  打印出path目录下符合名字为f…
Shell 基本运算符 算术运算符: 运算符 描述 例子 + Addition - Adds values on either side of the operator `expr $a + $b` will give 30 - Subtraction - Subtracts right hand operand from left hand operand `expr $a - $b` will give -10 * Multiplication - Multiplies values on…
case语句 case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 command2 command3 ;; *) command1 command2 command3 ;; esac ​ case工作方式如上所示.取值后面必须为关键…
#!/bin/sh export DS_DIR=/home/cxy/test if [ ! -d $DS_DIR ]; then mkdir $DS_DIR else echo "$DS_DIR is not existed!" fi cd $DS_DIR ]; then echo "more than 2 dst_files in $DS_DIR" rm -r $(ls -rt | head -n2) fi…
遍历/root/321321/目录显示里面的所有文件 #!/bin/bash dir=`ls /root//` #定义遍历的目录 for i in $dir do echo $i done…
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反).例如测试两个数的大小关系: [root@VM_0_5_centos test]# var=4 [root@VM_0_5_centos test]# test $var [root@VM_0_5_centos test]# echo $? 0 [root@VM_0_5_ce…
Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将多个Linux命令组合保存成一个脚本文件,可直接给其他人使用. 组合命令 进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd 和ls. 分开执行两个命令的形式如下: [root@lincoding usr]# cd /usr/ [root@lincoding usr]# [roo…
前言 之前写过一篇关于shell脚本流程控制总结,这次继续写关于shell脚本的问题.本篇文章主要包含shell脚本中的函数以及数组的用法介绍.同时也涵盖了一些字符串处理以及shell脚本比较使用的小工具的介绍. 函数 函数function是由若干条shell命令组成的语句块,实现代码重用和模块话编程. 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分. 函数shell程序比较相似,区别在于: shell程序在shell中运行 而shell…
作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ====== 摘  要:   低效的shell脚本设计会进一步影响原本解释器模式下并不见长的程序运行效率,使其在面对大数据量文本分析时的资源与时间消耗变成难以接受的.本文分析了shell语言及其应用需求的特点,从分层设计的角度提出了"自底向上进行shell脚本编程"的理论,同时提出了从&…
问题的提出 公司各个业务线的安装包小则几十兆.大则几百兆,使用自建的升级系统向全国百万级用户下发新版本时,流量耗费相当惊人.有时新版本仅仅改了几个 dll ,总变更量不过几十 K 而已,也要发布一个完整版本.为了降低流量费用,我们推出了补丁升级的方式:产品组将修改的 dll 单独挑选出来,加上一个配置文件压缩成包,上传到自建的升级后台:在客户端,识别到补丁包类型后,手动解压并替换各个 dll 完成安装(之前是直接启动下载好的安装包).这种方式一经推出,受到了业务线的追捧.然而在使用过程中,也发现…
从事 Linux 开发的同学,经常需要编写 shell 脚本,有时脚本中会涉及到一些敏感内容,比如一些 IP 地址,用户名以及密码等,或者脚本中有一些关键的代码, 所有这些内容你都不想别人阅读或者修改,更进一步,你希望对脚本设置过期时间,超过指定时间时间之后,脚本就无法使用 在不改变脚本内容.功能以及执行方式的情况下,有没有办法实现上面的需求呢? 答案是:有的, 在Linux下,我们可以使用 shc 这个工具来实现隐藏shell脚本内容以及设置过期时间的目的 简介 shc 是一个通用shell脚…
一.shell和shell脚本 在linux系统下,以 #/bin/bash开头的文本会被shell解释器进行解释.   shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. shell脚本(shell script),是一种为shell编写的脚本程序.业界所说的shell通常都是指shell脚本,shell和shell script是两个不同的概念. sh.bash等脚本解释器是不同的版本,一路发展. 二.shell的基本功能 1.缩进  shell…
一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1    使用多个命令 Shell可以让多个命令串起来,一次执行完成,可以把它们放在同一行中,用分号隔开,如下所示: 上面就是一个简单的脚本了,用到了两个bash shell命令,但每次运行之前,都必须在命令提示符下输入整个命令.如果将命令组合成一个简单的文本文件,需要时运行这个文本文件就行了. 1.2    创建shell 脚本文…
这一年的项目中,有大量的场景需要Java 进程调用 Linux的bash shell 脚本实现相关功能. 从之前的项目中拷贝的相关模块和网上的例子来看,有个别的“陷阱”造成调用shell 脚本在某些特殊的场景下,有一些奇奇怪怪的bug. 大家且听我一一道来. 先看看网上搜索到的例子: package someTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRead…
关于shell的预备知识 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁即用户界面.用户把指令传给shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. 脚本第一行: #!/bin/bash.       #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序. 使用jobs可以查看当前shell中后台执行的任务.用fg…
1.Shell概述 shell脚本是利用shell的功能所写的一个[程序(program)].这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式.管道命令与数据流重定向等功能,以达到我们所想要的处理目的. 通俗地说,shell脚本可以简单地被看成是批处理文件,也可以被说成是一个程序语言,且这个程序语言由于都是利用shell与相关工具命令,所以不需要编译即可执行.此外,它还拥有不错的排错(debug)工具,能够帮助系统管理员快速地管理好主机. 2.Shel…
shell编程规范与变量    一.shell脚本概述    ① 什么是shell? Linux中有哪些shell?    ② shell的作用   ③ 用户的登录shell    ④ shell脚本的概念    ⑤ shell脚本应用场景二.shell编程规范    ① 编写脚本代码    ② shell脚本的构成    ③ shell脚本的执行三.重定向与管道操作    ① 管道操作    ② 重定向四.shell变量的作用.类型    ① 变量的作用    ② 变量的类型   ▷ 自定义变…
在windows下保存了一个脚本文件,用ssh上传到centos,添加权限执行nginx提示没有那个文件或目录.shell脚本放到/etc/init.d/目录下,再执行/etc/init.d/nginx,提示多了这句/bin/bash^M: bad interpreter.网上找了资料才知道如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A.如果你将这个脚本文件直接放到Li…
shell脚本能帮我们简化linux下的一些工作,现在有个需求,把TMPA文件夹下大于2000B的文件都移动到TMPB下 #! /bin/bash function movefiles() { ` do ] then mv $"/"$file fi done } movefiles "/home/jimmyxu/TMPA" "/home/jimmyxu/TMPB" 脚本很简单,使用for循环遍历第一个输入路径下的文件,使用stat获取文件的属性值…
shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换->转换为UNIX格式 另外我觉得在自己使用的编辑器上显示回车.换行符也许是个好的习惯吧   有关于回车,换行的故事:转送门在这里,猛击吧!http://blog.sciencenet.cn/blog-948919-697160.html   关于回车换行问题,我的”痛苦“经历(传递的字符串参数有\r字符)  …
CenterOS 1.安装vncserver yum install tigervnc-server -y 2.vncpasswd 设置pwd 3./etc/sysconfig/vncservers VNCSERVER ="1:root" VNCSERVERARGS[1]:"-geometry 800x600" 4./root/.vnc/xstartup 采用默认的配置. VNC 能够连接到远程server,灰屏,shell脚本都没有. 看了下xstartup配置文…
什么是shell? shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户.这种对话方式可以是交互的方式(从键盘输入命令,可以立即得到shell的回应),或非交互(执行脚本程序)的方式.下图的黄色部分就是命令解释器shell处于的操作系统中位置形象图解.   什么是shell脚本? :清除/var/log下messages日志文件的简单命令脚本.#把所有命令放在一个文件里堆积起来就形成了脚本,下面…
本人最近半年使用阿里dubbo做开发,并在公司内部大力进行推广,将原来一个笨重且不易于维护的大项目切分成多个相对独立的java程序,好处是显而易见的,但是随着切分的独立运行程序包越来越多,程序的部署变成了一件非常头痛的问题,无耐之下,本人想到可否写一个shell脚本来批量/单独启动.停止.重启这些独立的java程序,之前没有写过shell脚本,研究二天后,终于将这个脚本写出来了,以后部署起来方便多了,废话不多说,直接贴上shell脚本,有需要的朋友可以根据自己项目修改前面的程序代码数组.程序名称…