Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103063751
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2007-04-29 08:09:34

 
透过 Google AdSense 使您的网站产生收益
                 ###############################
                 # 程序名   : 系 统 管 理      #
                 # 版本     : 1.0              #
                 # 编写日间 : 2000.02.25       #
                 # 程序设计 : Hbczjzc          #
                 # Email    : hhh_kkk@21cn.com #
                 ###############################
trap '' 1 2 3 15
USER=chuxu
FBXS=`tput smso`
QXSX=`tput rmso`
OFF=off
ERRUSER=tty
ACTI=respawn
com=注册用户
color1=`setcolor -r yellow red`
color2=`setcolor -r yellow magenta`
color3=`setcolor -r hi_white blue`
export com color1 color2 color3 OFF ACTI USER
setcolor -n
tty >;list_termi
l /unix >;/tmp/check_unix
unix_stat=`cat /tmp/check_unix | awk '{print $5}'`  
termial=`cat list_termi | awk '{print $1}'`  
pass=` awk ' { nc+=length($0) } END {print nc+NR}' /etc/xtgl`
colorset1()
{
echo "$color1"
}
colorset2()
{
echo "$color2"
}
colorset3()
{
echo "$color3"
}
getc()
{
        stty raw
        tmp=`dd bs=1 count=1 2>;/dev/null`
        eval $1='$tmp'
        stty cooked
}
getchar()
{
        stty raw
        tmp=`dd bs=1 count=5 2>;/dev/null`
        eval $1='$tmp'
        stty cooked
}
getyn() {
        while        read yn
        do        case $yn in
                [yY])        return 0                         ;;
                [nN])        return 1                        ;;
                *)        prompt
                        read key
                        return 1 ;;
                esac
        done
}
error() {
        echo "\n"
        echo "\007\n\t\t       ? 非  法  选  择!"
                colorset1
                  prompt
                  getc key
        return 0
}

prompt() {
        echo "\n\n\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
}
prom() {
        colorset2
        echo "\n\n\n\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        read key
}
check_pass()
{
        clear
  echo "管    理    员:[${FBXS}Admin${QXSX}]\n"
        #stty -echo
  echo "请 输 入 密 码:[*****]"
        setcolor -b black -k black
        echo "\c "
        #read password
        getchar password
        if [ $password = "${pass}" ]
        then
        setcolor -b black -k white
        #stty echo
        user_menu
        #mkuser
        return 0
        else
        setcolor -b black -k white
        #stty echo
  echo "\007${FBXS}密码错误!${QXSX}\b\c"
        fi
        sleep 2
}
creat_user ()
{
sort +2 -n -t: /etc/passwd >;/etc/passwd.sort
uid=`tail -1 /etc/passwd.sort | awk -F: '{print $3}'`
uid=`expr $uid + 1`
                if [ $uid -lt 100 ]
                then
                #echo "\n\n\n\007${FBXS}Passwd 文件错误!!!${QXSX}"
                #return 1
                uid=200
                export uid
                echo "\n\n\n请稍后......\c"
/etc/useradd -m -d ${home} -s ${newshell} -u ${uid} -G ${GROUP} -c "${com}" ${user} >;/dev/null 2>;&1
                passwd -d $user >;/dev/null 2>;&1
                else
                echo "\n\n\n请稍后......\c"
/etc/useradd -m -d ${home} -s ${newshell} -u ${uid} -G ${GROUP} -c "${com}" ${user} >;/dev/null 2>;&1
#cp /etc/group /etc/group-
#sed -e '/:50:/ s/\(.*\)/\1,'$user'/' /etc/group- >; /etc/group
passwd -d $user >;/dev/null 2>;&1
                fi
}
adduser()
{
#        [ $# -lt 1 ] && {
        #echo "\n\n\n调用格式: 用户注册名[ 注释内容 ]"
        #return 1
                        #}
user=$1
newshell=$2
GROUP=$3
home=/usr/$1
    echo -n "\n\n是否创建 ${FBXS}$user${QXSX} 用户(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) creat_user ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
}
mkuser ()
{
                        colorset1
                 clear
                echo "\n\n"
                echo "请 输 入 新 用 户 名: \c"
                read user
                #user=${user:-"error.user"}
                if [ "$user" ]
                then
                :
                else
                return 0
                fi
a=`awk -F: '$1=="'$user'" {print $1}' /etc/passwd 2>;/dev/null`
[ "$a" ] && {
echo "\007系统中已有 ${FBXS}$user${QXSX} 用户!!!\c"
        echo "\n\n\n\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        getc key
                return 0  
}
                a=`expr $user : '[a-z].*' 2>;/dev/null`
                        if [ $? != 0 ]
                        then
                        echo "\n\n\007用户名不合法!!!";
                        prompt
                        read key
                        return 0  
                                #continue
                        fi
{ [ $a -lt 3 ] || [ $a -gt 8 ] || [ `expr $user : '[^a-z0-9_]*'` -ne 0 ] ;} && {
                        echo "\n\n\007用户名不合法!!!";
                prompt
                read key
                return 0  
                }
echo -n "\n\n请输入执行的 SHELL: (1.sh 2.ksh 3.csh 4.scosh)? 【 】?\b\b\b\b\b"
        getc shell
        case $shell in
        1) shell=/bin/sh;export shell ;;
        2) shell=/bin/ksh;export shell ;;
        3) shell=csh;export shell ;;
        4) shell=/usr/bin/scosh;export shell ;;
        *) shell=/bin/sh;export shell ;;
        esac
        #echo "\n"
  #echo "例: ksh csh /usr/bin/scosh 缺省是 sh"
        #echo "\c "
