Linux开发工具

1.常用的牛逼的编辑器, 并能够横向对比编辑器之间的区别和优缺点. 
gedit:

是各个发行版本都有的编辑器,类似于windiws的记事本,不过可以根据代码类型着色


vim:

vim是一个非常强大的编辑器,但是上手难度非常高,有很多个快捷键,对于初学者来说很困难


Komode Edit:

KomodeEdit是一个非常强大的编辑器,和Notepad++一般。


UltraEdit:
ULtraEdit是一个商业编辑器,是付费的,用户数量较多,类似于一个标准的ide工具

Geany:
Geany是一个类似于KomodeEdit的编辑器,适用于C,C++等多种语言

BlueFish:
功能相对较少,只适合一般的网页编辑


Sublime Text
可以称得上是ide的编辑器,类似于vim,但是比vim好看,功能更全面,非常适合js python php的开发


2.除了gcc, 还有哪些常用的牛逼的编译器(不限制编程语言, 不限制平台). 
c/c++ :   icc是美国 Intel 公司开发的 C/C++编译器,适用于Linux、Microsoft Windows 和 Mac OS X 操作系统。
java:sun公司的java 9,其最大的特性是模块化,JShell 交互式的java,改进了Stream API,多版本兼容JAR


3. 为什么调试的时候需要编译选项中添加 -g. 


用gdb进行调试纠错前必须要在编译选项中添加“-g”,“-g”标志是对程序进行调试性编译时常用的选项。我们需要给每一个需要调试的源文件都加上这个选项。它将使用特殊版本的C语言标准库完成编译和链接操作,给库函数加上程序调试方面的支持。编译器会把这些标志自动传给链接器。


了解readelf命令. 
readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。

常见的readelf命令.

-a 
--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. 

-h 
--file-header 显示elf文件开始的文件头信息. 

-l 
--program-headers  
--segments 显示程序头(段头)信息(如果有的话)。 

-S 
--section-headers  
--sections 显示节头信息(如果有的话)。 

-g 
--section-groups 显示节组信息(如果有的话)。 

-t 
--section-details 显示节的详细信息(-S的)。 

-s 
--syms        
--symbols 显示符号表段中的项(如果有的话)。 

-e 
--headers 显示全部头信息,等价于: -h -l -S 

-n 
--notes 显示note段(内核注释)的信息。 

-r 
--relocs 显示可重定位段的信息。 

-u 
--unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。 

-d 
--dynamic 显示动态段的信息。 

-V 
--version-info 显示版本段的信息。 

-A 
--arch-specific 显示CPU构架信息。 

-D 
--use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。 

-x <number or name> 
--hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。 

-w[liaprmfFsoR] or 
--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges] 显示调试段中指定的内容。 

-I 
--histogram 显示符号的时候,显示bucket list长度的柱状图。 

-v 
--version 显示readelf的版本信息。 

-H 
--help 显示readelf所支持的命令行选项。 

-W 
--wide 宽行输出。 

@file 可以将选项集中到一个文件中,然后使用这个@file选项载入。
4. 在Linux下实现进度条程序.  建议自主完成一个彩色的进度条.

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

int main()
   {
       int n = 0;
       char bar[102];
       const  char* label = "|\\-/";
       memset(bar, 0, sizeof(bar));
  
      while (n <= 100)
      {
          printf("\033[32m[%-100s]\033[0m[%d%%][%c]\r", bar, n, label[n % 4]);
         fflush(stdout);
         bar[n++] = '#';
         usleep(10000);
     }
      printf("\n");
      return 0;
  }



5. rpm安装和yum安装的区别. 
安装包都是以rpm结尾的。
yum是从网络安装源(例如网易镜像,可以自己配置)上下载rpm,如果存在依赖关系会把依赖的rpm同时下载安装。
rpm是安装本地存在的rpm包,如果存在依赖也需要安装上,如果某个rpm是自己修改编译的,那么只能用rpm安装了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值