我的springboot学习【7】

        越写越偏了哈哈哈,离springboot越来越远。。。我当初也是属实没想到进度还不算慢,转眼间就要学习其他知识了。不过这都是一脉相承下来的知识点,都是为了以后工作准备嘛,那就还用这个系列的名字得了。

        还是这个习惯,废话不多说,我从来不喜欢搞概念,玩的就是真实。

        首先来看Git部分。昨天说到我卸载了Git并且要重装重新配置,下载这里可以发现很慢,所以要么去镜像站下载,要么就出去下载。下载后安装就按照人家的默认配置一直下一步就完事了。安装后可以看到,在任何位置敲右键,都能看到一个Git Bash Here,这是最常用的。我记得好像是Linux习惯来写的那种。

        Git到手了首先配置一下全局设置:

   git config --global user.name "your name"      // 设置全局用户名
   git config --global user.email "your email"    // 设置邮箱 

        可以通过以下命令查看已做的配置:

   git config -l

        背景还有跟SVN那个小乌龟的比较就不多说了,毕竟工作只用Git的。说到Git,就不得不提到远程库GitHub了。但是由于不可描述的原因导致GitHub经常挂掉,所以我这里就用咱们国内的码云Gitee吧,跟GitHub用起来是一样的。Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。

        前往Gitee官网,注册账户登录。然后就可以在终端搞一下SSH钥匙了。

ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  

        根据我参考的博客的解释,这里并非要用邮箱,这只是生成的sshkey名称而已,为了便于辨识所以网上很多教程在这里用了邮箱。输入这个之后,在人家提示的地方需要点回车,一共三次就可以生成完成。

        然后就是将公钥配置到Gitee上,在个人中心左侧栏里有一个SSH公钥,刚刚我们生成了ssh钥匙,明显这里有两个。在终端里可以通过下列语句查看:

cat ~/.ssh/id_ed25519.pub         查看公钥
cat ~/.ssh/id_ed25519             查看私钥

        貌似这里查看之后不能复制。。。行吧那就到C盘当前登录的用户里,找到.ssh文件夹。里面有两个文件,很明显.pub就是公钥,添加进去就行了,系统会自动生成公钥名,不过貌似我的公钥比网上看到的教程要短诶。。。

        添加后在终端:

ssh -T git@gitee.com

        如果能返回“Hi。。。。。。”就是添加成功了。注意:首次使用时候需要确认将主机添加到可信列表,手动敲进去yes即可。谢天谢地虽然我这公钥看着像是假的,用起来倒是没问题哈哈哈。

        好吧刚刚问了一下,以后既不会用GitHub也不会用Gitee,蛮尴尬的。。。没事就用Gitee学习吧,之后再说之后的。

        这里先亮出最重要的6个命令:

git clone         远程仓库到本地仓库
git checkout      本地仓库到工作区
git pull          远程仓库到工作区
git add           工作区到暂存区
git commit        暂存区到本地仓库
git push          本地仓库到远程仓库

        至于其中的细节部分还要慢慢学,这六个是基础功能,是完成项目必须掌握的东西了。

        至于远程仓库的新建。。。。。。说实话肯定用不着咱们开发人员自己搞吧,不过为了后续的操作我还是快速建了一个仓库,这玩意随便填写信息就能建仓库就不多说了。

        仓库里有个“克隆/下载”,点击可以进行复制 。我在桌面上新建了一个文件夹git学习作为本地仓库。在文件夹里运行Git终端,然后开始操作,这里是远程仓库到本地仓库:

git clone url               //url就是刚刚复制的东西

        本地仓库和远程仓库是一样的。接下来要做的就是使用IDEA集成Git了。直接采用万能的方案,新建一个springboot项目,然后将刚刚克隆到本地的项目直接复制粘贴进去!这时候刷新项目(新版的IDEA自动刷新了)第一眼就看到,右上角新增了git的功能键!

        第二眼就能很明显看到左侧有的文件颜色变了,如图所示:

 

         不同的颜色代表当前状态的不同,到目前为止已经绑定成功了。IDEA里操作的方法太多了,可以用右上角提供的“懒人方案”进去就是点一点选中然后操作就行,也可以在terminal终端里写git语句进行操作,甚至可以对单独的文件点右键里的Git进行操作。。。

        操作很简单这里就不多说了,上手一遍就会了。总结起来就是三步走:add.一下到缓存区,然后commit到本地仓库,最后push到远程仓库。

        算力算了还是走一遍吧,万一有啥易错的点呢。我直接新建了一个Hello类,建的时候他就提示是否要add,注意左侧啊我忘截图了当时,现在的Hello类是红色的标识未add,点击他提示框的add后就变成绿色的了。当然了这里不点add也没事,人家提示说的清楚了,以后也可以随时自己添加的。随便写一下Hello类就行,要的就是测试一下反正。

package com.lxc.gitdemo01;

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

        好了现在可以在终端开始操作了,先是要交到缓存区,这里已经自动做了当时选了,看左侧文件颜色也能知道,现在还是绿色的说明已经做了自动更新了。接下来我们commit到本地仓库。

        还真的遇到问题了,这里要求必须要写一个提交信息,也就是说明一下改了哪里了。

        显然,在写git语句后加上#跟上信息即可,#会被忽略。

        重点!经过我的一系列操作,我决定了,以后使用add时候我通过右键操作,使用commit通过懒人键操作,使用push时候也通过懒人键,因为这懒人键真的方便,而且操作什么东西真的一目了然。尤其是push的时候,连之前写的备注有啥都能看得到。。。当然了这只是我作为一个新手的个人观点。。。   

        push到远程仓库后可见,确实变了,成功。

        以上就是单人开发使用Git的过程,下面该多人开发了。

        首先是git分支,在创建远程仓库的时候我们选了默认只有master一个分支。在Gitee里找一个比较大的项目,就能看到会包含很多分支。比如下面这个:

        首先来看一下分支有关的命令。