echo "请输入该用户的属组: \c"
                read newgroup
                newgroup=${newgroup:-"group"}
g=`awk -F: '$1=="'$newgroup'" {print $1}' /etc/group 2>;/dev/null`
if [ "$g" ]
then
:
else
newgroup=group
export newgroup
fi
adduser ${user} ${shell} ${newgroup} && sleep 1 && echo "\n\n\n创建用户成功. √" || echo "\n\n\n\007创建用户失败!!!"
        prompt
        getc key
}
rmuser () {
                        colorset3
                 clear
                echo "\n\n"
                echo "请 输 入 删 除 用 户 名: \c"
                read del_user
                if [ "$del_user" ]
                then
                :
                else
                return 0
                fi
awk -F: '$1=="'$del_user'" {print $0}' /etc/passwd >;/etc/find_user 2>;/dev/null
if [ -s /etc/find_user ]
then
uid=`cat /etc/find_user | awk -F: '{print $3}'`
                if [ $uid -lt 100 ]
                then
echo "\007你不能够删除 ${FBXS}系统用户${QXSX} !!!"
                prompt
                getc key
                return 1
                else
    echo -n "\n\n是否删除 ${FBXS}$del_user${QXSX} 用户(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
echo "请稍后......\c"
userdel $del_user >;/dev/null 2>;&1 && sleep 1 && echo "\n\n\n删除用户成功. √" || echo "\n\n\n\007删除用户失败!!!"
                fi
echo "\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        getc key
else
echo "\007输入用户名错误!!!"
        prompt
        getc key
fi
}
addgroup()
{
                        colorset1
                 clear
                echo "\n\n"
                echo "请 输 入 新 用 户 组: \c"
                read add_group
                if [ "$add_group" ]
                then
                :
                else
                return 0
                fi
awk -F: '$1=="'$add_group'" {print $0}' /etc/group >;/etc/find_group 2>;/dev/null
   if [ -s /etc/find_group ]
   then
echo "\007系统中已有 ${FBXS}$add_group${QXSX} 用户组!!!"
        prompt
        getc key
   else
echo -n "\n\n是否创建 ${FBXS}$add_group${QXSX} 用户组(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
gid=`tail -1 /etc/group | awk -F: '{print $3}'`
gid=`expr $gid + 10`
echo "请稍后......\c"
/etc/groupadd -g ${gid} -o $add_group >;/dev/null 2>;&1 && sleep 1 && echo "\n\n\n创建用户组成功. √" || echo "\n\n\n\007创建用户组失败!!!"
        #group_add $add_group
        prompt
        getc key
fi
}
rmgroup () {
                        colorset3
                 clear
                echo "\n\n"
                echo "请 输 入 删 除 用 户 组: \c"
                read del_group
                if [ "$del_group" ]
                then
                :
                else
                return 0
                fi
awk -F: '$1=="'$del_group'" {print $0}' /etc/group >;/etc/find_group 2>;/dev/null
   if [ -s /etc/find_group ]
   then
                gid=`cat /etc/find_group | awk -F: '{print $3}'`
                if [ $gid -lt 51 ]
                then
        echo "\007你不能够删除 ${FBXS}系统原有${QXSX} 的用户组!!!"
                prompt
                getc key
                return 1
                else
                :
                fi
    echo -n "\n\n是否删除 ${FBXS}$del_group${QXSX} 用户组(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
echo "请稍后......\c"
groupdel $del_group >;/dev/null 2>;&1 && sleep 1 && echo "\n\n\n删除用户组成功. √" || echo "\n\n\n\007删除用户组失败!!!"
        prompt
        getc key
else
echo "\007输入用户组错误!!!"
        prompt
        getc key
fi
}
enable_termi()
{
while [ $1 ]
do
                                if [ -r "/dev/$1" -a "$1" ]
                                then
cat /etc/inittab | grep $1 >;find_tty
cat find_tty | awk '{print $1}' >;stat_tty
from ()
{
awk ' BEGIN { FS = ":" ; OFS = ":"}
{
print $3
}' stat_tty
}
from >;termial
stty=`cat termial | awk '{print $1}'`
if [ $OFF = ${stty} ]
then
                        ps -t $1 >;/tmp/pro_list  
                        list_pro=`cat /tmp/pro_list | awk '{print $1}'`  
                        for process in $list_pro
                        do
                        kill -9 $process >;/dev/null 2>;&1
                        done
                                        /usr/bin/enable $1 >;/dev/null
echo "\n"
echo  "终端 ${FBXS}$1${QXSX} 已被激活. √"
fi
if [ $ACTI = ${stty} ]
then
echo "\n"
echo "\007终端 $1 已经激活!!!!"
fi
                                else
                                echo "\n"
echo  "\007无效的 $1 终端!!!"
                                fi
                shift
done
}

