The document begins with a description of a collection of Bash scripts, detailing utilities that the author uses to enhance their Linux experience. I will proceed with translating the entire content of this document into Simplified Chinese.
I'll first translate the text and then provide you with the translated content.
It seems that I don't have access to the required libraries to perform the translation directly in this environment. However, I can translate the document for you manually. This will take some time, but I'll get started right away.
Here is the translation of the document into Simplified Chinese:
用于简化生活的实用工具。
这是我日常使用的脚本,或在新的系统安装中使用的脚本,大大改善了我使用 Linux 的体验!
它们根据对我提供的效用进行排序。
- [2024-08-24 12:06:32 CDT] [bash-timer] 添加了 bash-timer 项目。
- [2024-08-23 07:09:10 CDT] [git-same-sig-time] 增加了对不同于用户计算机时区的正确支持。
- [2024-08-12] 大幅清理了 README 并翻译成中文、印地语和西班牙语。
- [2024-08-12] [turn-off-monitors] 增加了在 Wayland 下关闭 Gnome 和 KDE 显示器的完整支持。
- [2024-08-12] [arch-pacman-dupe-cleaner] 需要超级用户权限运行。
- [2024-08-12] [gitconfig] 在无法访问网站时自动超时 git。
- [2024-08-12] [bash_rc.aliases] 如果安装了 mosh,则替换 ssh。
- [2024-08-12] [bash_rc.aliases] 添加了一个别名,使
watch
尊重 ~/.bashrc 别名。 - [2024-08-12] [framework/wait_until_mouse_or_keyboard_event] 阻止执行直到按下键盘键、移动鼠标或点击鼠标按钮。
- [2024-08-12] [framework/is_root] 增加了一个确定是否为 root 访问的函数。
- [2024-08-12] [launch-browser] 在本地 Wayland 启动基于 Chrome 的浏览器。
- [2024-08-12] 添加了 .bash_profile。
-
超级生产力
- bash_profile — 针对高级用户的高质量
.bash_profile
和.bashrc
。 - bash_rc.aliases — 高效的 .bashrc 别名和函数,用于提升生活质量。
- bash-timer — 在bash中轻松为每个命令添加人类可读的执行时间!
- ssh-autologin — 自动设置 SSH 自动登录。
- ssh-keyphrase-only-once — 每次启动时仅请求一次 SSH 密码短语。
- gitconfig — 高效的 Git CLI 配置。
- bash_profile — 针对高级用户的高质量
-
Git 生活质量
- git-change-author — 轻松批量更改 git 仓库中的作者姓名和电子邮件。
- git-commit-at-modded-time — 使用文件修改时间作为 git 提交时间。
- git-mtime — 将每个文件的修改时间恢复到 git 仓库历史记录中。
- git-same-sig-time — 统一 GPG 签名时间与提交时间。
- git-shallow-pull — 浅层更新
git clone --depth 1
的仓库。
-
CronTabs
- cron.daily/00_clear-cache — 每晚清除无用的缓存文件。
- cron.daily/01_purge-locales — 删除无用的国际化文件。
- cron.hourly/btrfs-snapshot — 每小时备份你的 BTRFS / 。
- cron.daily/btrfs-snapshot — 每天备份你的 BTRFS / 。
- cron.hourly/php-clean-tmp — 在繁忙的服务器上清理 PHP 临时文件。
-
生活质量
- launch-browser — 用于启动浏览器的实用脚本,可在完整的 Wayland 模式下启动它们。
- ls-by-min — 按文件大小降序排序
ls
输出。 - random-file — 随机选择并显示一个文件或目录。
- sync-watch — 显示需要写入磁盘的 MB 数量的更新屏幕。
- tar-sorted — 自动按文件名排序创建 tar 文件。
- turn-off-monitors — 通过命令行关闭所有显示器(CLI)。
-
精彩脚本
- american-date — 一个用于打印美国日期格式的工具。
- changelog-maker-lite — 根据提交历史快速创建美观的变更日志。
- stream-to-youtube — 直接从命令行直播到 YouTube。
- sudoers.d/00_prompt_once — 每次启动时仅请求一次 sudo 密码。
- watermark.sh — 轻松在视频中嵌入自定义水印。
- wifi-autorun-on-connect — 连接到 WiFi 热点时自动运行脚本。
- x265.sh — 使用 Intel 显卡通过 VAAPI 转码到 h265 HEVC。
-
神秘工具
- arch-pacman-dupe-cleaner — 清除 Arch Linux Pacman 中的重复条目。
- init-btrfs-rootfs — 将所有内容放入组织良好的 BTRFS 子卷,并启用快照。
- clone-github-repos.php — 下载用户/组织的所有 GitHub 仓库。
-
Bash 框架
- is_root — 提供
is_root
函数以确定当前用户是否具有 root 访问权限。 - wait_until_mouse_or_keyboard_event — 阻止程序执行,直到按下键盘键、移动鼠标或单击鼠标按钮。
- is_root — 提供
-
许可证 — 创作共用 v4.0 国际许可证
将许多 Bash 脚本结合在一起,创建一个超级强大的系统。
这可能是项目中最有价值的一部分!
这些数十个别名使在 Linux 上工作和开发 Web 应用程序更加高效和优化。
快去查看文件! bash_rc.aliases
在bash中轻松为每个命令添加人类可读的执行时间!
时间将显示在左下角,紧靠您的$PS1左侧。
2 days 05:02:11.33 # A very long process
安装方法:
curl https://raw.githubusercontent.com/hopeseekr/bash-timer/v1.5.0/install | bash
查看README.md了解更多信息。
自动设置(如果需要)SSH 私钥并将其安装在远程服务器上(如果需要,还将创建 .ssh 目录)。
正确配置你的 OpenSSH 客户端并在 ~/.bash_profile
中安装 ssh-agent
,这样你只需在每次登录时为任何使用 ssh-agent
的操作输入一次 SSH 密码短语。
一个高度优化的 .gitconfig 文件,适用于经验丰富的软件开发人员,以提高他们的日常生产力。
安装在 ~/.gitconfig 中。
git pretty
git ll
显示一个带有标准 ISO 日期的漂亮多彩日志:
git fix
快速跳转以将最近的两个提交合并为一个提交。
git alterego
快速切换当前仓库以使用你的主 AlterEgo 账户提交先前的更改。
git ego
git alterego 的反义词。
git resign <hash>
快速批量重新签署从指定 hash 到最近的提交。
这在 GPG 密钥到期并需要更新然后重新签署时特别有用。
git c: checkout
git cp: cherry-pick
git cpm: cherry-pick for Merge commits
实用的别名,使使用 git 更加高效。
git shows
在 git 日志中显示每个提交的 GPG 签名。
轻松批量更改 git 仓库中任意提交的作者姓名和电子邮件。
使用方法: git-change-author "你的名字" "email@地址" [SHA1]
使用文件修改时间作为 git 提交时间。
示例:
$ ls -l american-date
#-rwxrwxr-x+ 1 1MB Oct 14 2020 american-date
$ ./git-commit-at-modded-time american-date
$ git pretty american-date
7462b66 G 2020-10-14 15:53:34 -0500 Theodore R. Smith
将工作目录中每
个文件的修改时间恢复到它们在 git 仓库历史记录中的时间。
当你签出一个仓库并执行此操作时,你的工作目录将从:
-rwxrwxr-x+ 1 tsmith users 1MB Oct 22 01:58 changelog-maker-lite*
-rw-rw-r--+ 1 tsmith users 1MB Oct 22 01:58 CHANGELOG.txt
-rw-rw-r--+ 1 tsmith users 1MB Oct 22 01:58 gitconfig
-rwxrwxr-x+ 1 tsmith users 1MB Oct 22 01:58 git-mtime
变为:
-rwxrwxr-x+ 1 tsmith users 1MB Oct 1 08:38 changelog-maker-lite*
-rw-rw-r--+ 1 tsmith users 1MB Oct 1 01:10 gitconfig
-rwxrwxr-x+ 1 tsmith users 1MB Sep 30 23:19 git-mtime
统一 GPG 签名时间与提交时间。
之前:
gpg: Signature made Fri 19 Jan 2024 06:50:44 AM CST
gpg: using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
43578ec G 2024-01-16 01:52:41 -0600 Theodore R. Smith [m] Updated the packages and exclusion lists. HEAD
gpg: Signature made Fri 19 Jan 2024 06:50:25 AM CST
gpg: using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
8ab4104 G 2024-01-15 08:27:07 -0600 Theodore R. Smith Upgraded to PHP 8.3.
之后:
gpg: Signature made Tue 16 Jan 2024 01:52:41 AM CST
gpg: using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
515e36b G 2024-01-16 01:52:41 -0600 Theodore R. Smith [m] Updated the packages and exclusion lists. HEAD
gpg: Signature made Mon 15 Jan 2024 08:27:07 AM CST
gpg: using RSA key 4BF826131C3487ACD28F2AD8EB24A91DD6125690
gpg: Good signature from "Theodore R. Smith <[email protected]>" [ultimate]
22c5040 G 2024-01-15 08:27:07 -0600 Theodore R. Smith Upgraded to PHP 8.3.
自动按文件名排序创建 tar 文件。
这在随机排序的文件系统(如 ext4)中特别有用。
在 Bettergist Collector 中,我们使用此方法来大致估算压缩和提取多个 GB 包含数百万文件的档案所需的时间。
这是 tar
的直接替代,并使用相同的参数。
可选地,你可以将函数直接安装在你的 ~/.bashrc 中。
- 清空非 root 用户的 ~/.cache 目录。
- 清空 Pacman 的包缓存目录。
此操作可以选择性地使用 nullfsvfs 来限制 SSD 的磨损。
每天删除所有非 EN 的国际化文件。
通常可以节省 400 至 1000 MB 的空间。
每小时整点拍摄 BTRFS 的 / 快照。
清理前一天的每小时快照,同时保留每日快照。
清理无用的 PHP 临时文件,这在繁忙的服务器上非常有用。
- 最近一小时内未修改的旧会话文件。
- phpunit 的临时文件。
- phpstan 的临时文件。
用于打印美国格式日期的工具
周五, 2024 年 1 月 19 日 05:49:20 CST
轻松根据简洁的 git 提交记录创建 CHANGELOG:
[2020-10-01 00:23:15 CDT] — [x265.sh] 使用 Intel 显卡的 VAAPI 进行编码。
[2020-10-01 00:30:00 CDT] — 创建了 README.md。
[2020-10-01 00:37:07 CDT] — [random-file] 为了更清晰的重命名。
[2020-10-01 00:44:34 CDT] — 充实了 README。
[2020-10-01 00:49:44 CDT] — [bash_rc.aliases] 添加了一系列 Web 开发别名。
[2020-10-01 00:58:00 CDT] — [bash_rc.aliases] 添加了更多描述。
[2020-10-01 01:10:26 CDT] — [.gitconfig] 添加了大量 git 别名。 标签: v1.0.0
[2020-10-01 08:17:42 CDT] — [clear-cache] 删除 ~/.cache 目录中的损坏符号链接。
- 检测用户是否在运行 Wayland。 如果是这样,对于基于 Chromium 的浏览器,它将传递必要的标志,以便在 Wayland 原生模式(非 XWayland)下运行,以获得更高的性能。
- 它将始终使用 Gnome 密钥环启动,这样每次切换到 KDE 时,你不会丢失所有 cookie 和持久登录信息,反之亦然。
返回按文件大小降序排列的文件列表,文件大小至少为 X MB。
在当前目录或工作目录中随机选择一个文件。
直接从命令行通过 YouTube 直播屏幕(通过 ffmpeg)!
这将使 sudo
在一次启动过程中仅要求输入一次密码。 它不会通过不同的终端请求,并且不会过期。 重启后会自动过期。
显示仍需写入磁盘的 MB 数量。
每 5.0s: grep -e Dirty: -e Writeback: /proc/meminfo
asus-z13: 周五 2024 年 1 月 19 日 07:09:32
Dirty: 751552 kB
Writeback: 0 kB
通过命令行轻松关闭所有显示器。
当你想要离开并不那么担心锁屏时使用。
安装一个 NetworkManager 脚本,在连接到特定 WiFi 网络时自动运行。
通过 ffmpeg 为视频添加水印。
通过使用 Intel 显卡的 ffmpeg 转码到 x265 HEVC。
帮助自动修复 Arch Linux Pacman 数据库中的重复条目。
旨在解决罕见问题:“错误:重复的数据库条目‘foo’”
浅层更新 git clone --depth 1
的仓库。
在 Arch Linux 上,btrfs 配置将所有文件放在 / 上。 这极大地限制了适当管理系统的能力,subvol=5 除了子卷以外什么也没有。
这个脚本做以下事情:
- 创建新的根级别快照:
@rootfs
(/),@snapshots
,@important
和@home
。 - 将
/
的文件移动到/@rootfs
,将/home
的文件移动到/home
,并创建新的目录/snaps
和/important
。 - 创建
/media/true-root
,它会自动挂载到/ (subvol=5)
。 - 与此项目中的自动快照
cron.d
作业集成- 每天在
/snaps/daily/YYYY-MM-DD
中对/
进行快照。 - 每小时在
/snaps/important/YYYY-MM-DD/HH
中对/important
进行快照。 /important
配置为启用压缩。- 将
/home
配置为基于每个用户的磁盘总空间的 10% 应用配额,并为每个用户的磁盘总空间应用 50% 的配额。 /home
快照配置为启用/home
为用户的.*
文件启用了 7 天的循环快照,除非是缓存
目录(使用 [cron.daily/00_clear-cache] 时)。
- 每天在
Arch Linux 将 / 的所有内容放在 BTRFS 的主子卷中 (ID=5)。
这意味着常见的快照和子卷创建任务,特别是回滚到以前的根子卷(例如功能性),非常困难,并且需要启动救援等。
提供的解决方案暂时解决了这一情况,幸运的是,在无需救援光盘的情况下,在实时环境中完成。 然而,你确实应该事先准备好救援光盘。
自动下载用户或组织的所有 GitHub 仓库。
独立运行时,它将回显“以 root 身份运行”或“未以 root 身份运行”。
作为函数调用时,它将返回 true
或 false
。
阻止正在执行的程序,直到按下键盘键、移动鼠标或按下鼠标按钮,无论窗口焦点如何。
它将回显以下内容之一:KEYBOARD_KEY、MOUSE_CLICKED 或 MOUSE_MOVED。
可以独立运行或作为函数运行。
本项目采用 Creative Commons Attribution License v4.0 International 进行许可。
Theodore R. Smith [email protected]
GPG 指纹:4BF8 2613 1C34 87AC D28F 2AD8 EB24 A91D D612 5690
CEO: PHP Experts, Inc.