shell脚本学习笔记:通过shell实现linux用户管理和监控

学习shell做的第一个脚本,感谢云知梦李强强老师的shell编程教程

  1. 创建shell脚本文件:

    touch menu.sh

    touch index.sh

    touch welcome.sh

  2. 赋予脚本文件可执行权限:

    chmod a+x menu.sh index.sh welcome.sh

  3. menu.sh
#!/bin/bash
#menu.sh
function menu(){
title="My Home"
name="Randy"
time=`date +%Y-%m-%d`
cat << qaz
#######################################################################
##  		      	    ***`echo -e "\e[32m $title \e[0m"`***                          ##
#######################################################################
##	1)Add a user                                                 ##
##	2)View all users                                             ##
##	3)Set passwd for user                                        ##
##	4)Delete a user                                              ##
##	5)Print disk space                                           ##
##	6)Print mem space                                            ##
##	7)Retrun menu						     ##
##	8)Logout                                                     ##
##	9)Quit                                                       ##
#######################################################################
##   Name:$name				Date:$time		     ##
#######################################################################
qaz
}

4.index.sh

#!/bin/bash
#index.sh
function index() {
clear
. menu.sh
menu
while true
do
	read -p "Please input a option:" option
	case $option in
		1)
			read -p "Please input username:" name
			useradd $name &>/dev/null
			if [ $? -eq 0 ];then
				echo "user ${name} is created successfully!!!"
			else
				echo "user ${name} is created failly!!!"
			fi
		;;
		2)
			str=`cat /etc/passwd | awk -F: ‘{print $1}‘`
			echo -e "\e[32m$str\e[0m"
		;;
		3)
			read -p "input the username:" name
			read -p "set password for the user:" pass
			echo $pass | passwd --stdin $name &>/dev/null
			if [ $? -eq 0 ];then
				str="${name}‘s password is set successfully"
				echo -e "\033[30;47$str\033[0m"
			else
				str="${name}‘s password is set failly!!!"
				echo -e "\033[31;47m$str\033[0m"
			fi
		;;
		4)
			read -p "delete the user:" name
			userdel -r $name &>/dev/null
			if [ $? -eq 0 ];then
				str="user ${name} is delete successfully!!!"
				echo -e "\033[30;47m$str\033[0m"
			else
				str="user ${name} is delete failly!!!"
				echo -e "\033[31;47m$str\033[0m"
			fi
                ;;
		5)
			str=`df -Th`
                	echo -e "\033[30;47m$str\033[0m"
		;;
                6)
			str=`free -m`
			echo -e "\033[30;47m$str\033[0m"
                ;;
		7)
			clear
			menu
                ;;
		8)
			echo -e "\e[31mLogout ...\e[0m"
			sleep 1
			break
		;;
                9)
                        echo -e "\e[31mQuit successfully!!!\e[0m"
                        exit
		;;
		*)
			str="Input error please re-enter"
			echo -e "\033[30;47m$str\033[0m"
		;;
	esac
done
}

5.welcome.sh

#!/bin/bash
#welcome
clear
echo -e "\e[31mWelcome\e[0m"
while true
do
read -p ‘Please enter user name (Quit please input "q") :‘ name
if [ $name = "q" ]
then
	break
else
	read -p ‘Please enter user password:‘ password
	if [ $name = ‘admin‘ ] && [ $password = ‘admin‘ ]
	then
		str="Login successfully,Please Wait ......"
		echo -e "\e[31m$str\e[0m"
		sleep 2
		. index.sh
		index
	else
	str="Login failly"
	 echo -e "\e[31m$str\e[0m"

	fi
fi
done

6.界面展示:

时间: 2024-08-05 23:40:57

shell脚本学习笔记:通过shell实现linux用户管理和监控的相关文章

Linux学习笔记(二)——Linux用户管理和权限管理

Linux系统的权限管理 Linux系统是一个多用户多任务的操作系统,多用户是指系统资源可以被不同用户各自拥有,即每个用户对自己的资源有特定的权限,用户之间互不影响.Linux系统有一套权限管理机制,文件不允许非授权用户访问或修改.这种机制的实现是通过用户和组的形式实现的. 5.1           Linux安全机制 账户管理是Linux安全机制的核心部分.登录Linux系统的用户都会被分配一个的用户账户.用户对系统上文件的访问权限取决于他们登录系统时使用的账户.每个用户的权限是通过创建用户

shell脚本学习笔记系列--1

一.学好shell编程的知识储备 1.相关Linux系统命令应用: 2.Vi/vim 编辑器的熟练使用,相关客户端软件的设置: 3.基础的服务,系统服务ntp,crond,网络服务:nfs,rsync,inotify,sersync,ssh,lanmp等. 补充:清空日志的三种方法: 1)echo  " " > filename.log 2)>filename.log 3)cat  /dev/null > filename.log 注:工作中有的时候不能删除(日志)文

shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维

前言: linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^). 安装流程:*). 安装mysql-server1). 借助yum检索相关的mysql rpm包yum search mysqlmysql-server.x86_64 正是我们想要的 2). 安装mysql-serveryum install mysql-server.x86_64 -y默认mysql-client也安装好 3). 启动mysql服务/etc/init.

shell脚本学习笔记 (sed的高级用法----模式空间和保持空间)

前段时间在学习shell脚本,上次有提到sed的模式空间和保持空间概念,但是一直没有研究好,这两天研究了一下,所以将它发出来,不是很全面,仅仅供大家参考一下. 保持空间sed在正常情况下,将处理的行读入模式空间,脚本中的"sed command(sed命令)"就一条接着一条进行处理,直到脚本执行完毕.然后该行被输出,模式被清空:接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕. 模式空间可以比喻为一个生产线,而保持空间则可以被比喻为仓库,这个比喻希望可以帮助大家理解

shell脚本学习笔记之常见语法结构用法

一,变量 1.变量赋值和替换 语法:variable=value variable="value1 value2" echo  $variable/$"{variable}"   屏幕上显示赋值 echo  $"{variable+b}"  将已经赋值的变量重新设值,临时生效 echo  $"{variable:=value} 屏幕上显示value(前提是value没有被赋值) echo  $"{variable:-value

Shell 脚本学习笔记十:Shell输入输出重定向

command > file       将输出重定向到 file. command < file       将输入重定向到 file. command >> file     将输出以追加的方式重定向到 file. n > file              将文件描述符为 n 的文件重定向到 file. n >> file             将文件描述符为 n 的文件以追加的方式重定向到 file. n >& m             

shell 脚本学习笔记--函数

一.定义格式 [function] 函数名() { 命令表 } 二.调用方法 先定义,后使用,直接输入函数名,不需要圆括号() 三.函数参数传递方法 可以利用位置参数或者变量进行传递 #! /bin/bash# myfirst.sh testFunction() { echo "$1,$2" #位置参数传递参数 echo "$val1,$val2" #变量传递参数 } val1="test1" val2="test2" tes

shell脚本学习笔记 (流编辑器sed)

sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不只支持正則表達式.它另一些比較厉害的功能. 我给出一个样例,大家看看有什么办法能够解决它吧. <html><head><title>Hello World</title> <body>Welcome to the world of regexp!&l

Shell脚本学习笔记-函数

1.  基本的脚本函数 1.1 函数的定义 function name { commands } 或者 name() { commands } 1.2 简单示例 #!/bin/sh function Func01 { echo "This is function of Func01" } Func02() { echo "This is function of Func02" } Func01 Func02 运行结果: 1.3 函数返回值与退出码 #!/bin/sh