如何搜索

原则#

  1. 搜索的时候,要简约,且尽量把关键词分散,不要有"的",“地”,或者其他动词什么的,尽量是名词
  2. 关键词之间用空格隔开

比如想要看一部电影,那么关键词有"电影名",“bt”,“迅雷”,“阿里云盘”,“百度网盘”

解释一下,这里来源(迅雷|阿里云盘|百度网盘),资源类型(bt)也是关键词

所以搜索就是**“孤注一掷 bt”,“孤注一掷 阿里云盘”,“孤注一掷 百度网盘”,“孤注一掷 迅雷”,注意,中间都有空格**

例子#

bt种子形式#

image-20240226132336128
点进来之后,滑到最下面(一般链接都是以浅蓝色标识,点过一次后就变成暗红色)
image-20240226132614759

bt文件一般要用"迅雷"这个软件下载,上面随便点击一个,迅雷这个软件就会跳出来
image-20240226132743460
然后选择好目录点击确认就可以下载了

阿里云盘形式#

image-20240226133054195

第一个链接有人提出质疑了,我们点下面那个,这是进入之后的画面:
image-20240226133201891
再点击"阿里xxxxxxxxxx"这个链接,进入阿里云盘:
image-20240226133251855

点进来看视频文件还在不在,在的话,保存就可以了
image-20240226133340936
之后到自己的阿里云盘下载就行了

百度云盘形式#

百度云盘被限速了,不得已的情况下,不要用百度云盘,基本上前面两种形式的资源没找到的话,百度云盘大概率也不会有

Linux操作符问题

函数退出#

函数退出状态:0(成功),非零(非正常,失败)

引号#

双引号中使用转义字符可以防止展开
这意味着单词分割(空格制表换行分割单词)、路径名展开(*星号)、波浪线展开和花括号展开都将失效,然而参数展开算术展开命令替换仍然执行

echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER" #禁止部分
text ~/*.txt {a,b} foo 4 me
echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER' #全部禁止
text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER

各种操作符#

[ expression ] / test[[ expression ]]$(( expression ))$var$( termi )
文件表达式 -e file,字符串表达式 -n string,整数表达式 integer1 -eq integer2test增强,增加 [ str =~ regex ],增加 ==
[[ $FILE == foo.* ]]
整数加减乘除取余取变量执行命令/函数
termi取变量$必加,里面被看作命令参数,< > ( ) 必须转义 否则 小于号 < 大于号>被认为重定向与[ ] 一致取变量$可加可不加termi取变量$必加

image-20230920195057911

Debian问题处理3

fcitx配合各种软件出现的问题#

本文章中出现的引号都是英文状态下的引号,切记!

安装完毕后环境变量设置#

/etc/profile 和/etc/enviroment 均可,profile针对用户,environment针对系统。一般都是放profile里面

不行的话#

如果修改profile无效,则在/etc/enviroment添加修改

#/etc/enviroment 末尾添加
fcitx & #这行要添加
export XIM_PROGRAM=fcitx
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export LANG=zh_CN.UTF-8

source后再重启一下哦

装了zsh后(从终端打开)idea等各种软件不出现fcitx输入法的问题#

/.zshrc最后添加

export XIM_PROGRAM=fcitx
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export LANG=zh_CN.UTF-8
export LC_MESSAGES=en_US.UTF-8 #让终端报错时,显示英文 而不是中文

也可以不在/.zshrc中追加这些,而是直接追加 source /etc/profile或者/etc/enviroment即可

如果还有问题,就要在idea的配置文件idea.vmoptions添加

-Drecreate.x11.input.method=true

如果使用系统默认终端的情况下出的问题#

可以在 ~/.bashrc最后添加这段话,重启试试

export XIM_PROGRAM=fcitx
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export LANG=zh_CN.UTF-8

各个文件的解释#

/etc/profile //用户级,所有用户登陆时才会执行 对于fcitx没效果(firefox无效)
/etc/enviroment //系统级,一般不修改 这里有效果
~/.bashrc //系统默认终端打开时执行 ~/.zshrc //zsh使用前执行

Debian问题处理2

代理#

Vmware里面的debian,连接外面物理机的v2ray。

对于浏览器#

无论是firefox还是chromium,都可以直接通过v2ray允许局域网,然后使用ProxySwitchOmege代理访问

对于命令#

可以使用proxychains,直接用apt-get 安装即可,注意事项

作用范围#

对tcp生效,ping是不生效的,不要白费力气

需要修改两个地方#

  1. libproxychains.so.3 提示不存在 ly

    whereis libproxychains.so.3 
    #libproxychains.so.3: /usr/lib/x86_64-linux-gnu/libproxychains.so.3
    #修改/usr/bin/proxychains
    #export LD_PRELOAD = libproxychains.so.3 修改为:
    export LD_PRELOAD = /usr/lib/x86_64-linux-gnu/libproxychains.so.3
  2. l’y配置修改

    #修改文件/etc/proxychains.conf,在最后一行添加
    socks5 	192.168.1.201 1082
  3. 使用

    proxychains git pull
    #直接在命令最前面输入proxychains即可

直接网络(gui)配置代理#

这个对于终端不生效

zsh安装#

proxychains wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
proxychains sh install.sh

zsh主题安装#

proxychains git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
#修改
vim ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"

重新配置 p10k configure

程序环境设置#

环境变量

#java环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_281
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
#maven环境变量
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin 

typora破解#

声明:破解可耻,尊重正版。这里仅以学习为目的

Debian问题处理1

清华源设置#

vim /etc/apt/sources.list
#注释掉原来的,并添加
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

中文环境#

su
sudo apt-get install locales
#配置中文环境 1.选择zh开头的 2 后面选择en(cn也行,不影响输入法)
sudo dpkg-reconfigure locales
#设置上海时区
sudo timedatectl set-timezone Asia/Shanghai

中文输入法#

#清除旧的环境
apt-get remove ibus #不兼容问题
apt-get remove fcitx5 fcitx5-chinese-addons 
apt-get autoremove 
ly # gnome-shell-extension-kimpanel
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk4 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2  fcitx5-frontend-qt5 
im-config #配置使用fcitx5 
vim /etc/profile
#环境变量添加
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
#退出root用户权限,使用普通用户权限再终端
fcitx5-configtool #配置中文输入法即可
#附加组件-经典用户界面--这里可以修改字体及大小
#fcitx5自动开启
mkdir -p ~/.config/autostart && cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart

其他#

应用程序-优化 修改默认字体大小

安卓手机及平板安装linuxDeploy的问题简记

为什么是简记呢,因为这几天折腾这些太累了,等以后回过头来重新操作再详细记载

前言#

初衷#

一开始的初衷是为了在平板上使用idea,之前看了一篇docker使用idea的文章,心血来潮。所以想直接在平板的termux安装docker然后使用,结果一堆问题。后面妥协了,在手机上装,然后开远程吧

这年头机在人在,所以装手机还是平板,还真没有很大的问题。后面使用情况证明:手机不需要开热点的情况(开热点是为了保证网络联通,在同一局域网),其实不怎么发热也不怎么耗电的。

平板上#

本来想在tab s8平板上通过termux安装linux(无root权限),但是总会遇到一堆问题–连系统都装不上。因为root会有两个问题,所以一开始没有考虑使用linuxDeploy(需要root)

  • 保修失效
  • 无法通过系统直接更新(需要线刷)

手机上(root)#

配置#

后面尝试在root过的手机上安装linuxDeploy,照样有一堆问题,这里配上能使用的配置(能进系统):

ly-20241212141834176
我用的时候ssh端口改了一下,不过不影响,第一次用的22端口也是能连上的。初始用户写的root,这里也是设置的root。
最好挂载一下
ly-20241212141834486

问题#

  1. 用其他桌面环境,可能会导致图标没有(应该是就没有那个应用,比如浏览器),不过我这个配置完也没有浏览器,不过好在图标也没,不用自己再去移除了。

  2. 装完之后vns有出错过一次,突然就蹦了,死活连不上。后面我直接重装系统了(linux deploy),没有再出现问题。装完之后需要在/etc/rc.local添加:

    #删除vns临时文件,保证每次启动都是使用端口:5901
    #(linux上显示:1,连接使用时要+5900,即使用5901端口)
    rm -rf /tmp/.X[1-9]-lock
    rm -rf /tmp/.X11-unix/X[1-9]
    #保证系统每次启动后都自动启动vncserver
    vncserver

    电脑上随便找了个VNCServer 绿色免安装程序可以连上
    ly-20241212141834670
    平板上使用AVNC,电脑不方便截图,就不截了.. 类似长这样
    ly-20241212141834882

    #常用命令(也不常,这两天用的最多的)
    vncserver -kill :1 #强制关闭端口1
    vncserver #启动
  3. 安装idea,也不用安装,就是去官网下载解压即可。问题:需要jdk11以上才能打开(疑惑,貌似之前在windows安装的时候没这要求,反正后面我妥协了,装了11,之后就是配置环境变量什么的)
    一开始linuxDeploy的Ubuntu,然后..发现openjdk11装完之后,java -version显示的10,一脸蒙圈,搞得后面又重装了Debian(中途还试了centos)

  4. 装完没有中文输入法,系统装完就是要用的,如果随便打打命令倒是不需要中文输入法,但是如果打点代码写点注解,那蹩脚英语就…总不能句句good good study,day day up..真是one day day de…

问题处理#

其实解决方案前面好像都说了,输入法单独开一块吧,比较恶心,主要是让我意识到了自己水平有多菜…

某些机器(平板)省电模式下,默认的那个用户会断网,原因不明#

所以那个用户就别用了,再创建一个新的

useradd -d /home/ly -s /bin/bash -m ly 

然后设置下密码

passwd ly

配置中文环境#

sudo dpkg-reconfigure locales
#前面选英文和中文,后面选英文
#设置时区
sudo timedatectl set-timezone Asia/Shanghai

中文字体安装#

apt-get install ttf-wqy-zenhei
apt-get install xfonts-intl-chinese wqy*

输入法相关安装#

#fcitx安装
apt install fcitx -y
#输入法安装
apt install fcitx-googlepinyin fcitx-sunpinyin fcitx-pinyin
#中文字体包,简体繁体
apt install fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp
apt  install fcitx-table*

image-20231109203455234

JDK代理和CGLIB代理

完全转载自https://juejin.cn/post/7011357346018361375 ,以防丢失故作备份 。

一、什么是代理模式#

代理模式(Proxy Pattern)给某一个对象提供一个代理,并由代理对象控制原对象的引用。代理对象在客户端和目标对象之间起到中介作用。

代理模式是常用的结构型设计模式之一,当直接访问某些对象存在问题时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。代理模式属于结构型设计模式,属于GOF23种设计模式之一。

代理模式可以分为静态代理和动态代理两种类型,而动态代理中又分为JDK动态代理和CGLIB代理两种。 代理模式包含如下角色:

  1. Subject (抽象主题角色) 抽象主题角色声明了真实主题和代理主题的共同接口,这样一来在任何使用真实主题 的地方都可以使用代理主题。客户端需要针对抽象主题角色进行编程。
  2. Proxy (代理主题角色) 代理主题角色内部包含对真实主题的引用,从而可以在任何时候操作真实主题对象。 在代理主题角色中提供一个与真实主题角色相同的接口,以便在任何时候都可以替代真实 主体。代理主题角色还可以控制对真实主题的使用,负责在需要的时候创建和删除真实主 题对象,并对真实主题对象的使用加以约束。代理角色通常在客户端调用所引用的真实主 题操作之前或之后还需要执行其他操作,而不仅仅是单纯的调用真实主题对象中的操作。
  3. RealSubject (真实主题 角色) 真实主题角色定义了代理角色所代表的真实对象,在真实主题角色中实现了真实的业 务操作,客户端可以通过代理主题角色间接调用真实主题角色中定义的方法。

代理模式的优点#

  • 代理模式能将代理对象与真实被调用的目标对象分离。
  • 一定程度上降低了系统的耦合度,扩展性好。
  • 可以起到保护目标对象的作用。
  • 可以对目标对象的功能增强。

代理模式的缺点#

  • 代理模式会造成系统设计中类的数量增加。
  • 在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢。

二、JDK动态代理#

在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。

InvocationHandler#

每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联了一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由InvocationHandler这个接口的 invoke 方法来进行调用。

InvocationHandler这个接口的唯一一个方法 invoke 方法:

java
复制代码Object invoke(Object proxy, Method method, Object[] args) throws Throwable

这个方法一共接受三个参数,那么这三个参数分别代表如下:

  • proxy:指代JDK动态生成的最终代理对象
  • method:指代的是我们所要调用真实对象的某个方法的Method对象
  • args:指代的是调用真实对象某个方法时接受的参数

Proxy#

Proxy这个类的作用就是用来动态创建一个代理对象的类,它提供了许多的方法,但是我们用的最多的就是newProxyInstance 这个方法:

java
复制代码public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces,  InvocationHandler handler)  throws IllegalArgumentException

这个方法的作用就是得到一个动态的代理对象,其接收三个参数,我们来看看这三个参数所代表的含义:

  • loader:ClassLoader对象,定义了由哪个ClassLoader来对生成的代理对象进行加载,即代理类的类加载器。
  • interfaces:Interface对象的数组,表示的是我将要给我需要代理的对象提供一组什么接口,如果我提供了一组接口给它,那么这个代理对象就宣称实现了该接口(多态),这样我就能调用这组接口中的方法了。
  • Handler:InvocationHandler对象,表示的是当我这个动态代理对象在调用方法的时候,会关联到哪一个InvocationHandler对象上。

所以我们所说的DynamicProxy(动态代理类)是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些 interface。这个DynamicProxy其实就是一个Proxy,它不会做实质性的工作,在生成它的实例时你必须提供一个handler,由它接管实际的工作。

linux中调试open jdk

完全转载自https://lin1997.github.io/2020/07/19/debug-openjdk-on-ubuntu.html ,以防丢失故作备份,目前还没看懂。

在Ubuntu中编译和调试OpenJDK#

构建编译环境#

安装GCC编译器:

sudo apt install build-essential

安装OpenJDK依赖库:

工具库名称安装命令
FreeTypeThe FreeType Projectsudo apt install libfreetype6-dev
CUPSCommon UNIX Printing Systemsudo apt install libcups2-dev
X11X Window Systemsudo apt install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
ALSAAdvanced Linux Sound Architecturesudo apt install libasound2-dev
libffiPortable Foreign Function Interfacesudo apt install libffi-dev
AutoconfExtensible Package of M4 Macrossudo apt install autoconf
zip/unzipunzipsudo apt install zip unzip
fontconfigfontconfigsudo apt install libfontconfig1-dev

假设要编译大版本号为N的JDK,我们还要安装一个大版本号至少为N-1的、已经编译好的JDK作为“Bootstrap JDK”:

zsh卸载后root无法登录及vm扩容centos7报错处理

zsh卸载后root无法登录#

主要参考文档 https://blog.csdn.net/Scoful/article/details/119746150

  1. 重启,开机引导进入下面的那个,按e进入编辑模式

ly-20241212141833490

  1. 移动光标,找到ro crashkernel=auto,修改为 rw init=sysroot/bin/sh

    ly-20241212141833799

  2. 按ctrl+x进入单用户模式界面

ly-20241212141833982

  1. 输入chroot /sysroot 获取权限
  2. vim /etc/passwd
  3. 第一行 ,root ……zsh,中/bin/zsh,改为/bin/bash
  4. touch /.autorelabel更新SELinux信息
  5. 两次exit 推出chroot
  6. reboot 重启:需要一定时间,耐心等待

vm扩容centos7#

这里是因为我在vm手动扩容后,进入centos7系统—用了 可视化界面中的disk软件直接扩容,发生错误(具体错误我没注意,一闪而过了),后面呢我再使用命令resize2fs /dev/sda3的时候,发现总是提示 busy

解决办法#

按照上面的办法,进入到第3步结束之后(按ctrl+x进入单用户模式界面 要做)
输入 umount /dev/sda3 进行卸载
然后输入下面进行修复(极为重要),然后出现问题是否修复一直按’y’即可

xfs_repair /dev/sda4
注:如果你当前文件系统是ext4,可以执行fsck.ext4 /dev/sda4

然后输入 mount /dev/sda3 / 进行挂载(这步可能不需要)
最后 reboot 重启
重启之后,再执行 resize2fs /dev/sda3 即可

hexo在线查看pdf

场景#

由于在看《mysql是如何运行的》,做md文件笔记时,发现好多都是按pdf一字不漏打出来。所以想着能不能直接本地编辑pdf,然后博客上支持在线查看

事后觉得这个方式有待斟酌,电脑上/平板上查看没啥问题,手机上查看字有点小,但也还能接受。==>待斟酌
不过下面的方案是可行的。

准备#

需要到官网下载 pdf.js

https://github.com/mozilla/pdf.js/releases ,这里选择 v3.4.120中的 pdfjs-3.4.120-dist.zip ,最新版本好像有问题

操作#

pdfjs处理#

在source/下创建myjs/pdfjs文件夹,并解压到这个文件夹下
ly-20241212141830564

修改pdfjs/web/viewer.js

if (fileOrigin !== viewerOrigin) {//1563行左右
	throw new Error("file origin does not match viewer's");
}
//注释掉,为了处理跨域问题,注释掉后允许在线访问其他网站的pdf
// if (fileOrigin !== viewerOrigin) {
//	throw new Error("file origin does not match viewer's");
//}

hexo配置修改#

# 找到# Directory下的skip_render项,添加忽略渲染的文件夹
skip_render:  ['myjs/pdfjs/**/*']

清理hexo中public及其他缓存文件#

 hexo clean & hexo g

文件预览测试#

本地文件#

我们在hexo的source文件夹下,放置这样一个文件: source/pdf/my.pdf
ly-20241212141830812

MD文件修改#

<iframe src='/myjs/pdfjs/web/viewer.html?file=/pdf/my.pdf' style="padding: 0;width:100%;" marginwidth="0" frameborder="no" scrolling="no" height="2000px"></iframe>

操作并查看#

hexo g & hexo s

ly-20241212141831013