Linux Bash脚本编程练习

马哥教育网络班23期+第九周课堂练习

Linux Bash脚本编程练习

练习

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

脚本:

blob.png

测试结果:

blob.png 
。。。

2.写一个脚本

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

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

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

脚本:

blob.png

测试结果:

blob.png

3.写一个脚本,完成以下功能

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

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

脚本:

blob.png

测试结果:

blob.png

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

脚本能够接受一个参数

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

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

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

脚本:

blob.png

测试结果:

blob.png

5.写一个脚本,完成以下功能

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

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

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

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

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

脚本:

blob.png

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

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

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

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

(4)其他为无法判断

脚本:

blob.png

测试结果:

blob.png

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

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

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

blob.png

8.写一个脚本,接受一个用户名为参数

(1)如果用户的id号为0 则显示其为管理员

(2)如果用户的Id号大于0且小于500 则显示其为系统用户

(3)否则,则显示其为普通用户

脚本:

blob.png

测试结果:

blob.png

9.写一个脚本,传递一个用户名参数给脚本

(1)如果用户的id号大于等于500 且其默认shell为以sh结尾的字符串,则显示“a user can log system” 类的字符串

blob.png

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

(0)
luobo3692003luobo3692003
上一篇 2016-11-28 16:41
下一篇 2016-11-28 17:59

相关推荐

  • 马哥教育网络班25期-第3周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who root     tty1         2016-12-…

    Linux干货 2016-12-19
  • ☞LVS

    LVS 概述 LVS工作类型 LVS NAT LVS DR(默认) Direct Routing带来的问题 限制响应模型的内核参数 LVS TUN LVS FULLNAT scheduling-method 静态调度算法 动态调度算法 CentOS 7 中的ipvs组件 安装ipvsadm程序 主要文件 ipvsadm命令 配置集群服务 NAT方法示例 DR…

    Linux干货 2016-10-26
  • centos7配置bindDNS解析服务

    首先来概述一下 通俗一点理解呢,DNS就是把域名转换成IP的一种服务(反向则是IP转换成域名).以方便人们的记忆,就好比记住一个代表性的英文要比记住电话号码快得多,通常我们将这种服务称之为解析.现在一般公网都有万网 腾讯云这些机构,DNS这一块我们不需要负责.但是在现在企业的内部网则就需要我们来搭建DNS服务器了.本次采用的bind工具进行域名的解析。 1.…

    Linux干货 2018-03-26
  • vsftpd基于mysql实现用户认证

    一、前言   ftp介绍:     ftp全程是File Transfer Protocol(文件传输协议),方便于实文件交换;但是在文件传输以及账号密码发送时都是以明文传输,因此是一个明文协议 ftp是C/S方式:   常见的客户端有:     GUI方式:browers、FileZilla-cl…

    Linux干货 2015-06-15
  • ansible基础应用

    ansible基础 一、运维主要工作 ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansible特性 (1)模块化:调用特定的模块,完成特定任务; (2)基于python语言实现,由paramiko,PYYAML和JINJa2三个关键模块组成 (3)部署简单:agentless…

    Linux干货 2017-01-04
  • Docker 之初次体验

    一、Docker 简介  lxc linux container,openvz  容器中各虚拟机只有一个内核,而是多个用户空间  在库中完成虚拟化,比如wine 或者在windows中运行bash  在应用程序的运行级别提供虚拟化,比如jvm   pstree , pid 为1 的进程  …

    Linux干货 2015-01-16

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-30 21:23

    脚本的功能实现的很好,不过不建议这种以直接截图的展现代码的形式,一定要以文本方式进行展示,不仅格式更友好,以方便需要的人拷取,也更符合开源精神嘛。