==========================================
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
==============================================
chown 修改文件和文件夹的用户和用户组属性
1。要修改文件hh.c的所有者.修改为sakia的这个用户所有
chown sakia hh.c
这样就把hh.c的用户访问权限应用到sakia作为所有者
2。将目录 /tmp/sco 这个目录的所有者和组改为sakia和组net
chown -R sakia:net /tmp/sco
=========================================
shell中的变量一般是以字母或者下划线开头,后面可以跟任意长度的字符,数字或者下划线。例如,下面一个shell变量的定义和赋值:
==============================================
将一个用户添加到某一用户组中
将一个用户添加到某一用户组中,千万不能直接用:
usermod -G groupA这样做会使你离开其他用户组,仅仅做为用户组 groupA 的成员。
应该加上 -a 选项:
usermod -a -G groupA user
=============================================
expect脚本
- #!/usr/bin/expect -f
- set timeout 30
- spawn ssh -l test 192.168.1.1
- expect "password:"
- send "mypassword\r"
- expect "~$*"
- send "/home/test/a.sh\r"
- send "exit\n"
- expect eof
- exit
最近管理的一批机器,有个需求是要统一修改一个帐号的用户名密码,比如将qa帐号的密码改为1234,后来还为了脚本化,很方便的执行,还使用了非交互式地修改用户的密码。简单记录一下吧。
1. 交互式配置本地用户的密码:passwd 命令
[root@host_221-81 ~]# passwd qa
Changing password for user qa.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
2. 非交互式修改本地用户的密码:chpasswd
# chpasswd命令使用起来很简洁
[root@host_221-81 ~]# echo "qa:1234" | chpasswd
# 使用passwd命令,也可以实现非交互式修改密码
[root@host_221-81 ~]# echo "1234" | passwd --stdin "qa"
Changing password for user qa.
passwd: all authentication tokens updated successfully.
3. 使用expect来处理交互式输入,从而实现非交互式的密码修改。
#!/bin/sh
# \
exec expect -f "$0" "$@"
if { $argc != 2 } {
puts "Usage: $argv0 <username> <passwd>"
exit 1
}
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect "assword:"
send "$password\r"
expect "assword:"
send "$password\r"
expect eof
注意:脚本的第二行,这种写法可能比较陌生,这是在TCL语言中的语法,The backslash is recognized as part of a comment to sh, but in Tcl the backslash continues the comment into the next line which keeps the exec command from executing again.
该脚本的执行结果为:
[root@smilejay ~]# ./change-pwd-expect.sh qa 1234
spawn passwd qa
Changing password for user qa.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
====================================================================================
Opensuse 安装nfsserver
./nfsserver restart