littlearphone.github.io


书签整理指南:https://nekonull.me/posts/llm_x_bookmark/


服务器设置基础知识:https://becomesovran.com/blog/server-setup-basics.html


为什么TCP需要三次握手:https://dbwu.tech/posts/network/why-tcp-does-needs-three-way-handshake

提高TCP三次握手效率:https://dbwu.tech/posts/network/what-is-tcp-fast-open/


高效使用Shell:https://effective-shell.com/

高级Shell技术:https://omid.dev/2024/06/19/advanced-shell-scripting-techniques-automating-complex-tasks-with-bash/


使用现代CSS设置表格:https://piccalil.li/blog/styling-tables-the-modern-css-way/


设置 Linux 的 Cron 任务:https://linuxiac.com/how-to-use-cron-and-crontab-on-linux/


前端文件上传:https://www.cnblogs.com/goloving/p/15271258.html


在浏览器里打开这个地址:chrome://net-internals/#hsts 然后添加特定域名可以将 http 站点强制重定向到 https 下, 这种方式相比强制启用安全访问设置要较为灵活,不至于导致其它 http 站点被阻拦。


修改 Chrome 作为默认浏览器时的启动参数:

1)从 HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice 下,ProgId 的值里找到键的引用

2)在 HKEY_CLASSES_ROOT 下面找到 ProgId 对应的键,然后在浏览器程序路径后追加如下参数:

--test-type --ignore-certificate-errors --enable-easy-off-store-extension-install --disable-web-security --user-data-dir=D:\Portable\ChromeCORS

需要注意添加空格并修改参数中的用户目录,只有指定了用户目录前面的参数才能生效,否则加了也不一定好使。

查询默认浏览器的方法来自 这里


find /etc/ -type f -exec grep -l "test" {} +

Linux 上查找文件或内容:https://blog.csdn.net/qyhua/article/details/135850239


OPFS: https://hughfenghen.github.io/posts/2024/03/14/web-storage-and-opfs/

MDN: https://developer.mozilla.org/zh-CN/docs/Web/API/File_System_API/Origin_private_file_system


一个实现Web Component的教程:
https://jakelazaroff.com/words/web-components-eliminate-javascript-framework-lock-in/


IDEA调优参数(仅供参考):https://botongcode.com/note/1712153825691


Linux服务器安全加固:https://pboyd.io/posts/securing-a-linux-vm/


基于源码的PG编译:https://www.postgresql.org/docs/current/installation.html

下载地址:https://www.postgresql.org/ftp/source/

  1. 先从https://www.postgresql.org/ftp/source/下载所需版本的源码(bz2的包)

  2. 使用tar xf postgresql-<version>.tar.bz2解压源码包并进入其中

  3. 使用./configure检查编译环境,如果有不满足的会提升,可以试着根据提示加参数屏蔽某些检查

  4. 直接执行make开始编译,正常来说执行完就编译完了,如果失败了就根据错误信息进行搜索

  5. 使用su切换到 root 权限,再执行make install开始 PG 的安装

  6. 添加 postgres 用户:adduser postgres并设置密码

  7. 为 PG 创建数据目录,可以建在 PG 的安装目录(/usr/local/pgsql)也可以另外找目录

    mkdir -p /usr/local/pgsql/data
    或
    mkdir -p /opt/pg-data
    
  8. 为数据目录设置所属chown postgres /opt/pg-data

  9. 切换到 postgres 用户su - postgres

  10. 初始化数据目录/usr/local/pgsql/bin/initdb -D /opt/pg-data

  11. 启动 PG 服务/usr/local/pgsql/bin/pg_ctl -D /opt/pg-data -l logfile start

  12. 【可选】超管密码可能需要在 pg_hba.conf 里启用受信地址后登录上去指定

    /usr/local/pgsql/bin/psql postgres
    ALTER USER user_name WITH PASSWORD 'new_password';
    
  13. 【可选】远程登录需要修改 postgresql.conf 启用 listen_addresses 配置 ( * 表示所有)

  14. 【可选】创建数据库/usr/local/pgsql/bin/createdb test

  15. 【可选】连接数据库/usr/local/pgsql/bin/psql test


删除或恢复分区上方的文件夹

将下面的内容保存为Remove-Explorer-Folders-(64-bit Windows).reg文件:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]


[-HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag]
"ThisPCPolicy"="Hide"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag]
"ThisPCPolicy"="Hide"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag]
"ThisPCPolicy"="Hide"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag]
"ThisPCPolicy"="Hide"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag]
"ThisPCPolicy"="Hide"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag]
"ThisPCPolicy"="Hide"