enable_tty()
{
colorset2
        clear
      echo "\n"
      echo "激  活  串  口  终  端\n"
      echo "\n串  口  号 : \c"
        read termi_code
        enable_termi $termi_code
                  prompt
                  read key
}
disable_termi()
{
while [ $1 ]
do
                                if [ -r "/dev/$1" -a "$1" ]
                                then
cat /etc/inittab | grep $1 >;find_tty
cat find_tty | awk '{print $1}' >;stat_tty
from ()
{
awk ' BEGIN { FS = ":" ; OFS = ":"}
{
print $3
}' stat_tty
}
from >;termial
stty=`cat termial | awk '{print $1}'`
if [ $ACTI = ${stty} ]
then
                        ps -t $1 >;/tmp/pro_list  
                        list_pro=`cat /tmp/pro_list | awk '{print $1}'`  
                        for process in $list_pro
                        do
                        kill -9 $process >;/dev/null 2>;&1
                        done
                                        /usr/bin/disable $1 >;/dev/null
echo "\n"
echo "终端 ${FBXS}$1${QXSX} 已被关闭. √"
fi
if [ $OFF = ${stty} ]
then
echo "\n"
echo "\007终端 $1 已经关闭!!!"
fi
                                else
                                echo "\n"
                                echo "\007无效的 $1 终端!!!"
                                fi
                shift
done
}
disable_tty()
{
colorset2
clear
                              echo "\n"
                                echo "关  闭  串  口  终  端\n"
                                echo "\n串  口  号 : \c"
                                read termi_code
                        disable_termi $termi_code
                  prompt
                  read key
}
cancel_printer()
{
clear
                           echo "\n\n"
                             echo "系统将要终止打印机进程.\n"
                             lpstat -u >;/etc/pp            
                             if [ -s /etc/pp ]
                             then
                             list=`cat /etc/pp | awk '{print $1}'`
                             echo "请稍候......\n"           
                             for jjj in $list
                             do
                                  cancel $jjj
                             done
                             else
                             echo "\n"
                             echo "\007没有打印机进程!!!\n"
                             fi
                  prompt
                  read key
}
command()
{
        /usr/lib/lpadmin -p $new_printer -m epson -v /dev/lp0 2>;/dev/null
        /usr/lib/lpadmin -d $new_printer >;/dev/null 2>;&1
        /usr/lib/lpsched $new_printer >;/dev/null 2>;&1
        /usr/bin/enable $new_printer >;/dev/null 2>;&1
        /usr/bin/accept $new_printer >;/dev/null 2>;&1
}
check_stat()
{
l /unix >;/tmp/check_unix1
unix_stat1=`cat /tmp/check_unix1 | awk '{print $5}'`  
if [ $unix_stat -ne $unix_stat1 ]
then
sync;sync;sync
reboot
else
:
fi
}
add_printer()
{
                        colorset1
                 clear
                echo "\n\n"
                echo "请 输 入 新 打 印 机 名: \c"
                read new_printer
                #new_printer=${new_printer:-"printer"}
                if [ "$new_printer" ]
                then
                :
                else
                return 0
                fi
                hwconfig name=parallel >;/tmp/printer_stat
                if [ -s /tmp/printer_stat ]
                then
                :
                else
                echo "\n\n\007请先选择隐含选项 9 增加并行端口驱动程序."
                prompt
                getc key
                break
                fi
                /usr/bin/lpstat -a >;/tmp/stat_print
                hwconfig name=parallel >;/tmp/printer_stat
                list_print=`cat /tmp/stat_print | awk '{print $1}'`  
                if [ -s /tmp/stat_print and -s /tmp/printer_stat ]
                then
                echo "\n\n\007系统已存在 ${FBXS}$list_print${QXSX} 打印机!!!"
                prompt
                getc key
                else
    echo -n "\n\n是否增加 ${FBXS}${new_printer}${QXSX} 打印机(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
echo "请稍后......\c"
command && sleep 1 && echo "\n\n\n增加打印机成功. √" || echo "\n\n\n\007增加打印机失败!!!"
        prompt
        getc key
fi
}
del_printer()
{
                        colorset3
                 clear
                echo "\n\n"
                echo "请 输 入 原 打 印 机 名: \c"
                read old_printer
                if [ "$old_printer" ]
                then
                :
                else
                return 0
                fi
                /usr/bin/lpstat -a >;/tmp/stat_print
                list_print=`cat /tmp/stat_print | awk '{print $1}'`  
if [ "$list_print" = "$old_printer" ]
then
echo -n "\n\n是否删除 ${FBXS}${old_printer}${QXSX} 打印机(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
echo "请稍后......\c"
/usr/lib/lpadmin -x ${old_printer} >;/dev/null 2>;&1 && sleep 1 && echo "\n\n\n删除打印机成功. √" || echo "\n\n\n\007删除打印机失败!!!"
        prompt
        getc key
else
                echo "\n\n\007系统中没有 ${FBXS}$old_printer${QXSX} 打印机!!!"
                prompt
                getc key
fi
}
ku() {
          clear
          echo "\n\n"
          echo "请输入杀死用户名 (例: ywqt): \c"
          read user
   if [ "$user" ]
   then
   :
   else
   return 0
   fi
          who | grep $user >;/tmp/user_list
       if [ -s /tmp/user_list -a $user != "${ERRUSER}" ]
        then
ps -ef|grep $user |grep -v "grep"|awk '{print $2}'|tr '\n' '\t'|awk '{print "kill -9",$0}'|sh
echo "所有 ${FBXS}$user${QXSX} 用户的进程被杀死! √"
             prompt
             read key
        else
                        echo "\n"
echo     用户 $user 没有注册!!!
             prompt
             read key
        fi
          #set `who -H | grep $user` 2>;&1 >;/dev/null
          #set `who -u|grep $2|sort` 2>;&1 >;/dev/null
                  #if test $7
                     #then kill -9 $7 && echo "用户" $user "的进程被杀死!"
                     #else echo 用户 $user 上无进程
                  #prompt
                  #read key
                  #fi
        #fi
}

