Linux环境基础开发工具使用

Linux环境基础开发工具使用

  • Linux 软件包管理器yum
    • yum的三板斧
      • ①查看软件包
      • ②安装软件
      • ③卸载软件
    • Linux和Windos互传文件
  • vim
    • vim的三种模式的转换
    • ①命令模式(Normal)
    • ②插入模式(Insert)
    • ③底行模式(Command)
  • Linux编译器-gcc/g++使用
    • 函数库
    • Linux调试器-gdb使用
  • Linux项目自动化构建工具-make/Makefile

Linux 软件包管理器yum

软件包和软件包管理器, 就好比手机上的"App" 和 “应用商店”

所以yum的作用主要是在Linux下安装软件

注意:
关于 yum 的所有操作必须保证主机(虚拟机)网络畅通

yum的三板斧

①查看软件包

通过yum list 命令可以罗列出当前一共有哪些软件包
我们可以使用grep命令筛选出我们需要的包

例如:
yum list | grep lrzsz
在这里插入图片描述

软件名"lrzsz"
“x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配
“el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
os表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念

②安装软件

sudo yum install (-y) lrzsz

加上-y后直接自动安装不用输入y确认

安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成,卸载也一样

centos中任何时刻只允许一个yum运行

③卸载软件

sudo yum remove lrzsz

Linux和Windos互传文件

Windows传到Linux直接拖拽到命令框
Linux到Windows用sz 文件名

Linux环境基础开发工具使用_第1张图片

vim

本质是多模式的文本编辑器

vim目前包括10多种模式,下面我们来讲讲其中的三种模式

vim 文件名 进入文本编辑器(如下图):
Linux环境基础开发工具使用_第2张图片
可以看到进入默认是Normal(命令模式)

如果要退出就进入底行模式输入wq!退出

vim的三种模式的转换

Linux环境基础开发工具使用_第3张图片

①命令模式(Normal)

命令:

shift+$:行尾
shift+^:行头
shift+g:文本最后一行开头
gg:文本第一行开头
n+shift+g:定位到第n行开头
h,j,k,l:左下上右
w:按照"单词"从左向右移动,每次光标指向下一个单词的开始
e:按照"单词"从左向右移动,每次光标指向下一个单词的结尾
b:按照"单词"从右向左移动
#l:光标移到该行的第#个位置
ctrl+b:下翻一页
ctrl+f:上翻一页
ctrl+u:下翻半页
ctrl+d:上翻半页

复制粘贴:

yy:复制光标所在行
nyy:从光标行开始复制n行
nyw,yw:按照单词复制
p:粘贴
np:粘贴n次

撤销:

u:撤销
ctrl r:恢复刚刚的撤销

删除:

dd:删除光标所在行
ndd:从光标所在行开始删除n行
dd,ndd完再加p:就可以实现剪切的功能
x,nx:删除光标所在字符
shift+x(X),nX:往前删除字符,不包括光标

替换:

shift+~:大小写切换
r,nr:替换光标所在字符
shift+r®:进入替换模式

跳至指定的行:

#G:移动光标至文章的第#行行首

②插入模式(Insert)

插入模式就是正常的文本编辑

③底行模式(Command)

set nu: 输入set nu后,会在文件中的每一行前面列出行号
wq!:保存并退出文本编辑器,w表示保存写的内容,q表示退出,!表示强制
vs 文件名:分屏
ctrl+ww:光标在分屏下切换

Linux编译器-gcc/g++使用

gcc编译:
格式:

gcc [选项] 要编译的文件 [选项] [目标文件]

c程序的翻译:

1 预处理:
头文件展开,去注释,宏替换,条件编译

gcc –E test.c –o test.i
选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程
选项“-o”是指将预处理过的文件结果放入test.i中

gcc test.c -D π=3.14
-D 宏的命令行定义,可以动态地进行宏定义

  1. 编译

gcc –S test.c –o test.s

只进行编译而不进行汇编,生成汇编代码
3. 汇编(生成可重定向文件)

gcc –c test.s –o test.o

汇编代码转化为二进制目标代码

4 链接(生成可执行文件或库文件)
gcc test.o –o test

目标文件只有函数调用没有函数实现,链接过程的本质是将自己的函数调用过程与实现关联起来

lld 文件名
查看文件所依赖的库

在这里插入图片描述

可以看到test.c使用了c标准库该库是一个动态库

file 文件名
查看文件的详细类型

在这里插入图片描述
gcc用于写c语言,输入命令时将gcc改成g++就可以进行c++的编写

函数库

作用:减少开发的工作量

函数库一般分为静态库和动态库两种

动态库 静态库
原理 程序需要找到库函数,执行后返回再继续执行剩余代码 在链接的时候,需要的库函数会拷给程序,直接在程序里面执行
优点 省空间,体积小,加载速度快 不依赖第三方库,可移植性强
缺点 依赖第三方库,可移植性弱 浪费空间,加载速度慢

gcc生成可执行程序,默认是动态链接的
gcc加上-static生成静态链接

Linux调试器-gdb使用

调试:gdb 文件名
退出: ctrl + d 或 quit

centos7中 gcc默认生成的可执行程序是release(文件比debug小,不可被调试)
添加-g让程序以debug方式发布

调试命令:

list(或者l) (行号):显示文件源代码,接着上次的位置往下列,每次列10行
list(l) 函数名:列出某个函数的源代码
r或run:运行程序
break(或者b) 行号:在某一行设置断点
info b :查看断点信息
delete(或者d) n:删除序号为n的断点
p 变量:打印变量值
n 或 next:逐过程执行
s或step:逐语句,进入函数调用
display 变量名:监视查看一个变量,每次停下来都显示它的值
undisplay 编号:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
finish:执行到当前函数返回,然后挺下来等待命令
continue(或c):跳到下一个断点
set var:修改变量的值
breaktrace(或bt):查看各级函数调用及参数

Linux项目自动化构建工具-make/Makefile

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率

make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建
Linux环境基础开发工具使用_第4张图片

$@:依赖关系中的目标文件
$^:依赖关系中的依赖文件列表
$<:依赖关系中的一个一个的依赖文件

用命令make来编译目标文件,用完后make clean清理文件
Linux环境基础开发工具使用_第5张图片

你可能感兴趣的