1. 获取超级管理员权限首先,我们需要获取超级管理员权限,执行以下命令:sudo -i2. 设置用户权限将username替换为你的用户名,执行以下命令,将用户添加到/etc/sudoers.d/root文件中:echo ‘username ALL=(ALL:ALL) NOPASSWD:ALL’ | sudo tee -a /etc/sudoers.d/root3. 开启超权限登录接下来,我们需要修改/etc/ssh/sshd_config文件,开启超权限登录。执行以下命令:sudo sed -i -e ‘s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g’ -e ‘s/#PasswordAuthentication yes/PasswordAuthentication yes/g’ /etc/ssh/sshd_config4. 为用户设置密码将username替换为你的用户名,将password替换为你的密码,执行以下命令设置用户密码:echo username:password| chpasswd5. 重启SSH服务

这个脚本可以让你方便地更改系统时区,而不需要手动修改配置文件。首先,脚本会列出所有可用的大洲,让你选择你所在的大洲。然后,它会列出该大洲下所有可用的时区,让你选择你所在的时区。接着,脚本会备份旧的时区文件,并创建新的时区链接。最后,它会获取当前时间和新时区的时间偏移量,计算时间差,并设置系统时间。这个脚本非常方便实用,让你可以轻松地更改系统时区。如果你需要更改时区,只需要运行这个脚本,按照提示进行选择即可。脚本vim change_timezone.sh #!/bin/bash function list_timezones_by_continent() { continent=$1 echo "List of available time zones:" timedatectl list-timezones | grep "^$continent/" } echo "List of available continents:" echo "1. Africa" echo "2.

服务端下载frp并解压cd /home wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz tar -xzvf frp_0.48.0_linux_amd64.tar.gz修改配置 vim /home/frp_0.48.0_linux_amd64/frps.ini[common] bind_port = 7000 dashboard_port = 7500 token = asdasdahwuih # 请随机 dashboard_user = tioit # 请设置 dashboard_pwd = tioit # 请设置配置服务# yum yum install systemd # apt apt install systemd vim /etc/systemd/system/frps.service写入启动命令[Unit] # 服务名称,可自定义 Description = frp server After = network.target sysl

摘要:本文将指导你如何在Ubuntu系统上搭建Python3和Node.js开发环境。这两个环境在软件开发领域中非常受欢迎,无论是构建网站、应用程序还是其他类型的项目。安装Node.js和npm首先,你需要在Ubuntu上安装Node.js和npm。Node.js是一个用于构建服务器端和网络应用程序的JavaScript运行时环境。npm是Node.js的默认包管理器,用于安装、共享和管理Node.js项目中使用的代码模块。打开终端并运行以下命令:sudo apt install nodejs npm接下来,安装n模块来管理Node.js版本:sudo npm install n -g现在,安装最新的稳定版Node.js:sudo n stable安装Python3和pip要在Ubuntu上安装Python3,只需运行以下命令:sudo apt install python3接下来,安装Python包管理器pip:sudo apt install python3-pip设置pip源在/home目录下创建一个.pip文件夹,并进入文件夹创建pip.conf配置文件mkdir ~/.pip

在vs code中安装插件Remote Development首先,您需要在VSCode中安装Remote Development插件。这将允许您通过SSH连接到远程服务器并在VSCode中进行远程开发。连接到远程服务器点击VSCode右下角的连接按钮。选择remote-ssh选项。选择Add New SSH Host。按照格式输入连接信息:ssh username@ip:port,例如:ssh [email protected]。输入连接密码即可。开启密钥登录以提高安全性和便利性为了避免掉线等问题导致频繁输入密码,我们需要开启密钥登录。要在Ubuntu中开启密钥登录,您需要遵循以下步骤:在本地计算机上创建SSH密钥对(如果尚未创建):打开终端并输入以下命令:ssh-keygen # 一直按回车即可,也可以选择自定义密钥的名称和位置。将公钥上传到远程服务器:使用以下命令将公钥复制到远程服务器(将your_username和remote_host替换为实际值):ssh-copy-id your_username@remote_host # 如果报错请执行 function ssh-c

简介:在本篇博客中,我们将探讨如何使用双指针滑动窗口方法解决一个常见的字符串问题:找到给定字符串中最长无重复字符的子串长度。我们将介绍两个解决方案:通用模板版本和优化版本。问题描述:给定一个字符串,找到其中最长的无重复字符的子串。返回其长度。示例: 输入:s = "abcabcbb" 输出:3 解释:最长无重复子串为 "abc",长度为 3。解法1:双指针滑动窗口通用版本在这个解法中,我们使用双指针滑动窗口方法,同时维护一个列表str_list来存储窗口内的字符。快指针(right)遍历整个字符串,慢指针(left)始终在快指针的左侧。当遇到新字符时,将其添加到str_list中;当遇到重复字符时,将慢指针所指字符从str_list中移除,并将慢指针向右移动。在遍历过程中,我们不断更新最长无重复子串的长度。class Solution: def lengthOfLongestSubstring(self, s: str) -> int: str_list = [] left, right, res

简介:在这篇博客中,我们将学习如何使用Python的PIL库来制作简单的图片。PIL库(Python Imaging Library)是一个强大的图像处理库,可以让我们轻松地创建、编辑和保存图像。步骤1:安装PIL库首先,我们需要安装PIL库。打开终端或命令提示符,输入以下命令:pip install pillow步骤2:导入库并设置参数在Python脚本中,我们需要导入PIL库中的Image, ImageDraw和ImageFont模块。接着,设置图片的宽度、高度、背景颜色和字体颜色,文字内容。from PIL import Image, ImageDraw, ImageFont background_color = '#f1f2f6' font_color ='black' width, height = 170, 130 text1 = "两数之和" text2 = "LeetCode"步骤3:创建图片并绘制文本使用Image.new()函数创建一个新的图片对象,并使用ImageDraw.Draw()函数创建一个绘图对象。然后,设置文本的

