Linux——开发工具

Linux编辑器


1、在Linux下,常用的编辑器是vim和vi,除此之外,Linux编辑器还有默认编辑器nano,试着尝试了一下,我觉得nano的界面更简洁,控制起来与vim还是稍有区别的,在指令的执行上面,虽然在一开始输入的时候不需要像vim要先按I,可以直接输入,这一点我还是非常喜欢的,鉴于nano我还没有配置,如果以后有时间会试着配置一下nano。nano编辑器更接近于vim/vi,通过全屏输入代码,使用相关指令来控制编辑器,需要花些时间来熟悉编辑器指令。
2、除此之外,还有ed文本编辑器,ed更适合大文本的编辑,一次只能编辑一行的文本,不是全屏的编辑器,不算做常用的编辑器。
3、还有ex编辑器,ex与vi编辑器有类似的地方,相当于在ex模式下启动的vi编辑器,当然想要从ex模式回到普通模式只需要输入指令:vi或者visual就可以了。
4、全屏文本编辑器——emacs
emacs命令是由GNU组织的创始人Richard Stallman开发的一个功能强大的全屏文本编辑器,它支持多种编程语言,具有很多优良的特性。有众多的系统管理员和软件开发者使用emacs。
5、Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

各个编辑器之间有所不同,但是就便捷来说,nano是更方便快捷的,但是作为更加丰富实用的就是vim/vi了,常用的也就是这俩,但是了解更多的编译器会在以后的工作和学习中有非常重要的作用。

编译器


1、在Linux中,可用的编译器有GCC、EGCS、PGCS。
常用的编译器是GCC,随着GCC的不断发展,GCC已经支持许多种语言了,c、c++、Ada、Object c 和Java等,所以GCC被扩展为一个名为GUN的编译器集合。
GCC一般常用于编译c和c++,分别使用gcc和g++来编译两种语言。
egcs代表Experimental(Enhanced) GNU Compiler Suite。开发egcs的目的是为了让编译器gcc更高效,它对编译器的开发工作也比gcc更活跃。它基于gcc版本并紧紧跟踪gcc版本。1999年4月维护gcc的自由软件基金会(Free Software Foundation, FSF)指派egcs的管理委员会作为gcc的正式维护者。与此同时,gcc改名,从原来代表GNU C Compiler 变为代表GNU Compiler Collection。另外,egcs和gcc的基础代码进行合并,结束了GCC基础代码中的一个长分支,并修正了许多错误,加入了许多增强特性。所以说,egcs和GCC从各方面看都是同一程序。

3、在Windows里,gun c和c++编译器是MinGW和Cgywin,Windows环境还有Borland编译器、LCC-win32编译器,Watcom系统编译器等。

gdb调试


ggc/g++ -g ——编译的过程中生成可供调试的可执行文件core
在使用gdb调试代码的时候,会需要core文件。

readelf命令


readelf命令用来显示elf格式的目标文件信息,可以通过选项来控制显示的信息,关于ELF格式的文件:

1、可重定位文件:用户和其他目标文件一起创建可执行文件或者共享目标文件,例如lib*.a文件。 
2、可执行文件:用于生成进程映像,载入内存执行,例如编译好的可执行文件a.out3、共享目标文件:用于和其他共享目标文件或者可重定位文件一起生成elf目标文件或者和执行文件一起创建进程映像,例如lib*.so文件。

这里写图片描述
readelf -a ——查看所有ELF文件信息


这里写图片描述
readelf -l ——显示程序头(段头)信息


这里写图片描述
readelf -h ——显示ELF文件开始的文件头信息

….
【还有更多的显示命令】

进度条程序


#include<stdio.h>
#include<string.h>
#include<unistd.h>

int pro()
{
    int rate=0;
    char bar[102];

    memset(bar,'\0',sizeof(bar));
    const char* flag="|/-\\";

    while(rate <= 100)
    {
        bar[rate]='#';
        printf("\033[34m[%-101s]\033[0m[%d%%][%c]\r",bar,rate,flag[rate%4]);
        fflush(stdout);
        rate++;
        usleep(100000);
    }
    printf("\n");
}

int main(void)
{
    pro();
    return 0;
}

效果如图–>
这里写图片描述

使用Makefile来编译执行bar.c程序。
Makefile在写的时候就是直接将bar.c进行编译生成bar.o文件,再将bar.o文件生成可执行文件进一步执行程序。
这里写图片描述

这里写图片描述

Linux下软件安装的方式


1、源码安装
这种方法是直接移植软件源码,分别到不同平台上安装的时候再进行编译适用于不同的平台上的方法。
(1)配置 ./configure
(2)编译 make
(3)安装 make install
2、rpm安装
在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。
3、yum安装
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,一次安装所有依赖的软体包。
可以同时配置多个资源库(Repository) 简洁的配置文件(/etc/yum.conf 自动解决增加或删除rpm包时遇到的倚赖性问题 使用方便 保持与RPM数据库的一致性。

rpm安装与yum安装的区别


1、yum可以自动解决安装中依赖性问题,但是rpm可能会出错。
2、yum可以检查更新所有该更新的软件,rpm没有这个功能,但是yum是基于rpm产生的安装方式,一定程度上是类似的。
3、yum在一定程度上解决了rpm的便捷性问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值