
shell
wenwenxiong
这个作者很懒,什么都没留下…
展开
-
LINUX修改用户密码-交互式与非交互式
最近管理的一批机器,有个需求是要统一修改一个帐号的用户名密码,比如将qa帐号的密码改为1234,后来还为了脚本化,很方便的执行,还使用了非交互式地修改用户的密码。简单记录一下吧。交互式配置本地用户的密码:passwd 命令[root@host_221-81 ~]# passwd qaChanging password for user qa.New password: BAD PASSWO转载 2016-06-27 19:24:16 · 5190 阅读 · 0 评论 -
删除自身的shell脚本
注:脚本在远程执行环境下慎用在shell脚本执行玩了之后,能够自己删除自己.1) 在脚本中没有cd到其他的地方去 rm $02) 在脚本一开始就 _p_w_d=$(pwd)保存目录,最后cd _p_w_d rm_p_w_d rm 0原创 2016-06-23 19:38:25 · 8003 阅读 · 0 评论 -
在远程服务器上执行本地的shell脚本
1 使用ssh实现ssh user@hostname -C “/bin/bash” < test.sh2 使用expect实现采用的策略就是先在本地通过expect把shell脚本推送到远程服务器上,之后再用expect模拟登录之后,先给远程的shell脚本权限,然后再执行脚本, 最后删除脚本就ok啦!PS:在expect和控制台交互的时候我设置的timeout时间是1s,如果执行的shell脚本转载 2016-06-17 19:19:05 · 18343 阅读 · 1 评论 -
shell 如何判断某个文件名以某个字符开头
问题:shell 如何判断某个文件名以某个字符开头~解决:#var="cn get the length of me"#$1: parameter 1 传要判断的文件名字var=$1isCN=false#${var:0:2} 取var子串,从第0个字符起,取2两个字符if [[ ${var:0:2} -eq "cn" ]]thenecho sub转载 2016-01-07 19:47:11 · 20399 阅读 · 0 评论 -
Shell数组:shell数组的定义、数组长度
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为: array_转载 2016-01-07 19:46:13 · 837 阅读 · 0 评论 -
expect脚本
1。首先确认expect的包要安置。[[zhuying@SOR_SYS opt]$ rpm -qa | grep expect如果没有则需要下载安装,我安装的是expect-5.42.1-1.x86_64.rpm和expect-devel-5.42.1-1.x86_64.rpm安装过后会显示:[[zhuying@SOR_SYS opt]$ rpm -转载 2015-11-25 19:07:33 · 1228 阅读 · 0 评论 -
shell中变量自增的实现方法
Linux Shell中写循环时,常常要用到变量的自增,现在总结一下整型变量自增的方法。我所知道的,bash中,目前有五种方法:1. i=`expr $i + 1`;2. let i+=1;3. ((i++));4. i=$[$i+1];5. i=$(( $i + 1 ))可以实践一下,简单的实例如下:#!/bin/bashi=0;while [ $i -l转载 2015-10-22 20:13:09 · 1072 阅读 · 0 评论 -
命令行参数解析 - Shell 脚本
平时多少会用shell写点小工具, 而这些小工具运行后的第一件事就是解析参数, 这里总结了下shell脚本几种处理命令行参数的方法.比较常见的做法就是解析bash内置的几个特殊变量, 例如直接遍历$*或者$@:#/bin/shecho 'args from \$*'for arg in $*; do echo $argdoneecho 'a转载 2015-10-21 18:21:40 · 3344 阅读 · 0 评论 -
linux统计一个文件中特定字符的个数
统计一个文件中某个字符串的个数,其实就是在在一块沙地里面找石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记;有的人看到石头以后,把它挖了(tr),最后统计自己挖了多少石头;有的人看到石头以后,把它跳过去(awk),然后统计自己跳了多少次。这是我用的的文件[root@bzhou test]# cat filehafsdhahahafsdfsdhah转载 2015-10-10 19:26:58 · 49623 阅读 · 0 评论 -
linux :could not open session
引起这个问题大多数情况下都是权限的问题导致,主要查看以下文件的权限:drwxr-xr-x 80 root root 12288 Nov 15 18:08 /etcdrwxr-xr-x 2 root root 4096 Nov 14 18:33 /etc/pam.d-rw-r--r-- 1 root root 2180 Nov 15 18:08 /etc/passwd-rw-----转载 2015-08-26 19:32:23 · 3152 阅读 · 0 评论 -
svn: Error converting entry in directory ‘.’ to UTF-8
今天用脚本来自动更新svn的时候,遇到一个故障就是手动执行脚本就可以,用crontab就不行,具体脚本如下#!/bin/bashecho `date` >> /root/test/svn.txtsvn sw svn://192.168.1.249/test/ /var/www/html >> /root/test/svn.txt手动执行这个脚本的时候,一切正常,放到转载 2015-08-26 19:30:55 · 10248 阅读 · 0 评论 -
Linux下xargs命令详解
Linux下xargs命令详解1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:find /sbin -perm +700 |ls -l 这个命令是错误的find /sbin -perm +700 |xargs ls -l 这样才是正确的xargs 可以读入 s转载 2015-08-21 19:43:22 · 851 阅读 · 0 评论 -
linux定时执行shell脚本
一、cron调度进程c r o n是系统主要的调度进程,可以在无需人工干预的情况下运行作业。有一个叫做c r o n t a b的命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个c r o n t a b文件来保存调度信息。可以使用它运行任意一个s h e l l脚本或某个命令,每小时运行一次,或一周三次,这完全取决于你。每一个用户都可以有自己的c r o n t转载 2015-08-05 16:34:33 · 497 阅读 · 0 评论 -
shell调试选项
【shell调试选项】 一些常用选项的用法: -n 只读取shell脚本,但不实际执行 -x 进入跟踪方式,显示所执行的每一条命令 -c "string" 从strings中读取命令 “-n”可用于测试shell脚本是否存在语法错误,但不会实际执行命令。在shell脚本编写完成之后,实际执行之前,首先使用“-n”选项来测试脚本是否存转载 2015-07-31 18:17:54 · 448 阅读 · 0 评论 -
Shell中脚本变量和函数变量的作用域
Shell中脚本变量和函数变量的作用域 在shell中定义函数可以使代码模块化,便于复用代码。不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题。 (1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。 例1:脚本变量的作用域#!/bin/bash#define转载 2015-07-28 19:44:59 · 8043 阅读 · 0 评论 -
Shell dev-null详解
http://justcoding.iteye.com/blog/19442371,可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.用处:禁止标准输出. 1 cat $filename >/dev/null # 文件内容丢失,而转载 2015-07-14 19:58:39 · 971 阅读 · 0 评论 -
shell脚本编程之“最简单的死循环”
http://www.2cto.com/os/201301/183822.htmlshell脚本编程之“最简单的死循环” 在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么写呢? www.2cto.com 对于熟悉C语言的猿人们来说,最简单的死循环应该这样写:-------------------转载 2015-07-14 19:57:50 · 9495 阅读 · 0 评论 -
[SHELL]监控LINUX目录文件变化
http://showerlee.blog.51cto.com/2047005/1262241 最近看到群里有人聊到他们的服务器最近被挂马,然后想利用一个脚本能够实时监控web目录下文件的变化,也就是对该目录的增删改操作都会记录到相应日志下。 当时感觉这个功能的确实有点意思,所以网上查阅了些资料,自己研究了下,这会儿有空写了个脚本,分享给大家,如有问题,还请大家指出转载 2015-07-14 19:57:10 · 3579 阅读 · 1 评论 -
ssh连接远程主机执行脚本的环境变量问题
近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题:~/myscript.sh: line n: app: command not foundapp是一个新安装的程序,安装路径明明已通过/etc/profile配置文件加到环境变量中,但这里为何会找不到?如果直接登陆机器remote并执行~/mys转载 2015-07-14 19:56:08 · 3192 阅读 · 0 评论 -
SSH实现无密码自动登陆
SSH广泛用于脚本自动化。借助SSH,我们可以在远程主机上执行命令并读取输出。SSH使用用户名和密码进行认证。在SSH命令的执行过程中提示输入密码。但是在自动化脚本中,SSH命令可能在一个循环中执行上百次,每次都得提供密码的话,显然不实际。因此,我们需要将登入过程自动化。SSH就包含了一个内建的特性,可以用SSH密钥实现自动登陆。这则攻略描述了如何创建SSH密钥并协助实现自动登陆。转载 2015-07-14 19:54:51 · 3419 阅读 · 0 评论 -
shell脚本,判断语句报错[: too many arguments
脚本作用是传入两个参数,第一个参数为yum的包名,第二个参数为版本号,判断系统中是否已经安装了包,如果没有安装,则进行安装操作,如果已经安装,但是版本与当前版本不一致,那么先卸载旧包再安装指定版本的包,如果已经安装并且版本相同,则什么也不做。代码如下:if [ $# -ne 2 ]then echo "usage install package version\n"转载 2015-07-14 19:53:03 · 9438 阅读 · 0 评论 -
shell使用ssh交互登录
简单的说,如果要远程执行脚本,这么写可以么?ssh IP_B '/dirname/script.sh'还是这样ssh IP_B "/dirname/script.sh"在机器B上,脚本里面有调用sqlplus的,ssh登陆到B上执行脚本没问题,但从A上远程执行报错,提示找不到sqlplus这个命令。使用VPN,每次都要在Terminal上重复输入命令:ssh -转载 2015-07-14 19:52:01 · 6883 阅读 · 0 评论 -
linux sed命令详解
简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。 s转载 2015-06-17 20:45:53 · 481 阅读 · 0 评论 -
shell tr 命令
tr是translate的简写,亦即翻译,但是遗憾的是,它不能翻译句子,只能翻译单个字符。1 tr的工作原理是什么?先记住一点,tr命令不接受指定的文件参数,而只是对标准输入进行翻译。tr的命令格式是tr SET1 SET2,凡是在SET1中的字符,都会被替换为SET2中相应位置上的字符,简单吧!2 举个例子吧!tr的例子其实都大同小异,看一个最简单的例子:转载 2015-06-17 20:45:07 · 481 阅读 · 0 评论 -
shell 的cut 命令用法
和awk差不多的功能例1 $ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1,5` shuohailhl@shuohailhl-PC /cygdrive/d $ echo $a root:root 上面的例子中,把 root:x:0:0:ro转载 2015-06-17 20:44:18 · 725 阅读 · 0 评论 -
shell中if语句特殊参数
shell中if语句特殊参数-d:判断制定的是否为目录-z:判断制定的变量是否存在值-n:判断指定的变量是否为null-f:判断制定的是否为文件-L:判断制定的是否为符号链接-r:判断制定的是否可读-s:判断存在的对象长度是否为0-w:判断制定的是否可写-x:判断存在的对象是否可以执行!:测试条件的否定符号 条件表达式 文件表达式转载 2015-06-17 20:43:09 · 1025 阅读 · 0 评论 -
shell与export命令
shell与export命令用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可转载 2015-06-17 20:41:59 · 1140 阅读 · 0 评论