文本处理工具和正则表达式、shell脚本编程基础-第四周教程
第四周-文本处理工具和正则表达式、shell脚本编程基础
1、 统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户的个数,并将用户都显示出来
grep -v '/sbin/nologin' /etc/passwd|wc -l
grep -v '/sbin/nologin' /etc/passwd|cut -d: -f1
2、 查出用户UID最大值的用户名,UID及shell类型。
cut -d: -f1,3,7 /etc/passwd|sort -t: -k2 -nr | head -n1
3、 统计当前连接本机的每个远程主机IP的连接数,并从大到小排序
netstat -nt|tr -s " " :|sort|uniq -c|sort -nr
4、 编写脚本creatuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户
存在,就显示其存在,否则加之:显示添加的用户的ID号等信息
vim user.sh
\#!/bin/bash
[ $# -eq 0 ] && { echo "usage:basename $0
USERNAME" ; exit 10; }
id $1 &> /dev/null && { echo "user $1 is exist"; exit 20; }
useradd $1 &> /dev/null && { echo $1 is creatd; echo p-0p-0 | passwd --stdin $1; } || { echo "something error!"; exit 30; }
id $1
保存退出
chmod +x user.sh
5、 编写生成脚本基本格式的脚本,包括作者、联系方式,版本、时间、描述等
vim /etc/vimrc
BufNewFile *.sh exec ":call SetTitle()"
Title ()
if expand("%:e")=='sh'
call setline(1,"#!/bin/bash")
call setline(2,"#")
call setline(3,"#*")
call setline(4,"#Author: xiasishao")
call setline(5,"#QQ: 123456789")
call setline(6,"#Date: ".strftime("%Y-%m-%d"))
call setline(7,"#FileName: ".expand("%"))
call setline(8,"#Description: the test script")
call setline(9,"#Copyright (c): ".strftime("%Y")." All right reserved")
call setline(10,"#*")
call setline(11,"")
endif
BufNewFile * noemal G
保存退出再创建文件时就会有文件头了。