🎨 截断
This commit is contained in:
parent
77eec054b3
commit
fdbe7c0e31
@ -50,7 +50,7 @@ client.loop_forever()
|
||||
```
|
||||
|
||||
上面的代码展示了如何连接到MQTT服务器并订阅主题。您还可以使用client.publish()方法发布消息到指定主题!
|
||||
|
||||
<!--more-->
|
||||
|
||||
## 音响领域问题
|
||||
|
||||
|
@ -19,7 +19,7 @@ sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
|
||||
dpkg -l | grep docker
|
||||
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
## 卸载没有删除的docker相关插件,比如
|
||||
```
|
||||
sudo apt-get autoremove docker-ce-*
|
||||
|
@ -21,7 +21,7 @@ docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜
|
||||
|
||||
通过IP`172.0.0.3`访问该容器了。
|
||||
|
||||
|
||||
<!--more-->
|
||||
# 补充知识
|
||||
|
||||
172.0.0.0/24 是一个 CIDR(Classless Inter-Domain Routing)表示法,它使用网络地址和掩码长度来表示一个 IP 地址范围。255.255.255.0 是对应的子网掩码,也称为网络掩码。包含了从 172.0.0.0 到 172.0.0.255 的所有 IP 地址。
|
||||
|
@ -24,7 +24,7 @@ OPTIONS说明:
|
||||
|
||||
## docker 定时任务执行
|
||||
> 下面是PHP的satis私有镜像仓库命令在docker中同步命令如下:
|
||||
|
||||
<!--more-->
|
||||
```shell
|
||||
docker exec php74 /bin/sh -c "cd satis/ && php bin/satis build satis.json public/"
|
||||
```
|
||||
|
@ -8,19 +8,19 @@ tags: Docker
|
||||
|
||||
使用阿里云镜像服务进行 docker login 发生错误,具体如下:
|
||||
|
||||
|
||||
```
|
||||
```shell
|
||||
docker login失败:err: exit status 1, Try “pass init“
|
||||
```
|
||||
|
||||
后来搜索一下,找到问题解决办法!
|
||||
|
||||
<!--more-->
|
||||
|
||||
## 解决办法
|
||||
|
||||
|
||||
|
||||
### 1.安装 docker-credential-pass
|
||||
```
|
||||
|
||||
```shell
|
||||
wget https://github.com/docker/docker-credential-helpers/releases/download/v0.6.0/docker-credential-pass-v0.6.0-amd64.tar.gz
|
||||
|
||||
tar -xf docker-credential-pass-v0.6.0-amd64.tar.gz
|
||||
@ -32,7 +32,8 @@ docker-credential-pass //出现 You should see: "Usage: docker-credential-pass <
|
||||
```
|
||||
|
||||
### 2.安装 gpg pass & 生成key
|
||||
```
|
||||
|
||||
```shell
|
||||
apt install gpg pass
|
||||
|
||||
# 下一步 生成key
|
||||
@ -42,13 +43,15 @@ gpg --generate-key #需要要填入姓名邮箱等信息. 输入新的password
|
||||
pass init (paste from clipboard) //直接从复制版上粘贴
|
||||
|
||||
```
|
||||
|
||||
### 3.设置密码
|
||||
```
|
||||
|
||||
```shell
|
||||
pass insert docker-credential-helpers/docker-pass-initialized-check # 输入新密码
|
||||
```
|
||||
|
||||
|
||||
### 4. 修改~/.docker/config.json 没有就创建
|
||||
|
||||
```json
|
||||
{
|
||||
"credsStore":"pass"
|
||||
@ -57,7 +60,6 @@ pass insert docker-credential-helpers/docker-pass-initialized-check # 输入新
|
||||
|
||||
再次 docker login应该不会出现授权错误
|
||||
|
||||
## 参考链接:
|
||||
## 参考链接
|
||||
|
||||
[https://github.com/docker/docker-credential-helpers/issues/102](https://github.com/docker/docker-credential-helpers/issues/102)
|
||||
|
||||
|
@ -10,6 +10,8 @@ Docker 镜像的定制实际上就是定制每一层所添加的配置、文件
|
||||
|
||||
Dockerfile 是一个文本文件,其内包含了一条条的 **指令(Instruction)**,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
|
||||
|
||||
<!--more-->
|
||||
|
||||
### 使用 Dockerfile 构建镜像
|
||||
|
||||
## 二、Dockerfile 指令详解
|
||||
|
@ -8,13 +8,10 @@ tags: Docker
|
||||
|
||||
因为部分老项目使用5.6版本且部分功能依赖zip扩展 ,所以在镜像(apline)构建安装zip扩展,安装过程中报如下错误:
|
||||
|
||||
```
|
||||
```shell
|
||||
Please reinstall the libzip distribution
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 解决办法
|
||||
|
||||
```sh
|
||||
@ -28,4 +25,5 @@ docker-php-ext-enable zip
|
||||
```
|
||||
|
||||
## 补充
|
||||
|
||||
可能还有其他问题,不过我本机可能只缺少这些依赖,所以安装成功了
|
||||
|
@ -13,7 +13,7 @@ docker pull ghcr.io/jaywcjlove/linux-command:latest
|
||||
# 自定义端口
|
||||
docker run --name linux-command --rm -d -p 3100:3000 wcjiang/linux-command:latest
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
在浏览器中访问如下地址:
|
||||
|
||||
`http://localhost:3100/`
|
||||
|
@ -5,7 +5,7 @@ tags: Samba
|
||||
---
|
||||
|
||||
家里一台软路由安装了jellyfin,想把媒体目录挂载到另一台大容量的主机上。所以要将这台大容量的主机上通过Samba共享给软路由主机上,因此需将软路由主机本地文件夹映射到远程大容量的主机Samba共享目录下。
|
||||
<!--more-->>
|
||||
<!--more-->
|
||||
前提Samba安装配置已经在两台主机上配好,这里不再复述!
|
||||
|
||||
# 安装软件包
|
||||
|
@ -6,7 +6,6 @@ tags: ssh
|
||||
|
||||
由于更换新电脑,需要生成新的密钥去免密登陆服务器,小记一下流程,免得下次还得搜索一下相关教程。
|
||||
|
||||
|
||||
## 密钥登录的过程
|
||||
|
||||
SSH 密钥登录分为以下的步骤。
|
||||
@ -18,8 +17,10 @@ SSH 密钥登录分为以下的步骤。
|
||||
5. 客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。
|
||||
6. 服务器收到客户端发来的加密签名后,使用对应的公钥解密。若解密后数据一致,则允许用户登录。
|
||||
|
||||
<!--more-->
|
||||
## 生成公/私密钥
|
||||
```sh
|
||||
|
||||
```shell
|
||||
# 我这边是linux windows 系统可以在当前用户文件目录下自行创建该文件夹
|
||||
cd ~/.ssh
|
||||
# 生成密钥 可使用-t参数,指定密钥的加密算法。默认RSA 其他算法可以搜索了解一下 然后一路回车即可
|
||||
@ -36,7 +37,6 @@ ssh-keygen
|
||||
|
||||
手动上传就是直接将公钥里面文本直接追加到`~/.ssh/authorized_keys`里面。
|
||||
|
||||
|
||||
另外还可以使用`ssh-copy-id` 命令进行自动上传,本质就是自动把公钥里面文本直接追加到`~/.ssh/authorized_keys`里面。密令如下:
|
||||
|
||||
```sh
|
||||
@ -49,7 +49,6 @@ ssh-copy-id -i pub_key_file user@host
|
||||
|
||||
配置config目的在于简化ssh登录命令,在当前用户 `~/.ssh/` 新建config文本 若存在无需创建。
|
||||
|
||||
|
||||
配置如下:
|
||||
|
||||
```
|
||||
@ -59,32 +58,35 @@ Host zyimm
|
||||
Port 22
|
||||
IdentityFile file_key
|
||||
```
|
||||
|
||||
> 配置文本格式,只需要同级别空格对齐即可。
|
||||
|
||||
|
||||
|
||||
### HostName
|
||||
|
||||
需要ssh连接过去的主机名,一般是IP地址。
|
||||
|
||||
|
||||
### User
|
||||
|
||||
登录主机的用户名
|
||||
|
||||
### IdentityFile
|
||||
|
||||
认证证书文件,默认位置是~/.ssh/id_rsa, ~/ssh/id_dsa等,如果采用默认的证书,可以不用设置此参数,除非你的证书放在某个自定义的目录,那么你就需要设置该参数来指向你的证书
|
||||
|
||||
### Port
|
||||
SSH访问主机的端口号,默认是22端口,同上,只有在非默认情况下才需要设置该值
|
||||
|
||||
SSH访问主机的端口号,默认是22端口,同上,只有在非默认情况下才需要设置该值
|
||||
|
||||
## 使用
|
||||
|
||||
```sh
|
||||
ssh zyimm # 即可免密登陆192.168.1.1服务器了
|
||||
```
|
||||
|
||||
如果使用vscode 建议下载 Remote-ssh 扩展,搭配使用更舒服!
|
||||
|
||||
> 记得配置之后需要重启服务器上的ssh服务!常见重启ssh服务命令如下(选择其中之一即可):
|
||||
|
||||
```sh
|
||||
service sshd restart
|
||||
systemctl restart sshd.service
|
||||
@ -92,8 +94,9 @@ systemctl restart sshd.service
|
||||
```
|
||||
|
||||
## 调试
|
||||
|
||||
如果在上面步骤操作完之后,仍然出现一些问题,可以在命令中带上-v以便定位问题
|
||||
|
||||
```sh
|
||||
ssh zyimm -v #
|
||||
```
|
||||
```
|
||||
|
@ -6,9 +6,9 @@ tags: Charles
|
||||
|
||||
[charles 官网](https://www.charlesproxy.com/) 下载Charles,Debian系列发行版可以使用 `apt-get install charles-proxy` 安装,不过需要提前安装对应key才可以安装,我这边是直接下载安装包解压安装。
|
||||
|
||||
|
||||
## 解压&安装
|
||||
```
|
||||
|
||||
```shell
|
||||
# 下载包具体以最新版本为准
|
||||
tar -xvf charles-proxy-4.6.3_amd64.tar.gz
|
||||
|
||||
@ -18,13 +18,14 @@ mv charles /opt/
|
||||
# 检查一下 charles/bin/charles 是否具有执行权限没有需要`chmod u+x`
|
||||
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
## 创建启动图标
|
||||
|
||||
因为解压安装默认是不会生成启动图标的,所以需要单独创建
|
||||
|
||||
进入 `/usr/share/applications` 目录下
|
||||
|
||||
```
|
||||
```shell
|
||||
cd /usr/share/applications
|
||||
|
||||
sudo touch charles.desktop
|
||||
@ -34,6 +35,7 @@ sudo gedit charles.desktop
|
||||
```
|
||||
|
||||
接着输入如下信息:
|
||||
|
||||
```sh
|
||||
[Desktop Entry]
|
||||
Name=Charles
|
||||
@ -46,18 +48,17 @@ Comment=Charles
|
||||
Categories=Utility;
|
||||
|
||||
```
|
||||
|
||||
说明一下:
|
||||
|
||||
1. Exec 是程序执行路径
|
||||
2. Icon 图标
|
||||
3. Name 程序名称
|
||||
|
||||
|
||||
其他配置说明自行百度~
|
||||
|
||||
`sudo chmod u+x charles.desktop` 最后赋予执行权限,接下来在启动页面搜索`Charles` 可以启动对应程序!
|
||||
|
||||
|
||||
|
||||
## Charles激活
|
||||
|
||||
### 现成激活账号
|
||||
@ -69,15 +70,12 @@ https://zhile.io
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Charles在线免费工具生成一个新的注册码
|
||||
|
||||
[破解网址:www.zzzmode.com](https://www.zzzmode.com/mytools/charles/)
|
||||
|
||||
|
||||
然后打开Charles,在上方菜单栏的“Help”选择“Register Charles”输入生成账号和注册码即可
|
||||
|
||||
|
||||
## 参考
|
||||
1. [知乎:Charles安装与激活](https://zhuanlan.zhihu.com/p/537292816)
|
||||
|
||||
1. [知乎:Charles安装与激活](https://zhuanlan.zhihu.com/p/537292816)
|
||||
|
@ -14,7 +14,7 @@ tags: Ubuntu
|
||||
sudo apt purge $(dpkg -l|grep ^rc|awk '{ print $2 }')
|
||||
sudo apt purge $(dpkg -l|grep iF|awk '{ print $2 }')
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
> 注解:
|
||||
1. `$(......)` 是一个shell表示法,即里面包含括号中的命令输出的内容。
|
||||
2. `dpkg -l`列出系统中所有安装的软件,如果是已经删除的软件(有残存的配置文件),那么该的软件包的状态是rc,即开头显赫为rc 然后是空格,然后是软件包的名称。如果是iF开头就是配置失败的软件。
|
||||
|
@ -15,14 +15,15 @@ tags: Ubuntu
|
||||
```shell
|
||||
lspci -k |grep Ethernet
|
||||
```
|
||||
|
||||
显示如下:
|
||||
|
||||
```shell
|
||||
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
可以看到我的网卡是**Realtek Semiconductor Co., Ltd. RTL8125**,然后到供应商官网寻找对应驱动,[下载地址](https://www.realtek.com/zh/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software)。
|
||||
|
||||
|
||||
### 解压&安装
|
||||
|
||||
```shell
|
||||
@ -35,6 +36,7 @@ sudo ./autorun.sh
|
||||
```
|
||||
|
||||
### 检测
|
||||
|
||||
安装完毕之后,可以通过如下命令验证
|
||||
|
||||
```shell
|
||||
@ -42,4 +44,5 @@ lsmod | grep r8125
|
||||
|
||||
ifconfig -a
|
||||
```
|
||||
|
||||
如果上述命令能正常显示有关网卡驱动信息,且系统设置界面按钮可操作则代表成功!
|
||||
|
@ -8,26 +8,27 @@ tags: Ubuntu
|
||||
|
||||
目前开发的笔记本使用的是ubuntu22.04.1 版本,默认内置snap商店无法完成自身更新,所以小记一下解决办法。
|
||||
|
||||
|
||||
解决办法如下:
|
||||
```sh
|
||||
|
||||
```shell
|
||||
# root 账号无需加上sudo
|
||||
sudo killall snap-store
|
||||
|
||||
sudo snap refresh snap-store
|
||||
```
|
||||
|
||||
|
||||
<!--more-->
|
||||
## 禁止自动更新
|
||||
|
||||
> 目前snap 稳定版本通道已经支持禁止自动更新,如果下述命令不起作用或报错,请先同上述进行snap-store自身更新
|
||||
|
||||
### 全部自动禁止更新
|
||||
|
||||
```sh
|
||||
snap refresh --hold
|
||||
```
|
||||
|
||||
### 禁用某个软件更新,比如火狐firefox
|
||||
|
||||
```sh
|
||||
snap refresh --hold firefox
|
||||
```
|
||||
@ -38,4 +39,4 @@ snap refresh --hold firefox
|
||||
snap refresh --unhold
|
||||
# 同理恢复某个软件更新,如火狐
|
||||
snap refresh --unhold firefox
|
||||
```
|
||||
```
|
||||
|
@ -24,7 +24,7 @@ win10镜像下载地址:
|
||||
qemu-system-x86_64 -hda ./win10.img -cdrom win10.iso -boot d -enable-kvm -machine q35 -device intel-iommu -smp 2,sockets=1,cores=2 -m 2G -vga std -net nic,model=e1000 -net user -usbdevice tablet
|
||||
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
提示:
|
||||
下次启动,移除`-cdrom win10.iso` 参数,第一次需要通过cdrom镜像安装,等于实际光盘安装系统!
|
||||
|
||||
|
@ -4,43 +4,44 @@ date: 2023-03-29
|
||||
tags: Git
|
||||
---
|
||||
|
||||
### 1. 查看所有本地分支:
|
||||
### 1. 查看所有本地分支
|
||||
|
||||
```sh
|
||||
git branch
|
||||
```
|
||||
|
||||
|
||||
### 2. 删除本地分支:
|
||||
### 2. 删除本地分支
|
||||
|
||||
```sh
|
||||
git branch -D branch_name
|
||||
```
|
||||
|
||||
其中,branch_name为要删除的分支名称。
|
||||
|
||||
### 3. 查看所有远程分支:
|
||||
### 3. 查看所有远程分支
|
||||
|
||||
```sh
|
||||
$ git branch -r
|
||||
git branch -r
|
||||
```
|
||||
|
||||
### 4. 删除远程分支:
|
||||
### 4. 删除远程分支
|
||||
|
||||
```shell
|
||||
git push origin --delete branch_name
|
||||
```
|
||||
|
||||
|
||||
|
||||
<!--more-->
|
||||
> 如果要批量删除本地分支,可以使用以下命令:
|
||||
|
||||
```shell
|
||||
git branch | grep -v "main" | xargs git branch -D
|
||||
```
|
||||
|
||||
其中,"main"为要保留的分支名称,可以根据需要进行修改。
|
||||
|
||||
如果要批量删除远程分支,可以使用以下命令:
|
||||
|
||||
```shell
|
||||
git branch -r | grep -v "main" | sed 's/origin\//:/' | xargs git push
|
||||
```
|
||||
|
||||
`main`为要保留的分支名称,可以根据需要进行修改。最后一个命令中的sed命令是将远程分支名中的`origin/`替换为`:/`,因为git push命令中需要使用的远程分支名不包含`origin/`
|
||||
`main`为要保留的分支名称,可以根据需要进行修改。最后一个命令中的sed命令是将远程分支名中的`origin/`替换为`:/`,因为git push命令中需要使用的远程分支名不包含`origin/`
|
||||
|
@ -21,7 +21,7 @@ ssh-keygen -t rsa -C "your_email@example.com"
|
||||
```sh
|
||||
git config --global core.sshCommand "openssh-client -o StrictHostKeyChecking=no -i /path/to/your/key.pem"
|
||||
```
|
||||
|
||||
<!--more-->
|
||||
1. `--global` 参数代表全局使用,不全局使用则需要进入对应本地仓库目录进行设置
|
||||
|
||||
2. `/path/to/your/key.pem` 是你的私钥
|
||||
|
@ -23,7 +23,7 @@ EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
```
|
||||
|
||||
<!--more-->>
|
||||
|
||||
上述代码中的 `database_name` 替换为要操作的数据库的名称,`regex_pattern` 替换为要匹配的表名的正则表达式模式。
|
||||
|
||||
|
@ -21,6 +21,7 @@ Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
|
||||
```
|
||||
经查阅相关资料得知,需要添加`--column-statistics=0`即可。我猜测的原因可能是备份数据时候在读取相关表结构没有相关权限,所以报此错误。通过添加`--column-statistics=0`进行关闭,以免报错。
|
||||
|
||||
<!--more-->
|
||||
## column-statistics解释
|
||||
|
||||
`--column-statistics` 是一个用于输出列统计信息的选项。这个选项可以让 mysqldump 在备份数据时,输出每个表的列名、数据类型、长度、默认值、是否为 null 等信息,同时还输出了每个列的统计信息,包括平均长度、总长度、字符集、数字类型的比例等信息。
|
||||
|
@ -38,7 +38,7 @@ void push(Array* arr, void* element) {
|
||||
}
|
||||
arr->data[arr->size++] = element;
|
||||
}
|
||||
|
||||
<!--more-->
|
||||
// 从动态数组中删除一个元素
|
||||
void removeElement(Array* arr, int index) {
|
||||
if (index < 0 || index >= arr->size) {
|
||||
|
@ -23,7 +23,7 @@ tags: PHP
|
||||
}
|
||||
}
|
||||
```
|
||||
<!--more-->>
|
||||
<!--more-->
|
||||
然后执行`composer install` 或 `composer require <your-package@dev-master>`
|
||||
|
||||
## 排除特定文件或目录不被自动加载
|
||||
|
@ -16,7 +16,7 @@ tags: PHP
|
||||
```shell
|
||||
apk add libcurl curl-dev
|
||||
```
|
||||
|
||||
<!--more-->>
|
||||
libcurl curl-dev 是linux下curl开发一系列依赖库和文件。http扩展需要curl,所以需要安装相关依赖!
|
||||
|
||||
2. please install and enable pecl/raphf
|
||||
|
@ -28,7 +28,7 @@ tags: PHP
|
||||
public $baz;
|
||||
}
|
||||
```
|
||||
|
||||
<!--more-->>
|
||||
2. 变量以及属性多态类型优先级
|
||||
|
||||
```php
|
||||
|
@ -17,6 +17,8 @@ tags: 设计模式
|
||||
|
||||
如果一开始代码都写在一起,每种消息通知方式不同整体数据结构也大相径庭,那么后期维护可想而知 💔 。。。
|
||||
|
||||
<!--more-->
|
||||
|
||||
# 如何解决
|
||||
|
||||
将每种通知方式设为一种通知策略,因此在整体模块或服务设计时候,应该做好如下几点:
|
||||
|
@ -16,7 +16,7 @@ tags: 设计模式
|
||||
1. 定义cache工厂类(父类)和依赖类
|
||||
2. 编写各个类型cache子类
|
||||
3. cache工厂类创建调用
|
||||
|
||||
<!--more-->
|
||||
# 实现
|
||||
> 这边实现使用PHP代码作为演示,其他oop语言逻辑类似。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user