三期分享-Linux下命令实战

三期主要了分享了Linux实战方面的经验,最后老徐给我们布置了一道实操题。拿到这个题的时候,我连Git是什么都不知道,但这不是关键,本次课程的重点便是熟练Linux的命令。

我咨询了度娘,得知Git是用来进行分布式版本控制的(能记录每次文件的改动),能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍.。
git://协议较为快速和有效,但是有时必须使用http协议,比如公司的防火墙阻止了非http访问请求。
Github: 一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等,可以托管各种git库。

如老徐提供的仓库

1、网页上登录:https://github.com/istester

三期分享-Linux下命令实战_第1张图片
网页上登录.png

然而网页上并没有看到仓库,所以clone时会报错
git clone https://github.com/istester/ido.git
(git clone git://github.com/istester/ido.git)
三期分享-Linux下命令实战_第2张图片
get clone失败.png

尝试了两种方法操作,最后有常见问题处理方法

一、自己创建仓库

Github是一个git项目的 托管网站,要将内容放到上面,必须先在网站上注册账号
1、注册个人账号:个人登录 github 所使用的
2、注册organization账号:主要适用于商业用途和大型开源项目,是不能登录的
3、Invite members(邀请团队成员):可以先忽略,后续再邀请,点完成

三期分享-Linux下命令实战_第3张图片
注册organization账号.png

三期分享-Linux下命令实战_第4张图片
注册成功.png

项目建好后,组内的成员可以通过输入网址可以进行访问: https://github.com/carinazyp
三期分享-Linux下命令实战_第5张图片
图片.png

创建项目
1、Github网页上创建库(carina):点击“Create Repository” ,就完成了一个项目在github上的创建。

三期分享-Linux下命令实战_第6张图片
创建库.png

2、使用git在本地创建一个相同的项目

  • 先查看一下未设置前的配置:cat .git/config (或 git config --list)


    三期分享-Linux下命令实战_第7张图片
    更改前配置
  • 添加user和email信息后,再次检查配置,此时已显示用户信息
    只更改当前项目的用户信息:
    1)git config user.name "XXX"
    2)git config user.email [email protected]

    三期分享-Linux下命令实战_第8张图片
    添加用户后的配置信息.png

    三期分享-Linux下命令实战_第9张图片
    git config --list显示配置信息.png

注:如需配置所有项目的用户信息和邮箱,使用 --global选项,代表“全局设置”,即整个系统中的git管理的所有项目都会默认使用此种配置信息。如下:
git config --global user.name "XXX" (配置所有项目用户信息)
git config --global user.email [email protected] (配置所有项目邮箱信息)

如只查用户信息:
当前项目:
git config user.name
git config user.name
所有项目:
git config --global user.name
git config --global user.email


三期分享-Linux下命令实战_第10张图片
查询用户信息.png
  • 创建本地文件夹(~代表/root/用户明目录):
    mkdir ~/carina (即/root/carina)
    cd ~/carina
  • 创建文件并赋值内容11
    echo "# 11" >> README.md
  • 按照Github网页上的命令输入(步骤1 点Create Repository后就会跳转到该页面

1)git init (初始化一个Git仓库,把目录变成Git可以管理的仓库)
2)git add README.md (添加文件到仓库)
3)git commit -m "first commit"
(提交文件到仓库,-m后面输入的是本次提交的说明,commit可以一次提交很多文件)
4)git remote add origin [email protected]:Carinazhang/carina.git
5)git push -u origin master (将改动传回git)
(可以把 master 换成你想要推送的任何分支)

三期分享-Linux下命令实战_第11张图片
命令.png

三期分享-Linux下命令实战_第12张图片
按照Github网页上的命令输入.png

如git add 报错,则需先创建文件/文件夹

git add 报错.png

Github上面的carina项目内容已被更新


三期分享-Linux下命令实战_第13张图片
项目内容已被更新.png

3、添加文件及文件夹

  • 文件:
    1)touch(创建的是空文件)
    2)直接用vi text.txt,编辑内容后保存)
    3)echo "文字描述" >> 文件名
  • 文件夹:mkdir


    添加文件及文件夹.png
  • 编辑与查看文件内容:vi / cat


    编辑与查看文件内容.png
  • 查看创建的内容:ll


    三期分享-Linux下命令实战_第14张图片
    查看创建的内容.png

4、添加并上传文件 :git add (添加)/git commit (提交)
P.S. 空文件不能添加,如图中b、c文件夹里面并没有子文件


三期分享-Linux下命令实战_第15张图片
添加并上传文件.png
  • 查看当前仓库的状态 git status
    查看当前仓库的状态
  • 查看git 操作记录


    三期分享-Linux下命令实战_第16张图片
    查看git 操作记录.png

