首页 > 系统相关 >linux常用工具三

linux常用工具三

时间:2022-12-01 20:35:46浏览次数:47  
标签:文件 gcc 程序 链接 linux test 常用工具 可执行程序

一、yum软件包管理工具

注:yum安装或移除一个工具都需要管理员权限。
1.查看可安装工具

yum list

查看所有可安装工具。
2.查找工具

1)yum search key

搜索指定关键字key的工具。

2)yum list | grep key

通过管道符将yum list 结果交给grep key操作,通过grep搜索关键字key工具。

3.安装/卸载

1)yum install package

安装package工具。

2)yum remove package

卸载package工具。

二、lrzsz文件传输工具

注:lrzsz需要关联xshell一起搭配使用。
1.rz向服务器传输文件

安装了lrzsz工具后,可通过直接拖拽的方式上传文件,文件会保存到拖拽到的当前目录下。
2.sz将服务器文件拉到本地

sz file

将文件“file”拉到本地。

三、git项目版本管理工具

在项目开发过程中,有很多关键节点,在关键节点将项目备份,当当前开发出现问题的时候,就可以通过项目版本管理工具将项目版本回滚到历史版本。
1.git clone 仓库链接

克隆仓库到本地。
2.git add --all ./

添加修改信息。
3.git commit -m "提交备注"

提交本地版本仓库管理。
4.git push origin master

同步本地仓库版本到服务器上。

四、vim编辑器★

Linux下的一个写代码工具。
1.必用的三种操作模式
1.1普通模式

进行一些命令操作。

vim filename:

· 打开文件夹“filename",若文件不存在,则会默认创建文件;

· 打开文件夹后默认处于普通模式下(不能写入内容);

常见操作:

1)光标移动★:

↑↓←→/kjhl:光标向上、下、左、右移动一个字符;

ctrl+f/b:向上/下翻页;

gg/G:返回到首行/末行;

w/b:每次向前/向后移动一个单词。

2)内容操作★:

复制:

yy:复制光标所在行;

nyy:从光标所在行开始复制n行;

粘贴:

p:粘贴;

np:重复粘贴n次;

剪切(删除):

在vim中没有真正的删除,剪切后不粘贴就是删除。

dd:剪切(删除)光标所在行;

ndd:剪切(删除)从光标所在行开始的n行;

全文对齐:gg=G

撤销操作:u

还原撤销:ctrl+r

1.2插入模式

编辑文件内容。

使用 i a o s/I A O S 切换到插入模式:

操作:

 i:从光标位置开始插入;

a:光标向后移动一个字符开始插入;

o:在光标所在行下方新建一行开始插入;

· 编辑文件内容完毕,使用esc按键返回到普通模式。
1.3底行模式

保存以及退出编辑。

输入英文冒号,从普通模式切换到底行模式:

操作:

:w 保存

:q 退出编辑;

:wq 保存并退出;

:q! 强制退出,不保存;

五、gcc/g++编译器★
1.程序编译的四个阶段
1.1预处理

进行宏替换,去掉注释,引入头文件....
1.2编译

进行语法语义纠错,没有错误则将高级语言代码解释成为汇编指令。
1.3汇编

将汇编指令解释成为二进制机器指令。
1.4链接

将机器指令与所适用的库函数对应库文件中的机器指令打包到一起,组织成为可执行程序。

2.动态链接&静态链接

gcc编译器默认的链接方式是动态链接

(动态库和静态库同时存在时,默认优先使用动态链接加载动态库)。

链接其实就是将所有的代码合到一起,尤其是将库文件中的代码拿过来,但实际上也有区别:

动态链接,链接的是动态库;静态链接,链接的是静态库;

动态链接:

生成可执行程序的时候,只是把库文件函数符号的位置记录到了可执行程序中,并没有把实际的实现指令拿过来,当运行程序的时候,动态库也会被加载到内存中,去内存中动态库制定位置获取函数指令。

优点:多个程序只需要加载一个相同的动态库到内存中就可以,内存中相同的代码冗余更小,程序文件本身也更小一些。

缺点:运行程序时,动态库必须存在。

静态链接:

生成可执行程序的时候,直接将库中所用到的函数指令拿过来写入到可执行程序中,可执行程序就包含了所有用到的指令。

优点:运行时不需要依赖库文件的存在。

缺点:生成的可执行程序比较大;如果多个程序使用了相同的库函数,则运行时内存中可能存在冗余代码。

3.gcc——C语言

常见选项:

-E 只进行到预处理完毕就结束

-S 进行到编译完毕就结束

-c 进行到汇编完毕就结束

