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
下一篇 2016-08-15

相关推荐

  • N22-love cat 17周博客作业第2部分-构建一个LVS-DR模型的高性能集群

    题目: 搭建一个LVS-DR模型的高性能集群,并实现以下功能:       (1)、wordpress程序通过nfs共享给个个realserver;       (2)、后端realserver中的nginx和php分离; 第17周   第2部分 网…

    Linux干货 2016-08-15
  • N26-第三周博客

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只 显示一次即可。 [yang@localhost /]$ who | cut -d" " -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost tmp]# last | head -1 3、取出当前系…

    Linux干货 2017-02-08
  • Linux 网络管理

    Linux 网络管理 第一篇:计算机网络基础: 一、计算机网络: 1.TCP/IP:协议栈(使用中的模型)     ISO(国际标准化组织):OSI(开放系统互联基本参考模型),学习中的模型。           1)各层之间的相关协议和单位:     互联网…

    Linux干货 2016-09-06
  • 重定向、管道——Linux基本命令(9)

    1.     输出重定向 Linux默认输入是键盘,输出是显示器。可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。   STDOUT(标准输出)和STDERR(标准错误)可以被重…

    2017-07-20
  • 网卡别名与bonding配置

    我们知道,一般来说,一个硬件地址对应与一个IP地址。但在一些情况下,我们可以通过一些方法打破硬件地址与IP地址的一一对应关系。下面就来说一下网卡别名与bonding配置。 网卡别名就是将多个IP地址绑定到一个网络接口上,其命名方式为IFACE:num,如eth0:1等。需要注意的是,网卡别名仅对虚拟主机有效。创建网卡别名有两种方式: 1、ifconfig命令…

    Linux干货 2016-09-05
  • 一起学DHCP系列(三)理解、APIPA

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/162407      这是《一起学DHCP》系列的第三节。      …

    Linux干货 2015-03-25