随笔分类 -  shell

摘要:1. cat 一个文件2. 用expect3. 用echo例子以后补充有关passwd命令在前面,我们提到passwd程序在缺乏用户交互的情况下,不能运行,passwd会忽略I/O重定向,也不能嵌入到管道里边以便能从别的程序或者文件里 读取输入。这个程序坚持要求真正的与用户进行交互。因为安全的原因,passwd被设计成这样,但结果导致没有非交互式的方法来检验passwd。 阅读全文
posted @ 2013-01-26 18:45 zaleilynn 阅读(288) 评论(0) 推荐(0) 编辑
摘要:、chpasswd 命令管理用户的密码。Root 用户能够通过标准输入提供或更改指定的用户密码。输入的每一行必须是以下格式。 usename:password2、使用root用户登录后,输入命令: echo "用户:新密码" |chpasswd 回车; 就可以把修改密码了。 3、如果是普通用户,没有chpasswd的权限,可以对命令文件/usr/sbin/chpasswd赋予权限。 使用root用户对/usr/sbin/chpasswd赋予权限: chmod 4755 /usr/sbin/chpasswd ; 这样普通用户就可以有自动修改密码的权限 注,普通用户使用sudo 阅读全文
posted @ 2013-01-26 18:44 zaleilynn 阅读(1825) 评论(0) 推荐(0) 编辑
摘要:写脚本时,经常要判断字符串是否相等,检查文件状态或是数字测试等。Shell提供了对字符串、文件、数值及逻辑操作等内容的条件测试的支持。1.测试文件状态test一般有两种格式,即:test condition或[ condition ]使用方括号时,要注意在条件两边加上空格。一般采用第2种方式,比较方便。测试文件状态的条件表达式很多,下面是一个常用的文件状态列表。文件状态测试-a 文件存在-b 文件存在并且是块文件-c文件存在并且是字符文件-d文件存在并且是目录-s 文件长度大于0、非空-f 文件存在并且是正规文件-w文件存在并且可写-L文件存在并且符号连接-u 文件有suid位设置-r文件存在 阅读全文
posted @ 2013-01-17 16:21 zaleilynn 阅读(169) 评论(0) 推荐(0) 编辑
摘要:$$ 含义: 表示运行当前脚本的pid 例子: echo "current pid: $$"\ 含义:字符串中的转义符号 例子: echo "\$\$ is used to get pid: $$"$@ 和 $* 含义:表示所有的参数 例子: echo "all arg: $*" 或者 echo "all arg: $@" 两者的区别在于$@比$*更高级,它不使用IFS环境变量,所以即使IFS为空,参数也不会挤在一起,故推荐用$@$+数字 含义:运行脚本的参数 例子:echo "cmd: $0 $1&qu 阅读全文
posted @ 2013-01-14 15:20 zaleilynn 阅读(622) 评论(0) 推荐(0) 编辑
摘要:目前来说有三种方法: 1. 脚本绝对路径 这个方式是最普通的,底层调用的是fork实现,运行的时候开一个子shell执行调用的脚本,子shell执行的时候,父shell还在 子shell执行完毕后返回父shell,子shell从父shell继承环境变量,但是子shell中的环境变量不会带回父shell中 2. 句号 + 脚本绝对路径 底层调用的是source实现的,他于fork的区别是不新开一个子shell来执行被调用的脚本,而是在同一个shell中执行,所以被调用脚本中申明的变量和环境变量,都可以在主脚本中得到和使用 2. exec + 脚本绝对路径 exec与fork不同,不需要新开一个子 阅读全文
posted @ 2013-01-14 14:52 zaleilynn 阅读(1705) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示