雷纳斯-托瓦兹在开源了linux后全世界的很多人都要给linux提供代码,他需要合并代码。但是一个人的精力有限。无法完成,他就自己写了一个版本控制工具git。来控制自己的代码,并且也开源了。
linux和git就不断迭代,也不断进步。后来有人对git进行了商业化包装,形成了github和gitee。
yum install git
//普通用户加sudo
git就是一个版本管理工具,提供了不同版本的获取和可视化接口。
在实际的开发中挺重要的。
git是一个版本控制器,gitee是为了让git不要客户端,直接在浏览器上可以访问/操作。
gitee/github是基于git建立的网站。多人协同的时候很好用。
首先需要注册自己的用户,这个就不用多说 了。
.gitignore : 忽略控制文件。里面是很多文件的后缀。
在这里面有的后缀名,都不会被上传到gitee上去。
首先在gitee上创建一个仓库,再将这个仓库的链接克隆下来
git clone [url]
[url] 就是远端仓库的地址
git add [文件名]
将需要用git管理的文件告知git
git commit -m "提交日志"
注意:提交日志不能胡写
git push
第一次提交或者修改过密码就会让你输入邮箱
以后每次输入需要输入用户名和密码
但是也可以设置免密
先用
git rm [文件名]
然后再
git commit -m "提交日志"
最后再
git push
一般要对git里面的文件做操作一般前面都要加git[指令],然后git commit 最后git push 这样做远端也就被删除了。
这个时候远端和本地仓库不一致了,我们在提交的时候,直接push就会发生冲突
要先把远端拉到本地同步以下
git pull
然后再次重新
git push
就是要把远端先拉到本地pull再commit,然后重新提交push
git log 提交记录
git status 查看在你上次提交之后是否有对文件进行再次修改
这个时候我们再次push文件的时候就会发生冲突,提交不上去。
首先需要pull,再提交我们的文件 push,即可解决
在Linux下安装软件的方法大概有以下三种:
1.下载到程序的源代码,自行进行编译,得到可执行程序。
2.获取rpm安装包,通过rpm命令进行安装。(未解决软件的依赖关系)
3.通过yum进行安装软件(常用)
yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
注意:一个服务器同一时刻只允许一个yum进行安装,不能在同一时刻同时安装多个软件。
因为yum是从服务器上下载RPM包,所以在下载时必须联网,可以通过ping指令判断当前云服务器是否联网。
yum list
使用yum list指令,可以罗列可供下载地全部软件。
说明
1.软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。
2."x86_64"后缀表示64位系统的安装包,"i686"后缀表示32位系统安装包,选择包时要和系统匹配。
3."el7"表示操作系统发行版的版本,“el7"表示的是"centos/redhat7”,“el6"表示"centos6/redhat6”
4.最后一列表示的是“软件源”的名称,类似于“小米应用商店”,“华为应用商店”这样的概念。
这里以查找sl为例
yum list | grep sl
由于包的数量非常多,所以我们可以使用grep指令筛选出我们所关注的包。
sudo yum install sl
yum会自动找到都有哪些软件包需要下载,这时候敲“y”确认安装,当出现“complete”字样时,说明安装完成。
注意:
1.安装软件时由于需要向系统目录写入内容,一般需要sudo或者切换到root账户下才能完成。
2.yum安装软件只能一个装完了再装另一个,正在使用yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错。
既然已经安装了lrzsz,这里就顺便说以下lrzsz如何使用。
指令: rz -E
通过该指令可选择需要从本地机器上传到云服务器的文件。
指令:sz 文件名
该指令可将云服务器上的文件下载到本地机器的指定文件夹。
sudo yum remove sl
yum会自动卸载该软件,这时候敲”y“确认卸载,当出现”complete“字样时,说明卸载完成。
程序发布方式:
1.debug版本:程序本身会被加入更多的调试信息,以便于进行调试。
2.release版本:不会添加任何调试信息,是不可调试的。
在Linux当中gcc/g++默认生成的可执行程序是release版本的,是不可被调试的。如果想生成debug版本,就需要在使用gcc/g++生成可执行程序时加上-g选项。
对同一份源代码分别生成其release版本和debug版本的可执行程序,并通过ll指令可以看到,debug版本发布的可执行程序的大小比release版本发布的可执行程序的大小要大一点,其原因就是以debug版本发布的可执行程序当中包含了更多的调试信息。
进入gdb
gdb 文件名
调试
run/r :运行代码(启动调试)
next/n:逐过程调试
step/s:逐语句调试
until 行号:跳转至指定行
finish:执行完当前正在调用的函数后停下来(不能是主函数)
continue/c:运行到下一个断点处
set var 变量=x : 修改变量的值为x
显示
list/l n: 显示从第n行开始的源代码,每次显示10行,若n未给出则默认从上次的位置往下显示。
list/l 函数名: 显示该函数的源代码
print/p 变量 : 打印变量的值
print/p &变量 : 打印变量的地址
print/p 表达式 : 打印表达式的值,通过表达式可以修改变量的值
display 变量 : 将变量加入常显示(每次停下来都显示它的值)
display &变量 : 将变量的地址加入常显示
undisplay 编号 : 取消指定编号变量的常显示
bt : 查看各级函数调用及参数
info/i locals : 查看当前栈帧当中局部变量的值
断点
break/b n : 在第n行设置断点
break/b 函数名 : 在某函数体内第一行设置断点。
info breakpoint/b : 查看已打断点信息
delete/d 编号 : 删除指定编号的断点
disable 编号 : 禁用指定编号的断点
enable 编号 : 启用指定编号的断点
退出gdb
quit/q : 退出gdb