Linux之常用工具

一、软件包管理工具:yum

  • 安装其他的软件工具,类似与手机上的应用商店
  • 查看软件包:

yum list :查看所有软件包
yum search :搜索指定软件包
yum makecache:将软件包信息保存在本地
示例:yum search gcc

  • 安装软件包:

1、su root;安装软件包必须具有管理员权限;
yum install package_name :安装软件包
安装常见软件工具:
yum install lrzsz
yum install gcc gcc-c++
yum install gdb
yum install git

  • 移除软件包

1、su root;卸载软件包必须具有管理员权限;
yum remove package_name

二、编辑器:vim

  • 写代码,vim —linux下非常常用的一个编辑器,vim是一个命令行编辑器,其中不能使用鼠标,在命令行中实现光标的移动,文本操作,文本的编辑

  • vim的模式:12种

常见的有三种:
插入模式:进行文本数据的编辑插入
普通模式:进行文本常见的操作–复制,剪切,粘贴,删除,撤消,返回,文本对齐等,普通模式下不能输入数剧
底行模式:用于文件内容的保存和退出,以及文本的匹配查找替换操作

所有模式都是围绕普通模式切换的,vim打开一个文件默认就是处于普通模式。
打开文件:vim filename—打开一个已有文件,若文件不存在就会创建,打开文件后默认处于普通模式。

  • 模式切换

1)由普通模式切换到插入模式
i:从光标所在字符开始插入
I:光标移动到行首,开始插入
a:光标向后移动一个字符,开始插入
A:光标移动到行尾,开始插入
o:在光标所在行下行添加新行,开始插入
O:在光标所在行上行添加新行,开始插入
2)由插入模式切换到普通模式: ESC
3)由普通模式切换到底行模式:
:w:保存
:q:退出
:wq:保存并退出
:q!:强制退出不保存
4)由底行模式切换到普通模式:ESC

  • 普通模式下的常见指令:

1)光标移动:
hjkl:左上下右
ctrl+f/b:向上/向下翻页
gg/G:跳转到文档第一行/最后一行
w/b:单词向右走,单词向回走
2)增删改查
yy/nyy:复制/复制n行
p:向光标所在行下方进行粘贴
P:向光标所在行上方进行粘贴
dd:剪切光标所在行内容
dw:删除光标所在单词
ndd:从光标所在行开始,向下剪切n行
3)其他操作
ctrl+r:撤销的恢复(反撤销)
x:删除光标所在位置的字符
u:撤销
gg=G:全文对齐

三、编译器:gcc/g++

  • gcc是C语言的编译器;g++是c++语言的编译器;不同的语言有编译器

  • 作用:C语言、C++语言都是高级语言,机器无法识别这些代码,需要编译器,将高级语言代码解释成为机器指令,生成可执行程序文件才能执行

  • 可执行程序文件:一段功能的机器指令集

  • 将用户所写的高级语言代码解释成为机器可识别指令

  • 编译型语言:程序编译之后才可以执行,运行性能高,编码较慢;解释性语言:编写完成之后直接执行----逐行解释性语言—由解释工具逐行解释,然后执行功能,编码较快,运行性能低
    gcc main.c

  • 编译阶段

预处理:展开所有代码 (gcc-E:只进行预处理)(引入头文件,宏替换删除注释)
编译:进行语义语法纠错,若无错误,则将程序解释为汇编语言(gcc-S)
汇编:将汇编语言解释称为二进制机器指令(gcc-c)
链接:将所有 .o文件和库文件进行打包,最终生成一个可执行程序
库文件:大佬们封装的函数所打包的一个代码文件,gcc编译器,在链接生成可执行程序时,会默认链接标准c库
gcc编译器常见操作选项:-E 只进行预处理;-o 指定要生成的文件名称 ; -S只进行编译; -c 只进行汇编

  • 链接方式
    动态链接:链接的是动态库
    在可执行程序添加库中的函数符号信息表,生成可执行程序比较小 ,因为并没有把函数的实现直接加入到可执行程序中,因此运行程序的时候需要依赖动态库的存在,但是在内存中多个程序可以共用相同的库,降低了内存中的代码冗余
    静态链接:链接的是静态库
    在生成可执行程序时,直接将库中的代码实现都写入到了可执行程序中,生成的可执行程序比较大,在运行程序时,若有多个程序都是静态链接了同一个库函数,会在内存中造成代码冗余,但是静态链接的程序运行的是时候不需要依赖库的存在
    gcc默认链接方式:动态链接,并且在生成可执行程序的时候默认链接了标准c库