prokill() {
          clear
          echo "\n\n"
          echo "请输入终端设备名 (例: tty2a): \c"
          read ttyname
   if [ "$ttyname" ]
   then
   :
   else
   return 0
   fi
        if [ -r "/dev/$ttyname" -a "$ttyname" ]
        then
          set `who -u|grep $ttyname|sort` >;/dev/null
                if test $7
                     then
                        ps -t $ttyname >;/tmp/pro_list  
                        list_pro=`cat /tmp/pro_list | awk '{print $1}'`  
                        for process in $list_pro
                        do
                        kill -9 $process >;/dev/null 2>;&1
                        done
kill -9 $7 2>;/dev/null && echo "\n" && colorset2 ; echo "终端 ${FBXS}$ttyname${QXSX} 的进程被杀死! √"
                     else
                        echo "\n"
echo 终端 $ttyname 上无进程!!!
                  fi
                  prompt
                  read key
                                else
                                #echo "\n"
  echo "\007无效的终端!!!\n"
                  prompt
                  read key
                fi
                #ps -t tty10 >;/tmp/aaa
                #sed "/PID/d" /tmp/aaa >;/tmp/aaa.tmp
                #mv /tmp/aaa.tmp /tmp/aaa
            #read line < /tmp/aaa
            #set $line
            #kill -9 $1
}

