linux入门常用工具

72 篇文章 0 订阅
40 篇文章 0 订阅

常用的牛逼的编辑器
Vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

Eclipse
Eclipse是一款很酷的开源代码编辑器,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript, Natural, Lasso, C, C++, COBOL, Scheme, Clojure, Groovy等等,它也是Java集成开发环境,甚至提供了对Java 8的支持。在一些Web开发IDE特性的帮助下,你可以非常方便地对代码文件进行组织和访问。

Brackets
Brackets也是一款为Linux开发者设计的开源代码编辑器,使用Brackets写代码,你不会被任何事情所打断。比如在写HTML代码时,即便你没有保存代码也可以及时预览你的Web页面效果。你也可以使用Theseus来检查变量,Brackets默认提供一种主题,当然你也可以在扩展中心获取更多的主题。

Emacs
Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中。Emacs不仅可以作为文本编辑器,还可以用来收发电子邮件、通过FTP/TRAMP编辑远程档案、通过Telnet登录主机、上新闻组、登陆IRC和朋友交流、查看日历等功能。

Light Table
LightTable是一个免费开放源代码的编辑器,该编辑器有一个非常干净的界面,并有大量扩展。它与Windows、Mac和Linux都兼容,是高度可定制的。使用Light Table,开发者只需打开一个浏览器窗口即可实时查看更改,并且支持不同的嵌入。

Chocolat
Chocolat本身是Mac OS X的最佳代码编辑器。该编辑器旨在与OS无缝集成,Chocolat为JS、Python和HTML提供拖放功能、拆分编辑、代码折叠和代码完成。

Sublime Text
一个紧凑但性能较高的代码编辑器一个跨平台的代码编辑器,适用于所有WordPress项目。 Sublime Text有很多功能可以提供:

1.脚本编程

2.自定义界面

3.常规文件切换

4.合成和错误检测

5.多媒体选择和编辑

6.外部插件集成

7.Themes

常用的牛逼的编译器(不限制编程语言, 不限制平台).

MSVC
Windows平台上最常用的编译器,在C++编译器圣战中的胜利者,一个常被人诟病的是对标准的支持不够新不够快(最近开始逐步加快了)。随着微软发布基于Clang / C2,这一条路以后若成功,MSVC与Clang / C2并行,甚至逐步逐步退出舞台,都是有可能的事情。

Clang
licence极度友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,各大公司逐步发力在Clang上,包括不限于微软,IBM,Nvidia等,各大公司也在开始疯狂的往Clang / LLVM交代码(圈地),也开始往Clang实现OpenMP,Nvidia GPU等支持,目前在赶超GCC的道路上一路激情的狂奔,前途一片光明。但是Clang依赖于的LLVM,目前的性能无法与GCC相提辩论,在Benchmark性能测试上几乎没有胜利的项目,优化的道路上任重道远,同时一些开源软件没有办法编译过去,主要是缺乏对GCC 一些Builtin函数、自身带的汇编器的孱弱导致。

GCC/G++
跨体系结构很多,很多开源软件默认编译器都是GCC/G++,这一点上Clang比不上。

ICC
没有自己专门的前端(传说中的外包),而且是针对Intel体系结构上专门优化。

IBM XL C++
在IBM特定硬件与平台上表现非常牛逼,Benchmark性能测试非常优秀,其最初的设计思想就是为了性能,其最高优化级别可以达到O5,带来的缺点则是在编译时间上往往过长。而另外一个常被人诟病的是对C++标准的支持、开源软件的支持、错误信息的提示上都不够友好,然而从13.2开始,随着IBM采用Clang融合方案,目前这几项都得到有效改良,然而融合的道路也必定是漫长的.

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

程序编译时需要加入调试符号信息(即-g选项);
否则gcc功能无法实现.

Readelf命令.

Readelf指令:Readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些 信息。elf格式的文件也包括了含有elf文件的目录。elf文件:executables&linkableformat。Linux下面,目标文件、共享对象文件、可执行文件都是使用ELF文件格式来存储的。

Linux下软件安装的几种方式(源码安装, rpm安装, yum安装). 重点要理解rpm安装和yum安装的区别

(1)源码安装
几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc、make、automake、autoconf都支持源码安装。

①源码安装的方式
1、cd 源码所在目录
2、./configure [opts]
3、make
4、make install
②源码安装优点
源码安装的优点有以下几点

文档齐全
因为可以定位到代码,所以debug方便
本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)
③源码安装的缺点
编译麻烦
缺乏自动依赖管理,软件升级麻烦
(2)rpm包安装
rpm包安装几乎在所有Linux平台上都支持,它就像Windows下的exe安装文件一样,各种文件已经编译好,并打包,哪个文件在哪个文件夹里面都已经被指定好,所以很方便。

①rpm包安装的方式
由于安装的方式非常简单,我们只需要输入一条指令即可。

rpm -i xxx.rmp
通过上面的命令我们便可以完成rpm包的安装。

