Linux_linux常用工具(git,vim ,gcc ,gdb,权限)超详解

git :项目版本控制工具

	项目克隆:git clone
	项目提交:git add(本地仓库提交)		git  commit  -m “bak msg”(-m  备注信息)
	同步到服务器:git  push origin  master(提交到主分支)**(提交时需要用户名和密码)**

svn–集中式
git —分布式 自己都有一个git仓库,

vim 编辑器

vim共有12种模式,最常用的是三种:

普通模式:完成编辑一个文件最常见的操作
		光标移动
		复制,粘贴,剪切,撤销,恢复撤销
插入模式:插入数据
底行模式:保存/退出  vim设置

vim filename -->普通模式—>插入模式—>返回普通模式–>进入底行模式–>保存退出

模式切换:

	esc回普通模式
	普通--->插入  
		 i  :  从光标所在位置开始插入
		 I	:光标移动到行首,开始插入
		 a 	:光标移动最后一个字符,开始插入
		A	:	光标移动到行尾,开始插入
		o	:	向光标所在行下方添加新行,开始插入
		O	:	向光标所在行上方添加新行,开始插入
	插入-->普通   esc
	普通-->底行	:
	底行—>普通   esc

普通模式下的操作

光标移动:
	h  j  k  l			上下左右
	w/b 				按单词右左移动
	ctrl+f/b				向下/上翻页
	gg/G				文档首行/尾行
复制:	yy  复制光标 所在行
		nyy 从光标所在行开始向下复制n行
粘贴:
			P(小写)   向光标所在行下方粘贴新行
			P(大写)		向光标所在行上方粘贴新行
剪切:
	X		删除光标所在字符
	dw  		删除光标所在单词
	dd			删除光标所在行
	ndd			从光标所在行开始向下删除n行
撤销:
	u
恢复撤销
	ctrl+r

底行模式的操作:

:q 	退出
:w		保存
:wq	保存并退出
:q!	退出不保存(强制退出)

gcc编译器

将高级语言程序(c语言)编译成为机器可识别的指令代码
编译过程:

	预处理:去掉注释,展开所有代码
	编译:语义语法纠错,将代码解释成为汇编代码
	汇编:将汇编代码解释成机器指令代码
	链接:链接代码库以及所有的目标文件,生成可执行程序。

去掉了一个分号。
在这里插入图片描述
预处理
在这里插入图片描述
在这里插入图片描述
报错(之前少写的分号问题)
在这里插入图片描述
现在就没有错了
在这里插入图片描述
库文件
大佬们实现一些常用的功能接口,为了防止每次编译耗费时间,因此将这些接口代码进行编译汇编,并且将汇编完成的 代码存储到一个文件中,这个文件就叫库文件

这时候如果大家想用库函数,这时候就需要包含头文件,因为头文件中声明这个函数的存在,这时候编译器再头文件,文件中 检测到这个声明,就知道有这个函数的时间,就不会报错。
最终链接生成可执行程序的时候,因为要具体让cpu处理命令,因此就必须将这些接口的具体实现拿过来

Gcc的链接方式:

静态链接:静态链接库,连接时,将库中代码写入到可执行程序中;
优点:运行时不依赖库的存在,
但是占用资源较多,并且去过大量的程序静态链接,
会再内存中造成代码冗余。

动态链接:链接动态库,链接时,只记录接口的位置符号信息,并不拷贝代码;
优点:占用资源少,在内存中大量程序,可以共享使用(共享库),
缺点:运行时原哟依赖库的存在(运行时库)

gcc编译器的默认的链接方式:动态链接

gdb调试器

调试一个程序的前提是什么?

		生成debug版本程序,向程序中添加调试符号信息
		Linux下gcc默认生成的程序是release版本的程序,
		需要加上-g选项,生成debug版本程序
		gcc  -g main.c  -0 main

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成debug版本程序

在这里插入图片描述
赋予参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Gdb加载程序

gdb  ./main
gdb  ->file./main
获取运行参数,并运行程序
		r  -a –l  -s  -t  

最常见的调试操作有哪些?

打印内容:

P(print)打印变量内容
P  var_name
单步调试:

start 	开始逐步调试
l(list)查看调试行附近代码
					L file;line
					N(next)下一步;不进入函数,直接将函数运行
					S(step)下一步;跟踪进入函	数
Unti   直接运行到指定行
Until  file:line

打断点:
b(break):打断点
 			b file:line
b function_name
i(info):查看调试信息
I b 查看断点信息
d(delete)删除断点
		d b_id(断点编号)
watch   变量监控
		watch   var_name
c(continue)继续开始运行

查看调用栈信息:
		bt   快速定位程序崩溃位置

在这里插入图片描述
因为main函数起始位置是第13行,所以到第13行停一下

查看附近代码
在这里插入图片描述
n下一步,
until 直接运行到指定行
在这里插入图片描述
s进入到函数里面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
bt
在这里插入图片描述

权限:

用户对操作系统进行操作的权限:管理员root,普通
用户对文件的操作权限:
	文件操作对用户的分类:所有者u,所属组g,其他o
	用户对文件的造作分类:可读r,可写w,可执行x
权限表示:rwx rwx r-x	111	  111	101		775
权限命令:umask	给定权限&(~umask)		chmod	chown	chgrp	
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值