systime() {
          clear
          echo "\n"
          echo "当前系统时间为: `date +'%Y年%m月%d日%H点%M分%S秒'`"
          echo "\n"
echo "请输入修改时间 (格式: 年月日点分):〖          〗     例:0011072142" ?
        echo "\c "
          read time
                if [ "$time" ]
                then
                :
                else
                return 0
                fi
date -t $time >;/dev/null 2>;&1 && echo "\n" && echo "现在的系统时间: `date +'%Y年%m月%d日%H点%M分%S秒'`" || echo "\n\n\007输入格式不正确!!!"
          prompt
          read key
}
pr_enable ()
{
                        colorset1
                 clear
                echo "\n\n"
        /usr/bin/lpstat -a >;/tmp/stat_print 2>;/dev/null
        list_print=`cat /tmp/stat_print | awk '{print $1}'`  
        if [ "$list_print" ]
        then
    echo -n "\n\n是否激活 ${FBXS}$list_print${QXSX} 打印机(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
        /usr/lib/lpsched $list_print >;/dev/null 2>;&1
        /usr/bin/enable $list_print >;/dev/null 2>;&1
        /usr/bin/accept $list_print >;/dev/null 2>;&1
echo "打印机已被激活!!!\c"
echo "\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        getc key
        else
        echo "\007系统中不存在并行打印机!!!\c"
echo "\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        getc key
        fi
}
pr_disable ()
{
                        colorset3
                 clear
                echo "\n\n"
        /usr/bin/lpstat -a >;/tmp/stat_print 2>;/dev/null
        list_print=`cat /tmp/stat_print | awk '{print $1}'`  
        if [ "$list_print" ]
        then
    echo -n "\n\n是否关闭 ${FBXS}$list_print${QXSX} 打印机(1/0)? 【 】?\b\b\b\b\b"
        getc opt
        case $opt in
        y|Y|1) : ;;
        n|N|0) return 1 ;;
        *) return 1 ;;
        esac
        /usr/lib/lpshut $list_print >;/dev/null 2>;&1
        /usr/bin/disable $list_print >;/dev/null 2>;&1
echo "打印机已被关闭!!!\c"
echo "\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        getc key
        else
        echo "\007系统中不存在并行打印机!!!\c"
