一、統(tǒng)計(jì)出/etc/passwd文件中其默認(rèn)shel為非/sbin/nologin的用戶個(gè)數(shù),并將用戶都顯示出來(lái);
[root@localhost ~]# grep -v '/sbin/nologin' /etc/passwd |awk -F: '{ print $1}' | cat -n
1 root
2 sync
3 shutdown
4 halt
5 gaolu
6 mageia
7 slackware
二、查出用戶UID最大值的用戶名、UID及shell類型;
[root@localhost ~]# awk -F: '{print $1,$3,$NF}' /etc/passwd | tail -1
slackware 2002 /bin/bash
三、統(tǒng)計(jì)當(dāng)前連接本機(jī)的每個(gè)遠(yuǎn)程主機(jī)IP的連接數(shù),并按從大到小排序;
[root@localhost ~]# w -h | awk '{print $3}'|sort|uniq -c
2 192.168.1.102
1 192.168.1.103
1 192.168.1.111
1 192.168.1.112
四、編寫腳本createuser.sh,實(shí)現(xiàn)如下功能:使用一個(gè)用戶名做為參數(shù),如果指定參數(shù)的用戶存在,就顯示其存在,否則添加之;濕示添加的用戶的id號(hào)等信息;
1)編寫腳本
[root@localhost ~]# cat creatuser.sh
#!/bin/bash
#定義變量
read -p "請(qǐng)輸入一個(gè)用戶名:" user
#判斷用戶名是否存在
if [ -z "$user" ] ;then
echo "輸入為空,請(qǐng)重新輸入!!"
exit
fi
if `id $user &> /dev/null`;then
#若存在,則輸出ID等信息
echo "用戶存在,用戶的ID信息為:`id $user`"
else
#若不存在,則添加用戶,設(shè)置密碼為隨機(jī)8位,下次登錄時(shí)提示修改密碼,同時(shí)顯示ID等信息
passwd=`cat /dev/urandom |tr -cd [:alpha:] |head -c8`
`useradd $user &> /dev/null`
`echo "$passwd" | passwd --stdin $name &> /dev/null`
echo "用戶名:$user 密碼: $passwd" >> /root/user.txt
echo "用戶和密碼詳情查看/root/user.txt文件"
`chage -d 0 $user`
echo "用戶已添加,用戶的ID信息為:`id $user` 密碼為:$passwd"
fi
2)腳本添加執(zhí)行權(quán)限
[root@localhost ~]# chmod +x creatuser.sh
#測(cè)試一個(gè)存在的用戶
[root@localhost ~]# chmod +x creatuser.sh
[root@localhost ~]# ./creatuser.sh
請(qǐng)輸入一個(gè)用戶名:root
用戶存在,用戶的ID信息為:uid=0(root) gid=0(root) 組=0(root)
3)測(cè)試存在的用戶
[root@localhost ~]# ./creatuser.sh
請(qǐng)輸入一個(gè)用戶名:root
用戶存在,用戶的ID信息為:uid=0(root) gid=0(root) 組=0(root)
4)測(cè)試不存在的用戶
[root@localhost ~]# ./creatuser.sh
請(qǐng)輸入一個(gè)用戶名:lifeisshit
用戶和密碼詳情查看/root/user.txt文件
用戶已添加,用戶的ID信息為:uid=2003(lifeisshit) gid=2003(lifeisshit) 組=2003(lifeisshit) 密碼為:WSRfhAhf
[root@localhost ~]# cat /root/user.txt
用戶名:test 密碼: Nrmvqkyt
用戶名:lifeisshit 密碼: WSRfhAhf
5)測(cè)試不輸入
[root@localhost ~]# ./creatuser.sh
請(qǐng)輸入一個(gè)用戶名:
輸入為空,請(qǐng)重新輸入!!
五、編寫生成腳本基本格式的腳本,包括作者,聯(lián)系方式,版本,時(shí)間,描述等;
1)修改vim環(huán)境變量
[root@localhost ~]# cat ~/.vimrc
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e")=='sh'
call setline(1,"#!/bin/bash")
call setline(2,"##########################################################")
call setline(3,"#author: gaolu")
call setline(4,"#QQ: 1378292605")
call setline(5,"#email: 1378292605@qq.com")
call setline(6,"#version: 1.0")
call setline(7,"#date: ".strftime("%c"))
call setline(8,"#description: Safe operation, invincible!")
call setline(9,"##########################################################")
endif
endfunc
2)測(cè)試
[root@localhost ~]# vim test.sh

[root@localhost ~]# vim test.txt

經(jīng)測(cè)試只有配置的變量中.sh結(jié)尾的才會(huì)有附加信息。