5、文件打包:tar -zcvf


三期分享-Linux下命令实战_第17张图片
图片.png

6、部署目录
创建文件夹 www,clone版本库


三期分享-Linux下命令实战_第18张图片
clone版本库.png

7、解压文件:tar -zxvf


三期分享-Linux下命令实战_第19张图片
解压文件.png

常见问题

1、项目权限不足

三期分享-Linux下命令实战_第20张图片
项目权限不足.png

2、get remote add origin 报错
get remote add origin 报错.png

解决办法如下
1)git remote rm origin
2)git remote add origin [email protected]:个人账号/项目名.git
3、在使用git 对源代码进行push到gitHub时可能会出错
三期分享-Linux下命令实战_第21张图片
git 对源代码进行push到gitHub时出错.png

出现错误的主要原因是github中的README.md文件不在本地代码目录中
三期分享-Linux下命令实战_第22张图片
github中的README.md文件.png

解决办法
先执行 git pull --rebase origin master
再执行 git push -u origin master
即可完成代码上传到github
三期分享-Linux下命令实战_第23张图片
Paste_Image.png

以下补充下密码设置方法

Git使用https协议,每次pull, push都要输入密码,可以通过以下3步省去输密码的麻烦

  • 本地生成密钥对
    检查计算机密钥:cd ~/.ssh
    检查计算机密钥.png

    如没有id_dsa.pub(公钥) 或 id_rsa(密钥)文件,可以用 ssh-keygen 来创建
    命令:ssh-keygen -t rsa -C “email”
    如不设置密码直接敲回车键
    三期分享-Linux下命令实战_第24张图片
    ssh-keygen 来创建公钥和密钥.png
  • 添加公钥到github帐户
    1)查看公钥:cat ~/.ssh/id_rsa.pub
    查看公钥

    2)登录github帐户进行设置
    Settings--SSH and GPG keys--New SSH key(填写Key)-Add SSH key
    三期分享-Linux下命令实战_第25张图片
    配置公钥信息1.png

    三期分享-Linux下命令实战_第26张图片
    配置公钥信息2.png

    输入个人账号的密码 进行确认
    三期分享-Linux下命令实战_第27张图片
    配置公钥信息3.png

    3)验证key是否正确:ssh -T [email protected]
    验证key是否正确.png
  • 修改本地的ssh remote url. 不用https协议,改用git 协议
    1)查看当前的remote url:git remote -v,从下图看到是用https协议进行访问的
    查看remote url.png

    2)登录github,切换至SSH
    三期分享-Linux下命令实战_第28张图片
    登录github,切换至SSH.png

    3)使用 git remote set-url来调整url
    git remote set-url origin [email protected]:Carinazyp/carina.git
    使用 git remote set-url来调整url.png


二、网上下载仓库

1、寻找库 https://git.kernel.org/pub/scm/

三期分享-Linux下命令实战_第29张图片
库.png

三期分享-Linux下命令实战_第30张图片
搜索库.png

2、clone仓库
命令:git clone https://www.kernel.org/pub/scm/git/git.git
三期分享-Linux下命令实战_第31张图片
clone.png

若不指定路径时默认clone在根目录下(若想指定路径,先cd到目录 再clone)


根目录下显示库.png

3、打包文件 打包上传到服务器:

  • 先创建根目录再建子目录:cd到app1下,mkdir bak www


    先创建根目录再建子目录.png
  • 如app1目录不存在,可直接建多级树:mkdir -p /app1/bak /app1/www,若存在app1,这样操作也是可以的,系统会在app1下创建2个bak和www)
  • 打包文件:cd到etc目录
    tar -zcvf /app/bak/zyp1.tar.gz audit cloud dhcp dracut.conf


    三期分享-Linux下命令实战_第32张图片
    文件打包.png
  • 上传至虚拟机:scp local_file remote_ip:remote_file(本地文件上传至远程)
    scp /app1/bak/zyp1.tar.gz 192.168.174.128:/app1/bak
    4、部署到www目录
    命令:mv /app1/bak/zyp1.tar.gz /app1/www
    (此时不在根目录下也可以操作)
    部署到www目录.png

    也可以进行文件copy
    三期分享-Linux下命令实战_第33张图片
    copy到www目录.png

    5、解压文件
    cd到www路径后解压:tar -zxvf zyp1.tar.gz
    三期分享-Linux下命令实战_第34张图片
    图片.png

    6、查看压缩包内内容
    命令:tar -tvf zyp1.tar.gz
    三期分享-Linux下命令实战_第35张图片
    查看包内内容.png

你可能感兴趣的:(三期分享-Linux下命令实战)