在 Mac/Win/Linux 上查询文件的 MD5 值

Windows

在 CMD 里使用原生命令 CertUtil 即可验证 md5 值:

CertUtil -hashfile 文件路径 MD5

例如:

CertUtil -hashfile C:\Users\username\Downloads\myfile.txt MD5

Mac

md5 文件路径

例如:

md5 "/Users/username/Downloads/My Folder/myfile.txt"

Linux

md5sum 目标文件

例如:

md5sum "/Users/username/Downloads/My Folder/myfile.txt"

git 回滚/撤销 操作

git 有三种回滚场景:

  • 工作区回滚(未 git add
  • 暂存区回滚(已 git addgit commit
  • 版本库回滚(已 git commit

在这里都做个记录。

1. 工作区回滚

工作区就是尚未 git add 的内容、当前可见的目录和文件。例如:

image-20230506午後05904150

回滚很简单:

git checkout -- [文件名] 			//撤销指定文件的修改

git checkout .                //撤销所有文件改动

2. 暂存区回滚

暂存区就是已经 git add进去,尚未 git commit 的内容。例如:

image-20230506午後10608132

git rm --cache [文件名] //撤销暂存区指定文件回到工作区

git reset -- [文件名]   //撤销暂存区指定文件回到工作区

git reset [HEAD]       // 撤销暂存区所有文件回到工作区,HEAD可以省略

3. 版本库回滚

版本库:就是.git中保存的版本仓库,也就是已经commit过的那些记录。

git log --pretty=oneline  // 查看最近几次commit的commit_id

可以用 git revert 或者 git reset 进行操作:

git revert HEAD           // 撤销最近的一个提交
git revert <commit_id>    // 撤销指定的版本,该操作将自动保存为一次commit

或:

git reset HEAD benchmarks.rb
git reset --soft xxx
git reset --hard xxx

两者主要区别是:

  • git revert是用一次新的commit来回滚之前的commit
  • git reset是直接删除指定的commit
  • git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容

参考资料


为 MacOS 随机定时设定 Bing 壁纸

这是一个 github 上的项目,挺简单实用的,用命令行下载 bing 的壁纸替换为 Mac 的壁纸。虽然不够优雅但胜在简单,记录过来。出处:https://github.com/xiqishow/bing_wallpaper

#!/usr/bin/env bash

#创建壁纸目录
echo $
if [[ $1 = "-n" ]]
then
    osascript -e "display notification \"开始更换壁纸\" with title \"定时换壁纸\""
fi

mkdir -p ~/bing-wallpapers/
cd ~/bing-wallpapers/
#请求一个随机数(bing只能返回0到7)
index_seed="$(jot -r 1 0 7)"
#请求bing服务获得最新一张壁纸(下载UHD壁纸)
rurl_esult="$(curl --location --request GET 'http://www.bing.com/HPImageArchive.aspx?idx='$index_seed'&n=5&format=js' --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'  | grep -o '"url":"[^"]*"'  | sed -e 's/"url":"/https:\/\/cn.bing.com/' | sed -e 's/"//' | sed -e 's/1920x1080/UHD/g')"
#下载壁纸
rm -f wallpapler*.jpg
#随机文件名,否则无法更换壁纸
file_seed="$(date +%s)"
curl $rurl_esult -o wallpapler_$file_seed.jpg > /dev/null
#设置壁纸路径
localpath="/Users/$USER/bing-wallpapers/wallpapler_$file_seed.jpg"
#设置壁纸
# osascript -e "tell application \"Finder\" to set desktop picture to POSIX file \"$localpath\""
osascript -e "tell application \"System Events\" to set picture of (reference to every desktop) to \"$localpath\""

#提示壁纸设置成功
if [[ $1 = "-n" ]]
then
    osascript -e "display notification \"壁纸更换成功\" with title \"定时换壁纸\""
fi

保存为一个文件(假设为 w.sh),chmod +x w.sh

运行如下脚本(设置为定时任务,每5分钟1 次):

#!/usr/bin/env bash

cFolder="$(pwd)"
echo "*/5 * * * * $cFolder/w.sh  > /dev/null 2>&1" | crontab

参考资料


windows 下 git bash 的一些操作备忘

因为工作单位对软件正版化的要求很高。虽然我喜欢用 smartgit,也只能舍弃了。

目前只装了 git bash,卸载掉 smartgit,免去这方面的烦恼。这篇文章记录在 windows 下的命令行操作的一些备忘。

在没有配置 .bashrc 里的快捷命令的时候,我使用下面的命令,先填自己的信息,再做其他操作。主要用处是 pull 和 push 代码。

ssh-agent bash
ssh-agent -s

ssh-add.exe /d/kelu/git    # 填密钥

可以根据下面步骤 2 里的内容,以后就不需要这么麻烦了。

  1. 查看我的 git 配置

    git config --list
    
  2. 创建一个 .bashrc 文件,用于git缩写。

    touch ~/.bashrc
    

    然后你的用户目录下就会多了这个文件。用 notepad 编辑,将常用的 alias 命令放进去。

    alias ga="git add ."
    alias gs="git status"
    alias gm="git commit -m"
    alias gd="git diff --cached"
    alias gl="git log --stat"
    alias gr="git branch -r"
    alias grl="git log --pretty=oneline --graph -n 5"
    alias gpush='ssh-agent bash -c "ssh-add $HOME/.ssh/xxx;git push"'
    alias gp='ssh-agent bash -c "ssh-add $HOME/.ssh/xxx;git pull"'
    

    效果如下:

    image-20230517午前114451218

  3. git log 乱码

    如下,在git bash的界面中右击空白处,弹出菜单,选择选项->文本->本地Locale,设置为zh_CN,而旁边的字符集选框选为UTF-8。然后重启 git bash,就可以显示中文了。

    image-20230517午前110732823

  4. 查看远端分支信息:

    git remote -v
       
    origin  git@xxx.git (fetch)
    origin  git@xxx.git (push)
    

    分支相关操作

    git branch -r 		# 查看远程分支
    

    查看远程某个分支的提交历史

    git fetch origin
    git log origin/branch-name
       
    # 我常用的命令,看某个分支最近 5 次的提交,用图形化的方式展示出来
    git log --pretty=oneline --graph -n 5 origin/04-master
    
  5. 分支merge 的操作在图形界面里操作,因为还涉及审核等流程。

  6. 查看某个提交的细节:

    git log --pretty=oneline 	# 查看提交 hash 值
    git show <hash> 					# 查看具体的修改内容
       
    
  7. 拉取远程所有分支到本地:

    git checkout --track origin/dev   
    ....
       
    git branch     # 分支列表
    
  8. 切换分支

    git checkout testing 	# 切换分支
    git checkout -b iss53 # 新建并切换到分支
    

参考资料