2019.03.13_10:00-11:30_mage_Linux_log

2019.03.13_10:00-11:30_mage_Linux_log

今天开始使用markdown记录linux学习日志

之前的学习记录已单独上传在linux学习日志前传!

练习

写一个脚本,完成以下任务

1.添加5个用户,user1,user2,…,user5
2.每个用户的密码同用户名,而且要求添加密码后不显示passwd命令的执行结果信息;
3.每个用户添加完成后,都要显示用户某某已经成功添加
useradd user1
echo “user1” | passwd --stdin user1 &> /dev/null
echo “Add user1 successfully.”

条件判断:

		如果用户不存在,添加用户,给密码并显示添加
		否则,显示用户已经存在,没有添加
bash中如何实现条件判断?

条件测试类型
整数测试
字符测试
文件测试

条件测试的表达式:常用三种

[ expression ] 判断结果真与假 //中括号与单词有空格
[[ expression ]]
test expression

整数比较:(双目操作)
        -eq:测试两个整数是否相等,相等为真,否则(不等)为假 eg:$A -eq $B
        -ne:测试两个整数是否不等:不等为真,否则(相等)为假
        -gt:测试一个数是否大于另一个数,大于为真,否则(小于或等于)为假
        -lt:测试一个数是否小于于另一个数,小于为真,否则(大于或等于)为假
        -ge:大于或等于为真
        -le:小于或等于为真

2019.03.13_10:00-11:30_mage_Linux_log

命令间的逻辑关系:
		逻辑与:&& 如果一个为假,结果一定为假
		逻辑或: ||   如果一个为真,结果一定为真,短路操作
		逻辑与操作图示:

2019.03.13_10:00-11:30_mage_Linux_log
如果user6不存在,就添加user6
!id user6 && useradd user6 // !感叹号取反
或 id user6 || useradd user6

如果/etc/inittab文件的行数大于100,就显示好大的文件;
[ `wc -l /etc/inittab | cut -d’ ’ -f1` -gt 100] && echo “Large file”

如果用户存在,就显示用户已经存在;否则,就添加此用户
id user && echo “user1 exists.” || useradd user1

如果用户不存在,就添加;否则,提示用户存在
!id user && useradd user1 || echo “user1 exists.”

如果用户不存在,就添加,并且设定密码;否则,提示用户存在
!id user && useradd user1 && echo “user1” | passwd --stdin user1 || echo “user1 exists.”

变量名称:
  1. 只能包含字母、数字、和下划线,并且不能以数字开头;
  2. 不应该跟系统中已经有的环境变量同名;
  3. 最好做到见名知意。

练习

1.添加3个用户user1,user2,user3;判断用户是否存在,不存在后添加;
2019.03.13_10:00-11:30_mage_Linux_log
2.添加后,显示新增加了几个用户;
3.最后显示当前系统共有多少用户

写一个脚本,完成以下任务
  1. 使用一个变量保存一个用户名;
  2. 删除此变量中的用户,且一并删除其家目录;
  3. 显示“用户删除完成”类信息