一、統(tǒng)計(jì)出/etc/passwd文件中其默認(rèn)shel為非/sbin/nologin的用戶個(gè)數(shù)凯肋,并將用戶都顯示出來;
[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號等信息容诬;
1)編寫腳本
[root@localhost ~]# cat creatuser.sh
#!/bin/bash
#定義變量
read -p "請輸入一個(gè)用戶名:" user
#判斷用戶名是否存在
if [ -z "$user" ] ;then
echo "輸入為空,請重新輸入!!"
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
#測試一個(gè)存在的用戶
[root@localhost ~]# chmod +x creatuser.sh
[root@localhost ~]# ./creatuser.sh
請輸入一個(gè)用戶名:root
用戶存在友雳,用戶的ID信息為:uid=0(root) gid=0(root) 組=0(root)
3)測試存在的用戶
[root@localhost ~]# ./creatuser.sh
請輸入一個(gè)用戶名:root
用戶存在,用戶的ID信息為:uid=0(root) gid=0(root) 組=0(root)
4)測試不存在的用戶
[root@localhost ~]# ./creatuser.sh
請輸入一個(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)測試不輸入
[root@localhost ~]# ./creatuser.sh
請輸入一個(gè)用戶名:
輸入為空押赊,請重新輸入!!
五、編寫生成腳本基本格式的腳本包斑,包括作者流礁,聯(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)測試
[root@localhost ~]# vim test.sh
[root@localhost ~]# vim test.txt
經(jīng)測試只有配置的變量中.sh結(jié)尾的才會(huì)有附加信息萌抵。