Linux脚本?正则?练习

编写一个脚本,名为/root/bin/createscripts.sh ,当执行该脚本时,输入 createscripts.sh /path/newsh.sh 则会在指定路径生成脚本文件并自动打开该 文件,开始编辑,在编辑结束后,自动给该脚本加上执行权限。,并涵盖注释信息如下:
#!/bin/bash

------------------------------------------
Filename: hello.sh
Revision: 1.0
Date: 2017/06/01
Author: nanyibo
Email: [email protected]
Website: www.猜一下.com
Description:
------------------------------------------
Copyright: 2018 wang
License: GPL

Linux脚本?正则?练习
2、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
当前主机系统信息如下:
主机名: hostname
IPV4地址: ifconfig
操作系统版本: cat /etc/redhat-release
内核版本: uname -r
CPU型号:lscpu
内存型号: free -m 格式为:xxxx MB
硬盘大小: fdisk -l /dev/sda 格式为:xxx GB
Linux脚本?正则?练习Linux脚本?正则?练习
3、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中
Linux脚本?正则?练习
4、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值
Linux脚本?正则?练习
Linux脚本?正则?练习
5、编写脚本/root/bin/links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序

`ifconfig |egrep -o "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(.\<([0-9]|[1-9][0-9]|1[0

-9]{2}|2[0-4][0-9]|25[0-5])\>){2}.\<([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"`"(检测IP地址合法性)

6、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和.
Linux脚本?正则?练习

下同

7、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第x用户和第y用户的ID之和,xy为参数指定。
Linux脚本?正则?练习
8、编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和
Linux脚本?正则?练习
Linux脚本?正则?练习
9、编写脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少个一级子目录和文件
Linux脚本?正则?练习
Linux脚本?正则?练习
10、编写脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问”
#!/bin/bash
[ $# -eq 0 ] && echo "请输入一个合法的IPV4地址" && exit 1
ping -c1 -W1 $1 &> /dev/null && echo "该IP地址可访问" || echo "该IP地址不可访问"
11、对以上对该脚本进行升级,可以判断ip地址的合法型,如果不合法,直接提示用户"IP地址不合法"并退出

`ifconfig |egrep -o "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(.\<([0-9]|[1-9][0-9]|1[0

-9]{2}|2[0-4][0-9]|25[0-5])\>){2}.\<([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"`"(检测IP地址合法性)

12、编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满
Linux脚本?正则?练习![
Linux脚本?正则?练习
13、编写脚本/bin/per.sh,判断当前用户对指定的参数文件,是否不可读并且不可写
Linux脚本?正则?练习
Linux脚本?正则?练习
14、编写脚本/root/bin/excute.sh ,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件
Linux脚本?正则?练习
Linux脚本?正则?练习
15、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统

!/bin/bash
获取是centos6还是centos7
version=$(grep -o "[[:space:]][0-9]" /etc/redhat-release | cut -d" " -f2)
获取用户列表
if [ $version == 7 ];then
users=$(grep "^[[:alnum:]]+:x:[0-9]{4,5}.*bash$" /etc/passwd | cut -d: -f1)
else
users=$(grep "^[[:alnum:]]+:x:([5-9][0-9]{2}|[0-9]{4,5}).*/bin/bash$" /etc/passwd | cut -d: -f1)
fi
锁定用户
for user in $users;do
usermod -U $user
done
echo "已经解锁全部普通用户"

16、让所有用户的PATH环境变量的值多出一个路径,例如:/usr/local/apache/bin

vim /etc/profile.d/env.sh(编辑增加profile.d/env.sh)
export PATH=/usr/local/apache/bin:$PATH(PATH添加)
source /etc/profile.d/env.sh(source一下刚配置的)

17、用户root登录时,将命令指示符变成红色,并自动启用如下别名:rm=‘rm –i’
cdnet=‘cd /etc/sysconfig/network-scripts/’
editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eth0’
editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 或 ifcfg-ens33 ’ (如果系统是CentOS7)
alisa用法
PS1
18、任意用户登录系统时,显示红色字体的警示提醒信息“Hi,dangerous!”
Linux脚本?正则?练习
19、编写用户的环境初始化脚本reset.sh,包括别名,登录提示vim /root/bin/reset.sh
Linux脚本?正则?练习

猜你喜欢

转载自blog.51cto.com/13116366/2125143