echo "\033[7m 按  <回  车>;  继 续. \033[m ?\b\b\b\b\c"
        getc key
        fi
}
format_unix()
{
clear
colorset1
str="\n\n插入 ${FBXS}UNIX${QXSX} 磁盘,按回车开始格式化,按 q 键退出."
while true
do
  #tput smso
  echo -n $str
                #echo "\c "
                #read key
  #tput rmso
  x=" "
  read x
  if [ "$x" = "q" -o "$x" = "Q" ]
  then
     break
  else
echo -n "\n\n正在格式化......";format -f /dev/rfd0135ds18 >;/dev/null 2>;&1 && colorset2  && echo "\n\n格式化成功. √" || {
     if [ $? != 0 ]
     then
        echo "\n\n"
     str="\007盘未插好或盘已坏, 请再插盘, q 键退出, 回车键开始:\c"
        continue
     else
        break
     fi
} #echo "\n\n\n\007格式化失败!!!"
                  prompt
                            read key
                                break
     fi
done
}
format_dos()
{
clear
colorset3
str="\n\n插入 ${FBXS}DOS${QXSX} 磁盘,按回车开始格式化,按 q 键退出."
while true
do
  #tput smso
  echo -n $str
                #echo "\c "
                #read key
  #tput rmso
  x=" "
  read x
  if [ "$x" = "q" -o "$x" = "Q" ]
  then
     break
  else
echo -n "\n\n正在格式化......";/usr/bin/dosformat -f /dev/rfd0135ds18 >;/dev/null 2>;&1 && colorset2 && echo "\n\n格式化成功. √" || {
                             if [ $? != 0 ]
                             then
                                echo "\n\n"
                     str="\007盘未插好或盘已坏, 请再插盘, q 键退出, 回车键开始:\c"
                                continue
                             else
                                break
                             fi
} #echo "\n\n\n\007格式化失败!!!"
                  prompt
                            read key
                                break
     fi
done
}
print_menu ()
{
while        clear
  echo "┌────────────────────────────┐"
  echo "│                ${FBXS}打 印 机 管 理 主 菜 单${QXSX}                 │"
  echo "├────────────────────────────┤"
  echo "│                                                        │"
  echo "│                                                        │"
  echo "│            1......... 终 止 打 印 机 进 程.            │"
  echo "│                                                        │"
  echo "│            2......... 激 活 并 行 打 印 机.            │"
  echo "│                                                        │"
  echo "│            3......... 关 闭 并 行 打 印 机.            │"
  echo "│                                                        │"
  echo "│            4......... 增 加 并 行 打 印 机.            │"
  echo "│                                                        │"
  echo "│            5......... 删 除 并 行 打 印 机.            │"
  echo "│                                                        │"
  echo "│            0..........退       出.                     │"
  echo "│                                                        │"  
  echo "├────────────────────────────┤"
  echo "│                  请 选 择:【 】?                      │"
  echo "└────────────────────────────┘"
  echo "\c"  
do        getc cmd
        case $cmd in
        1)        cancel_printer                        ;;
        2)      pr_enable ;;
        3)      pr_disable ;;
        4)      add_printer                        ;;
        5)      del_printer                        ;;
        9)        mkdev parallel;check_stat        ;; #隐含选项: 设置硬件驱动程序
        0|q)        clear
                return 1 ;;
        #*)        error                ;;
        esac
done
}
termi_menu ()
{
while        clear
  echo "┌────────────────────────────┐"
  echo "│                  ${FBXS}终 端 管 理 主 菜 单${QXSX}                  │"
  echo "├────────────────────────────┤"
  echo "│                                                        │"
  echo "│                                                        │"
  echo "│            1......... 杀 死 指 定 终 端 上 的 进 程.   │"
  echo "│                                                        │"
  echo "│            2......... 关 闭 串 口 终 端.               │"
  echo "│                                                        │"
  echo "│            3......... 激 活 串 口 终 端.               │"
  echo "│                                                        │"
  echo "│            0..........退       出.                     │"
  echo "│                                                        │"  
  echo "├────────────────────────────┤"
  echo "│                  请 选 择:【 】?                      │"
  echo "└────────────────────────────┘"
  echo "\c"  
do        getc cmd
        case $cmd in
        1)        prokill                                ;;
        2)      disable_tty                        ;;
        3)      enable_tty                        ;;
        9)        mkdev serial;check_stat                ;; #隐含选项: 设置硬件驱动程序
        0|q)        clear
                return 1 ;;
        #*)        error                ;;
        esac
