tmux介绍
tmux 是一个终端复用器,它允许你在一个终端窗口中运行多个终端会话,并在这些会话之间切换,而不必打开多个终端窗口。它对于需要同时管理多个任务的用户非常有用,尤其是在服务器管理、开发等方面。
安装
在 CentOS 上,可以使用 yum 或 dnf 来安装 tmux:sudo yum install tmux
基本用法
启动 tmux 会话:tmux
命名新会话:tmux new -s session_name
分割窗口:
水平分割:Ctrl + b 然后按 “(双引号)
垂直分割:Ctrl + b 然后按 %
切换窗口:
在窗口之间切换:Ctrl + b 然后按 o
上下移动窗口:Ctrl + b 然后按箭头键
分离和附加会话:
分离当前会话:Ctrl + b 然后按 d
重新附加会话:tmux attach-session -t session_name
列出会话tmux ls
关闭会话tmux kill-session -t session_name
常用快捷键
新建窗口:Ctrl + b 然后按 c
关闭窗口:Ctrl + b 然后按 &am ...
基础数据结构1.1数组
一个含有数据的列表
array = ["apples", "bananas", "cucumbers", "dates", "elderberries"]
了解某个数据结构(例如数组)的性能,得分析程序怎样操作这一数据结构。一般数据结构有四种操作
读取 (查找数据中指定索引处的值, array[0])
查找 (从数据结构中找出某个数据值的所在)
插入
删除
重要理论:操作的速度,并不按时间计算,而是按步数计算此外,操作的速度,也被成为称为 时间复杂度
每种操作所用的步数
读取:一步,计算机本身就有跳到任一索引位置的能力。
查找:从索引0处开始,一个一个去对比查找,这种也被称为线性查找,对于长度为 N 的数组,其线性查找的最多步数为 N
插入:如果向数组的末尾插入,只需要一步,如果在开头或者中间插入,需要先将后边部分的数据一步一步向右挪,最后插入,所以需要额外的步数
删除: 看起来删除,只需要一步,但实际上,删除之后,需要将后面的数据往前挪 ...
概要
本文首先讲解什么是调用栈,什么是消息队列,以及事件循环,它们三者之间的关系。之后通过document.addEventListener('click', ()=>{console.log(111)})这段代码来理解js是如何执行事件以及事件循环的处理过程。
调用栈?or(执行栈)调用栈是一个抽象的数据结构,用于存储在代码执行过程中所有激活的函数调用的信息。每当在程序中调用一个函数时,该函数的执行上下文就会被添加(推送)到调用栈的顶部。每当函数执行完毕并返回时,其对应的执行上下文就会从栈顶被移除(弹出)。这个过程遵循后进先出(LIFO)的原则。
消息队列(异步任务队列)消息队列是一个先进先出(FIFO)的队列,用于存储待处理的消息和事件。这些消息可以是来自用户的交互(如点击或键盘事件)、网络请求、定时器超时等产生的。每一个消息都关联着一个函数,该函数的执行被称为一个任务。
事件循环事件循环(Event Loop)是一个编程模式,它等待并发送消息和事件。在JavaScript中,事件循环是一个处理程序,用于监视调用栈和消息队列。如果调用栈是 ...
介绍
Vue中的nextTick方法是Vue的一个重要异步工具,它用于将回调延迟到下一个DOM更新循环之后执行。当你在Vue组件中更改了数据,而想要基于更新后的DOM执行操作时nextTick非常有用。它等待Vue完成DOM的更新,然后执行你的回调函数。
实现原理
Vue的nextTick实现依赖于JavaScript的事件循环和微任务队列。Vue尝试利用原生的Promise.then、MutationObserver,或者setImmediate,如果以上都不可用,则回退到setTimeout(fn, 0)。
以下是Vue源码中与nextTick实现相关的简化逻辑:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253let callbacks = []let pending = falsefunction flushCallbacks () { pending = false const copies = callbac ...
如何封装一个全局的消息提示组件
心路历程:
在我的mini-bolg开发过程中,需要封装一个消息提示组件,项目基于nextjs+daisyui(一个基于tailwinds的ui库)开发。在组件封装的过程中,遇到了一些问题,在此记录一下==
项目环境:
1234567"next": "14.2.2","react": "^18","react-dom": "^18","daisyui": "^4.10.2","uuid": "^9.0.1","uuidv4": "^6.2.13""tailwindcss": "^3.4.1",
组件需求描述
此组件用于操作后的提示信息,如请求失败后,页面提示错误信息。
用法类似于antd组件库的message,如下
12345678910111213 ...
今天刚拉下公司代码,用webstorm打开,就提示这个错误
原因根据提示,可以看到原因是babel-preset-react-app预设需要指定环境变量NODE_ENV或者BABEL_ENV,但是当前它们未被设置或者设置的值未定义(undefined)。有效的值包括”development”(开发环境)、”test”(测试环境)以及”production”(生产环境)。
解决方式要解决这个问题,你需要确保在执行与ESLint相关的命令前,设置了NODE_ENV或BABEL_ENV环境变量。
由于我没有运行项目就报错,说明webstorm是在本地系统运行的eslint,
所以需要在.zshrc配置文件中加入export NODE_ENV=development
编辑.zshrc
vim ~/.zshrc
加入下面一行配置
export NODE_ENV=development
更新.zshrc
source .zshrc
重启webstorm就可以看到错误被解决了。
系统软件
未读前言本文仅供学习使用,请支持正版。
JetBrains全家桶
支持大部分JetBrains系列软件,本文以webstorm为例
安装软件
前往JetBrains官网下载你所需要破解的软件
安装破解jar包
打开链接,等待加载完毕之后,选择一个可用节点,点击进入
进入页面之后,点击下载破解工具包 jetbra.zip
下载完成后,解压,然后打开终端,进入解压文件里面的scripts目录,执行里面的脚本install.sh
./install.sh
破解webstorm
打开下载好的webstorm,先申请一个试用的licenses,进入这个界面:
点击左上角工具栏的 Help 按钮,点击Edit Custom VM Options
在里面添加以下内容,然后保存
1234--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED-javaagent:/U ...
前端开发
未读项目需求需要生成一个二维码,通过扫描该二维码进入的用户,能展示配置好的购买票种,其他方式进入的不展示。
配置流程
在小程序开发文档,找到 开发-开发管理 ,下滑找到 扫普通链接二维码打开小程序 添加配置链接
配置保存完成之后,通过二维码生成器,生成携带参数的二维码链接,如https://xxx.com?q=123
前端获取二维码携带的参数
123456Page({ onLoad(query) { const q = decodeURIComponent(query.q) // 获取到二维码原始链接内容 const scancode_time = parseInt(query.scancode_time) // 获取用户扫码时间 UNIX 时间戳 }})
参考: 扫码打开小程序接入指南
前言最近用uniapp开发了一款ios、android应用,项目打包的过程中用到了高德地图的sdk,在打包时遇到的一些问题,在这里记录一下。
打包流程
点击发行,选择原生App-云打包
打包配置分为android和ios配置
安卓配置
选择使用自有证书
获取自有证书:
需要安装JRE环境
使用keytool -genkey命令生成证书:keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
test.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
查看证书信息:keytool -list -v -keystore test.keystore
其中证书指纹信息(Certificate fingerprints):
MD5证书的 ...
系统软件
未读问题描述使用mac电脑在下载完PicGo软件后,打开显示文件损坏,无法打开
解决方法打开终端,输入
sudo xattr -d com.apple.com.quarantine "/Applications/PicGo.app"
原因sudo xattr -d com.apple.quarantine 是一个命令行指令,用于从文件或目录中删除 macOS 上的 “quarantine” 扩展属性。quarantine 属性通常用于标记从互联网下载的文件,提醒用户该文件可能来自不受信任的来源,并且在打开时可能会弹出安全警告。
具体而言,com.apple.quarantine 扩展属性包含有关文件下载源、下载时间和下载应用程序的信息。当用户尝试打开被标记为 “quarantine” 的文件时,macOS 可能会发出警告,提醒用户该文件的来源。