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

[root@localhost ~]# vim usershell.sh
#!/bin/bash
#
declare -i nologin_num=0
declare -i login_num=0
for i in $(cut -d: -f7 /etc/passwd);doif [ "$i" == "/sbin/nologin" ];thenlet nologin_num++elselet login_num++fi
done
echo "The total number of user shell that can't login is :$nologin_num"
echo "The total number of user shell that can login is :$login_num"

脚本测试

[root@localhost ~]# bash usershell.sh
The total number of user shell that can't login is :33
The total number of user shell that can login is :5
[root@localhost ~]# grep -o /sbin/nologin /etc/passwd | wc -l
33
[root@localhost ~]# grep -v /sbin/nologin /etc/passwd | wc -l
5

2、写一个脚本

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

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

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

vim hostnametest.sh
#!/bin/bash
#
hostname=$(hostname)
if [ "$hostname" == "localhost" ];thenhostname www.magedu.comecho "Hostname has changed to www.magedu.com"
elseecho "Current hostname is $hostname"
fi

脚本测试

[root@localhost ~]# hostname
localhost
[root@localhost ~]# bash hostnametest.sh
Hostname has changed to www.magedu.com
[root@localhost ~]# hostname
www.magedu.com
[root@localhost ~]# bash hostnametest.sh
Current hostname is www.magedu.com

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

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

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

vim devicetest.sh
#!/bin/bash
#
read -p "Please input a device path:" devicepath
if [ -z $devicepath ];thenecho "Usage: Please input a device path"exit 1
fi
if [ -b $devicepath ];thenfdisk -l $devicepath
elseecho "No such device"
fi

脚本测试

[root@localhost ~]# bash devicetest.sh
Please input a device path:
Usage: Please input a device path
[root@localhost ~]# bash devicetest.sh
Please input a device path:/dev/sdb
No such device
[root@localhost ~]# bash devicetest.sh
Please input a device path:/dev/sda
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a0ae7Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM

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

脚本能够接受一个参数;

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

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

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

vim parametertest.sh
#!/bin/bash
#
read -p "Please input a word(quit|yes):" parameter
while true;do
case $parameter in
quit)
echo "exit the script"
exit 0
;;
yes)
echo "continue to excute the script"
read -p "Please input a word(quit|yes):" parameter
;;
*)
echo "error exit"
exit 1
;;
esac
done

脚本测试

[root@localhost ~]# bash parametertest.sh
Please input a word(quit|yes):quit
exit the script
[root@localhost ~]# bash parametertest.sh
Please input a word(quit|yes):yes
continue to excute the script
Please input a word(quit|yes):quit
exit the script
[root@localhost ~]# bash parametertest.sh
Please input a word(quit|yes):
error exit
[root@localhost ~]# bash parametertest.sh
Please input a word(quit|yes):yes
continue to excute the script
Please input a word(quit|yes):
error exit

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) 其它任意值,则显示错误压缩工具,并执行非正常退出;

vim compresstest.sh
#!/bin/bash
#
if [ ! -e /backups ];then
mkdir /backups
fi
read -p "Please choose a format of compression(gzip|bzip2|xz):" zip
case $zip 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 "error compression format"
exit 1
;;
esac

脚本测试

[root@localhost ~]# ls /backups
ls: cannot access /backups: No such file or directory
[root@localhost ~]# bash compresstest.sh
Please choose a format of compression(gzip|bzip2|xz):gzip
[root@localhost ~]# bash compresstest.sh
Please choose a format of compression(gzip|bzip2|xz):bzip2
[root@localhost ~]# bash compresstest.sh
Please choose a format of compression(gzip|bzip2|xz):xz
[root@localhost ~]# bash compresstest.sh
Please choose a format of compression(gzip|bzip2|xz):
error compression format
[root@localhost ~]# ls /backups/
etc-20170624.tar.bz2  etc-20170624.tar.gz  etc-20170624.tar.xz

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

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

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

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

(4) 其它为无法判断;

vim pathtest.sh
#!/bin/bash
#
read -p "Please input a path:" path
if [ -f $path ];thenecho "${path} can be visited"cat $path
elif [ -d $path ];thenecho "${path} can use 'cd' command"
elif [ -h $path ];thenecho "${path} is a access path"ls -l $path
elseecho "unknown file"exit 1
fi

脚本测试

[root@localhost ~]# bash pathtest.sh
Please input a path:/etc/fstab
/etc/fstab can be visited
#
# /etc/fstab
# Created by anaconda on Tue Aug  2 21:31:19 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        1 1
UUID=ce40e87b-854d-42dc-ac50-e1309101c43d /boot                   xfs     defaults        1 2
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/cdrom/media/cdromiso9660defaults0 0
[root@localhost ~]# bash pathtest.sh
Please input a path:/dev
/dev can use 'cd' command
[root@localhost ~]# bash pathtest.sh
Please input a path:/dev/cdrom
/dev/cdrom is a access path
lrwxrwxrwx. 1 root root 3 Aug  3  2016 /dev/cdrom -> sr0
[root@localhost ~]# bash pathtest.sh
Please input a path:/hello
unknown file

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

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

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

vim hostnametest2.sh
#!/bin/bash
#
hostname=$(hostname)
if [ -z $hostname -o $hostname == "localhost" -o $hostname == "none" ];then
hostname "mail.magedu.com" && hostname
else
echo "Current hostname is $hostname"
fi

脚本测试

[root@localhost ~]# hostname
mail.magedu.com
[root@localhost ~]# bash hostnametest2.sh
Current hostname is mail.magedu.com
[root@localhost ~]# hostname localhost
[root@localhost ~]# bash hostnametest2.sh
mail.magedu.com
[root@localhost ~]# hostname none
[root@localhost ~]# bash hostnametest2.sh
mail.magedu.com

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

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

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

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

