开机自动关led灯
执行以下命令打开rc.local文件
sudo nano /etc/rc.local
在 exit 0 之前加入以下命令:
sleep 5echo none > /sys/class/leds/blue:wifi/triggerecho none > /sys/class/leds/red:os/triggerecho none > /sys/class/leds/green:internet/trigger
按 Ctrl + O 保存,然后按 Enter 确认文件名,按 Ctrl + X 退出。
树和二叉树、森林
树
树的先根遍历相当于对应的二叉树的先序遍历
树的后根遍历相当于对应的二叉树的中序遍历
查找
折半查找
low、high、mid
mid = (high - low) / 2 ,向下取整
若查找的值比mid的值大,令low=mid+1,更新mid;若比mid的值小,令high=mid-1,更新mid
二叉搜索树
左子树的所有值都小于根节点,右子树的所有值都大于根节点
平衡二叉搜索树(又叫AVL树)
在二叉搜索树的基础上满足平衡二叉树的条件,即左右子树的高度差不大于1
插入节点:插入到符合的位置,如果不平衡,往上找第一个不平衡的根节点,把这个树摘出来,进行排序,排完序再放回去
优先级队列
哈夫曼树
排序算法
快速排序
在一个数组中,找一个数为基准数,将这个数中所有比基准数大的数放在该数的右边,比基准数小的数放在该数的左边。
插入排序
将一个记录插入到已排好序的序列中,从而得到一个新的有序序列
将序列的第一个数据看成是一个有序的子序列,然后从第二个记录逐个向该有序的子序列进行有序的插入,直至整个序列有序
希尔排 ...
Linux
未读转眼间就到了2025年,这是今年的第一个博客,记录一下Linux更改docker源的方法。
编辑/etc/docker/daemon.json文件,如果没有该文件则新建,在里面添加如下内容:
{ "builder": { "gc": { "defaultKeepStorage": "500MB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.unsee.tech", "https://docker.1panel.live ...
当你通过SSH连接到Linux服务器时,你可能希望在登录后自动执行一些命令。我们可以通过编辑 .bashrc 文件来实现。
这里用 neofetch 来举例,neofetch是一个流行的命令行系统信息工具,它可以显示你的操作系统、内核版本等信息。
首先,你需要确保你的Linux服务器上已经安装了neofetch。如果没有安装,你可以通过以下命令进行安装:
apt-get install neofetch
编辑 .bashrc 文件: 打开用户的 .bashrc 文件,该文件位于用户的主目录下。
nano ~/.bashrc
如果提示 -bash: nano: command not found,说明你的系统中没有安装nano编辑器,可以运行以下命令安装nano:
apt-get install nano
添加 neofetch 命令: 在 .bashrc 文件的末尾添加以下命令:
if [ "$SSH_CONNECTION" ]; then neofetchfi
这段代码的作用是检查当前会话是否是通过 SSH 连接的,如果是,则运行 neo ...
ssh连接
打开Windows终端,输入命令:
ssh 用户名@服务器IP
用户名一般是 root
如果是第一次连接,会提示是否继续连接,输入 yes 并回车即可。
接下来输入密码,输入密码的时候不会显示任何字符,输入完成后按回车即可。
更新软件包
更新软件包列表:
sudo apt update
升级所有已安装的软件包到最新版本:
sudo apt upgrade
sudo 是 Linux 和 Unix 系统中的一个命令,代表 “superuser do”。它允许普通用户以超级用户(root 用户)的权限执行命令。使用 sudo 可以在不切换到 root 用户的情况下执行需要管理员权限的操作,从而提高了系统的安全性和管理的便利性。
安装软件sudo apt install 软件包名
例如安装nano文本编辑器:
sudo apt install nano
文件操作列出文件
语法
ls
删除文件
语法
rm [options] name…
options
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将 ...
白盒测试的优缺点?优点:
代码覆盖率高: 能够测试代码中的每一个分支和路径,确保代码的完整性。
早期错误发现: 可以在开发的早期阶段发现并修复潜在的问题,减少后期修改的成本。
优化代码质量: 通过白盒测试,可以发现代码中的不合理或低效部分,从而优化代码质量。
有助于理解代码: 测试人员需要深入理解代码逻辑,有助于提高团队对项目代码的理解和掌控。
缺点:
时间和成本高: 需要详细了解软件的内部结构,可能需要花费大量时间和精力。
对测试人员要求高: 需要测试人员具备较强的编程和分析能力。
维护复杂: 代码的变化会导致测试用例需要频繁更新,增加了维护成本。
难以覆盖所有路径: 对于复杂的应用程序,可能难以覆盖所有的代码路径,仍然可能存在遗漏的错误。
白盒测试逻辑覆盖语句覆盖:
定义: 测试用例需要覆盖所有代码中的语句,确保每个语句至少执行一次。
判定覆盖:
定义: 测试用例需要覆盖所有代码中的判定语句,确保每个判定分支至少执行一次。
条件覆盖:
定义: 测试用例需要覆盖所有代码中的条件语句,确保每个条件的每种可能情况至少执行一次。
A and B ...
大题40分(1)同步互斥(工作流程,服务人员,设备,道路)1.概述思路 2.信号量作用和初值 3.伪代码
4.关键步骤注释
概述思路同步互斥是处理多线程或多进程环境中资源共享问题的技术。在现实场景中,如工作流程、服务人员、设备和道路,同步互斥确保了资源在多个并发执行单元中的正确使用,防止了竞态条件和数据不一致的问题。
工作流程:确保各个任务按照预定的顺序执行,例如,任务B不能在任务A完成之前开始。
服务人员:在服务行业中,确保同一时间只有一个服务人员可以处理某个特定的任务或资源。
设备:在多个进程或线程需要使用同一设备时,确保设备一次只被一个进程或线程使用。
道路:在交通管理中,确保交叉路口的车流按照交通规则同步通过,避免交通事故。
信号量作用和初值信号量是一个整数变量,可以用来控制对共享资源的访问。信号量主要有两种操作:P(等待)和V(信号)。
作用:
同步:用于控制多个线程的执行顺序。
互斥:用于保证同一时刻只有一个线程可以访问共享资源。
初值:
二进制信号量(用于互斥):初始值通常设为1。
计数信号量(用于同步,如资源计数):初始值设为资源的总数。
伪代 ...
在当今互联网时代,网站的速度和安全性变得尤为重要。Cloudflare作为全球领先的网络安全和性能优化服务提供商,为用户提供了强大的工具来提升网站的性能和安全性。本文将详细介绍如何在Cloudflare中创建永久免费节点,让你的网站不仅能享受快速的访问速度,还能获得全面的安全保护。无论你是初学者还是有经验的开发者,这篇指南都将为你提供实用的步骤和技巧,帮助你轻松上手。
步骤1:注册Cloudflare账号首先,你需要注册一个Cloudflare账号。你可以通过访问Cloudflare的官方网站,进行注册。在注册过程中,你需要提供你的电子邮件地址、用户名和密码等信息。完成注册后,你将收到一封来自Cloudflare的确认邮件,需要验证你的账户以激活它。
注册完成之后会出现一个添加域名的页面,不要管他,点击左上角的cloudflare图标,进入仪表板管理页面。
进入到管理页面之后,在右上角把语言切换成简体中文。
步骤2:创建免费域名(可选)在Cloudflare中创建永久免费节点需要先创建一个域名。你可以在Cloudflare仪表板的左侧选择域注册来创建收费域名,也可以到网上找免费域名。 ...