第九周作业

第九周作业

第九周作业

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

#!/bin/bash

LOGIN_USER=0

NOLOGIN_USER=0

for SHELLUSER in $(cat /etc/passwd | cut -d : -f 7);do

if [ $SHELLUSER == “/sbin/nologin” ];then

let NOLOGIN_USER++

else

let LOGIN_USER++

fi

done

 

echo “login shell = $LOGIN_USER , nologin shell =$NOLOGIN_USER”

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

#!/bin/bash

hostname=$(echo $HOSTNAME)

if [ “$hostname” == “localhost” ]; then

hostname “www.magedu.com”

else

echo $HOSTNAME

fi

 

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

#!/bin/bash

if [[ “$1” =~ /dev/[hs]d* ]];then

if ls /dev/[hs]d* | grep “$1” &> /dev/null ; then

fdisk -l $1

else

echo “no this partitions”

exit 2

fi

else

echo “wrong path”

fi

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

#!/bin/bash

read -p “Please give a parameter(yes or quit)” -t 5 NAME

if [ -z $NAME ];then

echo “need a parameter”

exit 2

elif [ $NAME == yes ]; then

echo “continue scripting”

elif [ $NAME == quit ]; then

echo “Normal exit”

exit 0

else

echo “wrong paramter”

exit 2

fi

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

NAME=/backups/etc-20160613.tar

read -p “chose a compression tool(gzip/bzip2/xz)” -t 5 TOOL

cd /

mkdir backups &> /dev/null

if [ $TOOL == gzip ];then

tar -zcf $NAME.gz etc

elif [ $TOOL == bzip2 ];then

tar -jcf $NAME.bz2 etc

elif [ $TOOL == xz ];then

tar -Jcf $NAME.xz etc

else

echo “wrong compression tool”

fi

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

#!/bin/bash

read -p “please give a path to (file|dir|ln)”  NAME

if [[ -f $NAME ]];then

echo “this is a file,you can access”

elif [[ -d $NAME ]];then

echo “this is a Directory file,you can cd”

elif [[ -L $NAME ]];then

echo “this is a path to file”

else

echo “cannot judge”

fi

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

#!/bin/bash

HOSTNAME=$(hostname)

if [ $HOSTNAME == “localhost” -o “(none)” ];then

hostname mail.magedu.com

else

echo “hostname is $HOSTNAME”

fi

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88332

(1)
N27_yangjifengN27_yangjifeng
上一篇 2017-11-13
下一篇 2017-11-13

相关推荐

  • 系统基础之文件管理工具

    系统基础之文件管理工具   linux的重要哲学思想之一,一切皆文件.那作为系统管理员,就要求对文件的操作管理特别熟悉.那么下面介绍的一个工具可以帮助到大家,更有效,快捷的完成对文件的处理.下面让我们来认识以下的工具. 文本工具: 文件内容:   cat: 复制标准输入到标准输出     选项:   &nbs…

    Linux干货 2016-08-07
  • 马哥教育网络班22期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [xw@localhost ~]$ who | cut -d' ' -f1 | uniq xw root 2、取出最后登录到当前系统的用户的相关信息。 [xw…

    Linux干货 2016-09-01
  • 8.2日作业

    8.2作业 1、在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。   先将文件目录的属组变更为g1 ,chmod  g+s /data/testdir/    …

    Linux干货 2016-08-08
  • openssl关于CA证书的创建

    1、用openssl实现证书申请 先在/etc/pki/CA/目录下创建一个index.txt的文件,作为ca证书的数据库 在相同目录下创建一个serial的序列号文件,并写入01 生成ca的签名证书用到的私钥文件 注意:私钥的权限时600,文件名必须是cakey.pem 生成自签证书 这样私有CA建立完成 申请认证: 在申请的机器上生成私钥 生成申请文件 …

    Linux干货 2016-09-23
  • Linux的主要发行版及区别

    Linux的主要发行版介绍 主流的发行版 Linux至上世纪90年代基于Unix而诞生,至今其发行版有几百种之多,但其主流的发行版有三个系列。 Debian系 Ubuntu属于Debinan系。 Redhat系CentOS属于Redhat系。Slackware系SUSE Linux即属于Slackware系。 主要区别 软件包管…

    Linux干货 2016-10-29

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-02 09:08

    写的很好,脚本只能多联系,之后就会了。