done
}
user_menu ()
{
while        clear
  echo "┌────────────────────────────┐"
  echo "│                  ${FBXS}用 户 管 理 主 菜 单${QXSX}                  │"
  echo "├────────────────────────────┤"
  echo "│                                                        │"
  echo "│                                                        │"
  echo "│            1......... 增 加 注 册 用 户.               │"
  echo "│                                                        │"
  echo "│            2......... 删 除 注 册 用 户.               │"
  echo "│                                                        │"
  echo "│            3......... 增 加 注 册 组.                  │"
  echo "│                                                        │"
  echo "│            4......... 删 除 注 册 组.                  │"
  echo "│                                                        │"  
  echo "│            0..........退       出.                     │"
  echo "│                                                        │"  
  echo "├────────────────────────────┤"
  echo "│                  请 选 择:【 】?                      │"
  echo "└────────────────────────────┘"
  echo "\c"  
do        getc cmd
        case $cmd in
        1)      mkuser                      ;;
        2)      rmuser                        ;;
        3)      addgroup                ;;
        4)      rmgroup                        ;;
        9)        scoadmin acc                ;; #隐含选项: 字符界面帐户管理
        0|q)        clear
                return 1 ;;
        #*)        error                ;;
        esac
done
}
drive_menu()
{
echo "\n\n\n\n\n\n            
                          请选择您所使用的软盘驱动器            
                           ┏━━━━━━━━━━┓
                           ┃                    ┃
                           ┃ 1.软盘驱动器  1.2MB┃
                           ┃                    ┃
                           ┃ 2.软盘驱动器  1.2MB┃
                           ┃                    ┃
                           ┃ ${FBXS}3.软盘驱动器 1.44MB${QXSX}┃ ?
                           ┃                    ┃
                           ┃ 4.软盘驱动器 1.44MB┃
                           ┃                    ┃
                            ┃ 0. 退   出         ┃
                           ┃                    ┃
                           ┃  请  选  择 [   ]  ┃
                           ┗━━━━━━━━━━┛"
        echo "\c "
getc DR
}
format_menu()
{
          while clear
echo "\n\n\n\n\n\n            
                          请选择您所使用的软盘驱动器            
                           ┏━━━━━━━━━━┓
                           ┃                    ┃
                           ┃ 1.软盘驱动器  1.2MB┃
                           ┃                    ┃
                           ┃ 2.软盘驱动器  1.2MB┃
                           ┃                    ┃
                           ┃ ${FBXS}3.软盘驱动器 1.44MB${QXSX}┃ ?
                           ┃                    ┃
                           ┃ 4.软盘驱动器 1.44MB┃
                           ┃                    ┃
                            ┃ 0.退   出          ┃
                           ┃                    ┃
                           ┃  请  选  择 [   ]  ┃
                           ┗━━━━━━━━━━┛"
        echo "\c "
                do getc DR
                   case $DR in
                          #1) : ;; #break ;; #format /dev/rfd096ds15
                  #prompt
                            #read key ;;
                        # 2) break ;; #format /dev/rfd196ds15
                  #prompt
                            #read key ;;
                 3) format_unix ;;
                          #4) break ;; #format /dev/rfd1135ds18
                  #prompt
                            #read key ;;
                        0|q) return 0 ;;
                        # 0) ;;
                esac
                  #;;
                done
}
disk_menu ()
{
while clear
do
colorset1
  echo "┌────────────────────────────┐"
  echo "│                 ${FBXS}磁 盘 管 理 主 菜 单${QXSX}                   │"
  echo "├────────────────────────────┤"
  echo "│                                                        │"
  echo "│                                                        │"
  echo "│            1......... 格 式 化 软 盘(${FBXS}UNIX${QXSX})             │"
  echo "│                                                        │"
colorset3
  echo "│            2......... 格 式 化 软 盘(${FBXS}DOS${QXSX})              │"
  echo "│                                                        │"
  echo "│            3......... 显 示 磁 盘 内 容(${FBXS}DOS${QXSX})           │"
  echo "│                                                        │"
colorset1
  echo "│            4......... 显 示 磁 盘 内 容(${FBXS}UNIX${QXSX})          │"
  echo "│                                                        │"  
  echo "│            0..........退       出.                     │"
  echo "│                                                        │"  
  echo "├────────────────────────────┤"
  echo "│                  请 选 择:【 】?                      │"
  echo "└────────────────────────────┘"
  echo "\c"  
getc acc
case $acc in
        1) format_menu        ;;
         2) format_dos ;;
        3)  clear
