Notes for Missing Semester

自用学术垃圾桶

shell

用powerShell有些也行

basics

basic commands

在执行程序时在后面使用 -h--help 标记看提示; 在前面使用man查看手册;history打印历史命令

shell 中的路径是一组被分割的目录. 在linux中绝对路径由/分割, 相对路径由\分割. linux中, 路径开头的/ 代表的是系统的根目录,所有的文件夹都包括在这个路径之下, e.g. /bin/echo. Windows中路径用\分割, 这是因为在Windows上每个盘都有一个根目录(例如:C:\)

input and output flow

默认的输入输出流是终端

root user

sudo 以superuser的身份执行 如果向/sys下的系统文件写入,必须作为根用户

$ sudo find -L /sys/class/backlight -maxdepth 2 -name '*brightness*'
#/sys/class/backlight/thinkpad_screen/brightness
$ cd /sys/class/backlight/thinkpad_screen
$ sudo echo 3 > brightness
#An error occurred while redirecting file 'brightness' open: Permission denied
$ echo 3 | sudo tee brightness
#correct 现在sudo是用于写入了

grammar

command line environment

git

repository

在一切之前, SSH key配置: https://git-scm.com/downloads

status

branches

每一个type object = blob | tree | commit,其中blob保存文件快照,tree记录目录,commit包含一个指向上次提交对象(父对象)的指针. Git 的分支本质上是指向提交对象的可变指针.默认分支master指向最后一次提交,特殊指针HEAD指向当前分支,分支独立不干扰,注意用git checkout [分支]切换.

  # 新建并切换分支
  $ git checkout -b hotfix

  # 将hotfix分支合并到master,指针右移(fast-forward)
  # <--hotfix<--master
  $ git checkout master
  $ git merge hotfix
  # 删除(抽离)hotfix
  git branch -d hotfix

如果合并有文件冲突,可以用git status看,用git mergetool解决

fugitive vim extension for git and tag managing