git教程笔记一

Git简介

什么是shell

在计算机科学中,Shell俗称壳,用来区别于Kernel(核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

shell的分类
  1. 图形界面shell:通过提供友好的可视化界面,调用相应应用程序,如windows系列操作系统,Linux系统上的图形化应用程序GNOME、KDE等。
  2. 命令行shell:通过键盘输入特定命令的方式,调用相应的应用程序,如windows系统的cmd.exe、Windows PowerShell,Linux系统的Bourne shell ( sh)、Bourne Again shell ( bash)等。
bash和shell的关系

在window系统下使用bash,需要一个软件,这个软件模拟集成了bash大部分命令。
各个 shell 的功能都差不多, Linux 默认使用 bash ,所以我们主要学习bash的使用。

  1. bash命令格式

    • 命令 [-options] [参数]
  2. bash常见命令

    • pwd 查看当前目录
    • cd 切换目录,
    • ls 查看当前目录下内容
    • mkdir 创建目录
    • touch 创建文件
    • cat 查看文件全部内容
    • more less 查看文件
    • rm 删除文件
    • rmdir 删除文件夹,只能删除空文件夹
    • mv 移动文件或重命名
    • cp 复制文件
    • head 查看文件前几行
    • tail 查看文件后几行
    • tab 自动补全,连按两次会将所有匹配内容显示出来
    • 和>> 重定向 >覆盖 >>追加

    • wget 下载
    • tar 解压缩
    • curl 网络请求
    • whoami 查看当前用户
    • | 管道符,可以将多个命令链接使用,上一次的执行结果当成下一次的参数
    • grep 匹配内容,一般结合管道符使用
vi编辑器

如同Windows下的记事本,vi编辑器是Linux下的标配,通过它我们可以创建、编辑文件。它是一个随系统一起安装的文本编辑软件。

  1. 三种模式

vi提供了三种模式,命令模式、插入模式、底行模式。

输入模式是不能直接切换到末行模式的,必须要先切回到命令模式(按ESC键)

  1. 使用vi编辑器

    • 打开/创建文件 vi 文件路径
    • 底行模式 shift + :
      • w保存,w filename另存为
      • q 退出
      • wq 保存并退出
      • e! 撤销更改,返回到上一次保存的状态
      • q! 不保存,强制退出
      • set nu 设置行号
    • 命令模式
      • ZZ 保存并退出
      • u 撤销操作,可多次使用
      • dd 删除当前行
      • yy 复制当前行
      • p 黏贴内容
      • ctrl+f 向前翻页
      • ctrl+b 向后翻页
        以下都是进入编辑模式
      • i 当前光标处插入
      • a 当前光标后插入
      • A 光标移动到行尾
      • o 当前行下面插入新行
      • O 当前行上面插入新行
        当我们处在编辑模式的情况下,和我们在Windows编辑器的使用相似。

ssh

SSH是一种网络协议,用于计算机之间的加密登录。
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的是OpenSSH,它是自由软件,应用非常广泛。

格式:ssh user@host
user 代表真实存在的用户host代表要登录的远程计算机
常见有两种加密技术,分别是对称性加密和非对称性加密,SSH属于后者。

对称加密算法在加密和解密时使用的是同一个密钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥分别是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

工作原理
公钥和私钥是成对出现,可以通过ssh-keygen -t rsa来创建,既可以通过密钥来加密数据,也可以通过私钥来加密数据,如果是以公钥进行的数据加密,只能与之相对应的私钥才可以解密,相反如果以私钥进行的数据加密,则只能与之对应的公钥才可以将数据进行解密,这样就可以提高信息传递的安全性。

版本控制

版本控制(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。这个系统可以自动帮我们备份文件的每一次更改,并且可以非常方便的恢复到任意的备份(版本)状态。
举例:我们通常都是手动的重命名一个文件进行备份的,index.html改成index1.html或者index.html.bak等形式,然后这种方式对于单个文件我们还能够管理,但是对于整个项目而言,就会成为噩梦了!!!我们不得不借助于软件来实现。
实现版本控制的软件有很多种类,大致可以分为本地版本控制系统、集中式版本控制系统、分布式版本控制系统。

本地版本控制系统
借助软件我们可以记录下文件的每一次修改,如下图所示,文件被修改后,记录下了3个版本,这样我们通过版本控制系统(软件)便可以非常方便的恢复到任意版本。

集中式版本控制系统
实际开发环境,一个项目通常是由多人协作共同完成的,如何让在不同终端上的开发者协同工作成了亟待解决的问题,集中式版本控制系统便应运而生了。它通过单一的集中管理的服务器,保存所有文件的修订版本,协同工作的开发者都通过客户端连到这台服务器,取出最新的文件或者提交更新。其代表为SVN,如下图所示。

下篇将分布式版本控制
文章目录
  1. 1. Git简介
    1. 1.1. 什么是shell
      1. 1.1.1. shell的分类
      2. 1.1.2. bash和shell的关系
      3. 1.1.3. vi编辑器
    2. 1.2. ssh
    3. 1.3. 版本控制
      1. 1.3.0.1. 下篇将分布式版本控制
|