git branch                      //列出所有分支 
git branch -r                   //列出所有远程分支
git branch [名字]               //新建一个分支,并且依然停留在当前分支
git checkout -b [分支]          //新建一个分支,并且切换到该分支
git merge [分支]                //合并分支
git branch -d [名字]            //删除分支
删除远程分支估计咱也用不到就不写了

         如果同一个文件在合并分支时候被修改了则会引起冲突,解决冲突的方式就是协商看留下哪个版的。

        注意:master主分支应该非常稳定用来发布新版本,一般情况下绝对不允许动这个分支!

        Git就完结了,我打算用一下午时间争取搞一下Linux的基本知识。下面要基于CentOS7来进行学习。

        Linux是广泛应用于服务器端的,很多大型项目都部署在Linux服务器上。它继承了Unix的以网络为核心的设计思想。这里介绍一个工具:Kali linux,是涉及到安全问题的那种工具,充当安全渗透测试的角色。

        这里我买了个阿里云云服务器(其实是免费试用1个月),这就避免了在VMWare搞Linux虚拟机了。同时需要下载远程连接工具,我选择的是Xshell和Xftp两兄弟,这个理论上是要收费的,但是官方提供了学生版本的免费使用,功能和正式版完全相同而且不需要验证身份,其实就是官方搞得免费使用。填个邮箱就行了。安装都是傻瓜式安装,一路下一步就完事了。

        进入阿里云云服务器的控制台,首先要配置一下安全组,也就是开放的端口号。需要配置的是内网入方向的这个:

         可以看到-1、22、3389是默认开放的,简单的想了一下需要开的端口:80http,443https,21ftp,8080tomcat,3306MySQL等等还是很多的。既然我知识学习使用这东西,还不如一键都给开了得了反正不需要考虑安全问题,索性1/65535都开了。

         这里只要拿到ip地址并重置密码就可以访问了。重置密码不必多说直接改个就完事了呗,ip地址这里有公网ip地址和丝网ip地址,显然在外部访问要用公网ip地址。

        接下来该Xshell了。安装后直接打开就行,是这样的一个界面:

         新建连接,起名和填入公网ip即可连接:

         我这里弹出了一个什么什么ssh安全性警告,问是否在本地数据库保存什么密钥,直接点接受并保存,之后就是敲用户名密码的环节。密码就是刚刚更改的实例密码。点击确定后可以看到成功连接了!

        这里的操作系统就是Linux了,以后的学习和操作都在这里,项目的发布也会在这里进行。上传文件使用的就是Xftp,在Xshell里有快捷键,就在Xshell标的右边那个绿的。点一下会看到如下界面:

        上传文件就是这么简单。可以拖动的东西有很多,本地文件、jar包、安装包等等都可以直接拖过去。可以看到一个home目录,用户目录嘛我就把东西拖到这里就行了。先搞个tomcat看看。这种小文件还是很快就上传好的。还没搞Java环境所以启动失败。。。

        行吧那就先看看Linux基本命令吧。注意啊这里的空格啥的可不是为了编码规范,是人家命令里就包含的,可千万不能省。

        首先是关机命令,云服务器这种东西不可能关机的这里说的是虚拟机,很简单,就是shutdown。但是直接关机有可能还有未保存的东西,所以要先sync一下之后关机。

sync             //将所有数据同步到硬盘中
shutdown         //关机
reboot           //重启

         在Linux中,一切皆文件。根目录就是“/”,所有的文件都挂在这个节点下。来看一下根目录下的全部文件:

        下面是这些目录的具体作用:

/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/selinux:
 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
 该目录存放一些服务启动之后需要提取的数据。

/sys:

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

/usr:
 usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

        接下来是绝对路径和相对路径的问题。

cd                  //切换目录命令
./                  //当前目录
cd ..               //返回上一级目录

        在试验这些命令时可以使用ls命令列出目录,可以辅助我们看到确实在变化。

ls              //列出目录
clear           //清屏

        说到ls命令,可以在命令里面加入参数,比如ls命令就有-a和-l参数。

-a参数      查看全部文件,包括隐藏文件
-l参数      列出所有文件,包括属性和权限(不包含隐藏文件)
注意:这里的参数是可以连起来使用的,如-al,就可以看到全部的信息了
pwd            //显示用户当前所在目录
mkdir      //创建文件夹
例如:
mkdir test1

这里可以使用-p参数来递归创建多层文件夹,例如:
mkdir -p test2/test3/test4
rmdir     //删除文件夹
例如:
rmdir test1
注意这里是删除空的文件夹
如果文件夹里有东西,则需要用-p参数逐级删除,例如:
rmdir -p test2/test3/test4
cp      //复制文件或目录
例如:
cp test1 test2
也就是cp 原来的地方 新的地方
rm         //移除文件或目录
-f         //忽略不存在的文件,不会出现警告,强制删除
-r         //递归删除目录
-i         //互动,删除时询问是否删除

例如:
rm -rf /         删除系统所有文件,删库跑路。。。
mv      //移动文件或目录,mv 要移动的 移动到的文件夹
-f 强制操作
-u 只替换已经更新过的文件

例如:
mv install.sh test1

这里可以利用mv命令进行重命名,如:
mv test1 test

        先看到这里吧,下周继续嗐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值