②rpm包卸载的方式
rmp包卸载的方法也很简单,只需要如下命令:

rpm -e 包名
③rpm包升级的方式
升级需要如下命令:

rpm -U 包名
我们需要注意的是此时计算机需要联网。

(三)yum安装软件包
yum并不是一种包,它是安装包的一个软件,在CentOS中是软件包的管理器,yum也对依赖关系进行管理,但是必须要在联网的情况下完成。

①yum包安装的方式
yum -y install
②yum包卸载的方式
yum remove 包
rpm安装和yum 安装的区别
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装.

彩色进度条:


  1 /*===============================================================                                                                                        |" Press <F1>, ? for help
  2 *   Copyright (C) 2019 All rights reserved.                                                                                                              |
  3 *                                                                                                                                                        |▼ functions
  4 *   文件名称:colorprogess.c                                                                                                                             |    main
  5 *   创 建 者:herb                                                                                                                                       |~                        
  6 *   创建日期:2019年06月12日                                                                                                                             |~                        
  7 *   描    述:                                                                                                                                           |~                        
  8 *                                                                                                                                                        |~                        
  9 ================================================================*/                                                                                       |~                        
 10 #include <stdio.h>                                                                                                                                       |~                        
 11 #include <stdlib.h>                                                                                                                                      |~                        
 12 #include <unistd.h>                                                                                                                                      |~                        
 13 #include <string.h>                                                                                                                                      |~                        
 14                                                                                                                                                          |~                        
 15 int main () {                                                                                                                                            |~                        
 16     int color = 0;                                                                                                                                       |~                        
 17     int i = 0;                                                                                                                                           |~                        
 18     char bar[102];                                                                                                                                       |~                        
 19     memset(bar,0,sizeof(bar));                                                                                                                           |~                        
 20     const char* lable="|/-\\";                                                                                                                           |~                        
 21     while(i<=100) {                                                                                                                                      |~                        
 22         color = 30 + i%8;                                                                                                                                |~                        
 23         printf("\e[5m\e[%dm[%-100s][%d%%][%c]\e[0m",color,bar,i,lable[i%4]);                                                                             |~                        
 24         printf("\r");                                                                                                                                    |~                        
 25         fflush(stdout);                                                                                                                                  |~                        
 26         bar[i++] = '#';                                                                                                                                  |~                        
 27         usleep(25000);                                                                                                                                   |~                        
 28     }                                                                                                                                                    |~                        
 29     printf("\n");                                                                                                                                        |~                        
 30     return 0;                                                                                                                                            |~                        
 31 }                                                                                                                                                        |~                         

跑马灯式进度条结果如图:
在这里插入图片描述

1.在编写代码的时候我们首先要区分两个转义字符:\n  \r

\n:表示换行,换到下一行,并位于起始位置,并不会覆盖原来的内容。

\r:表示回车,回到这一行的起始位置,相当于覆盖了之前的内容,不会重启一行。

2.其次了解linux下的 usleep() 函数:

功能:把调用该函数的线程挂起一段时间 , 单位是微秒(即百万分之一秒)

头文件:unistd.h

语法: void usleep(int micro_seconds);

3.函数fflush():

作用:刷新缓冲区——>fflush(stdout);
Linux下printf函数显示不同的颜色
颜色:
#define NONE “\033[0m”
#define RED “\033[0;32;31m”
#define LIGHT_RED “\033[1;31m”
#define GREEN “\033[0;32;32m”
#define LIGHT_GREEN “\033[1;32m”
#define BLUE “\033[0;32;34m”
#define LIGHT_BLUE “\033[1;34m”
#define DARY_GRAY “\033[1;30m”
#define CYAN “\033[0;36m”
#define LIGHT_CYAN “\033[1;36m”
#define PURPLE “\033[0;35m”
#define LIGHT_PURPLE “\033[1;35m”
#define BROWN “\033[0;33m”
#define YELLOW “\033[1;33m”
#define LIGHT_GRAY “\033[0;37m”
#define WHITE “\033[1;37m”

比如:
  printf("\033[31m ####----->> \033[32m" “hello\n” “\033[m”);
  颜色分为背景色和字体色,3039用来设置字体色,4049设置背景:

背景色    字体色
40: 黑    30: 黑
41: 红   31: 红
42: 绿    32: 绿
43: 黄    33: 黄
44: 蓝    34: 蓝
45: 紫    35: 紫
46: 深绿   36: 深绿
47: 白色   37: 白色
记得在打印完之后,把颜色恢复成NONE,不然再后面的打印都会跟着变色。

另外,还可以加一些ANSI控制码。加颜色只是以下控制码中的一种:

\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m – \033[37m 设置前景色
\033[40m – \033[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
  printf( CYAN “current function is %s " GREEN " file line is %d\n” NONE, FUNCTION, LINE );
  fprintf(stderr, RED “current function is %s " BLUE " file line is %d\n” NONE, FUNCTION, LINE );
  return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值