colorset3
echo "\n\n插入 ${FBXS}DOS${QXSX} 磁盘按回车,开始显示."
        echo "\c"
         read key
echo "\n" && dosdir a: 2>;/dev/null || echo "\007显示磁盘内容失败!!!"
                  prompt
                  read key
            ;;

        4)   while clear
             do
                drive_menu
                case $DR in
                 #1) Y=0 break ;;
                 #2) Y=0 break ;;
                 3) Y=0 break ;;
                 #4) Y=0 break ;;
                 0) Y=1 break ;;
                #        0|q)        clear
                #        return 1 ;;
                 #*)
        #echo "\n"
        #echo "\007\n\t\t       ? 非  法  选  择!"
                  #prompt
                  #read key
                        #;;
                esac
             done
                if [ $Y = 0 ]
                  then
                   clear
echo "\n\n\n插入 ${FBXS}UNIX${QXSX} 磁盘,按回车开始显示."
        echo "\c"
         read key
echo "\n" && tar tv 2>;/dev/null || echo "\007显示磁盘内容失败!!!"
                   prompt
                   read key
                fi
                ;;
        0)        clear
                return 1
                ;;       
esac
done
}

sysoff() {
         echo "\n\n"
         echo "现在正在使用的终端有:"
         echo "\n"
         who
         echo "\n是否关闭 UNIX ? (y/n)  \c"
if getyn
            then
                /etc/shutdown  -y -g0   
fi
}
check_user ()
{
         clear
       if who | grep $USER >;/dev/null
        then
        clear
        echo "\n\n\n"
        echo "\007\007请先退出 ${FBXS}chuxu${QXSX} 用户在关机!!!\c"
        sysoff
        #prom
        else
        sysoff
        fi
}
for code in 01 02 03 04 05 06 07 08 09 10 11 12
do
if [ /dev/tty${code} = $termial ]
then
while        clear
        colorset1
  echo "┌────────────────────────────┐"
  echo "│              ${FBXS}★  系 统 管 理 主 菜 单  ★${QXSX}              │"
  echo "├────────────────────────────┤"
  echo "│                                                        │"
  echo "│            1......... 设 置 系 统 时 间.               │"
  echo "│                                                        │"
  echo "│            2......... 打 印 机 管 理 系 统.            │"
  echo "│                                                        │"
  echo "│            3......... 终 端 管 理 系 统.               │"
  echo "│                                                        │"
  echo "│            4......... 软 盘 管 理 系 统.               │"
  echo "│                                                        │"
  echo "│            5......... 用 户 管 理 系 统.               │"
  echo "│                                                        │"  
  echo "│            6......... 关 闭 系 统.                     │"
  echo "│                                                        │"  
  echo "│            0......... 退       出.                     │"
  echo "│                                                        │"  
  echo "├────────────────────────────┤"
  echo "│                  请 选 择:【 】?                      │"
  echo "└────────────────────────────┘"
  echo "\c"  
do        getc cmd
        case $cmd in
        1)        systime                                ;;
        2)        print_menu                        ;;
        3)        termi_menu                        ;;
        4)      disk_menu                        ;;
        5)      check_pass                       ;;
        6)      check_user                      ;;
        7)      ku                                ;; #隐藏选项 杀死输入全部用户
        j)        /etc/jsq                        ;; #记算器
        0|q)        clear
                setcolor -r black white
                exit                                 ;;
        #*)        error                ;;
        esac
done
else
continue
fi
done
clear
echo "\007${FBXS}请在主控制台上运行!${QXSX}\n\n"
exit
#ps -ef -o pid=PID -o cmd=CMD|grep $name|awk '{print $1}'|kill -9

#ps -ef -o pid=PID cmd=CMD|grep $pname|awk '{print $1}'|xargs kill -9
 
阅读(3612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~