Linux Shell基础脚本示例

1、编写脚本/root/bin/systeminfo.sh,显示主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小.

Linux Shell基础脚本示例

 

2、编写脚本/root/bin/backup.sh,可实现自动将/etc/目录备份到/root/etcYYYY-mm-dd.

Linux Shell基础脚本示例

 

3、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值.

Linux Shell基础脚本示例

Linux Shell基础脚本示例

Linux Shell基础脚本示例

 

4、编写脚本/root/bin/links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序.

Linux Shell基础脚本示例

 

5、写一个脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和.

Linux Shell基础脚本示例

 

6、写一个脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和.

Linux Shell基础脚本示例

 

7、写一个脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少个一级子目录和文件.

Linux Shell基础脚本示例

 

8、写一个脚本/root/bin/argsnum.sh,接受一个文件路径作为参数;如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出;如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数.

Linux Shell基础脚本示例

 

9、写一个脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问”.

Linux Shell基础脚本示例

 

10、判断硬盘的每个分区空间和inode的利用率是否大于80,如果是,发邮件通知root磁盘已满.

Linux Shell基础脚本示例

 

循环写入文件进行测试

[root@CentOS6 teestdir]# for id in {1..194560}; do touch /boot/f$id ; echo f$id  is created;done

 

观察磁盘inode信息

[root@CentOS6 teestdir]# watch -n 1 df -i /boot

Linux Shell基础脚本示例

 

查看邮件信息

Linux Shell基础脚本示例

 

11、指定文件做为参数,判断文件是否为.sh后缀,如果是,添加x权限.

Linux Shell基础脚本示例

12判断输入的IP是否为合法IP.

Linux Shell基础脚本示例

Linux Shell基础脚本示例

 

13、计算1+2+3+…+100之间的总和.

Linux Shell基础脚本示例

 

14、输入起始值A和最后值B,计算从A+A+1…+(B-1)+B的总和.

Linux Shell基础脚本示例

输入正确的数值进行测试

Linux Shell基础脚本示例

输入错误的数值进行测试

Linux Shell基础脚本示例

 

15 chmod -rw /tmp/file1,编写脚本/root/bin/per.sh,判断当前用户对/tmp/fiile1文件 是否不可读且不可写.

Linux Shell基础脚本示例

 

所有用户没有赋予权限时测试

Linux Shell基础脚本示例

Linux Shell基础脚本示例

 

给所有用户添加rx权限后测试

Linux Shell基础脚本示例

Linux Shell基础脚本示例

由此可见root管理员对所有文件都有读写权限

 

16、编写脚本/root/bin/nologin.shlogin.sh,实现禁止和允许普通用户登录系统.

禁止普通用户登录

Linux Shell基础脚本示例

 

允许普通用户登录

Linux Shell基础脚本示例

 

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

(0)
cyh5217cyh5217
上一篇 2016-08-15 09:24
下一篇 2016-08-15 09:24

相关推荐

  • Linux第三周总结

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d ” -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。 ~]# who|tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell ~]# cut -d’:’…

    2017-07-16
  • 系统启动这块的一些实验及基本内容–下

    下面我来讲下grub,grub在编辑的时候可以进入一种模式就是单用户模式,就是当grub.conf文件未写入密码时,普通用户将直接忽略系统密码进入系统,所以这可以称为一个捷径,也可以成为一个漏洞,当然linux的前辈们不可能连这个都想不到,他们也有自己的办法,这就是我们grub的两层加密机制,在选定登陆界面之前可以设置一次,启动内核时也可以设置一次,密码也可…

    Linux干货 2016-09-13
  • Homework Week-7 RAID及bash编程

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; fdisk /dev/sda n …

    Linux干货 2016-09-26
  • LVS详解及基于LVS实现web服务器负载均衡

    前言 LVS(Linux Virtual Server)Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能、高可用的服务器群集,从而以低成本实现最优的服务性能。 集群基础 集群简介 集群(Cluster)是一组相互独立…

    Linux干货 2015-06-01
  • Linux主要发行版

    Redhat:三大发行版之一,由红帽公司维护,分支有fedora,centosDebian:社区维护,非商业维护,三大发行版之一,分支有Ubuntu,Mintslackware:三大发行版之一,分支有Suse,opensusearch Linux:轻量级行业新贵

    Linux干货 2018-03-03
  • n25 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   2、取出最后登录到当前系统的用户的相关信息。   3、取出当前系统上被用户当作其默认shell的最多的那个shell。   4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxus…

    Linux干货 2016-12-20