Linux工具——实用工具介绍与使用说明

本文主要介绍Linux中关于安装器、编辑器、编译器、调试器、自动化构建项目、版本管理器等实用工具的功能介绍与使用说明。

目录

包安装器:yum

yum的常规操作

文件传输工具:lrzsz & xftp

编译器:vim

三种常见模式

正常模式下7种快捷操作方式

安装vimforcpp

其他

编译器:gcc/g++

区别

编译的四个过程

静态编译与动态编译

调试器:gdb

程序发行版本

调试基础方式

三种使用场景

自动化构建项目:make&makefile

介绍说明:

makefile文件格式:

make的工作方式(针对makefile文件):

伪目标定义:

版本管理工具:git

包安装器:yum
用于安装和移除软件

yum的常规操作
(1)查询软件信息

yum list 软件目录查询
yum list | grep "xxx" 通过管道grep过滤查询xxx
(2)安装软件

yum list [软件名] 安装软件
yum list -y [软件名] 安装软件(免询问)
(3)移除软件

yum remove [软件名] 移除软件
yum remove -y [软件名] 移除软件(免询问)
文件传输工具:lrzsz & xftp
区别

ltzsz:在Linux系统中使用,用于与win系统之间的文件传输

xftp:在win系统中与Xshell结合使用,用于与Linux系统之间的文件传输

(1)lrzsz安装

yum install -y lrzsz 安装lrzsz
(2)lrzsz使用

rz +鼠标选择上传文件 win文件上传Linux
sz [文件名] +鼠标选择下载地址 Linux文件下载到win
(3)注意:仅针对文件使用,如需对文件夹使用,可将其压缩后进行操作

编译器:vim
用于编辑代码

三种常见模式
(1)普通模式:不能输入

vim [文件名] 进入文档编辑的图片模式
(2)插入模式:可输入内容

在‘正常模式’中按‘A’进入插入模式 切换插入模式
在‘插入模式’中按‘Esc’退回正常模式 退回正常模式
(3)底行模式

在‘正常模式’中按‘:’进入底行模式 进入底行模式
在‘底行模式’中按‘Esc’退回正常模式 退回正常模式
在‘底行模式’中按‘wq’退出文件 退出文件
保存退出:wq 退出:q 仅保存:w
强制退出:q! 强制保存退出:wq!
正常模式下7种快捷操作方式
(1)移动(光标)

上下左右:h(左)j(下)k(上)l(右)
gg:光标回到文本开始
G:光标回到文本末尾
^:光标回到所在行的行首
$:光标回到所在行的行尾
(2)删除(内容)

x:删除光标所在字符
[数字]x:删除光标在内的多个字符
X:删除光标所在位置的前一个字符
[数字]X:删除光标前多个字符
dd:删除光标所在一行的内容
[数字]dd:删除包含光标向下多行的内容
(3)复制

yy:复制当前光标所在行
[数字]yy:向下复制包括光标所在行的多行
p:粘贴到光标所在行的下一行
P:粘贴到光标所在行的上一行
(4)替换

r:替换光标所在字符(一次一个)
R:替换光标所在之处的字符(一次多个)
(5)撤销

u:撤销上一次误操作的命令
ctrl+r:反撤销
(6)更改

cw:更改光标所在处的字到字尾处
c[数字]w:修改多个字(单词)
(7)跳跃

[数字]G:跳转到数字行号的行首
安装vimforcpp
在非root用户下直接运行以下指令即可

curl -sLf [网址] 仓库正在构建,后续补充更新
其他
(1)多行注释与多行去注释

多行注释:

