diff --git a/_posts/AI/ChatGPT.md b/_posts/AI/ChatGPT.md index 68839a3..d35961a 100644 --- a/_posts/AI/ChatGPT.md +++ b/_posts/AI/ChatGPT.md @@ -50,7 +50,7 @@ client.loop_forever() ``` 上面的代码展示了如何连接到MQTT服务器并订阅主题。您还可以使用client.publish()方法发布消息到指定主题! - + ## 音响领域问题 diff --git a/_posts/Linux/docker/clear-docker.md b/_posts/Linux/docker/clear-docker.md index 10b8646..921d6c3 100644 --- a/_posts/Linux/docker/clear-docker.md +++ b/_posts/Linux/docker/clear-docker.md @@ -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 ``` - + ## 卸载没有删除的docker相关插件,比如 ``` sudo apt-get autoremove docker-ce-* diff --git a/_posts/Linux/docker/container-network-ip.md b/_posts/Linux/docker/container-network-ip.md index 7dc1924..92fb1de 100644 --- a/_posts/Linux/docker/container-network-ip.md +++ b/_posts/Linux/docker/container-network-ip.md @@ -21,7 +21,7 @@ docker run -d --net=my-docker-net --ip=172.0.0.3 --name=[容器名字] -v [镜 通过IP`172.0.0.3`访问该容器了。 - + # 补充知识 172.0.0.0/24 是一个 CIDR(Classless Inter-Domain Routing)表示法,它使用网络地址和掩码长度来表示一个 IP 地址范围。255.255.255.0 是对应的子网掩码,也称为网络掩码。包含了从 172.0.0.0 到 172.0.0.255 的所有 IP 地址。 diff --git a/_posts/Linux/docker/docker-exec-cd.md b/_posts/Linux/docker/docker-exec-cd.md index 462b9e5..9909265 100644 --- a/_posts/Linux/docker/docker-exec-cd.md +++ b/_posts/Linux/docker/docker-exec-cd.md @@ -24,7 +24,7 @@ OPTIONS说明: ## docker 定时任务执行 > 下面是PHP的satis私有镜像仓库命令在docker中同步命令如下: - + ```shell docker exec php74 /bin/sh -c "cd satis/ && php bin/satis build satis.json public/" ``` diff --git a/_posts/Linux/docker/docker-login-err.md b/_posts/Linux/docker/docker-login-err.md index 25ec692..82aa176 100644 --- a/_posts/Linux/docker/docker-login-err.md +++ b/_posts/Linux/docker/docker-login-err.md @@ -8,19 +8,19 @@ tags: Docker 使用阿里云镜像服务进行 docker login 发生错误,具体如下: - -``` +```shell docker login失败:err: exit status 1, Try “pass init“ ``` 后来搜索一下,找到问题解决办法! + + ## 解决办法 - - ### 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) - diff --git a/_posts/Linux/docker/dockerfile-best-op.md b/_posts/Linux/docker/dockerfile-best-op.md index da5e084..7713817 100644 --- a/_posts/Linux/docker/dockerfile-best-op.md +++ b/_posts/Linux/docker/dockerfile-best-op.md @@ -10,6 +10,8 @@ Docker 镜像的定制实际上就是定制每一层所添加的配置、文件 Dockerfile 是一个文本文件,其内包含了一条条的 **指令(Instruction)**,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 + + ### 使用 Dockerfile 构建镜像 ## 二、Dockerfile 指令详解 diff --git a/_posts/Linux/docker/php56-zip.md b/_posts/Linux/docker/php56-zip.md index 753a67a..28ee844 100644 --- a/_posts/Linux/docker/php56-zip.md +++ b/_posts/Linux/docker/php56-zip.md @@ -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 ``` ## 补充 + 可能还有其他问题,不过我本机可能只缺少这些依赖,所以安装成功了 diff --git a/_posts/Linux/linux-command.md b/_posts/Linux/linux-command.md index f7e9720..b2830cf 100644 --- a/_posts/Linux/linux-command.md +++ b/_posts/Linux/linux-command.md @@ -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 ``` - + 在浏览器中访问如下地址: `http://localhost:3100/` diff --git a/_posts/Linux/share/local-folders-to-remote-Samba-dir.md b/_posts/Linux/share/local-folders-to-remote-Samba-dir.md index a885a2e..b391f78 100644 --- a/_posts/Linux/share/local-folders-to-remote-Samba-dir.md +++ b/_posts/Linux/share/local-folders-to-remote-Samba-dir.md @@ -5,7 +5,7 @@ tags: Samba --- 家里一台软路由安装了jellyfin,想把媒体目录挂载到另一台大容量的主机上。所以要将这台大容量的主机上通过Samba共享给软路由主机上,因此需将软路由主机本地文件夹映射到远程大容量的主机Samba共享目录下。 -> + 前提Samba安装配置已经在两台主机上配好,这里不再复述! # 安装软件包 diff --git a/_posts/Linux/ssh/ssh-password-free-login.md b/_posts/Linux/ssh/ssh-password-free-login.md index aac8d6d..3577f9c 100644 --- a/_posts/Linux/ssh/ssh-password-free-login.md +++ b/_posts/Linux/ssh/ssh-password-free-login.md @@ -6,7 +6,6 @@ tags: ssh 由于更换新电脑,需要生成新的密钥去免密登陆服务器,小记一下流程,免得下次还得搜索一下相关教程。 - ## 密钥登录的过程 SSH 密钥登录分为以下的步骤。 @@ -18,8 +17,10 @@ SSH 密钥登录分为以下的步骤。 5. 客户端收到服务器发来的数据,使用私钥对数据进行签名,然后再发还给服务器。 6. 服务器收到客户端发来的加密签名后,使用对应的公钥解密。若解密后数据一致,则允许用户登录。 + ## 生成公/私密钥 -```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 # -``` \ No newline at end of file +``` diff --git a/_posts/Linux/ubuntu/charles-install.md b/_posts/Linux/ubuntu/charles-install.md index 46dae4e..a4fead6 100644 --- a/_posts/Linux/ubuntu/charles-install.md +++ b/_posts/Linux/ubuntu/charles-install.md @@ -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` ``` - + ## 创建启动图标 + 因为解压安装默认是不会生成启动图标的,所以需要单独创建 进入 `/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) \ No newline at end of file + +1. [知乎:Charles安装与激活](https://zhuanlan.zhihu.com/p/537292816) diff --git a/_posts/Linux/ubuntu/clear-invalid-package.md b/_posts/Linux/ubuntu/clear-invalid-package.md index 8a26948..e333d33 100644 --- a/_posts/Linux/ubuntu/clear-invalid-package.md +++ b/_posts/Linux/ubuntu/clear-invalid-package.md @@ -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 }') ``` - + > 注解: 1. `$(......)` 是一个shell表示法,即里面包含括号中的命令输出的内容。 2. `dpkg -l`列出系统中所有安装的软件,如果是已经删除的软件(有残存的配置文件),那么该的软件包的状态是rc,即开头显赫为rc 然后是空格,然后是软件包的名称。如果是iF开头就是配置失败的软件。 diff --git a/_posts/Linux/ubuntu/network-drive-repair.md b/_posts/Linux/ubuntu/network-drive-repair.md index 681cbff..0a0edff 100644 --- a/_posts/Linux/ubuntu/network-drive-repair.md +++ b/_posts/Linux/ubuntu/network-drive-repair.md @@ -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) ``` - + 可以看到我的网卡是**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 ``` + 如果上述命令能正常显示有关网卡驱动信息,且系统设置界面按钮可操作则代表成功! diff --git a/_posts/Linux/ubuntu/update-snap.md b/_posts/Linux/ubuntu/update-snap.md index fc02368..190daa9 100644 --- a/_posts/Linux/ubuntu/update-snap.md +++ b/_posts/Linux/ubuntu/update-snap.md @@ -8,26 +8,27 @@ tags: Ubuntu 目前开发的笔记本使用的是ubuntu22.04.1 版本,默认内置snap商店无法完成自身更新,所以小记一下解决办法。 - 解决办法如下: -```sh + +```shell # root 账号无需加上sudo sudo killall snap-store sudo snap refresh snap-store ``` - - + ## 禁止自动更新 > 目前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 -``` \ No newline at end of file +``` diff --git a/_posts/Linux/virtual/qemu-guide.md b/_posts/Linux/virtual/qemu-guide.md index 1737f25..5075450 100644 --- a/_posts/Linux/virtual/qemu-guide.md +++ b/_posts/Linux/virtual/qemu-guide.md @@ -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 ``` - + 提示: 下次启动,移除`-cdrom win10.iso` 参数,第一次需要通过cdrom镜像安装,等于实际光盘安装系统! diff --git a/_posts/git/batch_delete_branch.md b/_posts/git/batch_delete_branch.md index 7318843..6e73b06 100644 --- a/_posts/git/batch_delete_branch.md +++ b/_posts/git/batch_delete_branch.md @@ -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 ``` - - - + > 如果要批量删除本地分支,可以使用以下命令: ```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/` \ No newline at end of file +`main`为要保留的分支名称,可以根据需要进行修改。最后一个命令中的sed命令是将远程分支名中的`origin/`替换为`:/`,因为git push命令中需要使用的远程分支名不包含`origin/` diff --git a/_posts/git/no-login-required.md b/_posts/git/no-login-required.md index ac4eeb0..d360f82 100644 --- a/_posts/git/no-login-required.md +++ b/_posts/git/no-login-required.md @@ -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" ``` - + 1. `--global` 参数代表全局使用,不全局使用则需要进入对应本地仓库目录进行设置 2. `/path/to/your/key.pem` 是你的私钥 diff --git a/_posts/数据库/Mysql/batch_drop_table.md b/_posts/数据库/Mysql/batch_drop_table.md index 1ee0f93..13491e8 100644 --- a/_posts/数据库/Mysql/batch_drop_table.md +++ b/_posts/数据库/Mysql/batch_drop_table.md @@ -23,7 +23,7 @@ EXECUTE stmt; DEALLOCATE PREPARE stmt; ``` - +> 上述代码中的 `database_name` 替换为要操作的数据库的名称,`regex_pattern` 替换为要匹配的表名的正则表达式模式。 diff --git a/_posts/数据库/Mysql/mysqldump-error.md b/_posts/数据库/Mysql/mysqldump-error.md index 21942e4..9229853 100644 --- a/_posts/数据库/Mysql/mysqldump-error.md +++ b/_posts/数据库/Mysql/mysqldump-error.md @@ -21,6 +21,7 @@ Unknown table 'COLUMN_STATISTICS' in information_schema (1109) ``` 经查阅相关资料得知,需要添加`--column-statistics=0`即可。我猜测的原因可能是备份数据时候在读取相关表结构没有相关权限,所以报此错误。通过添加`--column-statistics=0`进行关闭,以免报错。 + ## column-statistics解释 `--column-statistics` 是一个用于输出列统计信息的选项。这个选项可以让 mysqldump 在备份数据时,输出每个表的列名、数据类型、长度、默认值、是否为 null 等信息,同时还输出了每个列的统计信息,包括平均长度、总长度、字符集、数字类型的比例等信息。 diff --git a/_posts/编程/C语言/implements-php-array.md b/_posts/编程/C语言/implements-php-array.md index 1a37d13..7d99fcc 100644 --- a/_posts/编程/C语言/implements-php-array.md +++ b/_posts/编程/C语言/implements-php-array.md @@ -38,7 +38,7 @@ void push(Array* arr, void* element) { } arr->data[arr->size++] = element; } - + // 从动态数组中删除一个元素 void removeElement(Array* arr, int index) { if (index < 0 || index >= arr->size) { diff --git a/_posts/编程/PHP/composer.md b/_posts/编程/PHP/composer.md index 0e799a1..281289d 100644 --- a/_posts/编程/PHP/composer.md +++ b/_posts/编程/PHP/composer.md @@ -23,7 +23,7 @@ tags: PHP } } ``` -> + 然后执行`composer install` 或 `composer require ` ## 排除特定文件或目录不被自动加载 diff --git a/_posts/编程/PHP/install-php-ext-http.md b/_posts/编程/PHP/install-php-ext-http.md index f50bec3..637fac1 100644 --- a/_posts/编程/PHP/install-php-ext-http.md +++ b/_posts/编程/PHP/install-php-ext-http.md @@ -16,7 +16,7 @@ tags: PHP ```shell apk add libcurl curl-dev ``` - +> libcurl curl-dev 是linux下curl开发一系列依赖库和文件。http扩展需要curl,所以需要安装相关依赖! 2. please install and enable pecl/raphf diff --git a/_posts/编程/PHP/standard.md b/_posts/编程/PHP/standard.md index 903c397..bccbe10 100644 --- a/_posts/编程/PHP/standard.md +++ b/_posts/编程/PHP/standard.md @@ -28,7 +28,7 @@ tags: PHP public $baz; } ``` - +> 2. 变量以及属性多态类型优先级 ```php diff --git a/_posts/编程/设计模式/行为模式/Strategy.md b/_posts/编程/设计模式/行为模式/Strategy.md index 19365a2..c2f6c46 100644 --- a/_posts/编程/设计模式/行为模式/Strategy.md +++ b/_posts/编程/设计模式/行为模式/Strategy.md @@ -17,6 +17,8 @@ tags: 设计模式 如果一开始代码都写在一起,每种消息通知方式不同整体数据结构也大相径庭,那么后期维护可想而知 💔 。。。 + + # 如何解决 将每种通知方式设为一种通知策略,因此在整体模块或服务设计时候,应该做好如下几点: diff --git a/_posts/编程/设计模式/行为模式/factory-method.md b/_posts/编程/设计模式/行为模式/factory-method.md index ed6802c..83bdbe5 100644 --- a/_posts/编程/设计模式/行为模式/factory-method.md +++ b/_posts/编程/设计模式/行为模式/factory-method.md @@ -16,7 +16,7 @@ tags: 设计模式 1. 定义cache工厂类(父类)和依赖类 2. 编写各个类型cache子类 3. cache工厂类创建调用 - + # 实现 > 这边实现使用PHP代码作为演示,其他oop语言逻辑类似。