missing-semester
# shell
- | 过滤
- !! 前一个指令
- <> 输入输出
- find location
- grep rg
# vim
normarl → (i) insert
insert → (esc) nomal
# normal
hjkl → h 字符向左 l 字符向右 j字符向上 k字符向下
w整个单词向下 b整个单词后退
0行首 $行尾
d视图向下 u视图向上
L M H 屏幕显示的最低 中间 最高行
行级跳跃 f+需要寻找字幕 T + 后退的字幕
G 进入文件末尾
/ 开始搜索
. 重复之间的输入操作
# insert
normal 模式 大小写o
DD删除整行
D/d/c + w删除单词
x:删除光标上指定的字符
u:撤销上一步的操作
redo:ctrl+ R
y p :复制 粘贴
V visual block
control + V(大写)
L:切换visual line模式
数字+normal的键 = 快速定位调换到指定的行/单词
% 符号之间条装
a(around) i(inside)
# 数据转换
awk sed
# cmdline env
# job controls
# tmux terminal multiplexis
sessions
windows
pans
# dotfiles
alias 设置别名
# remote machine
# ssh
# scp rsync
# Git
data model : DAG 有向无环图
type blob = array<byte>
type tree = map<string, tree | blob>
type commit =
parent array<commit>
- author
- message: string
- snapshot: tree
type object = blob | tree | commit
objects = <string, object>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git add 将本地文件提交到暂存区
git add -p <file-name> 用于选择需要提交的文件变更
git log → 可视化提交内容
git cat-file -p xxx(hash值) 具体看到提交的内容
git log --all --graph --decorate // git log 扁平化呈现git提交历史记录
git diff 比较两个文件的不同(后面接不同的参数进行比较、如果第一个需要比较的参数省略,即使用当前文件进行比较;如果都省略,即当前文件与最新的git文件进行比较)
git status 查看暂存区的内容
git checkout 用于切换提交区的内容
如果需要去掉暂存区的的内容,使用git checkout更新本地的文件为提交区的文件即可
git branch 创建新分支
git branch -vv (very verbose)非常详细的
git branch --set-upstream-to=origin/master 设置branch的来源
2
git merge 合并其他分支
git remote
git remote add <name> url
git push <remote> <local-branch>:<remote-branch> // 将本地的程序推送到远程仓库
2
3
git clone
git clone remote <local-dir> // 从远程仓库进行复制
git clone --shadow // 仅仅复制远程仓库的最新的快照,不存在提交记录版本信息等
2
git fetch 检索远程仓库是否存在变更
git config Git配置文件(email username……)
git blame可以看到git文件实际是谁提交的
git show 可以看到具体的提交记录
git stash (藏匿本地变更 ) git stash pop(恢复藏匿的内容)
git bisect
git ignore
# Debugging Analysis
IDE能解决大部分的调试问题
log能解决运行程序中发生的问题
性能分析的工具可以检索收藏以及尝试一下。flamegraph
# metaprogramming
make makefile
版本控制 major.minor.patch