全程4-6周

第四周

1. 显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。
ls /etc/[^a-Z][a-Z]*
2. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp -r /etc/p*[^0-9] /tmp/mytest1 
3. 将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out
cat /etc/issue | tr [a-z] [A-Z] >/tmp/issue.out
sed -r “s/[a-z]/\U&/g” /etc/issue >/tmp/issue.out
awk '{print toupper($0)}' /etc/issue >/tmp/issue.out
4. 请总结描述用户和组管理类命令的使用方法并完成以下练习
(1)创建组distro,其GID为2019;
groupadd -g 2019 distro
(2)创建用户mandriva,其ID号为1005;基本组为distro;
useradd -u 1005 -g distro mandriva
(3)创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux mageia
(4)给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
echo mageedu | passwd -x 7 --stdin mageia
(5)删除mandriva,但保留其家目录;
userdel mandriva
(6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
useradd -u 2002 -g distro -G peguin slackware
(7)修改slackware的默认shell为/bin/tcsh
usermod -s /bin/tcsh slackware
(8)为用户slackware新增附加组admins;
usermod -G admins,peguin slackware

第五周

1 统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
法1 grep -Po '^[^:]+(?!.*sbin/nolog)' /etc/passwd | awk '{++a;print}END{print a"users total"}'
法2 awk -F ':' '$NF !~ /sbin/\/nolog/{++a;print $1}END{print a"users total"}' /etc/passwd
法3 grep -v "/sbin/nologin$" /etc/passwd | awk -F ':' '{++a;print $1}END{print a"users total"}'
2 查出用户UID最大值的用户名、UID及shell类型
cat /etc/passwd | sort -t ":" -n -rk 3 | cut -d ":" -f1,3,7 | head -1
3 统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
法1 netstat -an | awk -F "[ :]+" '/ESTABLISHED/{print $(NF-3)}' | sort | uniq -c | sort -rnk 1
法2 netstat -an | awk -F "[ :]+" '/ESTABLISHED/{a[$(NF-3)]++}END{for (i in a) print i,a[i]|"sort -rnk 2"}'
4 编写脚本createuser.sh,实现如下功能:使用一个用户名作为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息
#!/bin/bash
if [ $# -ne 1 ];then
    echo "usage:$0 username"
    exit 1
fi
if id $1 &>/dev/null;then
    echo "user exists"
    exit 2
else 
    useradd $1 
    echo "New user's id is $(id -u $1)"
fi    
5 编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等
cat >> ~/.vimrc <<EOF
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
    if expand("%:e") == 'sh'
        call setline(1, "#!/bin/bash")
        call setline(2, "#Author:zlc")
        call setline(3, "#Mail:zlc@qq.com")
        call setline(4, "#Version:V1.0")
        call setline(5, "#Time:".strftime("%F %T"))
        call setline(6, "#Description:My bash.")    
    endif
endfunc

第六周

1、查找/etc目录下大于1M且类型为普通文件的所有文件
find ./ -maxdepth 1 -type f -size +1M 
2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。
current=`date +%F`;tar -zcf ${current}.tar.gz `ls /etc/*conf`;cp /etc/${current}.tar.gz /usr/local/src
3、利用sed 取出ifconfig命令中本机的IPv4地址
法1:ifconfig eth0 | sed -rn "s/(.*inet addr:)([^ ]+)(.*)/\2/gp"
法2:ifconfig eth0 | grep -Po "(?<=inet addr:).*?(?=\s+)" 
4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed -ri "s/^#\s*//g" /etc/fstab
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
echo "/etc/fstab" | sed -r "s@(.*/)([^/]+)@目录名 \1\n基名 \2@"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值