当前位置:   article > 正文

Linux 常用工具(上)_linux怎么查看小工具

linux怎么查看小工具

一、软件包管理工具 yum

yum:类似于我们使用手机上的“应用商店”,用来管理当前系统中能够安装的工具以及可以卸载的工具,并实现安装以及卸载操作。
1、查看所能安装的软件工具:
yum list:显示所有工具
在这里插入图片描述
yum search keyword:根据指定的关键字查找指定工具
在这里插入图片描述
2、安装一个指定工具
yum install package_name:根据软件包名称进行安装
yum list installed:查看所有已安装软件包

在这里插入图片描述
此处需要注意,安装软件首先需要切换到 root 管理员用户之后才能进行安装-----su root

在这里插入图片描述
3、卸载一个指定工具:
yum remove package_name:根据软件包名称进行卸载
同样需要先切换到 root 用户之后才能进行此操作。

4、

yum clean all 清理老旧的缓存信息
yum -y update:升级所有包同时,也升级软件和系统内核;
yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样

sz:将 linux 上内容迁移到主机
sz 文件名
rz:将主机内容上传到 linux (直接拖移也可以)

安装 gcc g++ gdb git 工具:
yum install vim gcc gcc-c++ gdb git

二、编辑器 vim

(一)定义

vim:Linux中编辑器,vim 中默认不能使用鼠标,一系列操作全部通过键盘来完成,因此 vim 分为多种操作模式,不同操作模式下相同按键有不同的功能
vim 操作模式分为 12 种,最常用的有三种:
普通模式、插入模式、底行模式

(二)模式分类

1、插入模式:完成插入数据的操作
2、普通模式:vim 打开文件后的默认模式完成文本操作以及光标移动、其他指令操作
3、底行模式:更多用于保存退出文件

vim filename 打开文件之后默认处于普通模式(无法进行数据的插入操作,但是可以实现文本的复制粘贴剪切等操作),若文件不存在则会自动创建该文件并打开

(三)模式切换

1、普通模式-----》插入模式:i o a I O A
i:在光标位置进行插入(小写 i )
o:在光标所在行的下一行插入(普通模式下的操作),新建一行进行操作
a:在光标所在位置后一个字符开始插入
I:光标移至行首进行插入
A:光标移至行尾进行插入
O:表示在光标位置的上一行进行插入,将之前内容下移一行

(插入方式均可在Linux 中进行练习操作)

2、插入模式-----》普通模式:键盘左上角 esc 按键

3、普通模式-----》底行模式:英文状态下的冒号 :
(任何模式下都可以按 esc 回到普通模式)

(四)不同模式下的常见操作

1、底行模式:
:w:保存
:q:退出
:wq:保存并退出
:q!:不保存强制退出

:vnew filename.c :同时打开两个 vim 窗口

2、普通模式:
(1)光标移动:
hjkl:左下上右
ctrl + f/b:向下/上翻页
gg/G:跳转到文档首/尾行

(2)文本内容操作:
yy:复制光标所在行(一行)
nyy:复制 n 行内容

ggdG:删除 vim 中文本内容

p:在下方粘贴
np:粘贴 n 次
dd:剪切/删除所在行
D:删除本行光标之后的内容
ndd:剪切/删除光标开始 n 行内容
x:删除光标所在字符
dw:删除单词

(3)其他典型操作:
u:撤销
ctrl + r:返回撤销
gg=G:全文对齐

ctrl + z 并不是退出 vim ,只是停止编辑,会产生一个临时交换文件 XXX.swp
R 使用临时文件覆盖原有文件内容,按 q 退出该文件然后删除交换文件 rm XXX .swp

三、编译器 gcc\g++

C/C++等都属于高级语言,不能直接被 CPU 识别,编译器将上层高级语言代码解释成对应平台的 CPU 指令,能够被 CPU 识别。

(一)编译过程

预处理过程:展开所有代码(引入头文件、宏替换、删除注释)
编译阶段:检查语义语法错误,若无错误将 C 语言解释成汇编语言
汇编过程:将汇编代码解释成二进制的 CPU 指令
链接过程:将所有指令代码打包到一起(不仅是打包我们自己的代码,还有链接库文件中库函数指令代码),进行组织成为可执行文件

链接方式:
动态链接: 链接时,将库中使用到的函数符号表记录到可执行程序中(并非将具体函数实现指令拿过来)
优点:生成可执行程序小,多个程序可以在内存中使用同一份库代码(节省资源)
缺点:运行库,也就是运行时需要加载库到内存中,如果库被删除了程序就无法运行
静态链接: 链接时,直接将库中使用到的函数具体实现指令拷贝一份到可执行程序中
优点:无运行依赖
缺点:生成的可执行程序大,库中代码可能在内存中存在冗余

(二)指令

-E:只进行预处理
-S:只进行编译处理
-c:只进行汇编处理
-o:指定生成文件名称
在这里插入图片描述

四、调试器 gdb

gdb 调试器功能:调试、观察程序的运行过程,通常是为了排查程序的运行错误

(一)程序错误分类

编译错误(语句出错);
链接错误
运行时错误(运行中逻辑不对以及程序运行时崩溃)

(二)可执行程序分类

debug 调试版:不对代码进行优化,并且加入程序调试信息
release 调试版:不包含调试信息,并且会对代码进行优化

调试程序的前提:程序必须是一个 debug 版本的程序

(三)gdb 常用指令

打开一个程序的调试:gdb filename
gcc/g++ 默认会生成 release 版本程序,若要生成调试版需要加上 -g 选项:gcc -g fileneme -o filename1

在这里插入图片描述
跳出 gdb 调试器:quit (简写 q)

(1)流程控制:

run:直接运行程序 (简写 r)
start:开始逐步调试
list:查看调试行附近代码 (简写 l )
list n:查看调试行(第 n 行)附近的代码----list test.c : 11
next:下一行—逐过程,遇到函数不会进入函数,直接运行完毕(n)
step:逐语句,遇到函数会进入函数继续调试 (简写 s)
until:直接运行到指定位置 例如:until test.c:16
continue:继续从当前调试位置直接运行 (简写 c)
break:打断点 (简写 b)
例如:在test.c文件第14行打断点 break test.c:14
给函数打断点 break function
info break:查看断点信息 (简写 i b)
delete:删除断点 例如:delete id (简写 d)
watch:变量监控断点—当变量发生改变时候停下来
例如:watch variable _name
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)内存控制:

print:查看/设置变量内容(简写 p)
例如:print var_name
print var=val
在这里插入图片描述
在这里插入图片描述

Segmentation fault:运行时错误

backtrace:查看函数调用栈-----常用于检测函数运行时崩溃位置(简写 bt) 一般函数错误位置在函数调用栈栈顶

gdb 可以直接反馈错误信息

在这里插入图片描述

(博客内容为原创,欢迎评论~)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/777174
推荐阅读
相关标签
  

闽ICP备14008679号