这篇博客介绍了一些日常收集整理资料。
1 常见的日常积累小技巧
- mac 电脑外接显示屏
对于屏幕分辨率的问题,其中较好的一个仓库软件叫做
betterdisaplay,可以用来调整刷新赫兹以及分辨率,但是要注意下载符合mac的系统版本的软件;
https://github.com/waydabber/BetterDisplay/releases?page=6
-
Adobe ps 免费激活版本 :link
-
绘图的时候图例位置参数设置
# 紧凑型图例 handles, labels = plt.gca().get_legend_handles_labels() plt.legend(handles[:35], labels[:35], loc='upper right', ncol=2, columnspacing=0.8, handletextpad=0.5) # 自动检测最佳位置 # plt.legend( # loc='best', # bbox_to_anchor=(1, 0.5), # 右侧垂直居中 # borderaxespad=0.5, # framealpha=0.9 # ) # plt.legend( # loc='upper center', # bbox_to_anchor=(0.5, -0.15), # 向下偏移15% # ncol=2, # frameon=True, # shadow=True, # fancybox=True # ) -
google colab 时刻触发脚本
function ConnectButton(){ console.log("Connect pushed"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() } setInterval(ConnectButton,60000);
2 代码运行常见
1. 后台进程管理方案
-
使用nohup持久运行
nohup python -u run_script.py > script.log 2>&1 & # - 参数说明 # nohup:忽略挂断信号 # -u(Python参数):禁用输出缓冲 # > script.log:标准输出重定向 # 2>&1:错误输出合并 # &:后台运行 -
验证进程状态
# 查看进程列表 ps aux | grep "python run_script.py" # 实时监控日志 tail -f script.log -
终止进程
# 优雅终止 pkill -f "python run_script.py" # 强制终止(无响应时) kill -9 1708 -
高级管理方案(生产环境推荐), 使用systemd服务 创建服务文件。
sudo nano /etc/systemd/model.service -
服务内容:
[Unit] Description=Model Training Service [Service] User=root WorkingDirectory=/root/PDFormer ExecStart=/root/miniconda3/envs/base/bin/python run_script.py Restart=always StandardOutput=file:/var/log/model.log StandardError=file:/var/log/model_error.log [Install] WantedBy=multi-user.target -
启用服务:
sudo systemctl daemon-reload sudo systemctl enable model sudo systemctl start model- 使用tmux会话管理
# 安装tmux sudo apt install tmux -y # 创建会话 tmux new -s model_train # 在会话中运行 python run_script.py # 分离会话 Ctrl+B → D # 重连会话 tmux attach -t model_train # 打开现有会话 tmux attach -t python_session2. Markdown常用快捷键
Ctrl 0 到 Ctrl 6: 普通文本、一级文本~六级文本 Ctrl B: 加粗 Ctrl I: 斜体 Ctrl U: 下划线 Shift Alt 5: 删除线 Shift Ctrl ~: 行内代码块 Ctrl K: 超链接 Ctrl T: 表格 Ctrl Shift Q: 引用 Shift Ctrl I: 插入图片 Shift Ctrl M: 公式块 [ ]: 任务列表(可勾选的序列) <sup>内容</sup>: 上标 <sub>内容</sub>: 下标 :smile:: 😄 [toc]: 展示目录 Ctrl L: 选中一行 Ctrl D: 选中内容/单词 Ctrl Home: 跳转到文章开头 Ctrl End: 跳转到文章结尾 Ctrl F: 搜索 Ctrl H: 替换3 学习资源
1. 书籍资源
```java 主站: http://www.https.ng 镜像站点:
- http://38.147.170.240:5959
- http://103.74.192.62:1234
- http://45.145.228.151
- http://193.134.211.102:1234
EPUB资源: http://38.147.170.240:5959/c1/baidupan/222222/其它/EPUB
4 trae 更换token的脚本
功能说明
通过浏览器控制台注入 Cookie,实现 Trae IDE Web 端的登录态切换(更换 token / session)。
使用方法
- 打开 Trae Web IDE 页面
- 按
F12打开浏览器开发者工具,切换到 Console 面板 - 粘贴下方脚本并回车执行
- 手动刷新页面(
F5),检查是否登录成功
脚本
(function() {
const cookies = [
"sessionid=<YOUR_SESSION_ID>",
"X-Cloudide-Session=<YOUR_CLOUDIDE_SESSION>",
"passport_auth_status=<YOUR_AUTH_STATUS>",
"sid_tt=<YOUR_SID_TT>",
"uid_tt=<YOUR_UID_TT>",
"ttwid=<YOUR_TTWID>"
];
const domain = "; domain=.trae.cn; path=/; expires=Fri, 31 Dec 2026 23:59:59 GMT; SameSite=Lax";
cookies.forEach(cookie => {
document.cookie = cookie + domain;
});
console.log("✅ 注入尝试完成,请手动刷新页面查看结果。");
console.warn("⚠️ 如果刷新后未登录,说明 HttpOnly 属性拦截了脚本注入,请使用 Application 面板手动添加。");
})();
Cookie 字段说明
| 字段 | 作用 |
|---|---|
sessionid |
主会话标识,用于服务端校验登录态 |
X-Cloudide-Session |
Cloud IDE 专属会话令牌,关联云端工作区 |
passport_auth_status |
认证状态标记,标识账号是否已完成验证 |
sid_tt |
服务端 Session ID(与 sessionid 对应) |
uid_tt |
用户唯一标识(User ID) |
ttwid |
设备指纹 / 防伪令牌,含时间戳与签名 |
注意事项
- HttpOnly 限制:部分 Cookie(如
sessionid)可能设置了HttpOnly属性,JavaScript 无法通过document.cookie写入。此时需改用开发者工具 Application → Cookies 面板手动逐条添加 - 有效期:脚本中
expires设为 2026-12-31,但实际有效期取决于服务端 session 过期策略,Cookie 注入成功不代表 session 仍有效 - 域名匹配:
domain=.trae.cn确保所有子域名共享该 Cookie;若目标页面域名不同需相应修改 - 安全提醒:Cookie 中包含敏感凭据,请勿在公开环境分享或提交至版本控制
刷客脚本
(function() {
// 适配学习公社:视频页路径匹配
const isVideoPage = window.location.pathname.startsWith('/p/course/videorevision/');
// 适配学习公社:课程页路径匹配
const isCoursePage = window.location.pathname === '/p/uc/home';
if (isVideoPage) {
// 1. 防暂停:监听video,自动恢复
setTimeout(() => {
const video = document.querySelector('video');
if (!video) return;
video.addEventListener('pause', () => {
video.play(); // 强制播放
console.log('防暂停:已恢复播放');
});
}, 3000);
// 2. 自动静音(适配学习公社静音按钮class,需现场确认)
const autoMute = () => {
setTimeout(() => {
const muteBtn = document.querySelector('.video-mute-btn'); // 替换为实际class
if (muteBtn) muteBtn.click();
}, 2000);
};
// 3. 自动切课:检测进度100%,点击下一节
setInterval(() => {
// 替换为学习公社进度元素class
const progressItems = document.querySelectorAll('.study-progress-item');
if (progressItems.length === 0) return;
// 当前进度
const currentProgress = progressItems[0].innerText.trim();
// 最后一个进度
const lastProgress = progressItems[progressItems.length - 1].innerText.trim();
// 全部完成:关闭页面
if (lastProgress === '100%') {
localStorage.setItem('videoDone', 'true');
window.close();
return;
}
// 当前完成:切下一节
if (currentProgress === '100%') {
for (let i = 1; i < progressItems.length; i++) {
if (progressItems[i].innerText.trim() !== '100%') {
progressItems[i].click();
console.log('切课:已点击下一节');
break;
}
}
}
// 异常刷新
const errorDialog = document.querySelector('.dialog-content');
if (errorDialog && errorDialog.innerText.includes('学时异常')) {
location.reload();
}
}, 5000);
// 启动
autoMute();
}
if (isCoursePage) {
// 课程页:自动进入未完成课程
const startLearn = () => {
// 切换未完成标签(替换实际class)
document.querySelector('.tab-unfinished').click();
setTimeout(() => {
// 点击第一个学习按钮(替换实际class)
const learnBtn = document.querySelector('.start-learn-btn');
if (learnBtn) learnBtn.click();
}, 1000);
};
// 首次执行
setTimeout(startLearn, 2000);
// 循环检测
setInterval(() => {
if (localStorage.getItem('videoDone') === 'true') {
location.reload();
}
}, 5000);
}
})();