Linux:初学总结(一些开发工具总结)

Linux学习目录


开始linux学习时想必大多数人开始使用的文本编译器是Vim编译器,但是linux里可不止只有它一个编译器。来开始讲起:

1.文本编译器介绍
1.1:Vim文本编译器

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由的软件,具有特别丰富代码补全、编译及错误跳转等方便编程的功能,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

Vim的设计理念就是命令组合,就像linux一样,用命令组合操作文件。“yy”复制当前行,”p”粘贴,“dd”删除当前行,一开始用时是不是感觉很酷,哈哈,我就觉得很酷啊。

在非插入模式下Vim移动光标可以用上下左右键来移动光标,但是正规Vim是用小写h,j,k,l,分别控制光标左、下、上、右移动。是不是很神奇,知道为什么吗?
看看最开始的使用Vim文本编译器的键盘
这里写图片描述
明白了吧。

1.2:Emace

Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个是Vim。
特点:Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中,在基于编辑器的功能基础上,Emacs自行开发了一个“bourne-shell-like”的shell: EShell。
Emacs还可以:

收发电子邮件
通过FTP/TRAMP编辑远程档案
通过Telnet登录主机
上新闻组
登陆IRC和朋友交流
查看日历
撰写文章大纲
对多种编程语言的编辑
调试程序,结合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等
玩游戏
计算器
记日记
管理日程,Task,ToDo,约会等
个人信息管理
目录管理
文件比较
阅读info和man文档
浏览网站
为各种程序(TeX等)提供统一的操作界面

1.3:Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK),它是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

1.4:Brackets

Brackets是一个轻量级但功能强大的现代文本编辑器。它可以将可视化工具混合到编辑器中,这样当您需要它时,您就可以得到正确的帮助,而不会妨碍您的创作过程。你会喜欢用括号写代码。它是一个开源项目,由一个积极和充满激情的社区支持着。

1.5:Lighttable

LightTable是一个应用ClojureScript写的可扩展的集成编辑环境(IDE)。由ChrisGranger和RobertAttorri开发。具有实时运行反馈,调试和搜索文档的功能。及时反馈功能提供了一个不同寻常的运行环境来让程序员构建抽象。
开发团队试图创造一个能够让程序员及时获知程序运行状态的软件。该软件一开始只支持Clojure语言,但是现在通过众多扩展,也能够支持Python和JavaScript语言。

1.6:Sublime Text

Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

总结一下以上文本编译器,Vim和Emace是最受广大编程人员喜爱的,它们操作简单,上手更加容易,功能更加强大。

2.编译器介绍
2.1:gcc

GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。但GCC很快地扩展,变得可处理 C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件
GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。

2.2:EGCS

EGCS(Experimental/Enhanced GNU Compiler System)这是gcc的发展方向, 把fortran等编译器集成进来, 它的构造很清晰, 把对gcc的各种改进/port都集成回去. 如gcc 2.7系列据说是没有对Pentium进行优化的, 而egcs则把pgcc对Pentium的一些优化集成进去了。

2.3:PGCC

PGCC(Pentium GCC) 针对Pentium CPU进行了编译器优化的compiler pgcc据说用JPEG压缩解压缩测试最快可比gcc快 30%!新版的pgcc都是基于egcs的, 以一个patch的形式release 。

我们用的最多的还是gcc编译器,其他两个可以先了解一下,主要是gcc要好好了解,要会使用。

gcc编译分为四个阶段:
1.预处理 ->展开头文件、宏替换、去掉注释、条件编译
2.编译 ->检查语法词法并生成汇编代码
3.汇编 ->汇编代码变为机器认识的机器码
4.链接 ->链接到一起生成可执行程序

当你写好程序编译完发现有错误时,你就需用gdb进行调试,但是调试前你需要执行gcc -g a.out(可执行文件)。
那么为什么要加-g,因为它会生成可调式信息的可执行文件,这样你才可以进行调试。
学linux也要多练习,多敲代码。
下面写一个彩色进度条,如下图:
这里写图片描述
首先你要清楚你想要实现进度条的样子,然后一步一步完成。
1.进度条是在一行显示,并且字符是逐渐增加的,怎么实现呢?
这时候就需要用\r,它的作用是将光标移动到本行最左端位置。这样每次显示都会从最左端覆盖前面字符串然后打印,效果就像进度条一样。
2.printf(“\033[3%im[%-100s][%d%%][%c]\033[0m\r”,i%7,baf,i,lable[i%4]);
\033

字体颜色格式:\033[33m变色内容\033[0m
第一个\033 是格式化处理
3%i,i是颜色代表值;0-7 0是黑色7是白色;以4开头的是背景颜色(4%7:背景色为白色)
最后的\033是把以前设置的格式清除掉

代码:
#include<stdio.h>
#include<unistd.h>
#include<string.h>

int main()
{
    char baf[101];
    memset(baf,0x00,sizeof(baf));
    int i = 0;
    char *lable="\\|/-";//假装旋转的字符
    for(i = 0 ; i < 101 ; i++)
    {
         printf("\033[3%im[%-100s][%d%%][%c]\033[0m\r",i%7,baf,i,lable[i%4]);
         fflush(stdout);//如果不清缓冲区,就不会出现动态连续的效果,会断断续续出现,因为linux中缓冲区写满后才会输出。
         baf[i] = '#';
         usleep(100000);//加载进度时每次睡眠0.1s,出现动态效果
    }
    printf("\n");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值