Ubuntu右上角网络图标消失

1
2
3
sudo service NetworkManager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service NetworkManager start

参考:Ubuntu22.04右上角网络图标消失

textarea增加tab缩进

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<n-input type="textarea" @keydown.tab.prevent="addTab"/>
<script setup>
function addTab(event) {
const { selectionStart, selectionEnd } = event.target;
const value = info.value.content;

info.value.content =
value.substring(0, selectionStart) +
' ' +
value.substring(selectionEnd);

// 更新光标位置
nextTick(() => {
event.target.selectionStart = event.target.selectionEnd =
selectionStart + 2;
});
}
</script>

参考:Js textarea 支持tab缩进

固定大小vmdk、vdi扩容

进入VirtualBox安装目录

1
2
3
4
5
6
7
8
# vmdk转换成vdi
VBoxManage.exe clonehd source.vmdk target.vdi --format VDI
# 创建新虚拟介质,大小为扩容后需要的大小
VBoxManage.exe createhd -filename "D:\vx\docker1\server2008r2_810g" -size 151920 -format VDI -variant Standard
# 克隆命令
VBoxManage.exe clonehd "D:\vx\docker1\docker1.vdi" "D:\vx\docker1\server2008r2_810g.vdi" --existing
# vdi转换成vmdk
VBoxManage.exe clonehd source.vdi target.vmdk --format VMDK

参考:

  1. vdi转vmdk VirtualBox与VMware硬盘格式转换及使用方法
  2. virtualBox 常用命令行操作
  3. VirtualBox扩容失败-Progress state: VBOX_E_NOT_SUPPORTED Resizing to new size 16231956480 is not yet

VM虚拟机无法CV文件

1、确认安装 open-vm-tools-desktop

1
sudo apt install open-vm-tools-desktop

2、登录系统时,右下角设置选择 xorg 显示服务

参考:解决无法往 VMware 虚拟机复制粘贴文件的问题

Vue3父子组件传值双向绑定

父组件:

1
2
3
4
<QRCode v-model:showModal="showModal"></QRCode>
<script setup>
const showModal = ref(false);
</script>

子组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
<n-modal v-model:show="localShowModal"></n-modal>
<script setup>
const props = defineProps(['showModal']);
const emit = defineEmits(['update:showModal']);
const localShowModal = computed({
get(){
return props.showModal;
},
set(value){
emit('update:showModal', value);
}
});
</script>

Vite配置@符路径

vite.config.js
1
2
3
4
5
6
7
8
9
10
11
import {resolve} from "path"
export default defineConfig({
resolve: {
alias: [
{
find: '@',
replacement: resolve(__dirname, "src")
}
]
},
});

参考:在vite项目配置src路径别名为 “@”

Vite低版本浏览器兼容

安装 plugin-legacy 和 terser 压缩器
1
2
npm install @vitejs/plugin-legacy -D
npm add -D terser
vite.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import legacy from '@vitejs/plugin-legacy'
export default defineConfig({
plugins: [
vue(),
legacy({
// 设置目标浏览器,browserslist 配置语法
targets: ['defaults', 'not IE 11'],
modernPolyfills: true
// 面向IE11时需要此插件
// additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
// polyfills: ['es.object.values', 'es.array.flat-map']
}),
]
})
app.vue 中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
!(function (t) {
function e() {
var e = this || self;
(e.globalThis = e), delete t.prototype._T_;
}
"object" != typeof globalThis &&
(this
? e()
: (t.defineProperty(t.prototype, "_T_", {
configurable: !0,
get: e,
}),
_T_));
})(Object);

参考:vite项目低版本浏览器兼容性问题

Vite环境变量

新建 .env 和 .env.local

1
VITE_API_BASE_URL=http://127.0.0.1:3000

import.meta.env 使用环境变量

1
import.meta.env.VITE_API_BASE_URL

参考:

  1. 环境变量和模式
  2. vite中环境变量的使用与配置(非常详细)