将下面的内容保存为Restore-Explorer-Folders-(64-bit Windows).reg文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]


[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}]


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{0ddd015d-b06c-45d5-8c4c-f59713854639}\PropertyBag]
"ThisPCPolicy"="Show"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{35286a68-3c57-41a1-bbb1-0eae73d76c95}\PropertyBag]
"ThisPCPolicy"="Show"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{7d83ee9b-2244-4e70-b1f5-5393042af1e4}\PropertyBag]
"ThisPCPolicy"="Show"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{a0c69a99-21c8-4671-8703-7934162fcf1d}\PropertyBag]
"ThisPCPolicy"="Show"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}\PropertyBag]
"ThisPCPolicy"="Show"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{f42ee2d3-909f-4907-8871-4c22fc0bf756}\PropertyBag]
"ThisPCPolicy"="Show"

winget切换源:https://dashen.wang/7003.html

%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json(没有就新建)里增加以下配置:

{
    "source": {
        "autoUpdateIntervalInMinutes": 5,
        "sources": [
            {
                "type": "Microsoft.PreIndexed.Package",
                "identifier": "Tuna",
                "arg": "https://mirrors.tuna.tsinghua.edu.cn/winget",
                "enabled": true,
                "lastUpdateTime": "2021-05-20T12:00:00.0000000Z"
            }
        ]
    }
}

Chrome可用插件:Tampermokey、Vimium C、SingleFile、沉浸式翻译、uBlock、Ghelper

快捷方式尾部加启动参数: --test-type --ignore-certificate-errors --enable-easy-off-store-extension-install --disable-web-security --user-data-dir=D:\Portable\ChromeCORS


windows系统文件扫描与恢复 (不一定有效):https://answers.microsoft.com/en-us/windows/forum/all/cant-uninstall-windows-update/ff638684-ceee-465b-8c69-c462fbe4f648


SVG学习:https://svg-tutorial.com/


intellij开源的反编译库: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine


Windows端口转发:

1.新增端口转发

netsh interface portproxy add v4tov4 listenport=9000 connectaddress=192.168.99.100 connectport=9000

2.查看端口转发

netsh interface portproxy show all

3.删除端口转发

netsh interface portproxy delete v4tov4 listenport=9000 listenaddress=192.168.253.4 protocol=tcp

来源:https://blog.csdn.net/fnFenNuDManMan/article/details/103288807




Linux端口转发:

CentOS 7.0以上使用的是firewall,通过命令行配置实现端口转发。

(1)开启伪装IP

firewall-cmd --add-masquerade

(2)配置端口转发,将到达本机的12345端口的访问转发到另一台服务器的22端口。

firewall-cmd --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22

使用--permanent参数可以固化该配置

(3)重新载入,使其失效。

firewall-cmd --reload

来源:https://blog.csdn.net/HideInTime/article/details/117779380


有意思的前端调试技巧: https://alan.norbauer.com/articles/browser-debugging-tricks

一些Web的拦截技巧: https://hughfenghen.github.io/posts/2023/12/23/web-spy/


制作支持开关和命名参数的Windows脚本:
https://stackoverflow.com/questions/15420004/write-batch-file-with-hyphenated-parameters https://superuser.com/questions/811835/passing-command-line-arguments-to-a-windows-batch-script


一个推荐网页小游戏的帖子:https://news.ycombinator.com/item?id=37931804


可拖动对象的指针与触摸实现:https://www.sitepoint.com/github-profile-readme/


简单修改 Github Profile 的说明:https://www.sitepoint.com/github-profile-readme/

深入修改 Github Profile 的参考:https://github.com/LHRUN/bubble


在时间正确的服务器上执行这个指令可以给远程主机同步时间

ssh -p端口 远程IP date -s @$(date -u +"%s")

再参考 这个链接 修改时区信息


linux 服务器上的/etc/profie文件或/etc/profie.d里的文件,可能会有TMOUT参数限制登录用户的连接时长,注释掉或设为 0 可以让 SSH 长期不断线。

如果上面两处都找不到这个参数,那还可以试试在~/.bashrc~/.bash_profile里面找。


查看监听的端口

netstat -lnpt

允许调试端口通过防火墙

firewall-cmd --zone=public --add-port=5556/tcp --permanent

重新加载防火墙配置

firewall-cmd --reload

禁止指定端口通过防火墙

firewall-cmd --zone=public --remove-port=5556/tcp --permanent