1.ctrl+v
2.选择要注释的行,使用hjkl继续选择
3.shift+i:进入插入模式
4.输入注释符号(C/C++://)
5.Esc
多行去注释

1.ctrl+v
2.选择要删除的注释符号,使用hjkl进行选择
3.x:直接删除
(2)替换字符串(底行模式/命令模式)

替换光标所在行的首个目标字符串

s/[目标字符串]/[新字符串]/
替换光标所在行的所有目标字符串

s/[目标字符串]/[新字符串]/g
替换全文中所有的目标字符串

%s/[目标字符串]/[新字符串]/g
结论:g:代表当前行所有

%:代表当前所有行

编译器:gcc/g++
用于将源代码编译成为可执行程序:

区别
gcc:编译c语言文件(.c文件)

g++:编译c++语言文件(.c\.cpp\.cc\.cxx\.hpp文件均可)

编译的四个过程
预处理:对待编译文件执行宏替换,头文件展开,去注释等操作

gcc/g++ -E [源文件.c] -o [预处理生成文件.i]
-E:对文件只执行预处理操作
.i:产生的新文件后缀为.i
编译 :(1)进行语法语义的检测

(2)源代码编译成汇编指令

gcc/g++ -S [源文件.c或预处理文件.i] -o [编译指令.s]
汇编:将汇编指令转化为机器可识别的二进制代码

gcc/g++ -c [源文件.c或预处理文件.i或汇编指令文件.s] -o test.o
tets.o也被称为目标文件
链接:将若干个二进制代码(.o文件)或者库文件,链接起来生成可执行程序

gcc [源文件.c或预处理文件.i或汇编指令文件.s或二进制文件.o] -o [可执行程序文件名]
执行:运行可执行程序文件(运行文件)

./[可执行程序文件]
静态编译与动态编译
区别:

(1)动态编译:编译程序时没有使用-static

动态编译产生的可执行程序小,耗时大,因为依赖库没有编译到可执行程序中(主流)

(2)静态编译:编译程序时使用-static

静态编译产生的可执行程序大,耗时小,因为依赖库已经编译到可执行程序中

ldd命令:

该命令可以查看可执行程序依赖的文件

ldd [文件名]
调试器:gdb
用于调试程序bug的工具

程序发行版本
(1)debug版本比relesase版本多调试信息

(2)程序发布默认为release版本,如需发布debug版本,则增加-g命令行参数

gcc [源文件.c] -o [发行文件] release版本
gcc [源文件.c] -o [发行文件] -g debug版本
(3)gdb调试只能调试debug版本,调试语句为:

gdb [文件名] 调试文件(debug文件)
调试基础方式
l:从main函数开始查看源码
1 [函数名称]:查看某个函数的源码
r:执行程序
n:逐过程执行程序(F10)
s:逐语句执行程序(F11)
b [行号]:在该行号设置断点
i b:查看断点
c:继续执行
delede oreekpoints:删除所有断点
delete brcakpoints n:删除序号为n的断点【重要]
disable breakpoints:禁用断点
enable breakpoints:启用断点
info locals:查看当前栈帧局部变量的值
P [变量名]:查看变量的值,查看内置变量,查看自定义类型(struct,class,this)等,功能很强大
bt:展示调用堆栈,可以通过调用堆栈来代码执行的函数调用关系(非常重要,反馈函数调用关系,从下往上看)
q:退出

三种使用场景
可执行程序运行前:

gdb [文件名] 调试文件(debug文件)
可执行程序正在运行:

gdb attach [pid进程号]
可执行程序运行完成,但发生崩溃:

(1)coredump文件:核心转储文件,是程序在崩溃一瞬间内存的映像(案发现场)

奔溃情况:1.内存访问越界 2.解引用空指针 3.double free

(2)coredump文件设置

ulimit -a 显示当前资源限制的设定(包括核心转储文件的数量)
ulimit -c [数字或unlimited] 设置核心转储文件数量
(3)调试命令

gdb [可执行程序] [coredump文件]
注意:

如果可执行程序为release版本,调试命令展示错误信息但不显示行号

如果可执行程序为debug版本,调试命令展示错误信息、行号及该行内容

自动化构建项目:make&makefile
介绍说明:
make:是一个命令,是用来自动化构建项目的工具

makefile:是一个文件,文件内容当中包含了编译程序时的规则

Makefile:也是一个文件,文件内容当中包含了编译程序时的规则

关系:make根据makefile的文件内容规则进行解析,编译程序,构建项目

makefile文件格式:
目标对象:依赖对象
编译命令

[新项目文件]:[源代码文件]
gcc/g++ [源代码文件] -o [新项目文件]
目标对象:要生产的可执行程序

依赖对象:生成可执行程序时依赖的源代码

编译命令:如何通过依赖对象生成目标对象

注意:编译命令之前的空白部分是由table键形成的,#注释

make的工作方式(针对makefile文件):
(1)只为生成第一个目标对象服务

如果已经生成了目标对象,则后续文件当中的内容不解析
如果生成第一个目标对象需先生成依赖对象,则会在makefile文件当中查找生成依赖对象的方法,然后生成第一个目标
如果发现依赖的对象不存在,再返回报错
(2)若依赖对象的最后一次修改时间早于目标对象的最后一次修改时间,则不生成

理解:依赖对象不更新,目标对象不生成(已经生成一次后)

伪目标定义:
特征:总是被执行

.phony:[文件名] 将该文件设置为总是被执行的伪目标
作用:可无视依赖文件和目标文件的修改时间关系与生成限制

自定义变量和内置变量:

(1)内置变量

$^:代表所有的依赖对象

$<:第一个依赖对象

$@:目标对象

(2)自定义变量

随意命名,后续使用$符号对其进行解析

$(ABCD) 自定义变量ABCD
makefile中定义清理规则

makefile文件:

.phony:clean
clean:
rm [文件名]
make操作:

make clean
版本管理工具:git
用于代码的版本管理工具

(1)克隆仓库

git clone [网址]
(2)提交到本地

git add *
git commit -m "name"
(3)推送到远端仓库

git push [目标位置]
(4)将远端仓库更新到自己的本地仓库

git pull
(5)git status
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/w2583467558/article/details/130081054

版权声明:
作者:SE_Yang
链接:https://www.cnesa.cn/2113.html
来源:CNESA
文章版权归作者所有,未经允许请勿转载。

THE END
打赏
海报
Linux工具——实用工具介绍与使用说明
本文主要介绍Linux中关于安装器、编辑器、编译器、调试器、自动化构建项目、版本管理器等实用工具的功能介绍与使用说明。 目录 包安装器:yum yum的常规操作 ……
<<上一篇
下一篇>>