first_week
总结
一.环境搭建
1. WLS启用开发者模式
<1> 打开设置
<2> 点击安全与更新
<3> 进入开发者选项
<4> 选择开发人员模式
<5> 进入程序与功能
<6> 启动Windows功能
<7> 选定Linux子系统
<8> 安装Linux客户端
(1) 命令行安装,如图
(2) 进入Windows应用商店
<9> 设置用户及密码
2. Git配置及使用
附链接 为GitHub添加ssh-key并连接到GitHub
使用git clone命令从GitLab上同步代码库时,如果使用SSH链接(如:aaa@qq.com:example/example.git),但是你的SSH key没有添加到GitLab的账号设置中,系统会报下面的错误:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
这时候就需要在本地创建SSH key,然后将生成的SSH key文件的内容添加到GitLab账号上去。创建SSH key的方法很简单。
生成SSH Key的过程如下:
-
首先打开linux服务器,输入命令:
ls -al ~/.ssh
,检查是否显示有id_rsa.pub或者id_dsa.pub存在,如果存在请直接跳至第3步。 -
在bash中输入
ssh-****** -t rsa -C ”aaa@qq.com”
,注意这个地方的邮箱地址地址替换成你自己的邮箱地址即可,在显示如下的输出后一直按回车即可:
接着显示:
在这里可以看到id_rsa
和id_rsa.pub
已经生成,并且生成的路径为/root/.ssh/
。
3. 打开id_rsa.pub
文件,并且复制全部内容。
4. 打开GitLab账户,打开SSH Keys:
将刚刚复制的内容添加到Key的文本域中,然后点击Add key。
添加成功。
5. 完成上面的步骤之后就可以使用ssh来连接GitLab,并做相应的操作。
6. Git基本命令
附链接 Git命令大全
–文件目录操作命令
1 mkdir * 创建一个空目录 *指目录名
2 pwd 显示当前目录的路径。
3 cat * 查看*文件内容
4 git rm * 删除**文件
–git初始化操作
1 git init 把当前的目录变成git仓库,生成隐藏.git文件。
2 git remote add origin url 把本地仓库的内容推送到GitHub仓库。
3 git clone aaa@qq.com/test.git 从远程库克隆
4 git add * 把x文件添加到暂存区去。
5 git commit –m "*" 提交文件 –m 后面的是注释。
–git 克隆分支
1 git clone xxx.git 最简单直接的命令
2 git clone xxx.git "指定目录" clone到指定目录
3 git clone -b branchname xxx.git clone时创建新的分支替代默认Origin HEAD(master)
3. XShell连接跳板机与本地服务器
3.1 XShell & Jump server
附链接 Xshell连接远程服务器
- 拿到jump server公私钥,跳板机连接教程
- 打开XShell新建会话,IP为remote server,port 22
- 打开用户身份验证,方法选择pulick key,导入私钥
- OK
可能遇见的问题:
- 服务器上为什么不能用ssh协议down,而用https可以?
(1). clone项目:使用ssh方式时,首先你必须是该项目的管理者或拥有者,并且需要配置个人的ssh key。而对于使用https方式来讲,就没有这些要求。
(2). push:在使用ssh方式时,是不需要验证用户名和密码,如果你在配置ssh key时设置了密码,则仅需要验证配对密码。而对于使用
(3). https方式来讲,每次push都需要验证用户名和密码。 - ssh工作原理
(1). SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,
负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
ssh服务端由2部分组成:openssh(提供ssh服务) openssl(提供加密的程序)
ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接
(2).工作机制
服务器启动的时候自己产生一个**(768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端
发送的数据和IP地址,确认合法后发送**(768bits)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结
合成**对key(1024bit),发回给服务器端,建立连接通过key-pair数据传输。
3.2 XShell & Local server
附链接 Xshell连接本地服务器
- 检测service ssh status
- 如果ssh在运行,跳第3步;service ssh start
- ifconfig,获得IP
- 新建会话,选择协议ssh协议,输入local server
- 打开用户身份验证,方法选择password,输入username和password
- ok
- 如未成功,请查博客,修改port,/etc/profile/ssh_config
- 本地IP会变化,记得重新设置
4. Docker配置及使用
注意,本篇docker配置在服务器端,而并非本地安装配置
附链接Docker服务器端配置
-
fork此docker代码库,然后根据需要用自己的用户名修改
conf.docker.sh
中的环境变量,以免与别的同事冲突。 -
新建config 目录包含一些会拷入 Docker 的下列配置文件,由于每个人的配置不同,所以需要手工拷。
config/tmux.conf:tmux 配置,如果不需要,可以用 touch 命令建一个空文件。
config/gitconfig:Git 配置 ~/.gitconfig,如果不需要,可以用 touch 命令建一个空文件。
config/id_rsa:SSH 私钥,可以随意,建议用运维开通权限时邮件发的带自己用户名的那个。
config/id_rsa.pub:SSH 公钥,与私钥对应的公钥。
config/known_hosts:即 /home/mobdev/.ssh/known_hosts,不过用 touch 命令建一个空文件也行。
- 按以下步骤使用 Docker 开发环境。
用 build.docker.sh 构建 Docker 镜像。
用 run.docker.sh 启动 Docker 容器。注意:由于退出时会删除容器,最好在一个 tmux 会话中启动容器。
在任意工作目录用 exec.docker.sh 进入 Docker,可重复多次。
可以将此 docker目录加到PATH环境变量中以方便使用。
- Docker基本使用
1. ```docker images```查看已有的docker镜像
2. ```docker run -it -v /home/yafeng.zhao/yafeng.workspace/:/home gcc:latest```进入容器,其中-v将宿主目录,挂载到容器/home下
3. 在该容器中编译运行代码
附链接 Docker命令大全
5. VScode insiders使用及配置
1. 下载Remote-SSH,这个插件仅支持VSCode的Insider版本
[外链图片转存失败(img-qbXiLjrX-1563540753758)(https://github.com/SixDayCoder/MarkDownIMG/raw/master/remote-ssh/ssh-serach.png)]
2. 安装完成会出现新的图标
[外链图片转存失败(img-inbP4PZe-1563540753760)(https://github.com/SixDayCoder/MarkDownIMG/raw/master/remote-ssh/ssh-desk.png)]
3. 配置
<1>快捷键Shift + Ctrl + p
打开活动栏:
<2>搜索Remote-SSH回车,点选Congigure SSH Hosts选项,弹出:
[外链图片转存失败(img-iWmkWh3n-1563540753763)(https://github.com/SixDayCoder/MarkDownIMG/raw/master/remote-ssh/ssh-user-dir.png)]
<3>选择config文件的位置,回车即可新建并编辑config文件。config文件必须放到被授权的rsa秘钥所在的文件目录,可以看到我这个目录下的文件是这样的(id_rsa及id_rsa.pub从运维得到,作为登录跳板机钥匙):
<4>以下是我个人的配置:
Host relay3
HostName relay3.mobvista.com
User yafeng.zhao
IdentityFile C:\workspace\cpp\ssh\yafeng.zhao
Host 178dev
HostName 52.74.179.178
PermitLocalCommand yes
User yafeng.zhao
IdentityFile C:\workspace\cpp\ssh\yafeng.zhao
ProxyCommand ssh relay3 -W %h:%p
4. 连接成功
[外链图片转存失败(img-7XbTn38X-1563540753768)(https://github.com/SixDayCoder/MarkDownIMG/raw/master/remote-ssh/ssh-opening.png)]
打开工作区,选择相应的文件就可以进行同步操作。
Ctrl + `,打开中终端,也可以通过远程连接在命令行对代码进行编辑,编译运行。
二. 问题及解决办法
1. 没有理清问题
三个过程中浪费时间:
1. 自行装Vmware,配置,后面导师说不用WLS
2. 自己装Gcc,后面导师说用Docker,隔离,统一环境
3. 自己装Docker,最后明白docker在机器上已经装好,只需要自己配置自己的用户空间就可以用
以上是沟通问题,在以后要积极沟通,听懂要求再开始做事
2. 没有解决问题的良好思路
1. 遇见问题,没有理清楚就开始做
2. 解决时没有一个良好习惯,臂如用Google查询
3. 要注重效率
以上属于方法问题,在以后要成总结,回顾等习惯来改进
3. 解决办法
1. 要多思考,多问自己为什么,搞清楚接触事物的来龙去脉
2. 要形成良好的习惯,臂如MArkdown条理分明的记录…
3. 要分清问题的侧重点,臂如先整体还是先局部,有一个合理的思路,体现在代码阅读上就是不要没有条理的阅读
推荐阅读