查看所有开放的端口

firewall-cmd --zone=public --list-ports

查看防火墙状态

firewall-cmd --state

关闭防火墙

systemctl stop firewalld.service

额外的参考:https://blog.csdn.net/weixin_43568232/article/details/111408416


使用firewalld防火墙限制白名单访问

屏蔽所有IP使用tcp访问9200端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="9200" drop'
# firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port protocol="tcp" port="9200" drop'

白名单IP(例如10.1.1.5/32)

firewall-cmd --zone=trusted --add-source=10.8.0.0/16 --permanent
# firewall-cmd --zone=trusted --remove-source=10.8.0.0/16 --permanent

添加的规则使用firewall-cmd --list-all查看

最后,重新加载配置,使其生效

firewall-cmd --reload

使用如下指令在展开压缩包时将指定的多个内容释放到搜索出的不同路径下

yes | find /home -name 'video-???' -type d | xargs -L 1 -t -I {} unzip xxx.zip "video/*" -d {}/bin/
  • 此处示例前半段表示从/home路径下搜索video-xxx的目录
  • 后半段表示将前半段输出的每一行以参数填充到预设指令中
  • -L 1表示管道里每行作为一个参数,也可以多行作为一个参数,连接符为\n
  • -I {}表示参数的占位符,预设指令中出现该占位符的地方会被替换
  • -t 表示输出具体执行的完整指令,管道有多输出就可能会显示多条指令
  • 从unzip开始的都是预设指令,在管道输出方式下就能实现多输出

最小化安装Redhat时,可能会没有网络,需要通过主机终端先启用网络服务。

  • 在安装网络服务前,先去修改网络脚本文件里的ONBOOT配置项为yes,让网卡可以随服务启用。
  • 网卡配置参考路径为/etc/sysconfig/network-scripts/ifcfg-enp1s0,多网卡可能有多个文件。
  • 网卡配置文件后半段为网卡名称,文件里的配置名需要和这部分名称保持一致,启用网卡时注意区分名称。
  • 默认情况下配置文件里应该是dhcp模式,需要指定IP的话参考 此文
  • 修改完网卡配置还需要在/etc/sysconfig/network里加一行NETWORKING=yes后保存退出。
  • 接着去挂载安装镜像,lsblk可以看到sr为前缀的设备信息,选择正确的用mount /dev/srx /mnt挂载。
  • 挂载后会显示只读,此时进入/mnt/BaseOS/Packages找网络服务包使用 rpm 指令进行安装。
  • 不同版本的系统镜像带的包版本可能有所不同,根据实际的安装就行,这里的包肯定是最合适的。
rpm -ivh ipcalc-0.2.4-4.el8.x86_64.rpm bc-1.07.1-5.el8.x86_64.rpm network-scripts-10.00.18-1.el8.x86_64.rpm

安装完网络服务包就可以使用网络服务了,以防万一可以重启下网络服务,促使网卡启用

service network restart

默认应该也没有ifconfig指令,需要安装net-tools包才能使用,此外unzip也能在镜像里面找到

rpm -ivh net-tools-2.0-0.52.20160912git.el8.x86_64.rpm

使用systemctl list-units查到的 not-found 状态服务可以使用systemctl reset-failed清理


使用journalctl --vacuum-size=1G可以限制系统日志的存储上限

使用journalctl --vacuum-time=2d可以限制系统日志的存储时限


du -h <dir> | grep '[0-9\.]\+G'可以分析指定路径下的空间占用

在 -h 之前增加 --exclude=PATTERN 可以排除某些路径提高分析速度


通过 http://ip:port/_alias 可以列出 ES 所有的索引别名

通过 http://ip:port/_cat/indices/keyword*?v 可以筛选 ES 的索引

筛选地址末尾的v参数用来显示返回结果列的标题


使用ImageMagick可以把svg或多张普通图片转换为自适应大小的ico图标

convert -density 256x256 -background transparent favicon.svg -define icon:auto-resize -colors 256 favicon.ico

找到个地方直接下载 mini 版本的安装包,就是全加载比较难顶:https://chromium.cypress.io/

下面问答采纳的那条回复里的检索页面已经下线,但是其它回答里的 地址 倒是可以直接用。

获取chrome mini版本安装包的方法参考 此文


在服务器上的服务启动参数追加

-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=0.0.0.0:5556

然后在IDEA中新建remote启动项,通过配置中的address连接到远程服务

-agentlib:jdwp=transport=dt_socket,address=10.19.84.88:5556,server=y,suspend=n