第九周博客作业

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

#!/bin/bash

declare -i sum=0
declare -i sum_nologin=0

for i in $(cut -d: -f7 /etc/passwd);do
    if [ "$i" == "/sbin/nologin" ];then
        let sum_nologin++
    else
        let sum++
    fi
done

echo "Total user shell was '/sbin/nologin':$sum_nologin"
echo "Total user shell was not '/sbin/nologin' : $sum"

2、写一个脚本

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

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

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

#!/bin/bash

HOSTNAME=$(hostname)

if [ "$HOSTNAME" == "localhost" ];then
    hostname "www.magedu.com"
    echo "hostname already change to www.magedu.com"
else
    hostname
fi

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

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

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

#!/bin/bash

if [ $# -lt 1 ];then
    echo "Please input a disk path"
    exit 1
fi

if [ -b $1 ];then
    fdisk -l $1
else
    echo "No such partitions"
fi

4、写一个脚本,完成如下功能脚本能够接受一个参数;

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

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

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

#!/bin/bash

choose_yes () {
    read -p "Please choose one word (yes,quit or other word):" word
    choice
}

choice () {
    case $word in
        quit)
            echo "Exit the script"
            exit 2 ;;
        yes)
            echo "continue to excute the script"
            choose_yes ;;
        *)
            exit 3 ;;
esac
} 

choose_yes

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

if [ $# -lt 1 ]; then
    echo "Usage:please enter a kind of compression method(gzip|bzip2|xz)"
    exit 1
fi

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 2 ;;
esac

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

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

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

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

(4) 其它为无法判断

#!/bin/bash

if [ $# -lt 1 ]; then
    echo "Pleae enter a path."
    exit 1
fi

if [ -f $1 ]; then
    echo "You can visit it"
elif [ -d $1 ]; then
    echo "You can use 'cd' command"
elif [ -l $1 ]; then
    echo "It's a access path"
else
    echo "can't judge the path"
fi

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

#!/bin/bash

HOSTNAME=$(hostname)

[ -z HOSTNAME -o "$HOSTNAME" == "localhost" -o "$HOSTNAME" == "(none)" ] && hostname mail.magedu.com && echo "hostname already changed"

echo "The hostname is $(hostname)"

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

(0)
N25_PierceN25_Pierce
上一篇 2017-06-06 15:10
下一篇 2017-06-06 16:58

相关推荐

  • N25第一周作业

    一.计算机基础知识     1.计算机是什么?         计算机是一种能够按照指令对各种信息进行自动加工和处理的电子设备     2.计算机的组成?       &…

    Linux干货 2016-12-06
  • 最简单的Linux系统——更加深入了解Linux启动过程

    自制一个最简单的Linux: 1、有一个新的磁盘,并创建分区 2、挂载分区,创建目录 3、拷贝内核文件 4、创建MBR和grub.conf文件 5、创建/etc/fstab文件,设置开机自动挂载 6、拷贝一个bash程序 7、卸载分区,以新磁盘重启系统

    Linux干货 2016-09-11
  • 磁盘管理

    设备类型分为字符设备和块设备 主设备号用来标识设备类型,次设备号标识同一类型下的不同设备 硬盘设备命名: scsi,sata,sas,usb:/dev/sd 不同设备/dev/sda  /dev/sdb 同一设备不同分区:/dev/sda1,/dev/sdb2…… 硬盘: 一片磁盘的一面叫做盘面,一张盘片有两个盘面 每个盘面有一个磁头,最多有256…

    Linux干货 2016-08-30
  • Nginx相关实战案例

    Nginx相关实战案例: Nginx在实际生产中极为重要,先来看一下Nginx配置文件nginx.conf中文详解 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn |…

    Linux干货 2017-06-19
  • linux 用户与组管理详解

    ##用户与组的分类 Linux系统对用户分配如下: -系统管理员:root -普通用户:普通用户分为以下两种           系统用户:系统用户通常是不可登陆的,执行某些服务及进程的帐号           登录用户:一般用户,    …

    Linux干货 2017-04-05
  • Linux基础知识及常用命令

    pwd:printing working directory -显示当前工作目录            [root@edu tmp]# pwd          &nbs…

    Linux干货 2016-09-15

评论列表(1条)

  • 马哥教育
    马哥教育 2017-06-20 10:00

    写的很棒,希望可以再接再厉,继续保持