1. 旋转图片
convert "$source" -rotate 90 "$target"
2. 时间同步
因为各种原因,当前系统时间可能与标准时间不一致,下面提供了一种用来同步标准时间的方法。
NTP 同步服务器可以选择阿里云,地址为 ntp.aliyun.com
$ sudo pacman -S ntp $ sudo ntpdate ${IP} $ sudo hwclock -w
3. 手动断电不需要的外置硬盘 1
udisksctl power-off -b /dev/sdX
4. 刻录 ISO 镜像
使用如下命令即可刻录 ISO 镜像为文件
$ mkisofs -r -o output.iso /path/to/spice-guest-tools.exe
5. 更新 mime 信息
$ sudo pacman -S shared-mime-info $ update-mime-database /usr/share/mime
6. git 在所有分支中搜索代码片段
git branch -a | awk '{print $NF}' | xargs git grep "<keywords>"
7. git 在所有提交记录中搜索代码片段2
git grep "<keywords>" $(git rev-list --all)
8. git 删除所有纯空格修改3
git diff -U0 -w --no-color | git apply --cached --ignore-whitespace --unidiff-zero -
9. git 修改历史提交的用户名和邮箱
这是修改的核心逻辑部分,于
使用 git filter-repo4 工具实现。
[ "x" = "x$1" -o "x" = "x$2" -o "x" = "x$3" ] && echo "$0 OLD_EMAIL_OR_NAME NEW_NAME NEW_EMAIL" && exit 1 git filter-repo --commit-callback " print(f'old {commit.committer_email.decode()} -- $OLD_EMAIL_OR_NAME' ) print(f'old {commit.author_email.decode()} -- $OLD_EMAIL_OR_NAME' ) if commit.committer_email.decode() == '$OLD_EMAIL_OR_NAME' or commit.committer_name.decode() == '$OLD_EMAIL_OR_NAME': print(f'new email ${NEW_NAME}') commit.committer_name = str.encode('$NEW_NAME') commit.committer_email = str.encode('$NEW_EMAIL') if commit.author_email.decode() == '$OLD_EMAIL_OR_NAME' or commit.author_name.decode() == '$OLD_EMAIL_OR_NAME': commit.author_name = str.encode('$NEW_NAME') commit.author_email = str.encode('$NEW_EMAIL') " --tag-callback " if tag.tagger_email.decode() == '$OLD_EMAIL_OR_NAME' or tag.tagger_name.decode() == '$OLD_EMAIL_OR_NAME': tag.tagger_name = str.encode('$NEW_NAME') tag.tagger_email = str.encode('$NEW_EMAIL') "
10. git 删除历史提交记录中的文件5
使用 git filter-repo 工具实现。
$ git filter-repo --invert-paths --path "/path/to/file"
11. 使用 rclone 提供 webdav 服务6
$ rclone serve webdav --addr 192.168.1.102:8080 --user user --pass pass /path/to/webdav
如果在 addr 中只提供 :8080
7这样的内容,那么会监听所有 ip,否则只会监听指定的 ip。
12. git 将某个子目录切换成根目录
git filter-repo --subdirectory-filter The_SubDir_in_myProject
13. 使用 systemd 临时忽略某些操作
比如这个命令为忽略睡眠
#+beginsrc shell
systemd-inhibit –what=handle-lid-switch sleep 28800
#+endsrcs
14. centos 添加端口
[root@localhost llms]# firewall-cmd --add-port=16001/tcp --permanent success [root@localhost llms]# firewall-cmd --reload
15. 端口转发
nohup ncat --sh-exec 'ncat 10.131.143.1 3000' -l 19866 --keep-open &
nohup ncat –sh-exec 'ncat 10.131.143.1 16001' -l 16001 –keep-open &
Footnotes:
4
git-filter-repo: Quickly rewrite git repository history (filter-branch replacement)