准备工具
最后更新于:2022年8月9日 早上
Windows 工具软件
- Typora(用于一些复杂的 markdown 内容,例如表格)
- VSCode(登录 Github 账号同步)
- Go (为了使用 cf-tool)
MSYS2 (为了提供 C++17,gdb 和 python)- Git(将 cnblog 源码存到 github)
- WSL(无法访问音视频设备,能力有限,但是依然很有意义),双系统还是必须的
不再推荐 MSYS2,推荐下载带 mingw 的 codeblocks 然后将 mingw 下的 bin 目录添加到环境变量
terminal 设置代理
一般 vpn 默认只是网页版本的,然后免费的 vpn 都不提供端口,所以做不了 terminal 的代理设置
Mac/Unix 设置
1 |
|
其中 xxx 是看自己 vpn 软件的设置中 提供的 http(s) 端口号,例如我的 41091
Win
1 |
|
WSL 设置
首先在 windows cmd/powershell 中输入 ipconfig 查看 WSL 的 ipv4 值,例如我的 127.17.176.1
,然后在 WSL 中
1 |
|
对应的换成自己 WSL 的 ip 和 vpn 的端口号,注意 WSL 中的 ip 每次 windows 重启后可能就不一样了,需要再搞一次
WSL
根据官方教程 开启 wsl 功能再去 MS store 下载 ubuntu,然后配置阿里镜像源(在前面 + sudo),最后 sudo apt update
,sudo apt upgrade
更新 apt 缓存
- 安装 pip(自带 python3 却不带 pip)并配置 pip 清华镜像:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 安装 gcc
- 安装 SageMath:Ubuntu 的快乐就是
apt install sagemath
- 安装 jupyter notebook
Docker 使用
- docker search ubuntu
- docker pull ubuntu
- docker run -it --name izlyforever ubuntu bash
- 然后用 GUI 点击 terminal 开启,然后 换成 bash 打开
- exit 或 ctrl + d 关闭。或者 ctrl + p 后 ctrl + q 暂时退出不关闭
编译器的一些参数
很多可以设置的,然后越严格越能检测出不少的错误,当然了版本越高的编译器,默认要求越严格,这也是为什么很多工程不能升级编译器的版本,不然会很麻烦。
正则表达式
在 VScode 中
- 把单行
{
风格去掉的正则表达式\n[ ]+\{
(但是有注释就有点尴尬了) - 强制让
if
的内容包起来:[ ]+if .*[\)|;]$
(但是分成多行就尴尬了)
不要企图全局替换,format 全部代码是大忌!
Git 常见命令
添加 SSH 并复制到剪切板
1 |
|
然后把它粘贴到自己的 setting 的 SSH 中
SSH 验证
1 |
|
unset
取消 config,例如
1 |
|
多账号 git
可参考:腾讯云社区
但是更好的方式就是一个 ssh 多用,然后用 ssh-add ~/.ssh/id_rsa
后提交,然后后来提交失败,再 add 一次即可
配置全局用户
1 |
|
这是不提倡的,应该每一个 git 仓库设置各自的 user.name 和 user.email
根据需要配置 .gitignore
文件
第一次提交
1 |
|
利用 Python 一键更新(弃用,这个习惯并不好)
1 |
|
强制提交
1 |
|
使本地文件和远程一致
1 |
|
删除已经被跟踪但要放在 .gitignore
的文件
1 |
|
删除 untracked files
1 |
|
回档
三种方式:
- 去 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 |
|
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 |
|
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 |
|
Windows 批处理添加 zip 后缀
1 |
|
网站二维码(欢迎扫码)
制作方法:
1 |
|