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
nohup相当于是对这个job做了一个封装,所以忽略了hangup的信号,但是它无法忽略kill
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将不同的任务放在不同的平行时间线上来解决(创建分支然后合并) 合并可能会出现冲突,这正是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>