N26-第九周作业-邢岩

马哥门徒-N26-邢岩


相信自己、勤奋努力、不断总结!shell脚本练习需要重复、重复、再重复!那么,我就继续来写、写、写。N26-第九周作业-邢岩N26-第九周作业-邢岩N26-第九周作业-邢岩

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


#****************************************************

# Author: jeque
# Last modified: 2017-04-02 23:04
# Filename: user10.sh
# Description: 
# Version: 1.1 
#****************************************************
declare user_login=0
declare user_nologin=0
for i in $(cat /etc/passwd | cut -d: -f7); do
    if [ $i == “/sbin/nologin” ];then
        let user_nologin++
    else
        let user_login++
    fi
done
echo “login user number:$user_login”
echo “nologin user number:$user_nologin”

N26-第九周作业-邢岩


2、写一个脚本

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

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

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


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-02 23:31
# Filename: localhost1.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
HostName=$(/bin/hostname)
if [ $UID -eq 0 ];then
    if [ $HostName == “localhost.localdomain” ];then
        hostname www.magedu.com
        echo “hostname changed”
    else
        hostname
    fi
else
    echo”You must be root to change the hostname.”
    exit 1
fi

N26-第九周作业-邢岩

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

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

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


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 18:03
# Filename: fdev.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
if [ $# -ge 1 ];then
    for dev in $*;do
        if [ -b $dev ];then
            fdisk -l $dev
        else
            nodev=$nodev” “$dev
        fi
    done
    [[ $(echo $nodev | wc -c) -gt 1 ]] && echo -e “\nThe device is not exist,plesae try again.\n$nodev”
else
    echo “please put in an exist device.”
fi

N26-第九周作业-邢岩N26-第九周作业-邢岩


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

   脚本能够接受一个参数;

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

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

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


#!/bin/bash
#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 18:39
# Filename: parameter.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
menu () {
cat <<END
    1.quit
    2.yes
    3.other
    please input the parameter you want:
END
}
menu
read -p “Your choice: ” option

case $option in
quit)
    echo “Exit the script.”
    exit
    ;;
yes) 
    echo “Script continue.”
    ;;
*)
    exit 2
esac

N26-第九周作业-邢岩N26-第九周作业-邢岩


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

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 21:08
# Filename: parameter2.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
menu () {
cat <<END
    1.gzip
    2.bzip2
    3.xz
    please input the parameter listed above:
END
}

myPath=”/backups”
if [ ! -x “$myPath” ];then 
    mkdir -p “$myPath” &> /dev/null
fi

menu
read -p “Your choice:” option
case $option in
gzip) 
    tar -zcf /backups/etc-$(date +%Y%m%d).tar.gz /etc &> /dev/null
    echo “The new filename is etc-$(date +%Y%m%d).tar.gz”
    ;;
bzip2)
    tar -jcf /backups/etc-$(date +%Y%m%d).tar.bz2 /etci &> /dev/null
    echo “The new filename is etc-$(date +%Y%m%d).tar.bz2”
    ;;
xz)
    tar -Jcf /backups/etc-$(date +%Y%m%d).tar.xz /etc &> /dev/null
    echo “The new filename is etc-$(date +%Y%m%d).tar.xz”
    ;;
*)
    echo “Error compression tools.”
    exit 2
esac

N26-第九周作业-邢岩N26-第九周作业-邢岩N26-第九周作业-邢岩


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

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

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

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

   (4) 其它为无法判断;


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 22:17
# Filename: files11.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
if [ $# -lt 1 ]; then
    echo “At least one path.”
    exit 1
elif ! [ -e $1 ]; then
    echo “No such file!”
    exit 2
elif [ -f $1 ]; then
    echo “Common file.”
    echo ” It can be normal access.”
elif [ -d $1 ]; then
    echo “Directory file.”
    echo “You can use command ‘cd’ to the file.”
elif [ -L $1 ]; then
    echo “Symbolic link file.”
    echo “An access path! “
else
    echo “Unkown!” 
    echo “Can’t judge!”
fi

N26-第九周作业-邢岩N26-第九周作业-邢岩


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

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

   (2) 否则,显示现有的主机名即可;


#!/bin/bash

#****************************************************
# Email: 2372911967@qq.com
# Author: jeque
# Time: 2017-04-03 22:39
# Filename: localhost2.sh
# Version: 1.0 
# Description: A test script.
#****************************************************
HostName=$(/bin/hostname)
if [ $UID -eq 0 ];then
    if [ $HostName == “localhost” ];then
        hostname mail.magedu.com
        echo “hostname changed”
    elif [ $HostName == ” ” ]; then
        hostname mail.magedu.com
    elif [ $HostName == “(none)” ];then
        hostname mail.magedu.com

    else
        hostname
    fi
else
    echo”You must be root to change the hostname.”
exit 1
fi

N26-第九周作业-邢岩


   OK!shell脚本暂时先练到这里,该休息了!Bye!N26-第九周作业-邢岩

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

(0)
jequejeque
上一篇 2017-04-03 22:35
下一篇 2017-04-04 10:12

相关推荐

  • Linux基础 文件权限

    概述 从接触linux第一天开始,Linux一切皆文件的哲学思想就深植于每个linuxer的心中,因此,实现Linux的系统安全必然绕不开文件权限。文件的权限是建立在用户的基础上的,脱离了用户,文件权限也就变得毫无意义了。用户、组和文件权限一起铸就了linux的系统安全模型。本文主要从文件权限方面了解Linux的安全模型。 文中主要讲解了: 1. 文件权限r…

    Linux干货 2016-08-05
  • 马哥教育网络班20期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp复制, mv剪切, rm移除 语法格式: cp复制  cp [OPTION]… [-T] SOURCE DEST  常用选项: -i:交互式 -r: 递归复制目录及内部的所有内容 -a: 归档   演示: …

    Linux干货 2016-07-12
  • N26 第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。  [1]mkdir : make directories            mkdir [OPTION]… DIRECTORY… &n…

    Linux干货 2017-02-05
  • vim文本编辑器

    vi简介 vi:Visual Interface,是一种功能强大的文本编辑器,工作在字符模式下,它可执行输出、输出、查找、替换、块等众多文本操作,不需要图形界面,因此执行起来效率会非常高,主要用来编辑纯文本文件,常见的编码有,ASCII,Unicode等等 文本编辑器的种类:     行编辑器:逐行来对文本进行处理的工…

    Linux干货 2016-08-15
  • linux快捷键

    $ 用法 $变量名 表引用变量的值 $()或(单引号) 表示引用命令执行的结果 $[] 表示运算 ${变量名} 或"$变量名" 当变量名的起止不分明时,用来划定变量名的范围,同时引用变量。 {} 用法 {a..z} 表示引用指定范围的字母 {1..9999} 表示引用指定范围的数字​ {1,3,5} 表示分别引用每一个字符 TAB 用法 …

    Linux干货 2017-07-13
  • MySQL/MariaDB基于MMM实现读写分离及高可用

    前言 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。 MMM 优缺点 优点:高可用性,扩展性好,…

    Linux干货 2015-06-24

评论列表(2条)

  • 马哥教育
    马哥教育 2017-04-10 16:21

    总结的很好,脚本的思路清晰,加油~~~~

  • Dotty
    Dotty 2017-04-24 10:27

    Cool! That’s a clever way of loonkig at it!