准备工具

最后更新于:2023年2月24日 下午

编译器的一些参数

很多可以设置的,然后越严格越能检测出不少的错误,当然了版本越高的编译器,默认要求越严格,这也是为什么很多工程不能升级编译器的版本,不然会很麻烦。

正则表达式

在 VScode 中

  • 把单行 { 风格去掉的正则表达式 \n[ ]+\{(但是有注释就有点尴尬了)
  • 强制让 if 的内容包起来: [ ]+if .*[\)|;]$ (但是分成多行就尴尬了)

不要企图全局替换,format 全部代码是大忌!

Git 常见命令

添加 SSH 并复制到剪切板

1
2
3
ssh-keygen -t rsa -C "your_email@example.com"

clip < ~/.ssh/id_rsa.pub

然后把它粘贴到自己的 setting 的 SSH 中

SSH 验证

1
2
3
ssh-agent bash
ssh-add ~/.ssh/id_rsa
ssh -T git@github.com

unset

取消 config,例如

1
2
git config --global --unset user.name
git config --global --unset user.email

多账号 git

可参考:腾讯云社区

但是更好的方式就是一个 ssh 多用,然后用 ssh-add ~/.ssh/id_rsa 后提交,然后后来提交失败,再 add 一次即可

配置全局用户

1
2
git config --global user.name "yourName"
git config --global user.email "yourName@example.com"

这是不提倡的,应该每一个 git 仓库设置各自的 user.name 和 user.email

根据需要配置 .gitignore 文件

第一次提交

1
2
3
4
5
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/cuzperf/blog.git
git push -u origin master

利用 Python 一键更新(弃用,这个习惯并不好)

1
2
3
4
5
6
7
8
#os.system('git init')
#os.system('git remote rm origin')
#os.system('git remote add origin git@github.com:chachabai/blogSource.git')
if len(sys.argv) < 2:
os.system('git commit -a -m "update"')
else:
os.system('git commit -a -m "' + ' '.join(sys.argv[1:]) + '"')
os.system('git push origin master')

强制提交

1
git push -f -u origin master

使本地文件和远程一致

1
2
git fetch --all
git reset --hard origin/master

删除已经被跟踪但要放在 .gitignore 的文件

1
git rm --cached FileName

删除 untracked files

1
2
3
git clean -f
git clean -fd
git clean -nfd

回档

三种方式:

  • 去 github 网站,查看版本号,然后执行 git reset --hard <版本号>
  • git reflog 查看回档编号,然后 git reset --hard HEAD@{编号}
  • git reset –-hard HEAD ^ ( ^ 表示回到上一个版本,^^ 表示回到上上个版本)

最后记得强制提交

找回 git reset --hard 后的代码

新建分支

  • 创建新分支:git branch [branch name]
  • 切换到新分支:git checkout [branch name]
  • 创建+切换分支:git checkout -b [branch name]
  • 删除本地分支:git branch -d [branch name]
  • 删除远程分支:git push origin :[branch name]
  • 分支提交:git push origin [branch name]

扩大传输限制

fatal: 过早的文件结束符(EOF)

1
git config --global http.postBuffer 524288000

cherry-pick

merge 进了某个版本 A,要在另一个版本 B cherry-pick 的做法

  • 进入 B 版本目录创建一个分支,然后在这个分支上 执行 git cherry-pick [commit id]
  • 然后把冲突修改一下,然后 git add .,再 git cherry-pick --continue 即可

如果 cherry-pick 报 bad object 可能是因为代码还没更新 git pull 一下即可,如果还不行可能是因为 repo 弄错了

patch

类似与 cherry-pick,我们把自己的修改丢给别人,可以建分支让他人 cherry-pick 也可以生成一个 change.patch 文件,让别人直接应用。

生成实例:

1
2
3
git diff > change.patch
git diff fileName > change.patch
git format-patch HEAD^

git format-patch --help 可以看更详细的操作。git format-patch 的方式附带了 author 信息,git diff 自然没有,因为它还没有 commit 也就不可能有作者的信息

应用实例(方式一):

  • 检查 patch 文件是否合规:git apply --stat xxx.patch
  • 检查是否有冲突:git apply --check xxx.patch
  • 应用:git apply xxx.patch

结束后需要自己手动去 add, commit

应用实例(方式二):

对于 git format-patch 获取的 patch 文件,可以使用 git am xxx.patch 一步到位(此时的 author 和 commitMessage 的作者一致)

杂类

Unix-like man 命令后面的数字含义及作用

序号 意义 详解
1 commands 普通的命令
2 system calls 系统调用,如open, write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 library calls 库函数,如 printf, fread
4 special files 特殊文件,也就是 /dev 下的各种设备文件
5 file formats and convertions 文件的格式,比如 passwd,就会说明这个文件中各个字段的含义
6 games for linux 给游戏留的,由各个游戏自己定义
7 macro packages and conventions 附件还有一些变量,比如向 environ 这种全局变量在这里就有说明
8 system management commands 系统管理用的命令,这些命令只能由 root 使用,如 ifconfig
9 others

参考 https://blog.csdn.net/qq_21792169/article/details/50412417

Python 开服务器共享文件

  • python3: python -m http.server 8000
  • python2: python -m SimpleHTTPServer 8000

文件查找非 ASCII 字符

利用正则表达式搜索:[^\x00-\x7f]

Windows 命令行复制到剪切板

  • [命令] | clip
  • [命令] > a.txt 到文本后复制
  • 开启快速编辑,选中后+右键复制,直接右键是粘贴(所有系统均适用)

Linux 删除指定类型文件

find -name '文件名或目录名' | xargs rm -rf

Windows 批处理将 A 文件夹下所有文件全部复制(移动对应修改 copy 为 move 即可)到 B 文件夹中

1
2
3
4
5
6
7
8
9
10
11
@echo off
set target_path=D:\BaiduNetdiskDownload\1
set copy_target_path=D:\BaiduNetdiskDownload\2
set vcffile=*.vcf %这里对应修改成别的后缀或者删除就是没有后缀了%
C:
cd %target_path%
for /f "delims=" %%s in ('dir /b/a-d/s "%target_path%"\"%vcffile%"') do (
echo %%s
copy /y "%%s" %copy_target_path%
)
pause

Windows 批处理添加 zip 后缀

1
2
3
4
5
6
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir /b *') do (
ren "%%i""%%i".zip
echo 批量重命名完成!
pause

网站二维码(欢迎扫码)

网站二维码
网站二维码

制作方法:

1
2
# 运行下面命令(提前 pip install myqr)得到以 cuzperf.png 为背景的二维码
myqr "https://cuzperf.github.io" -c -p cuzperf.png