按照 Nginx 官方的添加软件源的教程执行完命令后,运行 apt update 时会出现一条提示信息:N: 鉴于仓库 ‘http://nginx.org/packages/ubuntu jammy InRelease’ 不支持 ‘i386’ 体系结构,跳过配置文件 ‘nginx/binary-i386/Packages’ 的获取。
虽然并不会影响实际的安装与更新,但是看着特别碍眼,便从网上检索了下,解决方法如下:
执行 dpkg --print-architecture 命令查看系统架构:
按以下格式修改 /etc/apt/sources.list.d/nginx.list 文件:
1deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg, arch=系统架构] http://nginx.org/packages/ubuntu jammy nginx
保存退出后再执行 apt update 命令就看不到那条提示了。
此方法对于其他软件源也同理。
参考链接:
https://stackove ...
环境配置
未读1. 安装1234567sudo apt install vsftpdvsftpd -v # 截至本文发布日期,最新版为 v3.0.5# sudo sed -i 's/listen_ipv6=YES/listen_ipv6=NO/' /etc/vsftpd.conf # 报 500 OOPS: could not bind listening IPv6 socket 错误时执行sudo systemctl start vsftpd # 以守护进程模式运行sudo systemctl enable vsftpd # 开机自启sudo ufw allow 20:21/tcp comment FTP-Server # 放行端口
2. 认证模式vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上。
认证模式
解释
匿名开放模式
是最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
本地用户模式
是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简 ...
计算机网络
未读OpenWrt
安装ddns客户端
123opkg updateopkg install luci-i18n-ddns-zh-cnopkg install ddns-scripts-noip
添加noip服务
配置服务
用户名和秘钥从 https://my.noip.com/dynamic-dns 获取;域名必须是 all.ddnskey.com ,不能是自己在 noip 申请的域名;IP 地址来源选择网络,接口选 WAN 口:
如果 IP 更新失败,并且错误日志为 Wget Error: '6' ,可以尝试将 wget 切换成 curl,保存并应用后再切换回 wget,同时保存并应用。
Linux123456789101112131415161718192021222324# 安装wget https://www.noip.com/download/linux/latesttar-xvf latestcd noip-duc_*/binariessudo apt install ./noip-duc_*_amd64.deb# 配置服务echo NOI ...
1. TL;DR1234567891011# Nginxsudo sed -i '/http {/a server_tokens off;' /etc/nginx/nginx.confsudo nginx -s reload# Apachesudo sed -i '$a ServerTokens Prod' /etc/apache2/apache2.confsudo apache2ctl -k restart# PHPsudo sed -i 's/expose_php = On/expose_php = Off/' $(php --ini | grep Loaded | awk '{print $4}')systemctl restart phpx.x-fpm.service
2. Nginx默认情况下,Nginx 在处理 http 请求的时候会返回 server 字段,并且在404等错误页面中,会直接显示该字段的值。server 字段通常包含了服务器软件的信息,如服务器软件 ...
安装 OpenAI Python 库需要 Python 3.7+ 版本的支持:https://www.python.org/downloads/使用以下命令安装或升级已有的 OpenAI Python 库:
1python3 -m pip install --upgrade openai
注意:使用 OpenAI Python 库前请自行准备好魔法网络或者反代的 API 地址以及有效的 API Key, 这里不做过多解释。
检查版本OpenAI Python库自带了一个命令行实用程,因此可以直接在终端执行openai -V或openai --version命令检查当前版本。或者使用python解释器打印版本:
123import openaiprint(openai.__verion__)
注意:OpenAI Python 库在 v1.0.0 版本开始,整体重写了代码,已不再推荐使用openai.ChatCompletion.ChatCompletion.create这种模块化的方式来调用API了(直接使用会报错),转为鼓励使用openai.OpenAI().chat.compl ...
开发工具
未读安装Docker使用 apt 存储库安装:https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
验证安装是否成功:sudo docker run --rm hello-world
单容器实践实践流程:从 Docker Hub 拉取 nginx 镜像,创建容器并修改 nginx 的 web 页面,随后提交此容器使其成为副本并打上标签,上传到自己的 Docker Hub 账号中。
1. 拉取镜像123docker search nginx # 搜索镜像docker pull nginx # 拉取镜像docker images # 查看本地镜像, 也可使用 docker image ls 命令
2. 启动容器12docker run -d --name nginx-web -p 81:80 nginx:latestdocker ps # 查看正在运行的容器
run: 启动新容器
-d: 后台运行容器
--name: 为容器指定名称, 不指定的话docker会自动生成随机名称
-p: ...
1. Apache1.1. 安装Apache1sudo apt update && apt install apache2
1.2. 启动Apache任选一条命令启动apache:
1234apache2ctl -k startsystemctl start apache2service apache2 start/etc/init.d/apache2 start
1.3. 验证服务状态执行curl -I 127.0.0.1,能看到200状态码则说明服务正在运行。
1.4. 常见问题
启动过程若如果遇到配置文件错误的提示,执行下面这条命令可解决大部分相关问题:
1source /etc/apache2/envvars
如果已经安装了Nginx并且正在运行,则还需要修改apache默认监听端口,比如改为81:
1sudo sed -i '/^Listen 80/c\#Listen 80\nListen 81' /etc/apache2/ports.conf
去除AH00558警告:
1echo ServerName localhost ...
项目总结
尽量遵守PEP8编码规范,使代码更加整洁易读;
重点理解内容:
坐标系统: pygame中的坐标系统原点位于屏幕的左上角,向右是x轴的正向,向下是y轴的正向。所有对象的位置都是相对于原点的。
Surface对象:在pygame中,surface是一个代表图像的对象, 它是所有图像(如飞船,外星人,子弹)和图形(如绘制文本)的载体。在项目中使用了pygame.image.load('image.bmp')和pygame.font.SysFont.render(str, antialias, str_color, backgroud_color)来获取相关的surface。surface的返回值形如:<Surface(宽度x高度x颜色深度 渲染方式)>,比如飞船为:<Surface(48x48x32 SW)>。
Rect对象:Rect是Pygame中用于表示矩形区域的对象,它包含了矩形的位置和大小信息。每个surface对象都会有一个对应的rect对象,通过使用rect可以改变surface的位置,以及判断是否碰撞。在项目中使用了pyg ...
闲置的安卓手机或者平板放着也是放着, 不如拿来做LNMP服务器搭些服务, 比如搭建内网靶场。
安装Termux
Termux: https://github.com/termux/termux-app/releases
ZeroTermux: https://github.com/hanxinhao000/ZeroTermux/releases
自行选择是安装官方原汁原味的Termux还是更适合中国宝宝体质的ZeroTermux。
更换软件源执行以下命令将Termux内置软件源替换为清华大学镜像源:
12sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.listpkg update && pkg upgrade -y
配置SSH手机上敲命令太慢了, 推荐在手机上配置SSH服务器然后用电脑连接过去进行操作:
12345 ...
1. 变量和简单的数类型1.1 变量和字符串变量指向一个特定的值,是一个可被赋值的标签。字符串就是一系列用单引号或双引号包裹的字符。
演示代码:
12name = 'mkbk' # 字符串变量print(f"hello {name}") # 输出 f 字符串
运行结果:
1hello mkbk
1.2 在字符串中添加空白
\t: 在字符串中表示制表符。
\n: 在字符串中表示换行符。
演示代码:
12345print("Python Rust")print()print("Python\tRust") # 使用制表符print()print("Python\nRust") # 使用换行符
运行结果:
123456Python RustPython RustPythonRust
1.3 字符串的常用方法
title(): 将每个单词的首字母都改为大写。
upper():将字符串全部改为大写。
rstrip()/lstrip()/strip():移除字 ...