四、 调试器:gdb

调试一个程序的运行过程,能够让我们从运行过程中发现程序哪里出现问题,可以适当的改变数据达到某种调试的目的。并不是所有的程序都可以调试,调试器只能调试具有调试符号信息的程序----debug版本的程序。
调试的前提:生成一个debug版本的程序
gcc默认生成的是release版本的程序,因此需要在编译程序的时候就使用gcc-g选项生成debug程序(向可执行程序中添加调试符号信息)

  • 程序调试

1、gdb加载程序符号信息:
gdb ./main :直接使用gdb加载程序
gdb -> file main
2、开始调试程序
run:直接运行程序
start:开始逐步调试
3、流程控制指令:
list:查看调式行附近行代码(list file:line)
until:直接运行到指定行(until file:line) ,也可以指定文件
next:下一步,直接运行函数 ,不会跟踪进入
step:下一步,跟踪进入函数
continue:从当前位置开始继续运行程序
4、断点相关指令:
break:打断点
info break:查看断点信息
delete breakid:删除指定断点
break file:line:给指定文件指定行打断点
break func_name:给指定函数打断点
watch variable_name(变量名称):给变量打断点(变量监控),当变量数据发生改变时停下
** 5、内存操作:**
print/p :查看变量数据 print a;
print a=10:设置变量数据
quit:退出
backtrace:查看程序运行的调用栈信息,程序一旦奔溃,查看调用栈可以快速定位奔溃位置----栈顶函数、

五、项目管理工具

  • 项目构建工具(make/Makefile)
    Makefile:普通的文本文件---------记录项目的构建流程规则
    make:Makefile解释器----逐行解释Makefile中的项目构建规则,执行构建指令,完成项目的构建

Makefile的编写规则:
目标对象:依赖对象
目标对象:要生成的可执行程序名称
依赖对象:源码文件。通过与目标对象的最后一次修改时间判断,目标对象是否需要重新生成
预定义对象:预定义变量通常都是在执行指令中使用
$^:表示所有的依赖对象
$@:表示目标对象
$<:表示第一个依赖对象
.PHONY:声明伪对象------不管对象是否最新,是否存在,每次都需要重新生成(通常用于生成clean)
%通配符的使用:匹配识别任意字符串

make的解释执行规则:
1、make一旦执行,就会在当前所在目录寻找Makefile
2、make的执行规则中,要生成目标对象,首先要保证依赖对象以及生成,则会递归向下寻找依赖对象的生成规则
3、make在Makefile中寻找第一个目标对象(也只生成第一个目标对象),根据与依赖对象的时间关系,判断是否需要重新生成
4、若需要重新生成,则执行对应下方的指令(不一定非是生成目标对象的指令)

wildcard:获取当前路径下以.c结尾的文件名
patsubst:字符替换,将变量内容中的后缀名,从.c修改为.o赋值给obj

六、项目的版权管理工具:git-----分布式管理工具

版本管理工具:对项目的开发周期进行管理,每一次提价的修改都会有相对应的版本号,能够让我们在程序出问题时回滚回去

从服务器上克隆一个仓库: git clone http://…
添加修改的文件: git add ./*
进行本地提交: git commit -m “本次提交的备注信息”
同步到服务器: git push origin master

1、修改sudoers配置----临时为当前用户操作赋予一下管理员权限 /ect/sudoers

修改配置文件的步骤:
1、su root
2、chmod u+w /etc/sudoers
3、vim /etc/sudoers
4、:90 跳转到90行附近后,添加当前用户信息
5、:wq 保存退出

2、编写一个简单的进度条程序:

\n换行符的作用:数据换行,针对标准输出的时候,还有刷新缓冲区
\r回车符的作用:让光标移动到起始位置

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值