Contents

1-2-5,6:TMS观看记录5+6

Command-line Environment

job control

sleep :sleep 20,sleep后面跟一个数字表示休眠的时间,这个时候shell将会发送一个SIGINT的指令给当前的程序,means signal interrupt ^c发送一个SIGINT信号,^\发送一个SIGQUIT信号 如果你处于SSH状态,你log out将会发送一个SIGHUP信号,hang up ^Z发送一个SIGSTOP信号 运行之后跟一个&意味着,将程序后台运行 jobs 展示正在挂起的job https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The_Missing_Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%955_image_1.png nohup相当于是对这个job做了一个封装,所以忽略了hangup的信号,但是它无法忽略kill https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The_Missing_Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%955_image_2.png BG means background, FG means foreground,一个显示后台,一个显示前台并恢复连接到你的标准输出

terminal multiplexer

tmux is a terminal multiplexer,

  • learn to use tmux sessions windows panes tmux,可以使用命令行操作,但是一般是使用键绑定,一个是tmux的预先输入,比如^A d,将会detatch一个新的窗口 默认的是^B 但很多人会重新映射到^A tmux new -t foobar :重新创建一个为foobar的新的session,你可以使用tmux ls 查看你的session ^A c 创建一个新的窗口,你可以使用^A p 回到上一个窗口 新建窗格pane,将窗口分割^A % 垂直分割 ^A z 可以放大窗格,展开占据其他窗格的所有空间,同样的操作可以返回 > 在tmux中新建一个pane可以使用快捷键 Ctrl-b " 或 Ctrl-b %。前者会将当前窗口平分成上下两个部分,后者会将当前窗口平分成左右两个部分。
  • alias ll=“ls -lah” alias mv:will tell u what mv is short for.
  • dotfiles:点文件,配置文件的编辑,可以在github上面找到很多人分享的内容,但是不建议直接copy,结果可能很漂亮但是你不知道发生了什么
  • ln -s 建立软链接,将所有的操作转发给源文件

Remote Machine

展示了如何通过ssh连接远程服务器,但是每次输入密码有点麻烦,所以通过命令生成公钥和私钥,向服务器申请公钥然后在本地验证私钥。 这里的内容还是挺实用的感觉,但是目前没有这方面的需求,希望我什么时候可以把我那个腾讯云的小服务器发挥用处吧。

Version Control(git)

git使用有向无环图来模拟历史,不同与快照的线性历史 git将不同的任务放在不同的平行时间线上来解决(创建分支然后合并) https://mayue-1312060474.cos.ap-chengdu.myqcloud.com/picgo/The_Missing_Semester%E8%A7%82%E7%9C%8B%E8%AE%B0%E5%BD%956_image_1.png 合并可能会出现冲突,这正是git做的事情,它帮你自动进行一些操作,但它感叹困惑的时候它会向你报告由你来决定 理解git的存储理念很重要

  • git在存储的时候,以内容寻址的方式存储在磁盘上,并且会利用hash函数创建id,此后在git中保存的内容实际上是一种以hash为id的查找

创建一个git

git init :初始化git存储库 git help :git help init,tell u help about git init

elong@dummy:~/temp/the-missing-semester/demo$ echo "hello world" > hello.txt
elong@dummy:~/temp/the-missing-semester/demo$ ls
hello.txt
elong@dummy:~/temp/the-missing-semester/demo$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	hello.txt

nothing added to commit but untracked files present (use "git add" to track)

创建一个文件之后,在你本地的git存储中,你需要使用git add 命令来添加到暂存区,为新的文件添加索引,我们使用git add 之后,再来查看git status

elong@dummy:~/temp/the-missing-semester/demo$ git add hello.txt 
elong@dummy:~/temp/the-missing-semester/demo$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   hello.txt

git commit 会打开你的代码编辑器,让你为你的提交添加一个说明,当然你也可以使用-m选项,然后直接在后面“describe”,之后它会给你返回一个信息,其中包含你这次commit的hash值,hash值包含你提交的信息,你可以如下一步步操作找到关于你提交的所有内容

elong@dummy:~/temp/the-missing-semester/demo$ git commit
[master (root-commit) bddddac] add hello world,txt
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt
elong@dummy:~/temp/the-missing-semester/demo$ git cat-file -p bddddac
tree 68aba62e560c0ebc3396e8ae9335232cd93a3f60
author 22050064-Ma Yue <1486266477@qq.com> 1673777290 +0800
committer 22050064-Ma Yue <1486266477@qq.com> 1673777290 +0800

add hello world,txt
elong@dummy:~/temp/the-missing-semester/demo$ git cat-file -p 68aba62e560c0ebc3396e8ae9335232cd93a3f60
100644 blob 3b18e512dba79e4c8300dd08aeb37f8e728b8dad	hello.txt
elong@dummy:~/temp/the-missing-semester/demo$ git cat-file -p 3b18e512dba79e4c8300dd08aeb37f8e728b8dad
hello world

git log --all --graph --decorate ,将你的git log可视化,查看历史记录,还可以加一个–oneline选项更精简

git checkout :切换本地版本 git diff:show u what’s changed since the last snapshot.

  • git branch:查看本地分支,git branch cat 创建一个名为cat的分支,git branch -vv:详细信息
  • git merge合并分支 (关于这部分,不熟悉也暂时用不到,看的比较跳跃)
  • git remote add ,比如我们这里git remote add origin ../remote,origin只是一个常用的名字
  • git push 比如我们这里,git push origin master
  • git clone <name/position>
  • git fetch检索远程存储库的更改并且在本地计算机上获取更改,当你检索到不同的时候你可以使用git merge 来更新本地分支,以指向和远程同一个位置
  • git pull:和git fetch加git merge差不多一样的工作内容

git config:修改配置文件 git blame:找到可以责怪的那个人,哪里的代码是谁修改的 git stash:暂时隐藏,可以使用git stash pop恢复

总结

git其实自己之前一直弄不明白,这也导致我第一次尝试搭建博客失败,长期以来只会git clone ,但是谁能想到上次自己搭建博客,也就是这个博客的时候,居然对着那种手把手教程领悟了一些git 命令的作用,然后这堂课居然听的还比较轻松,但是当时是存在误区的,事实上git remote的remote还是代码托管中心,当时因为github显示的master便以为master是github那边

在这堂课里,我觉得最精华的部分就是以文件tree的形式表达git,git在本地创建一个存储库,这个存储库默认名称为master,local的是master而remote常常默认为origin

这便是git push origin master=git push <remote> <local>

Flag Counter