-o 指定要生成的文件对象文件

例:将文件test.c编译成可执行程序test的四个阶段:

预处理:gcc -E test.c -o test.i

编译:gcc -S test.i -o test.s

汇编:gcc -c test.s -o test.o

链接:gcc test.o -o test

★直接输入gcc test.c -o test:一次性完成四步操作。

4.g++——C++语言

同gcc。
5.Linux如何运行一个程序

直接告诉系统要运行的程序在哪里即可;即直接输入待运行程序的位置。

六、gdb调试工具★
1.调试前提

这个程序必须是可调试的(代码没有进行优化,加入了调试符号信息),即这个程序必须是一个debug版本程序。
2.程序分类:debug&release

gcc编译器在生成可执行程序时,默认生成release版本;要想生成debug版本需要加上选项-g。

debug版本:程序的调试版;

release版本:程序的发布版(进行了代码优化)。
3.调试流程★

1)加载调试程序:gdb ./testfile

2)开始调试:run直接运行;start开始逐步调试

3)逐步调试涉及指令★

括号内为指令的简写。

    next(n):下一步,逐过程;遇到函数直接运行完毕;

    step(s):下一步,逐语句;遇到函数会进入函数内部;

    until file:line:直接运行到指定文件的指定行;

    list(l):默认查看调试行附近的代码;

    list file:line:查看指定文件的指定行的代码;

    continue(c):从当前调试位置,开始继续运行;

    backtrace(bt):查看函数调用栈,可以快速定位程序崩溃位置;

    break file:line:打断点;在指定文件指定行打断点;★

    info break:查看断点信息;

    print:打印变量内容,还可以修改变量数据;
————————————————
版权声明:本文为CSDN博主「Hey小孩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_63020222/article/details/126141439





 





标签:文件,gcc,程序,链接,linux,test,常用工具,可执行程序
From: https://www.cnblogs.com/l1pe1/p/16942579.html

相关文章

  • Linux 安装
    centos下载地址:​​https://www.centos.org/download/​​以下针对各个版本的ISO镜像文件,进行一一说明:CentOS-7.0-x86_64-DVD-1503-01.iso:标准安装版,一般下载这个就可以......
  • linux中指定以指定的单位显示文件的大小
     001、以bp显示[root@PC1test]#lsa.map[root@PC1test]#ls-ltotal1228800-rw-r--r--.1rootroot1258291200Dec120:03a.map 002、以适当单位显示......
  • Linux性能监控的常用工具/命令
    1.top-Linux系统进程监控       top命令是性能监控程序,他是Linux系统管理员经常使用的监控系统性能的工具。top命令可以定期显示所有正在运行和实际运行并且更......
  • linux软件安装记录
    系统基本信息:操作系统:ubuntu20.04.1LTSkernel:Linux5.4.0-47-genericArchitecture:x86-641.docker安装postgres安装简介:docker安装posggres再安装postgis扩展行不......
  • Linux学习的五个台阶
    Linux诞生的几十年来,大部分时间都工作在服务器与物联网的设备,我们生活中很多的场合都离不开Linux,但是我们都没有意识到它的存在,所以学习的人也不多,没有办法像WINDOWS一样。......
  • linux 中如何统计指定目录下一类文件的总的大小
     001、[root@PC1test]#lsa.mapa.peda.txtb.pedb.txt[root@PC1test]#ll-htotal1.4G-rw-r--r--.1rootroot200MDec119:42a.map-rw-r--r--.1......
  • [ Linux ] Linux信号概述 信号的产生
    0.问题引入:在曾经我们学习Linux的经历中,我们也是多次使用信号的。比如:当我们在使用xshell时,在命令行中按Ctrl+c,这个键盘输入产生了一个硬件中断,被操作系统获取,解释成信号,发......
  • AlmaLinux 9.1中安装java11
     001、系统[[email protected]]#cat/etc/redhat-releaseAlmaLinuxrelease9.1(LimeLynx)  002、测试java命令[root@PC1test]#javabash:java:c......
  • Linux面试题及答案整理(持续更新。。。)
    Linux面试题及答案(2023版),适用于应届生、有工作经验的程序员,每道都是认真筛选出的高频面试题,助力大家能找到满意的工作!Linux下载链接:全部面试题及答案PDF其他互联网大......
  • Linux搭建ElasticSearch集群
    前言这是整个ElasticSearch搭建的最后一篇文章,其实对我而言ElasticSearch在Linux上搭建集群写这篇文章意义并不大,只是为了补充这个空白而已,所以这篇文章并不会讲解很详细......