Week9’s homework

Week9's homework

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

#!/bin/bash
#
for i in $(cat /etc/passwd | cut -d: -f7);do
    if [ $i == "/sbin/nologin" ];then
        let nologin+=1
    else
        let login+=1
    fi
done
 
echo "nologin:$nologin."
echo "login:$login."

2、写一个脚本
(1) 获取当前主机的主机名,保存于hostname变量中。
(2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为:www.magedu.com
(3) 否则,则显示当前主机名。

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

3、写一个脚本,完成如下功能
(1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在。
(2) 如果存在,则显示此设备上的所有分区信息。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one dev file path." && exit 1
 
if [ -b $1 ];then
    fdisk -l $1
else
    echo "The dev file path is not exist."
fi


4、写一个脚本,完成如下功能
脚本能够接受一个参数。
(1) 如果参数1为quit,则显示退出脚本,并执行正常退出。
(2) 如果参数1为yes,则显示继续执行脚本。
(3) 否则,参数1为其它任意值,均执行非正常退出。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 2
 
case $1 in
quit)
    echo "Normal exit."
    exit 0
    ;;
yes)
    echo "Processing is continued."
    ;;
*)
    echo "Unnormal exit."
    exit 3
    ;;
esac


5、写一个脚本,完成如下功能
传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一。
(1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz。
(2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2。
(3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz。
(4) 其它任意值,则显示错误压缩工具,并执行非正常退出。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 1
 
mkdir /backups &>/dev/null
case $1 in
gzip)
    tar -zcf /backups/etc-`date +%Y%m%d`.tar.gz /etc
    ;;
bzip2)
    tar -jcf /backups/etc-`date +%Y%m%d`.tar.bz2 /etc
    ;;
xz)
    tar -Jcf /backups/etc-`date +%Y%m%d`.tar.xz /etc
    ;;
*)
    echo "No such compression tool."
    exit 1
    ;;
esac

6、写一个脚本,接受一个路径参数:
(1) 如果为普通文件,则说明其可被正常访问。
(2) 如果是目录文件,则说明可对其使用cd命令。
(3) 如果为符号链接文件,则说明是个访问路径。
(4) 其它为无法判断。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 1
 
 
if [ -f $1 ];then
    echo "$1 is a common file,it's accessible."
elif [ -d $1 ];then
    echo "$1 is a directory,you can use cd command."
elif [ -l $1 ];then 
    echo "$1 is a sysbolic link."
else
    echo "$1 is unknown." 
fi

7、写一个脚本,取得当前主机的主机名,判断
(1) 如果主机名为空或为localhost,或为"(none)",则将其命名为mail.magedu.com
(2) 否则,显示现有的主机名即可。

#!/bin/bash
#
name=$(hostname)
 
if [ $name == "localhost" -o $name == " " ];then
    hostname mail.magedu.com
else
    echo $name
fi

8、写一脚本,接受一个用户名为参数。
(1) 如果用户的id号为0,则显示其为管理员。
(2) 如果用户的id号大于0且小于500, 则显示其为系统用户。

#!/binbash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 1
 
if [ $(id -u $1) &>/dev/null -eq 0 ];then
    echo "$1 is system administrator."
elif [ $(id -u $1) &>/dev/null -lt 500 ];then
    echo "$1 is a system user."
fi

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

(0)
N24_lantianN24_lantian
上一篇 2016-12-24 13:26
下一篇 2016-12-24 19:38

相关推荐

  • linux磁盘分区格式化基本操作

    磁盘分区 分区格式的两种选择:MBR和GPT 分区命令: parted的操作都是实时生效的,小心使用,主要是用于大于2T硬盘,支持MBR和GPT两种格式。 用法:parted [选项]… [设备[命令[参数]…]…] parted /dev/sdb mklabelgpt|msdos //选择分区格式 parted…

    Linux干货 2017-04-24
  • heartbeat2+crm+hb_gui接口,配置高可用httpd,mysql,lvs-director

    heartbeat2使用crm借助gui界面配置httpd服务     1. 服务大体资源构架:          1) 两台httpd服务,外加一台nfs共享存储服务。     &nbsp…

    Linux干货 2016-01-13
  • 如何修复Ubuntu 12.04上时间不正确的问题

    大家好: 今天跟大家分享下如何修复ubuntu 12.04上时间不正常的问题。 1–首先打date查看系统的时间是否正常 martell@cnux10:~/sistes/sha-mmb-o2o2o$ date  Thu Dec  1 09:15:47 UTC 2016 martell@cnux10:~/sistes/sha-m…

    Linux干货 2016-12-04
  • 使用NFS共享网页文件

    上图为我们要搭建的网络拓扑图 本次实验目的:使用NFS文件服务来实现wordpress共享 实验环境: 需要三台虚拟机:         分别是:192.168.26.188(服务器端)          &n…

    2017-05-01
  • 编译安装lamp框架

    一、 先说说啥叫lamp     1. lamp简介: Linux Apache Mysql PHP(Python, Perl)的简称,下面说说他们之间的关系         Linux:系统运行平台    &…

    Linux干货 2015-06-18
  • 马哥教育网络班20期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。 3、请使用命令行展开功能来完成以下练习:    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d   …

    Linux干货 2016-06-23

评论列表(1条)

  • 马哥教育
    马哥教育 2017-01-04 16:15

    写的很棒,看得出来下了很大的功夫,可以作为范文来展示,希望可以再接再厉