伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

5-17(linux下的常用软件工具)

来源:本站原创 浏览:211次 时间:2021-05-22

1、编辑器:vim

vim是一个命令行编辑器,不能使用鼠标,vim具有12种操作,常用的主要有3种:

插入模式:进行文本数据的编辑插入,

普通模式:进行文本的常见的操作:复制,剪切,复制,光标移动,返回,文本对齐。

底行模式:进行文本的保存、退出以及文本的匹配、查找、替换等

vim的基本使用:

vim filename  打开一个已存在的文件(打开后默认是普通模式),如果文件不存在,则会创建一个该文件。

操作模式的切换(都是围绕着普通模式)

普通-》插入:i、a、o 、I、A、O

其中i为直接进入插入模式,a为先将光标移动到下一个字符,在进入插入模式,o是将光标移动到下一行(单独开辟一行),再进入插入模式;I为将光标移动到该行行首,再进入插入模式,A是将光标移动到该行行尾,再进人插入模式,O是将光标移到上一行(单独一行),再进入插入模式。

普通模式-》底行模式:  按下:(英文状态下的:)即可

其中:q表示直接退出,:w表示保存;:wq表示保存后退出;:q!表示强制退出(不保存)

其他模式-》普通模式:按下esc即可;

其中在普通模式下的操作:


光标移动:

hjkl为上下左右;

b/w为依次移动一个单词,向左向右移动;

ctrl+b/f为上下翻页;

gg光标跳转到文档行首(第一行);

G光标跳转到文档行尾(最后一行)


文件操作:

yy/nyy:复制光标所在行/及光标下的n-1行。

p(小p)为粘贴:光标下方粘贴;

P(大P):光标上方粘贴。

vim中删除就是剪切:dd/ndd删除光标所在行/及光标下方n-1行;

x:删除光标所在位置;

dw:删除单词。


其他操作:

u:撤销上一次的操作;

ctrl+r撤销的反向操作;也就是如果使用了u,但是使用过了头,再使用ctrl+r就可以退回一步。

gg=G:全文按照文档格式进行对齐。


2、软件包管理工具:(相当于应用商店)

安装其他软件的工具:

三板斧操作:

yum list:打印所有软件包

yum search...:搜索指定的软件包   yum search vim

安装软件包:

第一步:su root,安装软件必须有root权限;

第二步:yum install vim   安装vim软件

移除软件包:

必须在root用户下,所以第一步也是su root

yum remove vim  卸载vim软件包;


3、编译器(gcc/g++)

作用:机器无法识别c,c++等高级语言,需要编译器将高级语言代码解释成机器指令,生成可执行程序文件。

gcc编译器常见选项:

-E:只进行预处理处理;-o指定要生成的文件名称。

eg:gcc -E a.c -o a.i;   a.c文件经过预处理生成a.i文件

-S:只进行编译

eg:gcc -S a.i -o a.s    a.i文件经过编译处理后生成a.i文件

-C:只进行汇编处理

eg:gcc -C a.s -o a.o     a.s文件经过汇编处理生成a.o文件。

常见错误:

未定义(undefine):就是我们告诉了编译器有什么变量或函数,可是编译器找不到。

未声明(uncleared):就是我们没有告诉编译器有什么变量或函数,编译器直接使用了。

链接:就是将所有用到个机器指令打包到一起,生成可执行程序,包括库文件。

链接库文件主要有2种方式:

动态链接:就是只记录库里函数符号信息表,生成的程序小,但需要加载动态库,不存在代码冗余。

静态链接:直接将使用的函数实现写入到可执行程序中,生成的可执行程序大,但是不需要加载库文件,存在数据冗余。


4、调试器:(gdb)

调试一个程序的运行过程,可以让我们能够从运行过程中发现哪里出错。

只有debug的代码才可以进行调试,gcc生成的可执行程序默认为release版本,所以不能进行调试,如果想要啥生成debhg版本的,需要加-g选项。

eg:gcc -g a.o b.o -o main  生成了debug版本的main程序。

-g选项是加在生成可执行文件的步骤上

调试步骤:

第一步:加载程序:

gdb ./main    指定目录,指定文件

gdb -p 38908   直接对一个正在运行的程序进行调试,-p用于指定进程id。

第二步:调试程序:

run:直接运行

start:开始逐步运行

第三步:常用调试指令:

流程控制操作:

next/n:下一步,遇到函数直接输出结果,不进入函数。

step/s:下一步,但是遇到函数会进入。

list/l:默认查看调试行附近代码,也可以指定行进行查看

eg:list file:line  查看line附近的代码。

until:直接运行到指定行

until a.c 11,直接运行到a.c的第11行

continue/c:从调试行继续向下运行,直到断点处停下。


断点操作:

break/b a.c 11指定文件指定行进行打断点,

break/b function  指定函数打断点。

info break:查看断点信息,也就是打印出所有断点的位置等信息。

watch:watch a  给变量a打断点,如果a的值发生变化,就停下。

delete/d: 删除断点


内存操作:

查看/修改变量数据

print/p a;  查看a的数据      print/p a = 10;将a的值改为10;

backtrace/bt:查看程序调用栈信息,程序一旦奔溃,查看调用栈可以快速定位到崩溃位置,栈顶函数就是出现崩溃的函数。


5、项目的自动化构建工具(make/makefile)

makefile:是一个文本文件,里面记录着项目的构建流程;

make:makefile的解释程序,逐行解释makefile中的项目规则,执行构建指令。

makefile的构建规则:

目标对象:依赖对象

tab 执行指令(构建指令)

eg:

main:a.c b.c

gcc a.c b.c -o main

make的执行规则:

make首先会在当前目录下找makefile/Makefile;找到后,会在makefile中找到第一个目标对象,根据和依赖对象的时间关系(也就是判断目标对象和依赖对象最近一次的修改时间谁跟接近当前时间),判断是否需要重新生成一个新的目标对象;如果需要重新生成则会执行对应下方的指令。并且make只会生成第一个目标对象,也就是执行第一个目标对象。


注意“make的执行规则中,要生成目标对象,首先要保证依赖对象已经全部生成。

makefile编写规则进阶:

makefile中的预定义变量,可用来替换对象名,使编写更加简单。

$@:表示目标对象

$^:表示所有依赖对象

$<:表示所有依赖对象中的第一个依赖对象。

则:

main:a.c b.c

gcc $^ -o $@;

更加简便方法:

wildlard/patsubst

工程是需要清理的所有有了clean;

clean:makefile的清理动作,为第二个目标对象,不会自动执行,需要指定执行。

make clean这样指定执行clean,但是有时候目录中如果有了clean,那么clean就是最新的了,所以判定不会重新生成,为了解决这个问题,所以有了声明伪对象:

声明格式:

.PHONY:claen

声明的伪对象,不管其对象是什么格式,都会去重新生成一个该对象。


6、项目的版本管理工具���,̩��(git)

对项目的开发周期进行管理。



  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net