1.条件测试语句练习
1.1 编写一个 Shell脚本,程序执行时从键盘读入一个目录名,如果用户输入的目录不存在,则提示file does not exist;如果用户输入的不是目录则提示用户必须输入目录名;如果用户输入的是目录则显示这个目录下所有文件的信息。
[root@manage 20221225]# vim dirtory_exist.sh 编写脚本文件
#!/bin/bash
#########################
#File name:dirtory_exist.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 06:48:04
#Description:
#########################
read -p "please input dirtory name:" dirtory 键盘输入一个目录名
test ! -d $dirtory && echo "This dirtory is not exist" 输入的目录名不存在时输出目录不存在
test -d $dirtory && echo `ls $dirtory ` 输入的目录存在则列出目录下所有文件
[root@manage 20221225]# mkdir dirtory1 创建目录
测试:
[root@manage 20221225]# bash dirtory_exist.sh
please input dirtory name:dirtory1
file1
1.2 写一个脚本,完成以下要求:让用户输入用户名。如果其UID为0,就显示此为管理员;否则,就显示其为普通用户。
[root@manage 20221225]# vim uid.sh
#!/bin/bash
#########################
#File name:uid.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 07:09:12
#Description:
#########################
read -p "please input username:" username
result=`id -u $username`
[ $result -eq 0 ] && echo "user is root" && exit 0
echo "user is regular user"
测试:
[root@manage 20221225]# bash uid.sh
please input username:root
user is root
[root@manage 20221225]# bash uid.sh
please input username:gj
user is regular user
1.3 写一个脚本,给定一个用户,判断其UID与GID号码是否一样,如果一样,就显示此用户为“good guy";否则,就显示此用户为“bad guy”。
[root@manage 20221225]# vim uid_gid.sh
#!/bin/bash
#########################
#File name:uid_gid.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 07:31:02
#Description:
#########################
read -p "please input user:" user
uid=`id -u $user`
gid=`id -g $user`
[ $uid -eq $gid ] && echo "good guy" && exit 1
echo "bad guy"
修改用户组id
[root@manage 20221225]# groupmod -g 2000 jjj
测试:
[root@manage 20221225]# bash uid_gid.sh
please input user:jjj
bad guy
[root@manage 20221225]# bash uid_gid.sh
please input user:gj
good guy
1
.创建用户组
——groupadd
命令
命令格式:
groupadd [-r]
用户组名称
-g GID——
指定新用户组的组标识号
(GID),
默认值是已有的最大的
GID
加
1
。
-r——
建立一个系统组账号
,
与
-g
不同时使用时
,
则分配一个
1
~
999
的
GID
。
示例:向系统中添加一个组
ID
为
1000,
组名为
group1
的新组。
2
.添加
/
删除组成员
——gpasswd
命令
命令格式:
gpasswd [
选项
] [
用户
] [
组
]
只有
root
用户和组管理员才能够使用这个。
选项:
-r
删除组密码
-a——
把用户加入组
-d——
把用户从组中删除。
-M——
可同时添加多个用户
-A——
给组指派管理员。
示例:将
zhang3
、
li4
用户同时加入
group1
组
,
并指派
zhang3
为管理员。
3
.修改用户组属性
——groupmod
命令
命令格式:
groupmod
选项
用户组
常用选项
:
-g GID——
为用户组指定新的组标识号。
-n
新用户组
——
将用户组的名字改为新名字修改用户组的名称和用户组的
GID
值。
1.4 写一个脚本,给定一个文件,比如/etc/inittab,判断这个文件中是否有空白行;如果有,则显示其空行数;否则,显示没有空白。
[root@manage 20221225]# vim kongbaihang.sh
#!/bin/bash
#########################
#File name:kongbaihang.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2022-12-26 08:23:19
#Description:
#########################
result=`sed 's/#//' $1 | grep "^$" | wc -l `
[ $result -eq 0 ] && echo "没有空白行" && exit 1
echo "空白行有:$result"
测试
[root@manage 20221225]# bash kongbaihang.sh inittab.txt
空白行有:7