网站后台是怎么做出来的网站架构怎么看
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)
1,使用read命令获取用户输入
read命令是Shell脚本中用于从标准输入(通常是键盘)读取数据的一个内置命令。它能够将用户输入的数据赋值给一个或多个变量,从而实现与用户的交互。此外,read命令还支持多种选项来定制输入行为,例如设置提示信息、限制输入字符数、隐藏输入内容等。
read命令的基本形式如下:
read [选项] [变量1] [变量2] …
|   选项  |   描述  | 
|   -a arrayname  |   将输入的字段存储到指定的数组中  | 
|   -d delim  |   使用指定的字符作为行的结束标志  | 
|   -e  |   启用输入补全功能  | 
|   -i text  |   在输入编辑缓冲区中预置文本  | 
|   -n nchars  |   定义输入文本的长度,而不是读取整行  | 
|   -N nchars  |   定义输入文本的长度,不考虑行分隔符  | 
|   -p prompt  |   在输入前打印提示信息  | 
|   -r  |   屏蔽反斜杠\,将其作为普通字符处理  | 
|   -s  |   静默模式,不在屏幕上显示输入的字符  | 
|   -t timeout  |   指定等待输入的秒数  | 
read命令的高级用法
除了基本的输入读取外,read命令还支持一些高级用法,例如:
- 读取多行输入:可以通过循环来读取多行输入。
 - 读取文件内容:结合cat命令和管道,可以读取文件内容。
 - 定时输入:使用-t选项可以设置一个超时时间,如果在这个时间内没有输入,则自动退出。
 
实例一,获取用户输入并打印

实例二,read命令结合循环来连续获取用户输入
#!/bin/bash
 echo "输入 'exit' 来结束程序"
 while true; do
     read input
     if [ "$input" == "exit" ]; then
         break
     else
         echo "你输入的是: $input"
     fi
 done
 echo "程序已结束"

2. 使用select命令创建菜单
select 是 shell 编程中的一个命令,用于创建一个简单的菜单系统。它允许用户从一组选项中选择一个项目,并返回所选项目的索引或值。select 命令通常与 case 语句结合使用,以根据用户的选择执行不同的操作。
select 命令的基本语法如下:
select 变量 in 选项列表
 do
     命令块
 done 
- 变量:用于存储用户选择的值。
 - 选项列表:一个由空格分隔的字符串列表,表示菜单中的选项。
 - 命令块:用户选择后执行的命令块。
 
实例一,使用 select 命令创建简单菜单
#!/bin/bash
 echo "请选择一个选项:"
 select choice in "1" "2" "3"
 do
   case $choice in
     "1")
       echo "你选择了选项1"
       break
       ;;
     "2")
       echo "你选择了选项2"
       break
       ;;
     "3")
       echo "你选择了选项3"
       break
       ;;
     *)
       echo "无效的选择"
       ;;
   esac
 done
- PS3 是一个特殊的 shell 变量,用于定义 select 命令的提示符。
 - select choice in "选项1" "选项2" "选项3" "退出":创建一个包含四个选项的菜单。
 - case $choice in:根据用户的选择执行相应的命令块。
 - break:当用户选择“退出”时,退出 select 循环。
 

3. 使用dialog工具创建图形化对话框
dialog 是一个可以在Linux终端中创建图形化对话框的工具。它可以与shell脚本结合使用,以创建更友好的用户界面。以下是如何使用 dialog 工具创建各种类型的对话框。
安装dialog
apt-get install dialog
创建对话框
1. 消息框 (Msgbox)
消息框用于显示一条消息,并要求用户点击“OK”按钮确认。
dialog --title "消息框" --msgbox "这是一个消息框示例" 10 30
2. 输入框 (Inputbox)
输入框允许用户输入文本。
dialog --title "输入框" --inputbox "请输入你的名字:" 10 30 2> /tmp/input.txt
用户输入的内容会被重定向到 /tmp/input.txt 文件中。
3. 确认框 (Yes/No Box)
确认框用于显示一个带有“YES”和“NO”按钮的对话框。
dialog --title "确认框" --yesno "这是一个确认框示例" 10 30
4. 菜单 (Menu)
菜单允许用户从一组选项中选择一个项目。
dialog --title "菜单" --menu "请选择一个选项" 15 30 10 \
     1 "选项1" \
     2 "选项2" \
     3 "选项3" \
     4 "退出" 2> /tmp/menu.txt  
用户选择的选项会被写入 /tmp/menu.txt 文件中。
5. 复选框 (Checklist)
复选框允许用户选择多个选项。
dialog --title "复选框" --checklist "请选择你喜欢的水果" 15 40 5 \
     1 "苹果" on \
     2 "香蕉" off \
     3 "橙子" on \
     4 "葡萄" off 2> /tmp/checklist.txt  
用户选择的选项会被写入 /tmp/checklist.txt 文件中。
6. 单选框 (Radiolist)
单选框允许用户选择一个选项。
dialog --title "单选框" --radiolist "请选择一个选项" 15 40 5 \
     1 "选项1" on \
     2 "选项2" off \
     3 "选项3" off 2> /tmp/radiolist.txt  
用户选择的选项会被写入 /tmp/radiolist.txt 文件中。
实例一:创建一个消息框
#!/bin/bash
 dialog --title "消息框" --msgbox "这是一个消息框。" 10 30
 dialog --title "输入框" --inputbox "请输入你的名字:" 10 30 2> name.txt 
 name=$(cat name.txt) 
 dialog --title "你好" --msgbox "你好,$name!" 10 30

4,条件判断前言:关系运算符
在Shell编程中,关系运算符主要用于比较数值或字符串,以便在条件语句中进行决策。这些运算符在编写条件逻辑时非常有用,例如在if语句或while循环中。
关系运算符概述
以下是常用的关系运算符及其功能说明:
|   运算符  |   描述  | 
|   -eq  |   检测两个数是否相等  | 
|   -ne  |   检测两个数是否不相等  | 
|   -gt  |   检测左边的数是否大于右边的  | 
|   -lt  |   检测左边的数是否小于右边的  | 
|   -ge  |   检测左边的数是否大于等于右边的  | 
|   -le  |   检测左边的数是否小于等于右边的  | 
这些运算符通常用于整数比较。对于字符串比较,有其他专门的运算符。
示例代码
以下是一些使用关系运算符的示例代码:
#!/bin/bash
  # 定义两个变量 
 a=5
 b=10
# 使用if语句进行比较 
 if [ $a -eq $b ]; then
     echo "$a 等于 $b"
 else
     echo "$a 不等于 $b"
 fi
  
 if [ $a -gt $b ]; then
     echo "$a 大于 $b"
 else
     echo "$a 不大于 $b"
 fi
  
 if [ $a -lt $b ]; then
     echo "$a 小于 $b"
 else
     echo "$a 不小于 $b"
 fi
  
 if [ $a -ge $b ]; then
     echo "$a 大于等于 $b"
 else
     echo "$a 不大于等于 $b"
 fi
  
 if [ $a -le $b ]; then
     echo "$a 小于等于 $b"
 else
     echo "$a 不小于等于 $b"
 fi

注意事项
- 运算符仅适用于数字:关系运算符只能用于数字比较。如果尝试比较非数字字符串,可能会导致错误。
 - 空格:在使用关系运算符时,必须在运算符和操作数之间留有空格。例如,[ $a -eq $b ] 是正确的,而 [ $a-$b ] 则会导致语法错误。
 - 引号:在某些情况下,特别是当操作数可能是空字符串时,建议使用双引号来保护变量。例如,[ "$a" -eq "$b" ]。
 
5,条件判断
条件判断的基本语法
在Shell编程中,条件判断通常使用if语句来实现。if语句的基本语法如下:
if [ condition ]; then
     # 如果条件为真,执行这里的代码 
 else
     # 如果条件为假,执行这里的代码 
 fi
常用的条件判断
Shell中常用的条件判断包括文件判断、字符串判断和数值判断。
文件判断
- -e file: 判断文件是否存在。
 - -f file: 判断文件是否存在且为普通文件。
 - -d dir: 判断目录是否存在。
 - -r file: 判断文件是否可读。
 - -w file: 判断文件是否可写。
 - -x file: 判断文件是否可执行。
 
字符串判断
- -z string: 判断字符串是否为空。
 - -n string: 判断字符串是否非空。
 - string1 = string2: 判断两个字符串是否相等。
 - string1 != string2: 判断两个字符串是否不相等。
 
数值判断
- num1 -eq num2: 判断两个数值是否相等。
 - num1 -ne num2: 判断两个数值是否不相等。
 - num1 -gt num2: 判断num1是否大于num2。
 - num1 -lt num2: 判断num1是否小于num2。
 - num1 -ge num2: 判断num1是否大于或等于num2。
 - num1 -le num2: 判断num1是否小于或等于num2。
 
多条件判断
在Shell中,可以使用elif来进行多条件判断。语法如下:
if [ condition1 ]; then
     # 如果condition1为真,执行这里的代码 
 elif [ condition2 ]; then
     # 如果condition1为假且condition2为真,执行这里的代码 
 else
     # 如果所有条件都为假,执行这里的代码 
 fi
实例一,条件判断语句使用
#!/bin/bash
 FILE="example.txt" 
 if [ -e "$FILE" ]; then
     echo "File exists."
 else
     echo "File does not exist."
 fi
  
 STRING1="Hello"
 STRING2="World"
 if [ "$STRING1" = "$STRING2" ]; then
     echo "Strings are equal."
 else
     echo "Strings are not equal."
 fi
  
 NUM1=10
 NUM2=20
 if [ "$NUM1" -lt "$NUM2" ]; then
     echo "NUM1 is less than NUM2."
 else
     echo "NUM1 is not less than NUM2."
 fi

通过这些基本的条件判断,你可以在Shell脚本中实现复杂的逻辑控制。
