Tag: 脚本
使用 Bash 脚本计算最大公约数(GCD) 什么是 GCD? GCD 是 最大公约数(Greatest Common Divisor) 的缩写。 它是能同时整除两个整数的最大正整数。 例如: 8 和 12 的 GCD 是 4 14 和 49 的 GCD 是 7 GCD 常用于化简分数、密码算法以及数论中。 …
本文详细讲诉了用脚本实现定时模拟计算机按键,用于保持系统一直在线的状态。脚本可以使用VBScript、JScript和Powershell。这三种脚本语言都是微软/Microsoft的,不过前两种已经要被淘汰了。 在 Windows 环境下,这三种脚本(PowerShell、VBScript 和 JScript)都通过 CreateObject 来调用 COM 对象 WScript.Shell,以实现模拟按键的功能。例如,可以每隔一分钟模拟按下 Scroll Lock 键一次,从而保持“在线”状态(Keep Alive)。Scroll Lock 键在某些键盘上可能不存在,其作用是切换滚动锁定状态,连续按两次不会对系统造成实际影响。 模拟按键:自动化任务脚本 有时候,你可能想模拟按键(键盘输入),例如为了自动化一些任务,相比查找 API 并写脚本,通过重复按键可能更简单。例如,你想打开任何聊天窗口并输入 “Hello!” 100 次,可以使用 PowerShell 编写一个脚本,它先暂停几秒钟,然后模拟按键。 你可以通过在 Windows 中使用 …
如何使用 GDB 或 LLDB 调试器重复运行程序直到发生错误 在调试程序时,有时候我们希望一直运行程序直到遇到错误。GDB(GNU 调试器)和 LLDB(LLVM 调试器)都提供了自动化此过程的方法。 这在调试一些不稳定的程序非常有用,例如有时候写的一些单元测试可能随机崩溃SegFault。最近我在调试一个测试每跑1000次就有一次崩溃的时候就发现gdb/lldb调试器非常有用。 简介:GDB vs LLDB GDB(GNU 调试器)和 LLDB(LLVM 调试器)是用于低级别应用程序调试的强大工具。GDB 传统上用于由 GCC 编译的程序,而 LLDB 是 LLVM 项目的一部分,与 Clang 无缝配合。两者都提供强大的功能,但 GDB 在 Linux …
我一直是自己租用VPS服务器,然后搭建各种服务,比如博客就是Apache2+MySQL数据库。一般来说就是默认参数,没有去管,不过最近发现MySQL的性能参数都很保守,不能发挥整个服务器的性能。 然后我就网上搜索了一下,根据参数配置建议,用ChatGPT写了以下Python和BASH脚本。只需要在需要优化的服务器上,跑一下该脚本,然后就会显示参数配置,然后直接把参数添加到MySQL数据库配置参数文件上: /etc/mysql/mysql.conf.d/mysqld.cnf 然后运行: service mysql restart 重启MySQL服务器。 运行了几周,发现效果很好,博客反应速度也快了很多,这很大原因是根据了内存增加了MySQL缓存大小。 Python脚本优化MySQL数据库参数 把下面的Python脚本存成 mysql_config.py 然后运行 python3 mysql_config.py def get_total_ram(): with open('/proc/meminfo', 'r') as f: for line in f: if line.startswith("MemTotal:"): total_ram_kb …
MOV 视频很大, 每次教娃视频如果是在 4k 60fps 下 十来分钟就得1个多G. 我手机上拍完之后用 Dropbox 同步到电脑上, 很快硬盘空间就不太够了. 我们可以用以下脚本批量把MOV视频转换成MP4/MPEG. 脚本是基于开源的视频音频解码程序 https://ffmpeg.org/ BASH 脚本批量把MOV视频压缩转换成MP4 首先, 我们需要扫描当前目录及子目录下的MOV文件, 然后调用 ffmpeg 把每个文件依次转换成MP4. 转换后留5秒时间间隔然后删除原MOV文件. #!/bin/bash process() { local mov="$1" echo Processing …
2020年12月10日
BASH, BASH, I.T., 小技巧, 技术, 折腾, 数码, 树莓派, 树莓派 Raspberry Pi, 硬件, 程序设计, 计算机, 资讯
我们很容易可以通过以下BASH脚本来显示当前树莓PI的温度和频率. #pi@raspberrypi:~ $ cat ./cpu_freq.sh #!/bin/bash temp=`head -n 1 /sys/class/thermal/thermal_zone0/temp | xargs -I{} awk "BEGIN {printf \"%.2f\n\", {}/1000}"` echo $((`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`/1000)) MHz, $temp degrees 然后, 我们可以每3秒来显示这个信息: # 每3秒显示 while …
有时候无意的提交代码 push 到本地主/开发分支时, 你有没有想过把头撞到墙上? 一般这种情况下 我们能通过 `git reset HEAD files` 来取消提交 (unstage), 但是, 这还是挺让人不爽的. 还好, git 提供了很多 hooks 挂钩, 这些挂钩可以在事件完成前后做些检查, 其中 pre-push 就用于在推送代码前进行检查, 当脚本返回1时, 那么动作将停止, 而返回0时则表示一切正常可以继续提交. pre-push 是 BASH脚本, …