Linux常用工具

1.工具

vim 文本编辑工具

gcc/g++编译器 将C/c++等高级语言程序编译成为机器可识别程序

gdb 程序调试工具

makefile 不普通的普通文件

yum 红帽子系列linux操作系统的软件包管理工具

2.makefile

1)不普通的普通文件;

在makefile中定义很多的程序编译规则,在终端命令行下敲击一个make命令,这时make程序就

会跑到当前目录下找寻这个Makefile文件,然后按照makefile中已 经规划好的编译顺序以及编译

规则来完成整个项目的编译。

2)make命令只在当前目录中找叫make/Makefile文件;

编写:

main.c --> main

目标对象名称 依赖对象名称

制表符[ ] 通过依赖对象生成目标对象的命令;

'main' is up to date说的是,目标对象已经是最新的了,不需要重新生成make这个程序去判断一

下依赖文件的最后修改时间和目标对象文件的最后修改时间,如果目标对象的

时间戳大于依赖文件的时间戳,那么就证明依赖文件在上次编译之后就没有修

改过,不需要编译。

格式:

# makefile编写规则

# 目标对象:依赖对象

# 为了生成生目标对象所执行的命令

#

# make可以检测目标对象与依赖对象的时间属性,判断程序是否需要重新编译

# make永远只找第一个目标对象生成,生成了第一个对象之后就退出了

# make可以指定要生成的对象,例如:make clean

# 伪对象:不管是不是最新的,都需要重新生成(执行下边的生成命令)

# 使用:PHONY来声明一个对象是伪对象

# 变量:预定义变量---makefile中已经提前定义好的变量

# $@ 编写规则中要生成的目标对象

# $^ 编写规则中所有的依赖对象

# $ 编写规则中第一个依赖对象

src=$(wildcard ./*.c)#获取当前目录下以文件名以.c结尾的文件名赋值给src

bin=./main.c

#a=$(bin) #变量的使用需要加上$符号,否则认为是字符串赋值

all:$(bin)

.PHONY:main clean

$(bin):$(src)

gcc $^ -o $@

clean:

rm -f $(bin)

调研:= := += ?=

3.gdb使用:

gdb调试时一个程序需要这个程序在编译时候加上-g选项来开启调试,为可执行程序加入一

些调试符号信息 。gcc -g main.c -o main

gdb加载程序:

gdb ./main

gdb进入之后 file ./main

gdb常用命令:

r 开始运行程序,程序直接跑起来

r -| -s -a 程序的参数在这里加载

start 开始逐步调试程序

l 查看当前行附近代码

n 下一步

s 进入函数

until n 直接运行到第n行

b main.c :n 添加断点

b n

b func 给函数添加断点

i 查看信息

i b 查看当前断点信息

d 删除全部断点

d n 删除指定断点

p i 查看i变量内容

c 继续运行

watch 变量监控,变量内容修改时会停下来

bt 查看函数调用栈信息

4.vim:

从普通模式切换到插入模式的方法:

i:从光标所在位置开始插入

a:从光标所在位置的下一个字符处开始插入

I:将光标移动到行首,然后进入插入模式

A:将光标移动到行尾,然后进入插入模式

O:在光标所在行的上方,新建一行,进入插入模式

s:删除光标所在字符,然后进入插入模式

从普通模式切换到底行模式:

:w 保存

:q 退出

:q! 强制退出(不保存本次修改)

:wq 保存并退出

:!pwd 临时执行命令,按回车返回vim

从插入模式/底行模式返回普通模式

ESC

普通模式下的常用操作:

h 向左移动光标

j 向下移动光标

k 向上移动光标

l 向右移动光标

w 光标向右移动一个单词

b 光标向左移动一个单词

yy 复制光标所在行

nyy 从光标所在行开始向下复制n行

p 向光标所在行下方粘贴新行

P 向光标所在行上方粘贴新行

dd 删除光标所在行(vim种删除其实是剪切)

ndd 从光标所在行开始向下删除n行

x 删除光标所在字符

dw 删除光标位置开始的一个单词

u 撤销操作

ctrl+r 返回撤销操作

ctrl+v 进入列视图模式,可以进行选择操作

v 进入行视图模式,可以进行选择操作

r 替换光标所在字符

R 进入替换模式,对内容一直替换

gg 光标移动到文档首行

G 光标移动到文档末尾行

gg=G 全文缩进对齐

下课调研vim的常用插件以及安装方法

5.gcc使用:

linux下程序的执行就是告诉操作系统程序文件在哪个路径下。

gcc是一个编译工具,将我们所写的C语言程序编程成为机器可识别的语言程序。

ABI---标准

gcc常用选项

-o:指定要生成的文件的名称

-E:只预处理

-S:只编译

-c:只汇编

-static 静态链接(gcc默认是动态链接)

6.程序的编译过程:

预处理

去掉注释,展开所有代码;

编译

先纠错,没有错误则编译成为汇编代码;

汇编

将汇编代码生成机器可识别代码(汇编只是将我们写的代码编译完毕,但是不能运

行,因为代码不完全,我们调用的一些库函数,并不知道如何实现,需要经过第四步

才能生成可执行程序);

链接

将库中的函数链接过来和我们的代码最终合并生成可执行程序。

链接过程有两种:

动态链接:链接的是动态库;

静态链接:链接的是静态库;

动态链接生成的可执行程序小,静态链接大,但是动态链接生成的程序运行时需要动

态库的存在,静态库不需要(因为静态链接就是将库中的函数全部拿过来生成可执行

程序了,所以大);

程序的链接方式默认是动态链接。

7.yum使用:

yum是红帽子系列linux操作系统进行软件包管理的工具;

软件的安装/移除/查看都是通过yum工具完成的。

查看

yum list | grep 想要安装的包名字;

安装

yum install 想要安装的包名字;

移除

yum remove 安装包名字。

下课调研修改/更新yum源的方法

/etc/yum.repos.d/CentOS-Base.repo

Linux常用工具

相关推荐