vim插件推荐:
①vundle—vim插件管理工具
②Auto Pairs—自动括号配对
③nerdtree—文件树插件
④tagbar—函数变量树插件
⑤YCM—最强大的自动补全插件—史上最难装的插件
常用的牛逼的编辑器:
Eclipse Java集成环境,拥有代码高亮和智能提示等强大的功能
Light Table 扩展丰富,windows、Linux、macos都兼容
Brackets Brackets也是一款为Linux开发者设计的开源代码编辑器,
使用Brackets写代码,你不会被任何事情所打断。比如在写HTML代码时
即便你没有保存代码也可以及时预览你的Web页面效果
Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件
代码段等、是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS
等操作系统
常用的其他编译器:
clang、g++、msvc等
Q:为什么调试的时候需要编译选项中添加 -g?
A:因为可执行程序中没有可供 gdb 调试使用的特殊信息,为了将必要的调试信息整合到可执行文件中
加入-g选项编译器会进行以下的额外操作:
1.创建符号表,符号表包含了程序中使用的变量名称的列表
2.关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行
readelf命令:
用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息这里的
elf file(s)就表示那些被检查的文件,可以支持32位,64位的elf格式文件,也支持包含elf文件的文档
这里一般指的是使用ar命令将一些elf文件打包之后生成的例如lib*.a之类的“静态库”文件
elf文件的类型:
a)可重定位文件:用户和其他目标文件一起创建可执行文件或者共享目标文件,例如lib*.a文件
b)可执行文件:用于生成进程映像,载入内存执行,例如编译好的可执行文件a.out
c)共享目标文件:用于和其他共享目标文件或者可重定位文件一起生成elf目标文件或者和
执行文件一起创建进程映像,例如lib*.so文件
常用选项:
-a 显示全部信息
-h 显示elf文件开始的文件头信息
-S 显示节区表内所有的信息,包括每个节的属性
-s 显示符号表的信息,包含静态符号表和动态符号表
-l 显示程序头表信息, 包括有几个段,每个段的属性,以及每个段中包含有哪几个节
Linux下第一个小程序
终端彩色输出:
终端的字符颜色由转义序列控制,是文本模式下的系统显示功能,与具体语言无关
转义序列以控制字符’ESC’开头.多数转义序列超过两个字符,故通常以’ESC’和左括号’[‘开头.该起始序列称为控制序列引导符,通常由’\033[‘或’\e[‘代替
进度条代码:
#include<unistd.h>
#include <string.h>
#include <stdio.h>
int main()
{
int i=0;
char bar[102];
memset(bar,0,sizeof(bar));
const char lable[4] ={'|','/','-','\\'};
while(i<=100)
{
printf("\033[33m[%-100s][%d%%][%c]\r",bar,i,lable[i%4]);
fflush(stdout);
bar[i++]='#';
usleep(10000);
}
printf("\n");
return 0;
}
Linux下软件安装的几种方式:
一.源码安装
1.下载源码包,可以从git clone获取或者下载到windows用rzsz通过xshell传到Linux下
2.解压并进入解压后的目录配置文件 ./configure #
大多数情况下源码包都会带configure这样一个配置工具,具体使用方法可以vim查看
3.make filename编译源码包 如果报错了 make clean 清除缓存重新make
4.make install filename安装
二.rpm安装
rpm安装:安装别人编译好的软件包,所以rpm也是一个软件包管理器,命令为rpm install
rpm不仅已经把软件源代码编译成二进制文件,而且对软件包依赖的文件,系统环境等做了统计文件扩展名:rpm
还有一种SRPM:没有编译成二进制文件,但是也包含rpm的特性
三.yum安装
用rpm方式安装软件,如果依赖的软件没有事先安装,软件无法安装成功为了解决这个问题,推出yum方式
依赖的软件没有安装在机器上,就先安装依赖文件,再安装我需要安装的软件
因此yum在安装软件同时安装依赖文件,需要一个yum源来放依赖的软件源
所以yum也是基于rpm的