Linux 下安装软件的方式:
源代码安装。
rpm 包安装。
yum 工具(yum 是一条命令)。
【总结】
在 Linux 中下载资源的一种工具,类似于手机上的应用商店。
- 查找、安装、卸载资源。
- 解决依赖关系。
在手机应用商店上面搜索下载软件,本质是在该公司的后端服务器上搜索下载软件。
- 这个应用商店在本地一定有相关软件的配置信息(比如软件名和其对应的下载链接)。
- 所以 yum 工具中一定也有配置文件,指明我们应该去哪里下载资源。
通过此命令可以罗列出当前一共有哪些软件包。由于包的数目非常之多,一般配合管道(grep 命令)筛选出我们关注的包。
例如:
$ sudo yum list | grep lrzsz
结果如下:
# 软件包的名称和版本
lrzsz.x86_64 0.12.20-36.el7 @os
注意:
- 第 1 列:软件包名称,主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构。
- “x86_64” 后缀表示 64 位系统的安装包,“i686” 后缀表示 32 位系统安装包,选择包时要和系统匹配。
- 第 2 列:“el7” 表示操作系统发行版的版本,“el7” 表示的是 centos7/redhat7。
- 第 3 列:表示的是 “软件源” 的名称,即该软件包的发布方,类似于 “微信官网”,“华为应用商店” 这样的概念。
$ sudo yum install -y sl # 一个好玩的东西,可以在屏幕上跑一个小火车
yum 会自动找到都有哪些软件包需要下载,-y 表示直接安装,中途不需要确认。出现 complete! 的字样说明软件安装完成。
注意:
- 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 命令或者切到 root 账户下才能完成。
- yum 安装软件只能一个装完了再装另一个。在 yum 安装一个软件的过程中,如果再尝试用 yum 安装另外一个软件,yum 会报错。
$ sudo yum remove -y sl # 卸载sl软件以及它的依赖包
更新 yum 源:
yum 的配置文件 /etc/yum.conf,这个一般不要去改动。
在 yum 配置路径下,会有 yum 源:
[ll@VM-0-12-centos 5]$ ls /etc/yum.repos.d/ # 查看yum源
CentOS-Base.repo CentOS-Epel.repo epel.repo epel-testing.repo
# CentOS-Base.repo: yum源,要求软件可靠稳定才能放进yum源中,这里的软件版本迭代比较慢
# CentOS-Epel.repo: 扩展源,比如某个软件新开发的版本,就可以放到epel源中
在 CentOS-Base.repo 文件中可以进行软件源(即软件的下载链接)的配置,当你使用 yum install 安装软件时,就会去对应的服务器上下载软件。
执行 vim /etc/yum.repos.d/CentOS-Base.repo
:
这个工具用于本地 Windows 机器和远端的 Linux 服务器通过 XShell 传输文件。
安装完毕之后可以通过拖拽的方式将文件上传过去。
安装 rz / sz 工具:
$ sudo yum install -y lszrz # lszrz是要安装的软件名称
安装完毕之后可以通过拖拽的方式将文件上传过去。
1、rz 命令,上传 Windows 中的文件到远端 Linux 服务器中:
$ rz # 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器,上传到服务器的路径为当前执行rz命令的目录。
2、sz 命令,将选定的文件发送到本地 windows 机器:
$ sz filename # filename是文件名
- 程序的发布方式有两种:debug 模式和 release 模式。
- Linux gcc / g++ 出来的二进制程序,默认是 release 模式。
- 要使用 gdb 调试,必须在源代码生成二进制程序的时候, 加上 -g 选项。
$ gcc test.c -o test_debug -g
程序的发布的两种模式:
Linux gcc / g++ 编译生成的 release 版本和 debug 版本的可执行程序区别:
gdb 命令格式:gdb [目标文件名]
这些基本操作中,常用操作都在下面举了例子,例子也是大致按照调试步骤来排列的。
(gdb) list 1 # 从第一行代码开始显示。接着按回车键,会继续往下显示代码,每次列10行。
list/l + 函数名:列出某个函数的源代码。(比如:l main 列出 main 函数的代码)
b / break + 行号:在某一行设置断点。
(gdb) b 7
Breakpoint 1 at 0x400543: file test.c, line 7. # 断点1位于0x400543:文件test.c,第7行
break 函数名:在某个函数开头设置断点。(实际上是这个断点是打在该函数的第一行)
info b:查看断点信息。当前设置了哪些断点。
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x0000000000400543 in main at test.c:7 # 第7行
2 breakpoint keep y 0x0000000000400555 in main at test.c:10 # 第10行
(gdb) r
Starting program: /home/ll/xxxx/test_debug
Breakpoint 1, main () at test.c:7 # 此时来到了第一个断点处(第7行)
7 for (; i < 10; i++) {
continue / c:从当前位置开始连续而非单步执行程序。(运行至下一个断点处停下来)
(gdb) continue
Continuing.
Breakpoint 2, main () at test.c:10 # 此时来到了第二个断点处(第10行)
10 printf("sum = %d\n", sum);
(gdb) n
8 sum += i; # 单步执行,此时来到了第8行
s 或 step:进入函数调用。(逐语句,会进入函数,相当于 VS 中的 F11)
print / p + 变量:打印变量值。
(gdb) p i
$1 = 3
(gdb) p sum
$2 = 3
(gdb) p &i
$3 = (int *) 0x7fffffffe44c
(gdb) p &sum
$4 = (int *) 0x7fffffffe448
display + 变量名:设置常显示。跟踪查看一个变量,每次停下来都显示它的值。
(gdb) display i # 跟踪查看变量i
1: i = 3
(gdb) display sum # 跟踪查看变量sum
2: sum = 3
(gdb) n # 单步调试
7 for (; i < 10; i++) {
2: sum = 6 # 显示变量i的值,前面的2:是它的序号
1: i = 3 # 显示变量sum的值,前面的1:是它的序号
(gdb) undisplay 2
(gdb) undisplay 1
(gdb) finish
Run till exit from #0 Sum (n=10) at test.c:4
0x0000000000400609 in main () at test.c:18
18 int sum = Sum(n); # 结束Sum函数调用,直接返回函数结果
Value returned is $1 = 55 # Sum函数的返回值
(gdb) bt # 查看调用堆栈,main函数上面压的是SUm函数
#0 Sum (n=10) at test.c:4
#1 0x0000000000400609 in main () at test.c:18
info(i) locals:查看当前栈帧局部变量的值
q / quit:退出 gdb。
注意:调试程序完毕,或者调试中间过程,调试痕迹很重要,当调试一个大的项目,可能有几十个断点,某个断点调试完了,不要直接把它删除,而是暂时禁用它,等程序没有任何问题了,再把所有断点删除。
git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于 2005 年以 GPL 许可协议发布。最初目的是为了更好地管理 Linux 内核开发而设计。
安装 git:
$ sudo yum install -y git
在 gitee / github 创建新仓库,然后在创建好的仓库页面中复制远程仓库的地址 url,推荐 HTTPS。
$ git clone [url] # 这里的url就是刚刚建立好的仓库的链接
执行命令后,输入 gitee / github 的用户名和密码,将会直接在本地创建一个放置代码的目录。
仓库中的内容(注意:不要修改隐藏文件 .git 里面的内容):
# 添加所有文件到暂存区,将需要用git管理的文件告知git
$ git add .
# 提交文件到本地仓库,""中写提交日志,不能乱写,描述改动的详细内容
$ git commit -m "first commit"
# 推动本地仓库的文件到远程仓库,即同步到远端服务器上
$ git push origin master
最后的 "." 表示当前目录。
最后一步需要填入用户名密码。同步成功后,刷新页面就能看到代码改动了。
执行 git commit -m “msg” 时,会让你设置用户名和邮箱(每次 git 提交都会使用到该信息,它被永远的嵌入到了你的提交中):
$ git config --global user.email "[email protected]" # 邮箱
$ git config --global user.name "Your Name" # 用户名
当依次执行三个命令后,输入 gitee/github 的用户名和密码,在 gitee/github 上的远程仓库刷新就可以看到自己的代码啦。
git本地免密码和账号pull、push_没有git账号怎么拉代码-CSDN博客
$ git log # 查看所有提交日志信息
$ git status # 查看本地仓库所有文件状态