Linux第九周总结

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;

#!/bin/bash
#
login_user=0
nologin_user=0
for i in $(cat /etc/passwd | cut -d : -f 7);do
    if [ $i == "/sbin/nologin" ];then
        let nologin_user++
    else
        let login_user++
    fi
done
 
echo "login_user=$login_user, nologin_user=$nologin_user"

2、写一个脚本

(1) 获取当前主机的主机名,保存于hostname变量中;

(2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改www.magedu.com

(3) 否则,则显示当前主机名;

#!/bin/bash
#
hostname=$(/bin/hostname)
if [ $hostname == "localhost" ];then
    hostname www.magedu.com
    echo "111"
else
    hostname
fi

 

3、写一个脚本,完成如下功能

    (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;

(2) 如果存在,则显示此设备上的所有分区信息;

#!/bin/bash
#
if [[ $1 =~ /dev/sd* ]];then
    for i in $1;do
        fdisk -l $i
    done
else
    echo "Not a disk device file"
fi

 

4、写一个脚本,完成如下功能

   脚本能够接受一个参数;

   (1) 如果参数1quit,则显示退出脚本,并执行正常退出;

   (2) 如果参数1yes,则显示继续执行脚本;

   (3) 否则,参数1为其它任意值,均执行非正常退出;

#!/bin/bash
#
cat <<EOF
    1.quit
    2.yes
EOF
 
read -p "Please enter (quit or yes):" name
 
case $name in
quit)
    echo "Sign out"
    exit
    ;;
yes)
    echo "Continue implementation"
    ;;
*)
    exit 2
    ;;
esac

 

5、写一个脚本,完成如下功能

   传递一个参数给脚本,此参数为gzipbzip2或者xz三者之一;

   (1) 如果参数1的值为gzip,则使用targzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz

   (2) 如果参数1的值为bzip2,则使用tarbzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2

   (3) 如果参数1的值为xz,则使用tarxz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz

   (4) 其它任意值,则显示错误压缩工具,并执行非正常退出;

#!/bin/bash
#
cat <<EOF
    1.gzip
    2.bzip2
    3.xz
EOF
 
read -p "Please enter (gzip or bzip2 or xz):" name
 
cd /
mkdir /backups &> /dev/null
 
case $name in
gzip)
    tar -zcf /backups/etc-20160613.tar.gz etc
    echo "gz is ok"
    exit 1
    ;;
bzip2)
    tar -jcf /backups/etc-20160613.tar.bz2 etc
    echo "bz2 is ok"
    exit 1
    ;;
xz)
    tar -Jcf /backups/etc-20160613.tar.xz etc
    echo "xz is ok"
    exit 1
    ;;
*)
    echo "Error compression tool"
    exit 1
    ;;
esac

 

6、写一个脚本,接受一个路径参数:

   (1) 如果为普通文件,则说明其可被正常访问;

   (2) 如果是目录文件,则说明可对其使用cd命令;

   (3) 如果为符号链接文件,则说明是个访问路径;

   (4) 其它为无法判断;

#!/bin/bash
#
read -p "Please enter the file type : " x
if [ -f $x ];then
        echo "You can access it properly"
exit 1
elif [ -d $x ];then
        echo "You can use the CD command"
exit 1
elif [ -h $x ];then
        echo "Is an access path"
exit 1
else
        echo "Unrecognized"
fi

 

7、写一个脚本,取得当前主机的主机名,判断

   (1) 如果主机名为空或为localhost,或为”(none)”,则将其命名为mail.magedu.com

#!/bin/bash
#
hostname=$(/bin/hostname)
if [ $hostname == "localhost" -o “(none)” ];then
    hostname www.magedu.com
    echo "111"
else
    hostname
fi

原创文章,作者:N27_yuner,如若转载,请注明出处:http://www.178linux.com/85583

(0)
N27_yunerN27_yuner
上一篇 2017-08-28
下一篇 2017-08-28

相关推荐

  • Linux终端类型

    Linux系统的终端主要包括控制台终端、控制终端、串口终端、伪终端、虚拟终端。 1、控制台终端(/dev/console)    在Unix系统中,计算机显示器通常被称为控制台终端。Console与虚拟终端相关联,内核将信息送到控制台终端上(/dev/console), 通过与console相关联的虚拟终端将信息显示到屏幕上。不管当前正在…

    Linux干货 2016-10-19
  • N26-第十四周

    1、系统的INPUT和OUTPUT默认策略为DROP;[root@centos7 ~]# iptables -P INPUT DROP[root@centos7 ~]# iptables -P OUTPUT DROP1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务…

    Linux干货 2017-06-20
  • 程序包管理之rpm

    程序包管理器不同公司的发行版:                         debian:dpt管理器 &…

    Linux干货 2016-08-22
  • Linux基础学习总结(一)

    一、计算机的组成与功能 二、Linux的版本 三、Linux的哲学思想 四、Linux基础命令(一) 五、Linux帮助信息 六、Linux目录结构

    Linux干货 2016-09-20
  • N21-第五周

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep "^[[:space:]]\+" /etc/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; # grep&nbs…

    Linux干货 2016-08-15
  • N22第六周作业

    VIM编辑器介绍 什么是VIM? Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。 VIM的使用 &nbsp…

    Linux干货 2016-10-24