




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一 緒論§1.1設(shè)計(jì)背景Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。它主要用于基于Intel x86系列CPU的計(jì)算機(jī)上。這個(gè)系統(tǒng)是由全世界各地的成千上萬的程序員設(shè)計(jì)和實(shí)現(xiàn)的。§1.2設(shè)計(jì)目的在Linux系統(tǒng)的/etc目錄下有這樣一個(gè)文件passwd,該文件里包含系統(tǒng)中所有用戶信息的記錄,記錄里包含每個(gè)用戶的如下信息:用戶名、密碼、用戶ID、組ID、用戶全名、用戶主目錄和用戶登錄所用的shell。請(qǐng)?jiān)O(shè)
2、計(jì)一個(gè)腳本(shell)程序能實(shí)現(xiàn)增加、刪除、查找和顯示特定用戶信息的功能。你們可以通過創(chuàng)建一些UNIX/LINUX shell 腳本文件來滿足以上需求。二 需求分析§2.1系統(tǒng)概述§2.1.1 任務(wù)概述Linux作為多用戶、多任務(wù)的操作系統(tǒng),其系統(tǒng)資源是所有用戶共享的。對(duì)用戶的管理是操作系統(tǒng)的重點(diǎn)。LINUX課程設(shè)計(jì)要用shell編程實(shí)現(xiàn),將理論學(xué)習(xí)付諸實(shí)踐。設(shè)計(jì)一個(gè)腳本(shell)程序能實(shí)現(xiàn)增加、刪除、查找和顯示特定用戶信息的功能。§2.1.2需求規(guī)定程序要包括四個(gè)文件,即menu,add,delete,passwd四個(gè)文件。passwd文件是用來保存用戶信
3、息;menu文件是主菜單,要求運(yùn)行的時(shí)候能顯示一個(gè)菜單供用戶選擇;addusers文件是用來增加信息;deluser文件是用來刪除信息。在主Shell腳本文件里(必須以 menu 命名)要有一個(gè)多操作選項(xiàng)的菜單以便用戶從中選擇。對(duì)于任務(wù)6和7,需要編寫單獨(dú)的Shell腳本文件(必須分別命名為addusers和deluser)并且在主腳本menu文件中調(diào)用這些腳本文件。§2.2功能需求在主Shell腳本文件里(必須以 menu 命名)要有一個(gè)多操作選項(xiàng)的菜單以便用戶從中選擇。在不同任務(wù)的中,這些操作能自動(dòng)實(shí)現(xiàn)以下功能:1、 在屏幕上顯示當(dāng)前所有用戶的記錄2、 在屏幕上顯示當(dāng)前所有用戶(
4、經(jīng)過格式化和排序的)的記錄3、 只在屏幕上顯示用戶名和用戶ID4、 只在屏幕上顯示(經(jīng)過格式化和排序的)用戶名和用戶ID5、 查詢并顯示特定用戶的記錄6、 往passwd文件里增加新的用戶記錄7、 從passwd文件里刪除某個(gè)用戶記錄你可以使用UNIX/LINUX中一些比較簡單的命令或命令組合來執(zhí)行1、2、3、4、5的任務(wù)。對(duì)于任務(wù)6和7,你需要編寫單獨(dú)的Shell腳本文件(必須分別命名為addusers和deluser)并且在你的主腳本menu文件中調(diào)用這些腳本文件。三 系統(tǒng)設(shè)計(jì)§3.1結(jié)構(gòu)層次圖§3.2.運(yùn)行流程 (1)總運(yùn)行流程(2)addusers模塊運(yùn)行流程(3)
5、deluser模塊用戶運(yùn)行流程四 系統(tǒng)實(shí)現(xiàn)主菜單:選擇1:打印當(dāng)前所有用戶選擇2:打印當(dāng)前所有用戶記錄(格式化后)選擇3:打印用戶名和用戶ID選擇4:打印用戶名和用戶ID(格式化后)選擇5:查詢特定用戶沒有輸入關(guān)鍵字和輸入關(guān)鍵字沒有記錄:查找到記錄:選擇6:添加用戶添加成功:用戶名無效情況:用戶名只能是數(shù)字或字母,用戶名不能為空,密碼無效:密碼不能小于,密碼不能為空,密碼只能是數(shù)字或字母,密碼必須和確認(rèn)密碼相同用戶ID無效:用戶ID不能為空,用戶ID不能小于,用戶ID只能為數(shù)字組ID無效:組ID不能為空,組ID不能小于,組ID只能為數(shù)字登錄shell無效:shell只能是bash,sh,kas
6、h,csh中的一種,shell不能空選擇7:刪除用戶查找用戶ID存在,是否要?jiǎng)h除選Y,刪除成功:用戶ID不存在和沒有輸入用戶ID情況:用戶ID存在,在確認(rèn)刪除選N和其他字符是退出: 選擇Q:退出不正確選擇:五 代碼實(shí)現(xiàn)1)主菜單代碼#! /bin/bash#刪除用戶clearecho " 用戶刪除 "echo "="while truedo read -p "輸入用戶ID:" useridsif( test expr match "$userids" "0-9*" -ne expr length
7、 "$userids" ) then echo "輸入的用戶ID只能是數(shù)字,請(qǐng)重新輸入"elif ( test -z "$userids" ) then echo "用戶ID不能為空"else breakfidonegetuserid=$( awk -F ':' ' $3 = "'$userids'" print $3 ' passwd )if ( test $getuserid ) then read -p "是否要?jiǎng)h除(Y/N):&q
8、uot; ack if (test "$ack" = "Y" ) then sed -i '/'"$userids"'/d' passwd if ( test $? -eq 0) then echo "刪除成功" else echo "刪除失敗" break fi else break fielse echo "用戶不存在"fi2)用戶添加代碼#! /bin/bashclear#用戶名echo " 新用戶添加 "echo &
9、quot;="while truedo echo -n "請(qǐng)輸入用戶名:"read username a= expr match "$username" "0-9a-zA-Z*" b= expr length "$username" if ( test $a -ne $b ) then echo "用戶名只能是數(shù)字或字母,請(qǐng)重新輸入用戶名:"elif ( test -z "$username" ) then echo "用戶名不能為空,請(qǐng)重新輸入用戶名:&
10、quot;else breakfidone#用戶密碼 while truedo read -p "請(qǐng)輸入密碼:" passwd if ( test expr match "$passwd" "0-9a-zA-Z*" -ne expr length "$passwd" ) thenecho "用戶密碼只能為數(shù)字或字母,情重新輸入密碼"elif ( test -z "$passwd" ) thenecho "用戶密碼不能為空,請(qǐng)輸入密碼"elif ( test
11、 expr length "$passwd" -lt 6 ) thenecho "密碼長度不能小于6"else read -p "請(qǐng)輸入確認(rèn)密碼:" ackpwif(test "$passwd" = "$ackpw" ) then breakelseecho "兩次的密碼不匹配"fifidone#用戶IDwhile truedo read -p "請(qǐng)輸入用戶ID:" useridif ( test expr match "$userid"
12、; "0-9*" -ne expr length "$userid" ) thenecho "用戶ID只能為數(shù)字"elif ( test -z "$userid") thenecho "用戶ID不能為空"elif ( test $userid -lt 500 ) thenecho "用戶ID不能小于500,請(qǐng)重新輸入"else breakfidone#組IDwhile truedo read -p "請(qǐng)輸入組ID:" groupidif ( test ex
13、pr match "$groupid" "0-9*" -ne expr length "$groupid" ) thenecho "組ID只能為數(shù)字"elif ( test -z "$groupid" ) thenecho "組ID不能為空, 請(qǐng)重新輸入"elif ( test $groupid -lt 500 ) thenecho "組ID不能小于500,請(qǐng)重新輸入"elsebreakfidone#登錄shellwhile truedoread -p &
14、quot;請(qǐng)輸入登錄shell(bash,sh kash,csh):" shellnameif (test "$shellname" != "bash" -a "$shellname" != "sh" -a "$shellname" != "kash" -a "$shellname" != "csh" ) thenecho "你輸入的shell名不存在本系統(tǒng)中,請(qǐng)重新輸入"else breakfidone#
15、添加用戶userinfo="$username:$passwd:$userid:$groupid:$username:/home/$username:/bin/$shellname"if ( test $? -ne 1 ) thenecho $userinfo >> passwdif ( test $? -eq 0 ) then echo "用戶添加成功"elseecho "用戶添加失敗" fifi3)用戶刪除代碼#! /bin/bash#刪除用戶clearecho " 用戶刪除 "echo "
16、;="while truedo read -p "輸入用戶ID:" useridsif( test expr match "$userids" "0-9*" -ne expr length "$userids" ) then echo "輸入的用戶ID只能是數(shù)字,請(qǐng)重新輸入"elif ( test -z "$userids" ) then echo "用戶ID不能為空"else breakfidonegetuserid=$( awk -F ':' ' $3 = "'$userids'" print $3 ' passwd )if ( test $getuserid ) then read -p "是否要?jiǎng)h除(Y/N):" ack if (test "$ack" = "Y" ) then sed -i '/'"$userids"'/d' passwd if ( test $? -eq 0) then echo &q
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建三明五縣2024~2025學(xué)年高一下冊(cè)聯(lián)合質(zhì)檢考試期中數(shù)學(xué)試題
- 時(shí)間壓力管理策略考核試卷
- 2025年中國LED雙基色異步屏數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 2025年中國EVA亮膠紙墊數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國ABS床頭帶輪鋼板條面單搖床數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 2025年中國2-巰基吡啶氧化物鈉鹽數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國高速真空油市場(chǎng)分析及競爭策略研究報(bào)告
- 2025至2030年中國防腐管接件市場(chǎng)分析及競爭策略研究報(bào)告
- 2025至2030年中國鋼膠釘市場(chǎng)分析及競爭策略研究報(bào)告
- 2025至2030年中國超音波流量計(jì)市場(chǎng)分析及競爭策略研究報(bào)告
- AQ 1066-2008 煤層瓦斯含量井下直接測(cè)定方法(正式版)
- 浙江省杭州市拱墅區(qū)部分校2023-2024學(xué)年六年級(jí)下冊(cè)期末練習(xí)卷科學(xué)試題
- 廣西壯族自治區(qū)南寧市2023-2024學(xué)年八年級(jí)下學(xué)期7月期末歷史試題(無答案)
- DL-T5344-2018電力光纖通信工程驗(yàn)收規(guī)范
- 2023年檢驗(yàn)檢測(cè)機(jī)構(gòu)質(zhì)量手冊(cè)(依據(jù)2023年版評(píng)審準(zhǔn)則編制)
- 2024年內(nèi)蒙古包頭市公安局留置看護(hù)警務(wù)輔助人員招聘筆試參考題庫附帶答案詳解
- 專利權(quán)利轉(zhuǎn)讓協(xié)議書(2篇)
- 設(shè)計(jì)服務(wù)方案投標(biāo)
- 陜西省安全生產(chǎn)條例
- 玻璃瓶裝飾行業(yè)前景分析
- 頸腰椎病預(yù)防及診治
評(píng)論
0/150
提交評(píng)論