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;lineN(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

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

  1. Linux账号和权限管理详解(超详细示例操作)!

    Linux账号和权限管理详解 一.用户账号和组账号概述 1.1 Linux基于用户身份对资源访问进行控制 1.2 用户账号 1.3 组账号 二.用户账号文件 2.1 用户账号文件 /etc/passw ...

  2. HTTP协议版本介绍以及使用Wireshark工具针对HTTP进行抓包分析详解

    一.http协议版本介绍 http:Hyper Text Transfer Protocol 超文本传输协议,是互联网应用最为广泛的一种网络协议,主要用于Web服务.通过计算机处理文本信息,格式为HT ...

  3. Git 补丁— diff 和 patch 使用详解

    Git 补丁- diff 和 patch 使用详解 1. diff 和 patch 的区别 2. 生成patch 2.1 git diff 3. git format-patch 3. 应用patch ...

  4. [转]Windows下安全权限设置详解

    一 Windows下安全权限设置详解 [简 介] 随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80 ...

  5. STM32CubeMX GCC工程Makefile内容详解

    STM32CubeMX GCC工程Makefile内容详解 基础介绍 因为项目原因,需要对编译系统进行一些比较复杂的使用,但是我对于编译系统这一块并不是非常精通了解,所以需要进行一下学习.正巧,众所周 ...

  6. Windows权限设置详解

    Windows权限设置详解 随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式***越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80端口对外开放的WEB ...

  7. html5走格子游戏,JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解 发布时间:2020-09-26 20:42:24 来源:脚本之家 阅读:112 作者:krapnik 本文实例讲述了JS/HTML5游戏常 ...

  8. kubernetes(k8s)之rbac权限管理详解

    kubernetes(k8s)之rbac权限管理详解 RBAC简介 RBAC(Role-Based Access Control) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 ...

  9. linux权限数字详解

    linux权限数字详解 1.常用linux文件权限: 444 r–r--r– 600 rw------- 644 rw-r–r-- 666 rw-rw-rw- 700 rwx------ 744 rw ...

  10. linux文件属性644到755,linux系统文件夹数字权限设置详解644、755、777

    linux系统文件夹数字权限设置详解644.755.777 ,左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限. 而具体的权限是由数字来表示的,读取的 ...

最新文章

  1. Dizzy Cows(拓扑)
  2. BPM实例方案分享:表单子表自动填入数据
  3. map和reduce
  4. K/3 MRP运算数据不准的原因及解决方案
  5. Linux中SDIO命令,Linux MMC/SD/SDIO体系结构
  6. ssh非交互式远程命令
  7. 如何将namedtuples序列化为JSON
  8. kmeans不足举例(code)
  9. 天线巴伦制作和原理_一种2.4GHz巴伦天线的制作方法
  10. FreeMarker源码分析(八)
  11. 软件架构设计师:软件架构风格
  12. JavaScript网页购物车
  13. C语言中宏定义宏编译的使用#if,#ifdef,#ifndef,#elif,#else,#endif,defined使用详解,可以实现和if else一样的效果
  14. 什么表示计算机存储信息的能力以字节为单位,大学计算机基础考试判断.doc
  15. 5.3 用户注册与登录
  16. 快速提升网站排名的方法
  17. 新版海螺影视主题模板M3.1全解密版本多功能苹果CMSv10后台自适应主题开源全解密版
  18. JSP页面代码到源代码的转换
  19. 专题一:欧拉视频放大(线性)------MATLAB代码解析(二.amplify_spatial_lpyr_temporal_iir())
  20. 为什么增加解释变量的个数,R^2不会减小,该如何证明

热门文章

  1. go语言基础知识笔记(二)之数组和切片
  2. Jira filter subscribe issues
  3. Cmder - 在右键菜单添加Cmder Here
  4. 运维人员日常工作(转自老男孩)
  5. WebHelper类
  6. linux的kerne启动过程,linux
  7. 嵌入式linux系统文件,嵌入式Linux文件系统知多少
  8. python模块离线安装_离线安装db2的python模块ibm_db
  9. python数据类型所占字节数_python标准数据类型 Bytes
  10. 二元置信椭圆r语言_医学统计与R语言:圆形树状图(circular dendrogram)