vim usernametest.sh
#!/bin/bash
#
read -p "Please input a username:" username
if [ -z $username ];thenecho "Usage: Please input a username"exit 1
fi
if  ! id $username &>/dev/null;then
echo "user doesn't exist"
else
userid=$(id -u $username)
if [ $userid -eq 0 ];then
echo "$username is a administrator"
elif [ $userid -gt 0 -a $userid -lt 500 ];then
echo "$username is a system user"
else
echo "$username is a normal user"
fi
fi

脚本测试

[root@localhost ~]# bash usernametest.sh
Please input a username:
Usage: Please input a username
[root@localhost ~]# bash usernametest.sh
Please input a username:jack
user doesn't exist
[root@localhost ~]# bash usernametest.sh
Please input a username:root
root is a administrator
[root@localhost ~]# bash usernametest.sh
Please input a username:postfix
postfix is a system user
[root@localhost ~]# useradd yuki
[root@localhost ~]# bash usernametest.sh
Please input a username:yuki
yuki is a normal user

转载于:https://blog.51cto.com/941641/1941601

Linux系统管理第七周作业【Linux微职位】相关推荐

  1. Linux系统管理第六周作业【Linux微职位】

    1.请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) CentOS系统启动流程如下: POST --> Boot Sequence(BIOS) --> Boot Lo ...

  2. 厚基础Linux——第七周作业

    文章目录 厚基础Linux--第七周作业 1.自建yum仓库,分别为网络源和本地源 环境规划 技术要求 需求分析 server端 client端 操作步骤 系统安装 server操作步骤 clinet ...

  3. Linux大作业任务书,《Linux系统管理》期末大作业任务书(计网14级).doc

    <Linux系统管理>期末大作业任务书(计网14级) 软件学院大作业任务书 课程名称: Linux系统管理 题 目: Linux系统管理期末大作业 专 业: 班 级: 学 号: 学生姓名: ...

  4. Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc

    软件学院大作业任务书 课程名称: Linux系统管理 题 目: Linux系统管理期末大作业 专 业: 班 级: 学 号: 学生姓名: 完成人数: 1人 起讫日期: 任课教师: 李荣鑫 职称: 部分管 ...

  5. 2017-2018-2 20179215《密码与安全新技术》第七周作业

    2017-2018-2 20179215 <密码与安全新技术> 第七周作业 课程:<密码与安全新技术> 班级: 201792 姓名: 袁琳 学号:20179215 上课教师:谢 ...

  6. 2019年春季学期第七周作业

    A Q 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 2019春第七周作业 我在这个课程的目标是 尽可能了解并且应用指针及文件和数组的知识 这个作业在那个具体方面帮助我实现目标 大致掌 ...

  7. 20189200余超 2018-2019-2 移动平台应用开发实践第七周作业

    20189200余超 2018-2019-2 移动平台应用开发实践第七周作业 布局 在这一节中首先学习了java的页面布局,在此基础之上来进行了编程. 图片如下: 代码如下: *** 使用代码进行登录 ...

  8. 学号20189220余超 2018-2019-2 《密码与安全新技术专题》第七周作业

    学号20189220 余超 2018-2019-2 <密码与安全新技术专题>第七周作业--论文学习及报告总结 课程:<密码与安全新技术专题> 班级: 1892 姓名: 余超 学 ...

  9. Linux系统管理(七)——用户文件权限设置

    系列文章往期回顾 Linux系统管理(一)--Linux虚拟机在VMware上的安装 Linux系统管理(二)--VMware使用文件共享功能 Linux系统管理(三)--Shell以及基本命令 Li ...

最新文章

  1. 产品运行所需的信息检索失败_域名解析失败
  2. 关于 JShell,开发人员需要知道的10件事情
  3. python官网下载步骤64位-Python 3.7 64位下载
  4. 几种P2P流媒体开源项目介绍
  5. 使用iostat分析IO性能
  6. 笔记-项目整体管理-项目工作说明书
  7. SSM中使用Mybatis的PageHelper插件实现分页
  8. W ndoWs文件夹窗口,如何在本地网络中访问-Synology-NAS-上的文件-(Wndows).pdf
  9. 数据分析之pandas笔记
  10. python:拼接多个csv文件
  11. python转换unicode_转-Python Unicode与中文处理
  12. 今日头条笔试题 数列
  13. 动手学树莓派第1章:先唠叨两句
  14. php网页读取sql数据库数据模板,discuz模板中直接读取数据库中的插件数据
  15. emacs go-mode 设置tab宽度
  16. PL(Procedural Language)/SQL程序设计语言
  17. 【每周CV论文推荐】初学基于GAN的三维图像生成有哪些经典论文需要阅读
  18. 百度api获取经纬度以及经纬度的转换
  19. python绘制散点图的步骤_python绘制散点图
  20. spring boot物联网智能管理平台 毕业设计-附源码211120

热门文章

  1. 使用java的java 命令,直接调用执行class文件
  2. 网络管理与维护作业7
  3. react+spring 记录跨域问题的解决方法
  4. 启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
  5. 解决CentOS6.x或RedHat Linux 6.x版本不能通过System eth0以固定IP访问外网的问题
  6. java.lang.NoSuchMethodException: java.util.List.<init>() 问题解决
  7. babel-loader jsx SyntaxError:意外令牌[重复]
  8. 为什么结构的sizeof不等于每个成员的sizeof之和?
  9. win11关机后主机依旧运行怎么办 Windows11关机后主机依旧运行的解决方法
  10. win11系统怎么样 Windows11系统好用吗