2007-06-12

Unix期末作業總整理

作業一:試找knight主機上非使用csh之帳號數
提示:使用grep 指令
輸出:僅有一個數字
限制:
1. 請以一行指令完成
2. 須排除錯誤訊息

> more /etc/passwd | grep -vc /csh
==================================================================================


作業二:試將資工94級學生帳號,複製到新主機。
使用vi編輯器
1. 將帳號前字元 d 改為 cs
2. 將HOME Directory由 /student/stu3/94/cs/dxxxxxx 路徑改為/student/94/csxxxxxx
3. 並將default shell: /bin/csh 改為 /bin/bash

> grep /stu3/94/cs/ /etc/passwd > homework.txt
:1,$ s/d/cs/g
:1,$ s/stu3\/
:1,$ s/csh/bash
==================================================================================


作業一:試找knight主機上學生目錄下core dump檔案數。
提示:使用find 指令
假設與限制:
1. 目標為 /student/stu3/94。
2. 判定方式以 “core”檔名為準。
3. 輸出僅有一個數字。
4. 請以一行指令完成並須排除錯誤訊息。

# find /student/stu3/94 -name core 2>/dev/null | wc -l
==================================================================================


作業二:試寫一shell script,能搜尋並取代所指定檔案中特定字串。
範例:./myreplace d cs file1 file2
假設與要求:共四個參數
1. d, cs 為所欲置換字串。
2. file1 為輸入檔名,以knight主機中密碼檔 (/etc/passwd) 部份內容。
3. file2 為輸出檔名。

#!/bin/bash

`sed -n 's/'$1'/'$2'/gp' $3> $4`
==================================================================================


作業:試寫一具功能選單之shell script。
Design a menu like as:
Current directory is "/student/stu4/93/cs"
1. Sum of online Users
2. List our Classmates
3. Broadcast a message to the idle Users
0. Quit
Enter choice [1]:
說明:
1. 列出目前線上使用者數目
2. 列出本班同學清單與總數
3. 廣播一警訊給idle 時間超過5 minutes的使用者
0. 離開


echo "Current directory is"$PWD

n=1

while [ "$n" -lt 10 ]
do
echo "1. Sum of online Users"
echo "2. List our Classmates"
echo "3. Broadcast a message to the idle Users"
echo "0. Quit"
echo "choice [0]:"
read choice
clear
case $choice in
0) break ;;
1)
echo "Total online number: " `who | wc -l`
;;
2)
echo "Show the online user of our classmates."
echo `who | grep pcroom`
echo "Number:"`who | grep pcroom | wc -l`;;
3) `uname > oo`
who -u | awk '{print $1, $6}' | grep -v [.] | grep -v '[0-4]:[0-9][0-9]' | awk '{print $1}' | awk '{print "`write",$1,"<> tt
`chmod 777 tt`
`./tt`
`rm tt oo`
;;
*) break ;;
esac
echo "========================================"
echo "++++++++++++++++++++++++++++++++++++++++"
echo "========================================"
echo
done

【關鍵字:Unix實務應用、劉嘉政、95-上、期末作業】

沒有留言: