tryhackme-Cyber Security 101-Linux Shells(linux命令框)
目的:了解脚本和不同类型的 Linux shell。
任务1:Introduction to Linux Shells(Linux Shell 简介)
作为操作系统的常规用户,我们都广泛使用图形用户界面 (GUI) 来执行大多数操作。只需点击几下不同的选项,您的任务就完成了。但是,您可以通过在操作系统的 CLI 中编写命令而不是使用 GUI 来执行几乎所有任务。shell 为您在 CLI 中编写的命令提供了一些很棒的功能。这种与 OS 交互的方式更高效且对资源更友好。
假设您在一家餐厅,您的食物有两种选择。第一种选择是从菜单中点餐,服务员会上菜。第二种选择是在厨房里自己做你想要的菜。就 Linux 系统而言,这里的厨房就是操作系统,使用 OS 的 GUI 就像从菜单点菜一样,服务员会为你端上来。但是,使用 CLI 意味着您必须去厨房 (OS) 并烹饪您想要的食物。在此示例中,Shell 将通过为您提供一些食谱建议来帮助您烹饪所需的菜肴。使用 CLI 在 Linux 系统中执行操作可在执行任务时为您提供更多功能和控制。
您可能在电影中看到过黑客场景,这些场景显示了执行许多命令的酷终端。这是因为大多数 Linux 用户更喜欢通过使用 shell 在 CLI 上编写命令来执行操作,而不是使用 GUI。这个房间将教我们如何与 Linux shell 交互。我们还将探索 Linux 中可用的不同 shell,并最后编写一些 shell 脚本。
学习目标
- 了解与 Linux shell 的交互
- 使用基本的 shell 命令
- 探索可用的 Linux shell 类型
- 编写一些 shell 脚本
会议室先决条件
- Linux的基础模块
任务2:How To Interact With a Shell?(如何与 shell 交互?)
我们为这个房间准备了一台机器。 首先,让我们通过按下下面给出的 Start Machine 按钮来启动虚拟机。本机将以分屏视图启动。
如果 VM 不可见,请使用页面顶部的蓝色 Show Split View 按钮。计算机将在 GUI 中打开。您还可以使用下面的 SSH 凭据通过 Attackbox 或您自己的 VPN 连接计算机连接计算机:

计算机在分屏视图中打开后,您将准备好 shell 提示符 接受命令。

大多数 Linux 发行版使用 Bash (Bourne Again Shell) 作为其 default shell 的 shell 中。但是,当您打开 终端依赖于您的 Linux 发行版。
注意:在接下来的任务中,我们将讨论 不同类型的shell。
您可能已经探索了本房间的先决条件中提到的 Linux 基础模块中的基本 Linux 命令。让我们 简要讨论我们在 shell 中使用的一些最重要的 Shell。
与 shell 交互时,您必须位于 想要执行操作。默认情况下,当您在大多数 Linux 发行版,您将位于主目录中。要查看当前工作目录,可以执行 ,它代表打印工作目录,如下面的终端所示:pwd

在上述命令的结果中,您可以看到您当前的 working directory 为/home/user
但是,您也可以更改目录。为此,您可以使用 (Change Directory 的缩写),如下面的终端所示:cd

使用操作系统的 GUI 时,您可以看到目录的内容 在屏幕上。但是,在使用 shell 时,要查看 目录中,您必须输入以下命令:

如果要读取文件的内容,可以键入 following 命令:cat
grep 命令是 Linux 用户中非常流行的命令。这个强大的命令可以搜索文件中的任何单词或模式。假设您想在一个大文件中搜索特定条目。您可以将 grep 命令与这些条目的模式一起使用,这将为您提取它们。它还可以帮助您在大文件中搜索特定关键字。
以下终端向我们展示了如何使用 grep 命令在大文本文件中搜索单词 “THM”。输出显示包含此单词的文本文件的特定行。


任务3:Types of Linux Shells(Linux Shell 的类型)
与 Windows 操作系统中的命令提示符和 PowerShell 一样,Linux 具有不同的 可用的 shell 类型,每种类型都有自己的功能和 特性。
多个 shell 安装在不同的 Linux 发行版中。自 查看您正在使用的 shell,键入以下命令:
echo $SHELL
这里必须大写shell
您还可以列出 Linux 操作系统中的可用 shell。该文件包含 Linux 系统上所有已安装的 shell。您可以通过在终端中键入来列出 Linux 操作系统中的可用 shell:
/etc/shells
cat /etc/shells
要在这些 shell 之间切换,您可以键入 shell 名称,即 出现在您的操作系统上,它将为您打开,如下所示:
如果要永久更改默认 shell,可以使用命令:。这将使此 shell 成为终端的默认 shell。
chsh -s /usr/bin/zsh
Linux shell 有多种类型。我们将讨论其中的一些 及其功能。
Bourne Again Shell
Bourne Again Shell (Bash) 是大多数 Linux 发行版的默认 shell。当您打开终端时,bash 会让您 enter 命令。在 bash 之前,一些 shell (如 sh、ksh 和 csh)具有 不同的功能。Bash 是这些的增强替代品 shell 的 shell 中,从所有这些 shell 中借用了 shell 的功能。这意味着它具有 这些旧shell的许多特征及其一些独特的 能力。列出了 bash 提供的一些关键功能 下面:
- Bash 是一种广泛使用的 shell,具有脚本功能。
- 它提供了一个 Tab 键补全功能,这意味着如果你在 在完成命令的过程中,您可以按键盘上的 Tab 键。它会 根据可能的匹配项自动完成命令或为您提供 完成它的多个建议。
- Bash 会保留一个历史文件并记录您的所有命令。您可以使用 向上和向下箭头键使用前面的命令而无需键入 他们又来了。您还可以键入以显示您之前的所有 命令。history
友好的交互式 Shell
Friendly Interactive Shell (Fish) 在大多数 Linux 发行版中也不是默认的。顾名思义,它更侧重于 比其他 shell 用户友好。提供的一些关键功能 按鱼分类如下:
- 它提供了一种非常简单的语法,对于初学者来说是可行的 用户。
- 与 bash 不同,它对您编写的命令具有自动拼写更正功能。
- 您可以使用一些很酷的主题来自定义命令提示符 鱼。
- fish 的语法高亮功能会给 fish 的不同部分着色 命令,这可以提高 命令。它还可以帮助我们发现具有独特颜色的错误。
- Fish 还提供脚本、Tab 键补全和命令历史记录 功能,类似于此任务中提到的 shell。
Z Shell
默认情况下,大多数 Linux 发行版中不安装 Z Shell (Zsh)。它被认为是一种现代 shell,它结合了 一些以前 shell 的功能。一些主要功能 由 ZSH 提供,下面列出了:
- Zsh 提供高级 Tab 键自动补全功能,并且还能够编写 脚本。
- 就像 fish 一样,它还为命令提供自动拼写更正。
- 它提供广泛的定制,这可能会使其比其他定制慢 壳。
- 它还提供 Tab 键补全、命令历史记录功能和 其他几个功能。
不过我个人感觉,就bash用到多一点,其他使用情况并不多。
特征 | bash | fish | ZSH |
---|---|---|---|
全名 | Bash 的完整形式是 Bourne Again Shell。 | Fish 的完整形式是 Friendly Interactive Shell。 | Zsh 的完整形式是 Z Shell。 |
脚本 | 它提供广泛兼容的脚本和广泛的文档 可用。 | 与其他两个相比,它的脚本功能有限 壳。 | 它提供了出色的脚本水平,结合了传统的 具有一些额外功能的 Bash shell 的功能。 |
Tab 键补全 | 它具有基本的 Tab 键补全功能。 | 它通过根据以下因素提供建议来提供高级 Tab 键自动补全 您之前的命令。 | 它的 Tab 键补全功能可以通过使用 插件。 |
定制 | 基本级别的自定义。 | 它通过交互式工具提供了一些很好的定制。 | 通过 oh-my-zsh 框架进行高级定制。 |
用户友好性 | 它不太用户友好,但是一种传统且广泛使用的 shell 的 shell 中,它的用户非常熟悉和熟悉它。 | 它是最用户友好的 shell。 | 通过适当的定制,它可以是高度用户友好的。 |
语法高亮显示 | 语法高亮功能在此 shell 中不可用。 | 语法高亮是此 shell 中内置的。 | 语法高亮可以通过引入 一些插件。 |
选择最佳 Linux shell 取决于您的使用情况及其 特征。此任务中讨论的 shell 是众多 shell 中的一部分 Linux 中可用的不同 shell。您可以比较 这些不同的 shell 并根据您的任务选择最好的一个。
任务4:Shell Scripting and Components(Shell 脚本和组件)
shell 脚本只不过是一组命令。假设一个重复的 任务要求您使用 shell 输入多个命令。而不是 在每一次重复该任务时一个接一个地输入它们,这可能会 花更多的时间,你可以把它们组合成一个脚本。执行 所有这些命令,您将只执行脚本,而所有 命令。前面提到的所有 shell 任务具有脚本功能。脚本帮助我们自动执行任务。 在学习如何编写脚本之前,我们需要知道,即使 Linux shell 具有脚本功能,但这并不意味着您 只能使用 shell 制作脚本。脚本可以用各种方式完成 编程语言。然而,这个房间的范围是 Cover 使用 shell 编写脚本。
第一步是打开终端并选择一个 shell。我们走吧 使用 bash shell,这是大多数 shell 中默认且广泛使用的 shell 分布。
与我们在 shell 中键入的其他命令不同,我们首先需要 使用脚本的任何文本编辑器创建文件。该文件必须是 以 extension 命名,这是 bash 脚本的默认扩展。 以下终端显示脚本文件的创建:.sh
每个脚本都应该从 shebang 开始。Shebang 是 在脚本开头添加的一些字符,从 with 后跟执行时要使用的解释器的名称 剧本。当我们在 bash 中编写脚本时,让我们将其定义为 Shebang 的翻译。#!
我们现在都准备好编写我们的第一个脚本了。有一些 脚本的基本构建块共同构成了高效的 脚本。让我们学习并利用这些脚本结构来编写一个 编写脚本。
要执行脚本,我们首先需要确保脚本具有 执行权限。要向脚本授予这些权限,我们可以 在我们的终端中键入以下命令:
现在脚本具有执行权限,之前使用 用于执行它的脚本名称。我们使用 before the script 来运行,而不是直接键入脚本名称,因为 shell 会告诉 shell 执行当前目录中存在的文件。如果未在脚本名称之前定义,则 shell 将在 PATH 环境变量(包含除当前目录之外的所有目录)中搜索脚本,并且不会在任何这些目录中找到定义的脚本并生成错误。下面的终端显示了 我们利用了变量:
./
循环
Loop,顾名思义,是重复的东西。为 例如,您有一个包含许多朋友的列表,并且您希望向他们发送 相同的消息。您可以制作一个循环,而不是单独发送它们 在你的脚本中,将你的好友列表提供给 Loop 和 Message 中,然后 它会将该消息发送给您所有的朋友。
对于循环的一般解释,让我们编写一个循环,它将 在屏幕上显示从 1 到 10 开始的所有数字:
# Defining the Interpreter
#!/bin/bash
for i in {1..10};
do
echo $i
done
第一行包含将从 1 迭代到 10 的变量,并且 每次都执行以下代码。 指示循环的开始 code 并指示结束。在它们之间,我们想要的代码 execute 的 intent 来写入。for 循环将采用每个数字 ,并将其分配给每次迭代中的变量。将在每次迭代时显示此变量的值。i
do
done
i
echo $i
现在,让我们在执行脚本后执行脚本 许可。
上述终端的输出被剪切成数字,仅用于演示。但是,当根据脚本的逻辑执行时,它将显示 中的数字。
3
1 to 10
条件语句
条件语句是脚本编写的重要组成部分。他们提供帮助 仅当满足条件时,您才执行特定代码; 否则,您可以执行另一个代码。假设您想创建一个 向用户显示密钥的脚本。但是,您希望它被显示给 仅部分用户,仅对高权限用户。您将创建一个 conditional 语句,该语句将首先询问用户的姓名,如果 该名称与 High Authority 用户的名称匹配,则会显示 秘密。
# Defining the Interpreter
#!/bin/bash
echo "Please enter your name first:"
read name
if [ "$name" = "Stewart" ]; thenecho "Welcome Stewart! Here is the secret: THM_Script"
elseecho "Sorry! You are not authorized to access the secret."
fi
上面的脚本将用户名作为输入,并将其存储到 变量(在 Variables 部分中研究)。条件语句 以 if 开头,并将该变量的值与字符串进行比较 斯图尔特;如果匹配,它将向用户显示密钥,或者 否则它不会。fi 用于结束 for 循环。
以下是显示用户 name 与脚本中定义的 authorized 匹配:
但是,以下终端显示了当 用户名与脚本中定义的 authorized 用户名不匹配:
评论
有时,代码可能非常冗长。在此方案中,代码 当您一段时间后查看它或与之分享时,可能会让您感到困惑 有人。解决此问题的一种简单方法是在 代码的不同部分。评论是我们写的一句话 我们的代码只是为了我们的理解。它用 # sign 后跟一个空格和您需要编写的句子。为 #示例,让我们重写我们在条件 statements 部分并为其添加注释。
# Defining the Interpreter
#!/bin/bash# Asking the user to enter a value.
echo "Please enter your name first:"# Storing the user input value in a variable.
read name# Checking if the name the user entered is equal to our required name.
if [ "$name" = "Stewart" ]; then# If it equals the required name, the following line will be displayed.
echo "Welcome Stewart! Here is the secret: THM_Script"# Defining the sentence to be displayed if the condition fails.
elseecho "Sorry! You are not authorized to access the secret."
fi
了解带有注释的脚本看起来有多容易。注释不会影响 任何脚本的 working 工作。一个好的脚本总是有一些注释。这 上面显示的示例包含每行的注释。这只是一个 更好地解释了它的概念。但是,最好的方式是包括 comments 是在 脚本。
注意:其他类型的变量、循环和 条件语句也可用于完成不同的任务。 此外,还可以在单个 评论。然而,这不是这个房间的范围。
并没有什么特别东西
任务5:The Locker Script(储物柜脚本)
在上一个任务中,我们研究了变量、循环和条件 语句。让我们使用这些知识创建一个 shell 脚本。
要求
用户在银行中有一个储物柜。为了保护储物柜,我们必须拥有 一个在打开用户之前验证用户的脚本。什么时候 执行时,脚本应询问用户的姓名、公司名称、 和 PIN 码。如果用户输入以下详细信息,则应为 允许他们进入,否则应拒绝他们访问。
- 用户名:John
- 公司名称:Tryhackme
- 密码:7385
脚本
# Defining the Interpreter
#!/bin/bash # Defining the variables
username=""
companyname=""
pin=""# Defining the loop
for i in {1..3}; do
# Defining the conditional statementsif [ "$i" -eq 1 ]; thenecho "Enter your Username:"read usernameelif [ "$i" -eq 2 ]; thenecho "Enter your Company name:"read companynameelseecho "Enter your PIN:"read pinfi
done# Checking if the user entered the correct details
if [ "$username" = "John" ] && [ "$companyname" = "Tryhackme" ] && [ "$pin" = "7385" ]; thenecho "Authentication Successful. You can now access your locker, John."
elseecho "Authentication Denied!!"
fi
脚本执行
任务6:Practical Exercise(实践练习)
我们在附加的 Ubuntu 的默认用户目录中放置了一个脚本 机器。此脚本在所有文件中搜索特定关键字 (带有.log扩展名)在特定目录中。/home/user
注意:脚本内需要进行一些更改 文件。当您按照任务 #2 中的说明打开计算机时,您将能够以普通用户的身份获得会话。但是,我们建议您成为 root 用户,以便在给定目录的所有文件中搜索该标志。 要成为其中一员,您只需键入以下命令并输入用户的密码:
- 标志: thm-flag01-script
- 目录:/var/log
grep “cat” /var/log/authentication.log
相关文章:
tryhackme-Cyber Security 101-Linux Shells(linux命令框)
目的:了解脚本和不同类型的 Linux shell。 任务1:Introduction to Linux Shells(Linux Shell 简介) 作为操作系统的常规用户,我们都广泛使用图形用户界面 (GUI) 来执行大多数操作。只需点击几…...
【Go】-限流器的四种实现方法
目录 关于限流和限流器 固定窗口限流器 滑动窗口限流器 漏桶限流器 令牌桶限流器 总结 关于限流和限流器 限流(Rate Limiting)是一种控制资源使用率的机制,通常用于防止系统过载和滥用。 限流器(Rate Limiter)是…...
精准识别花生豆:基于EfficientNetB0的深度学习检测与分类项目
精准检测花生豆:基于EfficientNet的深度学习分类项目 在现代农业生产中,作物的质量检测和分类是确保产品质量的重要环节。针对花生豆的检测与分类需求,我们开发了一套基于深度学习的解决方案,利用EfficientNetB0模型实现高效、准…...
【信息系统项目管理师】第11章:项目成本管理过程详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 一、规划成本管理1、输入2、工具与技术3、输出二、估算成本1、输入2、工具与技术3、输出三、制定预算1、输入2、工具与技术3、输出四、控制成本1、输入2、工具与技术3、输出一、规划成本管理 定义:规划成本管…...
微信流量主挑战:用户破16!新增文档转换(新纪元3)
朋友们,报告好消息!我的小程序用户数量已经涨到16个了!没错,真没拉朋友圈亲戚好友来撑场子,全靠实力(和一点点运气)吸引了16位陌生小伙伴光临!这波进步,连我自己都感动了…...
DFS【东北大学oj数据结构11-2】C++
题面 深度优先搜索(DFS)是一种基于尽可能多地访问相邻顶点策略的图搜索算法。如果顶点 v 有未搜索的顶点则递归搜索直至 v 的最后一条边。在搜索了 v 的所有边之后,搜索继续返回到找到 v 时经过的边。 搜索从原来的起点开始,直到…...
运维项目部署的环境准备
这里用的安装工具是yum,yum作为一个安装工具,用起来比较方便 用yum安装以下软件,组成项目的可运行环境 yum 先更新 yum update -y 安装一个外置仓库 yum install epel-release 安装redis yum install redis 安装nginx yum install nginx 安装vim yum install vim…...
URDF文件中inertial数据的描述坐标系说明
这件事的来源是这样的:结构手动把连杆坐标系下描述的惯性张量数据写入了urdf中,给我到以后发现有问题,给我搞懵了,以为我错了这么多年,于是有了本次的深度调研,先上结论,感兴趣的可以参考后文。…...
OpenCV-Python实战(5)——图形绘制基础
一、直线 cv2.line(img*,pt1*,pt2*,color*,thickness*,lineTypeLINE_8) img:绘图的背景(画布)。 pt1、pt2:始/终点坐标,格式为元组()。 color:直线颜色,BGR格式。 t…...
科技云报到:人工智能时代“三大件”:生成式AI、数据、云服务
科技云报到原创。 就像自行车、手表和缝纫机是工业时代的“三大件”。生成式AI、数据、云服务正在成为智能时代的“新三大件”。加之全球人工智能新基建加速建设,成为了人类社会数字化迁徙的助推剂,让新三大件之间的耦合越来越紧密。从物理世界到数字世…...
HarmonyOS NEXT 实战之元服务:静态案例效果(二)
背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图代码案例如下: Index里面实现 import { authent…...
Qt学习记录
Qt学习记录 Qt6读取GBK文件 在Qt5中,有QTextCodec模块,支持各种编码设置。 // Qt5 QCoreApplication a(argc, argv); auto desk QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); QFile file(QDir(desk).filePath("test.tx…...
用于汽车碰撞仿真的 Ansys LS-DYNA
使用 Ansys LS-DYNA 进行汽车碰撞仿真汽车碰撞仿真 简介 汽车碰撞仿真是汽车设计和安全工程的一个关键方面。这些仿真使工程师能够预测车辆在碰撞过程中的行为,从而有助于改进安全功能、增强车辆结构并符合监管标准。Ansys LS-DYNA 是一款广泛用于此类仿真的强大工具…...
Android--java实现手机亮度控制
文章目录 1、开发需求2、运行环境3、主要文件4、布局文件信息5、手机界面控制代码6、debug 1、开发需求 需求:开发一个Android apk实现手机亮度控制 2、运行环境 Android studio最新版本 3、主要文件 app\src\main\AndroidManifest.xml app\src\main\res\layou…...
300多种复古手工裁剪拼贴艺术时尚字母、数字、符号海报封面Vlog视频MOV+PNG素材
300复古时尚大小写字母、数字、符号拼贴海报封面平面设计Vlog视频标题动画 Overlay - Cut-Out Letters Animations Pack - Animated Letters, Numbers, and Symbols 使用 Cut-Out Letters Animations Pack 提升您的内容!包含 300多个高品质动画资源,包括…...
免押租赁系统的优势与应用解析
内容概要 免押租赁系统,听上去是不是很未来?其实,它的基本概念就是在租赁过程中,消费者无需交付押金,直接使用所租物品。这样一来,不仅降低了租赁的门槛,也让许多想尝试的用户能够更轻松地参与…...
feign 针对某一个特定接口设置超时时间
一、对feign所有接口设置超时配置 如果是当前feign所有接口的超时配置,需要在 FeignClient 的 configuration 属性中设置。 详情见: https://blog.csdn.net/sinat_32502451/article/details/136884349 二、针对某一个特定接口设置超时时间 调用 feig…...
Chrome被360导航篡改了怎么改回来?
一、Chrome被360导航篡改了怎么改回来? 查看是否被360主页锁定,地址栏输入chrome://version,看命令行end后面(蓝色部分),是否有https://hao.360.com/?srclm&lsn31c42a959f 修改步骤 第一步:…...
GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily
“LeetTalk Daily”,每日科技前沿,由LeetTools AI精心筛选,为您带来最新鲜、最具洞察力的科技新闻。 GitLab作为一个广受欢迎的开源代码托管平台,近期宣布将停止服务中国大陆、澳门和香港地区的用户提供服务。根据官方通知&#x…...
Linux系统和makefile详解
### Linux系统详解 Linux是一个开源且功能强大的操作系统内核,自1991年由林纳斯托瓦兹首次发布以来,它已经成为全球最流行的操作系统之一。Linux的核心特性包括开源、多用户多任务、高稳定性与安全性,以及良好的跨平台能力。 1. **开源**&a…...
基于导频方法的MIMO信道估计详解
多输入多输出(MIMO)技术作为现代无线通信系统的核心,通过利用多天线阵列在发射端和接收端同时传输和接收多个数据流,显著提高了系统的频谱效率和数据传输速率。然而,MIMO系统的性能在很大程度上依赖于对信道状态的准确…...
#!/bin/bash^M 坏的解释器:没有哪个文件或者目录
#!/bin/bash^M 坏的解释器:没有哪个文件或者目录 问题背景问题分析问题解决dos2unixsedvim编辑器(推荐)在Windows上转换文件格式 最后 问题背景 工作中,在Windows上编写的shell脚本上传到Linux服务器,在执行的时候提示…...
aj-report本地前后端分离部署运行
github项目地址 aj-report-mine 在源代码v1.4版本基础上,本地进行前后端分离部署开发 这里我是进行了整合,把自己在拉取源代码到成功运行过程中的一些东西直接整合,根据下面的步骤即可成功运行 资源获取 夸克网盘(16-github-aj-report-re…...
1435A 信号发生器
1435A 信号发生器 1435系列信号发生器基于创新的技术实现了性能、经济性和体积重量的平衡设计。具有优良的频谱纯度,单边带相位噪声1GHz载波10kHz频偏达到-136dBc/Hz,10GHz载波10kHz频偏达到-116dBc/Hz;具有高功率输出和大动态范围ÿ…...
计算机组成原理的学习笔记(9)-- CPU·其一 CPU的基本概念/流水线技术/数据通路
学习笔记 前言 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。 CPU(中央处理器) 1. 组成 定义:计算机的核心部件,负责执行指令和处理数据。 组成部分: 核心:多个处…...
【Python】 -- python3 读取 aws athena 表数据
目录 1、环境准备 2、安装环境 3、举例查询某张表数据和执行 add partition 操作 3.1、编辑文件 athena_jdbc.py 3.2、查找 JVM 的动态链接库路径 3.3、保存文件,执行以下命令 1、环境准备 oracle jdk 11centos 8依赖:pandas、pyathenajdbc 和 sq…...
子网掩码计算route命令
子网掩码 - 站长工具 1.子网掩码 子网掩码就是用来遮掩IP地址并划分网段的工具,根据遮掩的位数不同来划分不同的网段。 2.网关 网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用…...
店铺营业状态设置
admineShopController RestController("admineShopController") RequestMapping("/admin/shop") Api(tags "店铺相关接口") Slf4j public class ShopController {//设置一个常量 因为经常使用public static final String KEY "SHOP-ST…...
JavaWeb 开发基础入门
在当今互联网时代,JavaWeb 开发是构建各类网络应用的核心技术之一。无论是大型企业级应用,还是小型的个人网站,JavaWeb 都展现出强大的生命力。今天,就让我们一起踏入 JavaWeb 开发的基础入门之旅。 一、认识 JavaWeb JavaWeb 是…...
Unity Dots理论学习-2.ECS有关的模块(1)
Unity的实体组件系统(ECS)是支撑DOTS模块和技术的面向数据架构。ECS为Unity中的内存数据和runtime进程调度提供了高度的控制和确定性。 ECS for Unity 2022 LTS 配备了两个兼容的物理引擎,一个高级的Netcode package,以及一个用来…...
CentOS下安装RabbitMQ
提示:“奔跑吧邓邓子” 的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如 IBM System 3650 M5)、云服务平台(如腾讯云、华为云)、服务器软件(如 Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker 等)、开发工具(如 Gi…...
【JAVA高级篇教学】第四篇:MySQL 5.7 与 MySQL 8 的区别
MySQL 是最流行的开源数据库管理系统之一,而 MySQL 8 的发布相较于 MySQL 5.7 带来了大量的改进与功能增强。 目录 一、性能改进 二、功能增强 三、安全性 四、开发体验 五、默认排序规则 六、支持的排序规则数量 七、区分敏感性(Sensitivity&…...
【Git】-- 版本说明
Alpha:是内部测试版,一般不向外部发布,会有很多 Bug .一般只有测试人员使用。Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台…...
Flink优化----FlinkSQL 调优
目录 FlinkSQL 调优 1 设置空闲状态保留时间 2 开启 MiniBatch 3 开启 LocalGlobal 3.1 原理概述 3.2 提交案例:统计每天每个 mid 出现次数 3.3 提交案例:开启 miniBatch 和 LocalGlobal 4 开启 Split Distinct 4.1 原理概述 4.2 提交案例&…...
云上「算力浪费」,正在掣肘企业应用落地。
投入算力,真的能换来利润吗?这是每个想“入局”大模型的企业都会思考的问题。 人工智能行业一直困于成本,无论从模型训练到推理,都充满了“烧钱”的气息。无法避免的高昂算力,成为企业入局大模型的“铁门槛”。 据多…...
科技创新 数智未来|清科·沙丘投研院走进竹云
12月20日,清科沙丘投研院带领企投家团队走进竹云交流分享,聚焦技术创新、企业数字化管理、行业前沿应用案例等热点议题,深入探讨数字技术如何点燃企业高质量发展的澎湃动力,共话企业数字化、智能化发展之道。 达晨财智股权管理部…...
spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。
目录 一、根据名字进行自动装配--byName 二、根据类型进行自动装配 byType 本文章主要是介绍spring的自动装配机制, 用代码演示spring如何根据名字进行自动装配、如何根据类型进行自动装配。代码演示,通俗易懂。 一、根据名字进行自动装配--byName Us…...
EDGE浏览器每次关闭时再次打开保存的密码就消失如何解决
文章目录 EDGE浏览器每次重启的时候保存的密码都消失如何解决? 打开EDGE浏览器点击三个点 点击设置 点击隐私、搜索和服务 找到选择每次关闭浏览器时要清除的内容 将开启的关闭即可...
Python - 获取当前函数中的所有参数信息(名称和值)
代码 import inspect import randomclass P:def start(self, p1, p2, p3None, p4None):arg_info inspect.getargvalues(inspect.currentframe())kwargs arg_info.locals # 获取到所有参数print(kwargs)del kwargs["self"]try:self._start(**kwargs)except Except…...
pyqt5冻结+分页表
逻辑代码 # -*- coding: utf-8 -*- import sys,time,copy from PyQt5.QtWidgets import QWidget,QApplication, QDesktopWidget,QTableWidgetItem from QhTableWidgetQGN import Ui_QhTableWidgetQGN from PyQt5.QtCore import Qt from PyQt5 import QtCore, QtGui, QtWidgets…...
uniapp中实现APP调用本地通知栏通知、震动、本地提示音或者mp3提醒
要在uniapp中实现APP调用本地通知栏通知、震动和本地提示音或者mp3提醒,你可以使用uni-app提供的原生API和插件来实现。 通知栏通知: 你可以使用uni-app的原生API uni.showToast() 或者 uni.showModal() 来实现通知栏通知的功能。可以在需要发送通知的地…...
JS 数组创建、访问、常用方法
文章目录 创建访问常用属性和相关方法1. length 长度属性2. push() 新增元素 - 末尾添加3. unshift() 新增元素 - 开头添加4. pop() 移除元素 - 末尾删除5. shift() 移除元素 - 开头删除6. concat() 复制数组后新增7. slice() 复制数组8. splice() 增删改9. toString() 转字符串…...
【C++】ceil 和 floor 函数的实现与分析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯ceil 和 floor 函数的基础介绍1. ceil 函数定义与功能示例代码输出结果功能分析使用场景 2. floor 函数定义与功能示例代码输出结果功能分析使用场景 💯自行实现…...
每天40分玩转Django:Django类视图
Django类视图 一、今日学习内容概述 学习模块重要程度主要内容类视图基础⭐⭐⭐⭐⭐View类、URLconf配置通用视图⭐⭐⭐⭐⭐ListView、DetailView等Mixin机制⭐⭐⭐⭐多重继承、功能组合自定义类视图⭐⭐⭐⭐视图定制、方法重写 二、类视图基础 2.1 基本类视图 # views.py…...
运动控制卡网络通讯的心跳检测之C#上位机编程
本文导读 今天,正运动小助手给大家分享一下如何使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能。 01 ECI2618B硬件介绍 ECI2618B经济型多轴运动控制卡是一款脉冲型、模块化的网络型运动控制卡。控制卡本身最多支持6轴,可扩展至12轴的运动控制…...
秒验简介与下载说明
秒验简介与下载说明 产品概述 秒验是一款帮助开发者实现一键验证功能的产品,从根源上降低企业验证成本, 有效提高拉新转化率,降低因验证带来的流失率,3秒完成手机号验证 SDK信息 下载SDK 下载地址 SDK提供Maven和pod引入两种方…...
Redis中的数据类型
文章目录 前言一、字符串(String)应用场景常用命令 二、哈希(Hash)应用场景常用命令 三、列表(List)应用场景常用命令 四、集合(Set)应用场景常用命令 五、有序集合(Sort…...
esp8266_TFTST7735语音识别UI界面虚拟小助手
文章目录 一 实现思路1 项目简介1.1 项目效果1.2 实现方式 2 项目构成2.1 软硬件环境2.2 完整流程总结(重点整合)(1) 功能逻辑图(2) 接线(3) 使用esp8266控制TFT屏(4)TFT_espI库配置方法(5) TFT_esp库常用代码详解(6)TFT屏显示图片(7) TFT屏显示汉字(8) …...
RTOS 基础知识
**实时操作系统(RTOS, Real-Time Operating System)**是一种专为实时性要求设计的操作系统,具有确定性和高效性。RTOS 的系统架构围绕任务调度、时间管理和资源管理展开,以确保系统能够在规定时间内响应外部事件。以下是RTOS的系统…...
【 thefuck 安装与使用】Linux 终端自动纠错工具:一头GitHub上的“草泥马“ - thefuck,妈妈再也不用担心我打错命令行了!
目录 快速安装使用 . 1.简介 2.安装 3.配置 4.补充 官方盗料参考 快速安装使用 快速安装使用,四步即可: #Ubuntu/Debian系统 sudo apt update sudo apt install python3-dev python3-pip sudo pip3 install thefuck #编辑bashrc配置文件 vim ~/.bashrc…...