chrome/新edge 强制暗黑模式
1 | Chrome:chrome://flags/#enable-force-dark |
参考:https://www.appinn.com/enable-force-dark-for-chrome-and-edge/
web网页前端选择问题
现在有很多网站开发者真的很讨厌,明明文本都在网页上了,还非要设置一个不让用户选中文本。
事实上,你都在我的浏览器上进行渲染了,我要是想复制你的文本,我是一定有办法的
简要分析了一下,常见的不让选中的手法,并进行针对行的绕过。
CSS
禁用文本选择,通过设置user-select
属性来禁止文本选择,例如:1
user-select: none;
解决方法可以手动去删除元素的该属性,也可以在控制台将这个属性干掉:
1
document.body.style.userSelect = 'auto';
javascript
禁用文本选择,例如通过监听鼠标相关的操作进行禁用(mousedown
,mouseup
,selectstart
):1
2
3document.onselectstart = function() { return false; };
document.onmousedown = function() { return false; };
document.onmouseup = function() { return false; };可以尝试在控制台进行取消监听
1
2
3document.onselectstart = null;
document.onmousedown = null;
document.onmouseup = null;如果这些事件是绑定在某些元素上的,可以直接解除这些事件监听。例如:
1
2
3
4
5
6const elements = document.querySelectorAll('*');
elements.forEach(element => {
element.onselectstart = null;
element.onmousedown = null;
element.onmouseup = null;
});使用透明遮罩,这个就是障眼法了,放置一个顶层的透明块,通常这些遮罩层是
div
元素,且 CSS 设置了position: absolute
或position: fixed
,覆盖在页面内容上。我们可以直接移除这些元素,也可以使用
javascript
来移除1
2
3
4const overlay = document.querySelector('.overlay-class'); // 根据实际类名
if (overlay) {
overlay.style.display = 'none';
}
Zerotier 连接超时问题
由于Mac我经常不关机,带着到处跑,这就让 zerotier
之前打通的路失效,但是他又不知道自己失效了,所以这时候我的 Mac 就无法连接到别的机器了,于是这时候重启一下Mac上的 zerotier 服务即可。
菜单栏有时候会无法显示那个小图标,所以 GUI 的方法不可靠。下面的命令亲测有效。
1 | sudo launchctl unload /Library/LaunchDaemons/com.zerotier.one.plist |
screen+crontab 定时离线执行
基本思想是先创建一个 screen ,然后 detached 之后,可以通过会话的名字给其指定要执行的指令。
1 | # 先创建一个名字为 test 的会话 |
excel 上下左右框不动而是页面在动
有时候在 excel 中想通过上下左右移动到旁边的单元格但是却是整个窗口都在移动,而没有移动到单元格上。
此时可以通过虚拟键盘(或者物理键盘)上面的 scroll lock
解除。
win
+R
唤出命令,输入命令osk
。- 然后关闭
ScrLk
就可以了。
参考链接:https://blog.csdn.net/qcyfred/article/details/71107023
油猴在页面加载完毕/之前执行
查阅了很多资料 各种 Windows.onload 啥的 都是放屁,原来就是开头就是。
1 | /*! // ==UserScript== |
注意看,@run-at
这个就是起作用的。
Ubuntu 升级 node&npm
Ubuntu18.04
默认安装了 Nodejs v8.x
版本
升级
1 | $ curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh |
检查
1 | $ node -v |
参考:https://learnku.com/articles/29950
Windows Terminal 修改配色
https://zhuanlan.zhihu.com/p/163765431
python print different
有时候需要将python的输出换成不同的颜色,以突出显示想要表示的重点,于是可以用这个方法。
显示颜色的格式:
\ 033 [显示方式;字体色;背景色m something [\ 033 [0m]
具体各个参数如下表:
显示方式 | 效果 | 字体色 | 背景色 | 颜色描述 |
---|---|---|---|---|
0 | 终端默认设置 | 30 | 40 | 黑色 |
1 | 高亮显示 | 31 | 41 | 红色 |
4 | 使用下划线 | 32 | 42 | 绿色 |
5 | 闪烁 | 33 | 43 | 黄色 |
7 | 反白显示 | 34 | 44 | 蓝色 |
8 | 不可见 | 35 | 45 | 紫红色 |
36 | 46 | 青蓝色 | ||
37 | 47 | 白色 |
例子
1 | print('This is a \033[1;35m test \033[0m!') |
效果
参考:https://blog.csdn.net/qq_34857250/article/details/79673698
利用win10画图实现图片反色
将想要反色的图片使用win10自带的画图打开,然后用下面的快捷键 ctrl+shift+i
可以实现反色。
1 | ctrl+shift+i |
虚拟机网络故障的修复
描述:物理机网络正常,也是管理员模式运行的,VM显示网卡连接正常,但是没有网。并且体现在,ping 任何东西都找不到域名,右上角也没有了之前那个网络连接的图标了。
输入ip a
,显示为:
1: lo:
mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33:mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:d5 brd ff:ff:ff:ff:ff:ff
3: docker0:mtu 1500 qdisc noqueue state DOWN group default
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.97.0.1/16 brd 192.97.255.255 scope global docker0
valid_lft forever preferred_lft forever
正常情况下,ens33
后面应该还有些内容的。
网上找到一个方法,亲测有用,并且之后再出现没网的时候,也屡试不爽。
1 | sudo service NetworkManager stop |
建议写成一个可执行脚本,下次直接运行即可。
然后再 ip a
的结果如下,
1: lo:
mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33:mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.247.133/24 brd 192.168.247.255 scope global dynamic noprefixroute ens33
valid_lft 1530sec preferred_lft 1530sec
inet6 00:00:0000:0000:0000:0074/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: docker0:mtu 1500 qdisc noqueue state DOWN group default
link/ether 00:40:00:00:00:d8 brd ff:ff:ff:ff:ff:ff
inet 170.17.0.1/16 brd 170.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
然后就修复了,右上角也有了有网络的图标了。
ubuntu添加定时任务
有时候需要服务器定时执行一个脚本。如一个自动的健康打卡,就需要每天早上自动打卡帮助。
首先,打开终端输入下面命令:
1 | crontab -e |
然后按照里面的注释提示,前面是时间,中间是用户,后面的命令添加好。
然后重启服务即可。
1 | service cron restart |
screen 的使用
由于某系必要的原因,在断开 ssh
连接后,通过此 ssh
运行的所有进程和程序都会被强制干掉。(没有官方证据或者可能我的说法有问题)。但有时候需要在断开 ssh
后服务器继续执行之前的命令。
比如你自动的健康打卡是使用 python
加一个 while
死循环,用 python
来监控时间,每天定时打卡。但是你用 ssh
挂载到了服务器之后,一断开这个 python
的脚本就会被干掉。这是就需要这个功能了。而 screen
刚好可以做到。
1 | 创建一个名字为 name 的screen |
参考: https://www.138vps.com/vpsjc/933.html
kali换源
启动终端输入下面命令
1 | vim /etc/apt/sources.list |
将下面的地址填进去
1 | deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib |
cmd 挂代理
只代理了 HTTP
socks5
同理。
有些时候代理工具的全局模式也无法让CMD的走上代理。
打开一个需要设置代理的CMD,输入下面的命令:
1 | windows |
同时,直接在git bash中设置是不行的,在CMD中设置了用git命令就会方便(快)很多。
检测自己设置成功与否,可以在当前CMD中输入下面的命令。利用 curl
来检测。
ping
来检测是不行的,这个只代理了 http
而 ping
使用的是 ICMP
的协议,因此不成。
1 | curl -vv https://google.com |
Ubuntu 18.04 apt install error
运行 sudo apt install ***
报错,无法按照软件。报错信息如下:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
执行下面的命令,进行强制解锁,即可。(我也不知道哪条是真正起作用的,反正又不是不能用
1 | sudo rm /var/lib/dpkg/lock-frontend |
python 的全局解释锁 GIL
尽管Python完全支持多线程编程, 但是解释器的C语言实现部分在完全并行执行时并不是线程安全的。 实际上,解释器被一个全局解释器锁保护着,它确保任何时候都只有一个Python线程执行。 GIL最大的问题就是Python的多线程程序并不能利用多核CPU的优势 (比如一个使用了多个线程的计算密集型程序只会在一个单CPU上面运行)。
也就是 python 的多线程,底层还是单线程在跑。效率上不会有真正并行那么高,但是还是有很大用的。另外,需要性能提升的可以试着使用多进程来实现。
linux 统计文件夹下面文件数目
Linux下有三个命令:ls
、grep
、wc
。通过这三个命令的组合可以统计目录下文件及文件夹的个数。
统计当前目录下文件的个数(不包括目录)
1
ls -l | grep "^-" | wc -l
统计当前目录下文件的个数(包括子目录)
1
ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数(包括子目录)
1
ls -lR | grep "^d" | wc -l
命令解析
ls -l
长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录,
ls -lR
是列出所有文件,包括子目录。grep "^-"
过滤ls
的输出信息,只保留一般文件,只保留目录是grep "^d"
。wc -l
统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。
python 从 setup.py 安装包
1 | python setup.py build |
参考: https://blog.csdn.net/xxzhangx/article/details/53558654
windows预览体验计划打开空白
将 诊断数据
改成 可选诊断数据
就打开了
anaconda 创建虚拟环境
1 | 创建环境 创建一个名字为 pytorch_gpu 的环境,python的版本为3.7 |
自动生成 python 项目的依赖包
1 | # 首先安装依赖 |
修改cmd的默认编码
1 | # 查看当前活动的编码编号为多少 |
参考:https://blog.csdn.net/iway_lch/article/details/50408796
ubuntu 安装 dlib
参考: https://www.jianshu.com/p/44469d7d86b3
GraphicsMagick-1.3.35
https://blog.csdn.net/ycpanda/article/details/12199895
flask 的文件类
https://werkzeug.palletsprojects.com/en/1.0.x/datastructures/#werkzeug.datastructures.FileStorage
Android 实现模拟点击的一种方式
Android ProcessBuilder [“input”, “tap”,int int]
Android在任何地方模拟点击屏幕 ====》 使用安卓中的linux命令行来进行模拟(可以完成目标但是不优雅)
ADB中可以使用”adb shell tap x y”来模拟点击
Android代码中可以使用 ProcessBuilder 来执行命令行语句。
1 | ProcessBuilder pb = |
可以开启一个子进程 执行其中数组命令,再利用 Linux 的命令,即可以完成模拟点击。
1 | //利用ProcessBuilder执行shell命令 可以点击 (x,y) 像素坐标处 |
参考链接1:https://blog.csdn.net/hai29785/article/details/52769307
参考链接2:https://developer.android.com/reference/java/lang/ProcessBuilder#command()
Android Activity 之 isTaskRoot()
App打包apk安装后重复启动根界面的问题,这个问题很特殊,一般情况下很难被发现,是Android系统一直以来的一个Bug。系统会在同一个栈中打开重复的 Activity
但触发上述的 bug,需要下面的步骤:
- 点击apk文件安装app
- 安装完成界面点击打开按钮
- 点击Home键,进入系统桌面,此时app退到后台
- 再点击桌面上启动图标
通过这样的步骤,系统就会在之前打开了activity 的栈中再次打开这些activity。
通过 isTaskRoot() 可以避免这个问题,在 Activity 的 onCreate() 方法中,通过判断 isTaskRoot() 是否是 false,如果是则直接 finish 或者 return 不再进行创建。
参考链接: https://www.jianshu.com/p/eea14ca0b164
pyMysql Access Denied
在新安装了 mysql 之后,由于一直使用的是 root 登录的,所以在终端中,始终能够无密码链接进去 mysql 中,但是 pymsql 链接就会出现 Access Denied 的问题,网上搜索有人说是 mysql 初始化 root 是没有密码的,所有这个问题,但是我实际测试了,并不是这个原因。(而且网上查到的各种通过命令行修改密码的方案疑似都不太成功),于是最终找到了一个原因。
今天更新的mysql8,和你遇到了一模一样的问题,不知道你怎么解决的。
我是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password我就可以连上了。
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘xxxxx’;