1. 程式人生 > >Linux腳本?正則?練習

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

技術分享圖片
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

技術分享圖片技術分享圖片
3、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中
技術分享圖片
4、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值
技術分享圖片
技術分享圖片
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之和.
技術分享圖片

下同

7、編寫腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第x用戶和第y用戶的ID之和,xy為參數指定。
技術分享圖片
8、編寫腳本/root/bin/sumspace.sh,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和
技術分享圖片
技術分享圖片
9、編寫腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
技術分享圖片
技術分享圖片
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%,就發廣播警告空間將滿
技術分享圖片![
技術分享圖片
13、編寫腳本/bin/per.sh,判斷當前用戶對指定的參數文件,是否不可讀並且不可寫
技術分享圖片
技術分享圖片
14、編寫腳本/root/bin/excute.sh ,判斷參數文件是否為sh後綴的普通文件,如果是,添加所有人可執行權限,否則提示用戶非腳本文件
技術分享圖片
技術分享圖片
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!”
技術分享圖片
19、編寫用戶的環境初始化腳本reset.sh,包括別名,登錄提示vim /root/bin/reset.sh
技術分享圖片

Linux腳本?正則?練習