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
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论