题目:
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
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"
5、如果用户hadoop不存在就添加,否则显示用户已存在
[root@bohe ~]# vim usr.sh
#!/bin/bash
grep hadoop /etc/passwd > /dev/null
if [ $? -ne 0 ]
then
useradd hadoop
else
echo "用户已存在"
fi
6、编写一个 Shell 程序 test1,程序执行时从键盘读入一个目录名,然后 显示这个目录下所有文件的信息
#!/bin/bash
read -p "请输入一个目录名: " path
ls -l $path
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