摘要:按恢复键取消。按此删除光标位置后的文字,并进入插入模式。跳到指定行,列出光标所在行的行号。退出,如果不能离开,可以跟着a表示强制退出。和默认生成的二进制程序是动态链接的,可以使用指令查看。
文章目录Linux软件包管理器yum什么是软件包查看软件包安装软件卸载软件Linux编辑器- vimvim基本概念vim基本操作vim正常模式命令集vim最后一行模式命令集Linux编译器-gcc/g++背景知识gcc/g++编译预处理编译链接静态库和动态库gcc选项Linux调试器- gdb背景知识gdb命令摘要Linux项目自动化构建工具-make/makefilemake/Makefile重要性依赖和依赖方法应用示例Make工作原理项目清理
Linux包管理器yum什么是在Linux下安装软件的软件包?常见的方式是下载程序的源代码,编译后得到一个可执行的程序,但是这样太麻烦了,所以有人提前编译一些常用的软件,做成一个软件包(可以理解为windows上的安装程序)放在服务器上。你可以通过包管理器轻松获取编译好的软件包,直接安装软件包和包管理器,就像“App”和“应用商店”的关系一样。yum(黄狗更新器,已修改)是Linux下很常见的包管理器。主要用在Fedora,RedHat,在Centos等发行版上查看软件包可以通过yum list命令列出总软件。因为包的数量可能非常大,这里我们需要使用grep命令只过滤掉我们关注的包。
示例:
描述:
软件包名称:主版本号,次版本号,源程序发布号-软件包发布号,主机平台,cpu架构。后缀“x86_64”表示64位系统的安装包。后缀“i686”表示32位系统安装包。选择套餐时,要和系统匹配。“el7”表示操作系统发行版本。“el7”表示CentOS 7/Red Hat 7。“El6”表示centos6/redhat6的最后一列,base表示“软件来源”的名称,类似于“小米应用商店”和“华为应用商店”。
Sudo yum安装软件名称
Yum会自动找出需要下载的软件包。此时点击“Y”确认安装,会出现“完成”字样,表示安装完成。
需要注意的事项
安装软件时,需要写入系统目录。一般需要sudo或者切换到root账号才能安装百胜软件。只能先安装一个软件,然后再安装另一个软件。在百胜安装一个软件的过程中,如果再次尝试百胜安装另一个软件,百胜会报错,卸载软件的命令很简单。
Sudo yum删除软件名称
Linux editor -vivim vim的基本概念主要是解决我们在开发时的编码问题,本质上是一个多模态的文本编辑器。
vim最常用的三种模式是命令模式、插入模式和底线模式。
正常模式在命令模式下,我们可以控制屏幕光标的移动、字符、单词或行的删除、复制和粘贴以及剪切和粘贴。插入模式只有在插入模式下才能输入文本。按“ESC”键返回命令行模式。这种模式是我们后面使用最频繁的编辑模式。以最后一行模式保存或退出文件,或者替换文件,找到字符串并列出行号。在命令模式下,shift+:可以进入这种模式。vim的基本操作
进入vim后,在系统提示下输入vim和文件名,然后进入vim全屏编辑画面:有一点需要特别注意的是,进入vim后,你处于【正常模式】,只有切换到【插入模式】才能输入文本。
【正常模式】切换到【插入模式】1)输入“I”:按“I”进入插入模式后,从光标当前位置开始输入文档。2)输入“a”:从当前光标的下一个位置输入文本。3)输入“o”:是,插入新的一行,从该行开始输入文本。
[命令模式]切换到[底线模式]并输入“Shift+;”,实际上是输入“:”
从[插入模式]或[底线模式]切换到[命令模式]并按左上角的Esc键。
退出vim并保存文件。在【正常模式】下,点击冒号键进入“最后一行模式”,例如:1)w(保存当前文件)2)wq(输入“wq”保存文件,退出vim) 3)q!(输入q!强制退出vim而不保存)
Vim正常模式命令集移动光标。
1)按“k”:向上移动光标。2)按“j”:向下移动光标。3)按“h”:向左移动光标。4)按“l”:向右移动光标。5)按“$”:移动到光标所在的行尾。6)按" ":移动到光标所在行的开头。7)按“gg”:移至正文开头。8)按“Shift+g”:移动到文字的末尾。9)按“n+Shift+g”:移动到第n行的开头。10)按“n+Enter”:当前光标下移n行。11)按“w”:光标从左到右、从上到下跳到下一个单词的开头。12)按“e”:光标从左到右、从上到下跳到下一个单词的末尾。12)按“B”:光标从右到左、从下到上跳到上一个单词的开头。
删除
1)按“x”:删除光标位置的字符。2)按“nx”:从光标位置删除n个字符。3)按“X”:删除光标所在的前一个字符。4)按“nX”:删除光标位置的前n个字符。5)按“dd”:删除光标所在的行。6)按“ndd”:删除光标所在行的N行。
复制并粘贴
1)按yy:将光标所在行复制到缓冲区。2)按“nyy”:将光标所在行的N行复制到缓冲区。3)按“yw”:将光标位置到后缀的字符复制到缓冲区。4)按“nyw”:将光标位置的N个字复制到缓冲区。5)按“p”:将复制的内容粘贴到光标的下一行。6)按“np”:将复制的内容粘贴到光标的下一行n次。
剪(羊毛)
1)按“dd”:剪切光标所在的线。2)按“ndd”:从光标所在的行向下切N行。3)按“p”:将剪切的内容粘贴到光标的下一行。4)按“np”:将剪切的内容粘贴在光标的下一行n次。
取消
1)按“u”:取消。2)按“Ctrl+r”:恢复之前的取消。
案例切换
1)按“~”切换光标位置字符的大小写。2)按“n~”:完成光标位置后n个字符的大小写切换。
替换
1)按“r”:替换光标位置的字符。2)按“r”:在光标到达的位置替换字符,直到按下“Esc”键。
变化
1)按“cw”:删除光标前后的字符,进入插入模式。2)按“cnw”:删除光标位置后的N个字,进入插入模式。
页面转换
1)按“Ctrl+b”:转到上一页。2)按“Ctrl+f”:翻到下一页。3)按“Ctrl+u”:向上翻页。4)按“Ctrl+d”:下翻半页。
跳到指定的行
1)“Ctrl”+“G”列出光标所在行的行号。2) n+"Ctrl"+"G "将光标移动到文章的第一行。
Vim末行模式命令集在使用末行模式之前,记得先按“Esc”键确定自己处于命令模式,再按“:”进入末行模式。
行号设置
1)“set nu”:显示行号。2)“set nonu”:取消行号。
保存退出
1)“w”:保存文档。2)“Q”:退出vim。如果不能离开vim,可以在“Q”后面加一个“!”意味着强行退出。3)“WQ”:保存并退出。
分屏指令
1)“vs文件名”:实现多文件编辑。2)“Ctrl+W+W”:光标多屏切换。
执行指令
1)「!+command”:可以添加“!您可以执行Linux指令,例如查看目录和编译当前代码。
跳转到文件中的一行。
1) "#": "# "表示一个数字。在冒号后输入一个数字,然后按Enter键跳转到该行。如果你输入数字15并按回车键,你将跳到文章的第15行。
寻找角色
1)“/Keyword”:先按“/”键,然后输入要查找的字符。如果你第一次找到的关键词不是你想要的,你可以继续按“n”在后面找到你想要的关键词。2)「?关键词":点击"?”键,然后输入您要查找的字符。如果你第一次找到的关键词不是你想要的,你可以一直按“n”来找到你想要的关键词。
Linux编译器背景知识-gcc/g++ C和C++在编译代码时一般有以下四个步骤。
预处理(头文件扩展、取消注释、宏替换、条件编译)。编译(C代码翻译成汇编语言)。汇编(汇编代码转换成二进制目标代码)。链接(链接汇编过程生成的二进制代码)。gcc/g++的编译gcc/g++的语法:
要编译的gcc[选项]文件[选项][目标文件]
预处理gcc–etest . c–otest . I
预处理功能主要包括宏定义、文件包含、条件编译、取消注释等。预处理指令是以#开头的代码行。选项“-E”用于使gcc在预处理后停止编译过程。选项“-o”指的是目标文件,而“.I”文件是经过预处理的C原程序。
编译gcc–test . I–o test . s
在这个阶段,gcc首先要检查代码的规范性,是否有语法错误等。,以确定代码的实际工作情况。检查无误后,gcc会将代码翻译成汇编语言。用户可以使用“-S”选项查看,只编译不汇编生成汇编代码。
组装gcc -c测试。s -o测试。o
组装阶段是要转换的”。s”文件编译成目标文件。使用-c选项,你可以把二进制目标代码从汇编代码转换成"。o”文件。
链接gcc测试. o -o测试
成功完成以上步骤后,就进入链接阶段。链接的主要任务是将生成的“xxx.o”文件链接起来,生成可执行文件。如果没有-E、-S、-c选项,gcc/g++默认会经过预处理、编译、汇编、链接的全过程生成文件。如果没有用-o选项指定生成文件的文件名,默认情况下,生成的可执行文件将被命名为a.out。链接后生成的可执行程序也是二进制文件。
静态库和动态库函数库一般分为静态库和动态库。
静态库是指在编译一个链接时,库文件的所有代码都被添加到可执行文件中,所以生成的文件比较大,但是运行时不再需要库文件。后缀为"的动态库。一”是相反的。编译链接时,库文件的代码不添加到可执行文件中,而是运行时链接文件在程序执行时加载库,这样可以节省系统开销。动态库通常有一个名为“.”的后缀。所以“动态链接:
优点:节省空间(磁盘空间,内存空间),bin体积小,加载速度快。缺点:依赖动态库,程序不可移植。静态链接:
优点:不依赖第三方库,程序可移植性强。缺点:浪费空间。
gcc和g++默认生成的二进制程序是动态链接的,可以使用file指令查看。
您还可以使用ldd指令来查看动态链接的可执行文件所依赖的库。
Gcc选项-E只进行预处理,不会生成文件。您需要将它重定向到一个输出文件(否则,预处理的结果将打印在屏幕上)。-S编译成汇编语言没有汇编和链接,也就是只有预处理和编译。-c编译成目标代码-o输出处理结果到指定文件,后面跟着输出文件名。-静态该选项使用到生成文件的静态链接。-g生成调试信息(如果不携带该选项,默认生成发布版本)。-共享这个选项会尽量使用动态库,生成的文件会比较小。-w不会生成任何警告消息。-Wall生成所有警告消息。有四个级别的-O0/-O1/-O2/-O3编译器优化选项。-O0表示不优化,-O1是默认值,-O3的优化级别最高。Linux调试器- gdb后台知识程序有两种发布方式:调试模式和发布模式,都是来自Linux gcc/g++的二进制程序。默认情况下,如果在发布模式下使用gdb进行调试,那么从源代码生成二进制程序时,必须添加-g选项。
Gdb命令摘要到gdb
指令:gdb文件名
试运行测试/调试
1)“运行/r”:运行代码(开始调试)。2)“下一步/N”:逐步调试。3)“step/s”:逐句调试。4)“直到行号”:跳转到指定行。5)“完成”:执行完当前正在调用的函数(非主函数)后停止。6)“继续/c”:运行到下一个断点。7)“set var variable = x”:将变量的值改为x。
显示
1)“list/l n”:从第n行开始显示源代码,一次10行;如果未给定n,则默认从最后一个位置开始显示。2)“list/l函数名”:显示该函数的源代码。3)“打印/p变量”:打印变量的值。4)“print/p & variable”:打印变量的地址。5)“打印/p表达式”:打印表达式的值,通过表达式可以修改变量的值。6)“显示变量”:在常量显示中添加一个变量(每次停止时显示其值)。7)“显示&变量”:将变量的地址添加到常量显示中。8)“不显示数字”:取消指定数字变量的频繁显示。9)“Bt”:查看各级函数调用和参数。10) "info/ilolocales ":查看当前堆栈框架中局部变量的值。
断点
1)“break/b n”:在第n行设置断点2)“break/b函数名”:在函数体的第一行设置断点。3)“信息断点”:查看断点信息。4)“删除/D号”:删除指定号的断点。5)“禁用编号”:禁用指定编号的断点。6)“启用编号”:启用指定编号的断点。
退出广发银行
1)“quit/q”:退出广发。
Linux项目自动化构建工具-make/Makefile make/Makefile的重要性能否写出Makefile从一个侧面说明一个人是否有能力完成大型项目。一个项目中的源文件不算,按照类型、函数、模块放在几个目录中。Makefile定义了一系列规则来指定哪些文件需要首先编译。后面哪些文件需要编译,哪些文件需要重新编译,甚至更复杂的函数操作makefile带来的好处就是——“自动编译”。一次编写,只需要一个make命令,整个项目自动编译,大大提高了软件开发的效率。make是一个命令工具,它是一个用于Linux的命令工具,解释makefile中的指令。一般来说,大部分IDE都有这个命令,比如Delphi的make。可见,makefile已经成为工程中的一种编译方法。make是一个命令,makefile是一个文件,两者一起使用来完成项目自动化构建依赖项和依赖方法依赖项:
文件A的变化会影响文件B,所以说文件B依赖于文件A..
比如test.o文件是由test.c文件经过预处理、编译、汇编后生成的,所以test.c文件的变化会影响test.o,所以test.o文件依赖于test.c文件。
依赖方法:
如果文件B依赖于文件A,那么通过文件A获取文件B的方式就是文件B依赖于文件A的方式..
比如test.o依赖test.c,test.c可以通过gcc -c test.c -o,test.o的指令得到test.o,那么test.o依赖test.c的依赖方法就是gcc -ctest.c-otest.o。
应用示例步骤1:
在当前目录下创建一个名为Makefile/makefile的文件。
第二步:
写makefile文件。
编写完makefile后,保存并退出,然后在命令行执行make指令,生成可执行程序。
makefile文件的缩写
$ @:表示依赖关系中的目标文件(冒号左边)$:表示依赖关系中的依赖文件列表(冒号右边)。上面的makefile也可以缩写如下。
make Works make会在当前目录中找到一个名为“makefile”或“Makefile”的文件。如果找到了,它会在文件中找到第一个目标文件。在上面的例子中,它会找到mytest文件,并将这个文件作为最终的目标文件。如果mytest文件不存在,或者mytest所依赖的后来的test.c文件的文件修改时间比mytest文件新,那么它将执行后来的依赖方法来生成mytest文件。Make将逐层查找文件依赖关系,直到第一个目标文件最终编译完成。在搜索的过程中,如果出现错误,比如找不到最后一个依赖文件,那么make会直接退出并报错。项目清理每次重新生成可执行程序之前,我们都要对上次生成可执行程序时生成的一系列文件进行清理。清理指令是相同的,我们也可以将清理指令添加到makefile中。
注意:这里clean的目标文件被设置为伪目标,用。假的。伪目标的特点是无论更新与否都要执行。
评论前必须登录!
注册