node项目环境变量

package.json
1
2
3
4
"scripts": {
"start": "node ./bin/www",
"dev": "set NODE_ENV=development&& nodemon ./bin/www"
},

安装 dotenv,区分开发和生产环境

1
npm install dotenv -S
1
2
3
4
5
6
const dotenv = require('dotenv')
if(process.env.NODE_ENV === "development"){
dotenv.config({ path: ".env.local" });
}else{
dotenv.config();
}

新建 .env 和 .env.local

1
MODB_URL=mongodb://127.0.0.1:27017/

使用环境变量

1
process.env.MODB_URL

开启/关闭Hyper-v

执行命令后重启电脑
1
2
3
4
# 开启
bcdedit /set hypervisorlaunchtype auto
# 关闭
bcdedit /set hypervisorlaunchtype off

SSH相关

SSH的小问题那可太多了,这里记录一下

no hostkey alg

该错误表示 SSH 客户端在尝试连接远程主机时,没有找到匹配的主机密钥算法。这通常是由于远程主机和客户端之间的配置不匹配导致的。

解决办法
1
2
3
4
5
vim /etc/ssh/sshd_config
# 添加一行:
HostKeyAlgorithms +ssh-rsa,ssh-dss
#重启sshd服务
service sshd restart

免密登陆配置

将本地公钥添加到服务器的 ~/.ssh/authorized_keys 文件中

配置使用密钥登陆

1
2
3
4
5
6
7
8
Host qcqx
HostName 8.*******
Port 22
User root
ForwardAgent yes
PreferredAuthentications publickey
IdentityFile "C:\Users\64507\.ssh\test.rsa"
IdentitiesOnly yes

修改 /etc/ssh/sshd_config 文件

1
2
3
4
5
PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
StrictModes no
PubkeyAcceptedAlgorithms +ssh-rsa

ssh配置免密码登录至Linux—已配置密钥仍无法登陆等问题

ssh-rsa not in PubkeyAcceptedAlgorithms

ssh-rsa已被弃用,事实上,出于安全原因默认禁用,应该避免。使用rsa-sha2-256或rsa-sha2-512代替

修改 /etc/ssh/sshd_config 文件

1
PubkeyAcceptedAlgorithms +ssh-rsa

SSH server gives “userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]” when connecting with Putty

win下ssh找不到config和密钥

window下,ssh会去找 HOME 环境变量下的 .ssh 文件夹。需要确保该环境变量存在。

为火狐单独写CSS

任何以以 @-moz- 开头的规则都是 Gecko 引擎特定的规则,而不是标准规则

url-prefix(url) 规则将包含的样式规则应用于 URL 以其开头的任何页面。不带 URL 参数使用时,适用于所有页面。

用它来适配scrollbar滚动条
1
2
3
4
5
6
@-moz-document url-prefix() {
* {
scrollbar-width: thin;
scrollbar-color: #43b4ffc0 transparent;
}
}

参考:只为 Firefox 编写 CSS 规则

wsl 相关

wsl的小问题、小细节可太多了

wslhost

给wsl的动态ip设置host,方便外部连接

1
2
3
4
5
vim /etc/profile
# 添加下面内容
ipaddr=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
sed -i '/wslhost/d' /mnt/c/Windows/System32/drivers/etc/hosts
echo "$ipaddr wslhost" >> /mnt/c/Windows/System32/drivers/etc/hosts

sudo免密

1
2
3
sudo visudo
# 加上一行
<用户名> ALL=(ALL) NOPASSWD:ALL

wsl自动启动ssh服务

1
2
vim ~/.bashrc # 编辑.bashrc,添加ssh服务状态判断
sudo service ssh status | grep -q 'not running' && sudo service ssh start

vscode 插件发布

1
2
3
4
# 申请 token:https://dev.azure.com/qcqx/_usersSettings/tokens
vsce login qcqx # 登陆,输入 token
vsce package # 打包
vsce publish # 发布