linux命令練習 指令碼實現硬碟分割槽功能

2021-09-20 19:50:17 字數 3623 閱讀 4482

練習一

要求:分別使用whil,until和for(兩種形式)迴圈實現。

for第一種形式

#!/bin/bash

# program:

# history  donggen  2016-11-08-15:55

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export path

for ((i=233;i<249;i++));do

ping -c 1 -w 1 10.109.134.$i 

p=$? 

[ $p -eq 0 ]  && echo "\033[32m10.109.134.$i\033[0m is up" || echo -e "\033[31m 10.109.134.$i \033[0m is down"

done

for第二種形式

#!/bin/bash

# program:

# history  donggen  2016-11-08-15:55

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export path

for i in ; do

ping -c 1 -w 1 10.109.134.$i &> /dev/null

result=$?

[ $result -eq 0 ] && echo -e"\033[32m 10.109.134.$i is up\033[0m" || echo -e"\033[31m 10.109.134.$i is down\033[0m"

done 

until迴圈

#!/bin/bash

# program:

# 練習使用until迴圈進行ping命令

#history  donggen   2016-11-08-17:30

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export path

declare -i i=232

until [ $i -ge 249 ] ; do

let  i+=1

ping -c 1 -w 1 10.109.134.$i &> /dev/null

result=$?

[ $result -eq 0 ] && echo -e "\033[32m10.109.134.$i is up.\033[0m" || echo -e "\033[31m10.109.134.$i is down.\033[0m"

done

while迴圈

#!/bin/bash

#program:

#練習使用while迴圈

#history  donggen  2016-11-09-08:45

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export path

declare -i  i=232

while [ $i -ge 232 -a $i -le 249 ]; do

let i++

ping -c 1 -w 1 10.109.134.$i &> /dev/null

result=$?

[ $result -eq 0 ] && echo -e "\033[32m10.109.134.$i is up.\033[0m" || echo -e "\033[31m10.109.134.$i is down.\033[0m"

done   

練習二

2、寫乙個指令碼(前提:請為虛擬機器新增一塊硬碟,假設它為/dv/sdb),為指定的硬碟建立分割槽;

1、列出當前系統上所有的磁碟,讓使用者選擇,如果選擇quit則退出指令碼;如果使用者選擇錯誤,就讓使用者重新選擇;

2、當使用者選擇後,提醒使用者確認接下來的操作可能會損壞資料,並請使用者確認;如果使用者選擇y就繼續,否則讓使用者重新選擇;

3、抹除那塊硬碟上的所有分割槽(提示,抹除所有分割槽後執行sync命令,並讓指令碼睡眠3秒

#!/bin/bash

# program:

# 練習指令碼分割槽

# history  donggen 2016-11-09-9:10

path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export path

fdisk -l 2> /dev/null | grep "^disk /dev/[sh]d[a-z]" | awk -f: ''

read -p "input your choice: " choice

if [ $choice = 'quit' ]; then

echo "choice is quiting.."

exit 6

fiuntil fdisk -l 2> /dev/null | grep -o "disk /dev/[sh]d[a-z]" | grep "^disk $choice" &> /dev/null; do

read -p "input your choice again: " choice

done

read -p "please continue y|n:" result

until [ $result == "y" -o  $result == "n" ]; do

read -p "please continue again y|n:" result

done

if [ $result == "n" ]; then

echo "quiting..."

exit 7

elif [ $result == "y" ]; then

dd if=/dev/zero of=$choice bs=512 count=1

sync

sleep 3

echo 'np1

+20mnp

2+512mnp

3+128mt3

82w'| fdisk $choice &> /dev/null

partprobe $choice

sync

sleep 3

mke2fs $1 &> /dev/null

mke2fs $2 &> /dev/null

mkswap $3 &> /dev/null

echo "$choice is fdisk ok"fi

linux命令練習 指令碼實現配置yum源

寫乙個指令碼,完成以下功能 說明 此指令碼能於同乙個repo檔案中建立多個yum源指向 1 接收乙個檔名作為引數,此檔案存放至 etc yum.repos.d目錄中,且檔名以.repo為字尾 要求,此檔案不能實現存在,否則,報錯 2 在指令碼中,提醒使用者輸入repo id 如果為quit,則退出指...

LINUX 硬碟命令

1.檢視硬碟情況 fdisk l 每個disk 為乙個硬碟 2.掛在新硬碟 fdisk dev sdb 硬碟位址 command m for help n 新建立分割槽 command action e extended e 為建立擴充套件分割槽 p primary partition 1 4 p ...

Linux 指令碼練習1

一 統計出 etc passwd檔案中其預設shell為非 sbin nologin的使用者個數,並將使用者都顯示出來 二 查出使用者uid最大值的使用者名稱 uid及shell型別 三 統計當前連線本機的每個遠端主機ip的連線數,並按從大到小排序 四 編寫指令碼 createuser.sh,實現如...