1.两数之和from typing import List class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: """ 【空间换时间】 哈希表解法,将值与下标存在哈希表内,遍历时拿和值-当前值=目标值 再判断目标值是否存在哈希表中,如果存在直接返回 Args: nums (List[int]): _description_ target (int): _description_ Returns: List[int]: _description_ """ map = {} for index, value in enumerate(nums): result = targ

将扁平结构转换为树形结构在前端开发的过程中免不了要处理各种展示树结构的场景,后端往往是返回一整个列表让前自己处理,这里我基于 JS 和 TS 分别实现了此功能JavaScriptconst sourceList = [ { id: 1, name: 'A', parent_id: null }, { id: 2, name: 'B', parent_id: 1 }, { id: 3, name: 'C', parent_id: 1 }, { id: 4, name: 'D', parent_id: 2 }, { id: 5, name: 'E', parent_id: 2 }, { id: 6, name: 'F', parent_id: 3 }, ]; function buildTree(sourceList, parent_id = null) { const treeList = []; for (const item of sourceList) { if (parent_id === item.parent_id) {

在现代软件中我们对数据的重视程度逐渐提高,数据可谓是现代软件的灵魂,这导致我们在删除数据时不能是真正意义上的删除数据而是一种逻辑删除也叫软删除,接下来我们就来用Python实现软删除软删除 V1.0class TestModel(Model): name = models.CharField(max_length=50, null=True, verbose_name='更新人') is_valid = models.BooleanField(default=True, verbose_name='数据有效/无效', db_index=True) xm = TestModel.objects.create({'name':'小明'}) xl = TestModel.objects.create({'name':'小刘'}) TestModel.objects.count() # 2 xl.is_valid= False TestModel.objects.filter(is_valid=True).count() # 1如上操作我们就实现了最基础的数据软

摘要:本文介绍了如何使用Python实现一个基于Trie Tree的敏感词过滤器。我们将通过创建一个Trie树数据结构,向其中插入敏感词,然后检查给定文本是否包含这些敏感词。这是一种高效的文本过滤方法,可以用于各种应用场景。在处理文本数据时,我们可能需要检查文本中是否包含敏感词。这在诸如论坛、评论系统等需要内容审查的场景中尤为重要。本文将介绍如何使用Python实现一个基于Trie Tree的敏感词过滤器。定义 Trir Tree首先,我们需要创建一个Trie树数据结构。Trie树是一种用于存储字符串的树形结构,它可以高效地查询字符串是否存在于树中。为了实现Trie树,我们需要创建一个表示Trie节点的类,如下所示:class TrieNode: def __init__(self): self.children = {} self.is_end_of_word = False接下来,我们创建一个表示整个Trie树的类。这个类包含一个根节点,以及用于向树中插入字符串和搜索字符串的方法。class Trie: def __init__(se

递归实现class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: # 都结束了末尾节点就为None if l1 == None and l2 == None: return None # 补齐 [9,9,9,9] + [9] 的情况 if l1 == None: l1=ListNode(0) if l2 == None: l2= ListNode(0) # 值加 sum = l1.val + l2.val

在开发中我们极有可能遇到以下情况金额流水表 tab_money_streamIdMoneyIsPositivepush_datetimeuuid10f2020-11-11uuid5t2020-11-11这个时候我们需要统计某个用户某天一共赚了多少钱,这个时候我们使用sql来完成这件事情是非常简单的,如下:select sum( case is_positive when true then `money` else 0 end)- sum( case is_positive when false then `money` else 0 end) as balance from tab_money_stream where to_char(push_datetime, 'YYYY-MM-DD') = '2020-11-1

Pycharm设置新建文件的文件头在Python2的开发中我们通常需要在文件头部加入文件头:#!/usr/bin/env python # -*- coding: utf-8 -*-用于避免默认ascii编码对中文注释不支持导致的报错在Pycharm中有对应的设置可以直接让文件在生成时自动插入特定的文件头设置路径如下:file-->settings-->editor-->file and code templates示例模板内容#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : ${DATE} ${HOUR}:${MINUTE} # @Author : ThisIsAuthorName # @File : ${NAME}.py # @Software: PyCharm 2023.1可选模板参数${DATE} 当前系统日期 ${DAY} 每月的当前日期 ${DS} 美元符号$。此变量用于转义美元字符,使其不被视为模板变量的前缀。 ${FILE_NAME} 新文件的名称。

在处理数据时,我们经常需要将扁平结构(如数据库表中的数据)转换为树形结构。这种转换在许多场景中都非常有用,例如构建层级菜单、组织结构图或者文件系统。在本文中,我们将介绍如何使用 Python 将给定的扁平数据列表转换为树形结构。首先,我们需要一个包含节点信息的列表。列表中的每个元素都应包含一个 parent_id 属性,表示其父节点。为了简化示例,我们假设列表中的元素是字典,如下所示:source_list = [ {'id': 1, 'name': 'A', 'parent_id': None}, {'id': 2, 'name': 'B', 'parent_id': 1}, {'id': 3, 'name': 'C', 'parent_id': 1}, {'id': 4, 'name': 'D', 'parent_id': 2}, {'id': 5, 'name': 'E', 'parent_id': 2}, {'id': 6, 'name': 'F', 'parent_id': 3}, ]现在,我们将实现一个名为 build_tre