SHELL之每天每天一小练(二)

题目:

1、取出/etc/inittab文件的第6行;
2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
使用cut、sort结合管道实现
3、如果/var/log/messages文件的行数大于100,就显示好大的文件
4、显示/etc目录下所有以pa开头的文件,并统计其个数
5、如果用户hadoop不存在就添加,否则显示用户已存在
6、编写一个 Shell 程序 test1,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息
7、编写一个 Shell 程序 test2,从键盘读入 x、y 的值,然后做加法运算,最后输出结果

解决:

1、取出/etc/inittab文件的第6行;

[root@bohe ~]# head -6 /etc/inittab |tail -1
#

2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
使用cut、sort结合管道实现

[root@bohe ~]# cut -d : -f7 /etc/passwd |sort | uniq -c | sort -n
      1 /bin/sync
      1 /sbin/halt
      1 sbin/nologin
      1 /sbin/shutdown
      3 /bin/bash
     41 /sbin/nologin

3、如果/var/log/messages文件的行数大于100,就显示好大的文件

[root@bohe ~]# vim afile.sh +
#!/bin/bash
a=`wc -l /var/log/messages`
if [[ $a > 100  ]]
then
        echo "好大的文件"
else
        echo "/var/log/messages的行数为: $a"
fi

SHELL之每天每天一小练(二)

 4、显示/etc目录下所有以pa开头的文件,并统计其个数

[root@bohe ~]# vim pa.sh +
#!/bin/bash
echo "/etc这个目录下所有以pa开头的文件有: "
find /etc/ -name "pa*" -type f
num=`find /etc/ -name "pa*" -type f | wc -l`
echo "文件的个数有: $num"

SHELL之每天每天一小练(二)

5、如果用户hadoop不存在就添加,否则显示用户已存在 

[root@bohe ~]# vim usr.sh
#!/bin/bash
grep hadoop /etc/passwd > /dev/null
if [ $? -ne 0  ]
then 
        useradd hadoop
else
        echo "用户已存在"
fi

SHELL之每天每天一小练(二)

 6、编写一个 Shell 程序 test1,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息

#!/bin/bash
read -p "请输入一个目录名: " path
ls -l $path

SHELL之每天每天一小练(二)

 7、编写一个 Shell 程序 test2,从键盘读入 x、y 的值,然后做加法运算,最后输出结果

#!/bin/bash

read -p "请输入第一个数字: " a
expr $a "+" 10 &>/dev/null
if [ $? -ne 0 ]
then
        echo "请输入正确的数字a"
        exit 0
else
read -p "请输入第二个数字: " b
expr $b "+" 10 &>/dev/null
        if [ $? -ne 0 ]
        then
                sum=$[$a+$b]
                echo "两个数相加之和为: $sum"
        else
                echo "请输入正确的数字y"
        fi
fi

上一篇:【Python】终端输入python3,提示“command not found“。歪??明明已经下载了


下一篇:第三章学习笔记(20191213兰毅达)