Linux下的常用工具
我在这里找到了一个linux命令查询的网站:http://man.linuxde.net/
编辑器
编辑器 | 特点 |
---|---|
ed | 行编辑器使用起来很不方便,每次只能对一行进行操作 |
pico | pico很象DOS下的edit程序,打开之后,屏幕下方有操作的提示信息,功能简单,也可以完成操作,一步一步做就可以了。pico的功能键直接列在屏幕的最下方,可以做为帮助来指导操作。 |
emacs | 可以在emacs中进行文本编辑,也可以编写程序代码,做程序调试,编辑HTML/SGML,读News,收发e-mail…,而且emacs经过配置后还支持中文。强大往往意味着操作方法的复杂,emacs也是如此,必须记非常多的命令才能使用它。 |
vi/vim | vim与vi相比,增加了更多的特性,如彩色与高亮显示,可以使我们的编辑工作更轻松。 |
我们主要对vim进行学习
vim的基本概念
vim 有12种模式,每一种模式都有不同的功能,不同的模式做不同的操作
我们主要掌握三种模式:普通模式、插入模式、底行模式(视图模式、替换模式)
vim操作
- 从普通模式切换到插入模式的方法
1 |
|
- 从普通模式切换到底行模式
1 |
|
[ ] 从插入模式/底行模式返回普通模式: ==ESC==
[ ] 普通模式下的操作
1 |
|
- vim的配置
编译器
Linux 下可用的编译器有 GCC、EGCS 和 PGCC,其中最常用的编译器便是 GCC
gcc
linux下程序的执行就是告诉操作系统程序文件在哪个路径下
gcc是一个编译工具,将我们所写的C语言程序编程成为机器可识别的语言程序
- gcc常用选项
1 | -o:指定要生成的文件的名称 |
程序的编译过程
==预处理==–>==编译==–>==汇编==–>==链接==
1 | 1. 预处理 gcc -E test.c -o test.i |
- 动态链接和静态链接
1 | 动态链接:链接的是动态库 |
安装
yum
yum是红帽系列linux操作系统进行软件包管理的工具,软件的安装、移除、查看都是通过yum工具完成的
1 | 查看:yum list | grep 想要安装的包名字 |
rpm
1 | 查看:rpm -a | grep "软件或者包的名字" |
源码安装
源码安装大致可以分为三步骤: (./configure)–> 编译(sudo make) –> 安装(sudo make install)
1、配置:这是编译源代码的第一步,通过 ./configure 命令完成。
执行此步以便为编译源代码作准备。常用的选项有 –prefix=PREFIX,
用以指定程序的安装位置。更多的选项可通过 –help 查询。也有某些程序无需执行此步。2、编译:一旦配置通过,可即刻使用 make 指令来执行源代码的编译过程。
视软件的具体情况而定,编译所需的时间也各 有差异,我们所要做的就是耐心等候和静观其变。
此步虽然仅下简单的指令,但有时候所遇到的问题却十分复杂。
较常碰到的情形是程序编译到中途却无法圆满结 束。
此时,需要根据出错提示分析以便找到应对之策。3、安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了。
安装 | 介绍 |
---|---|
rpm | rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。 |
yum | Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 |
makefile
在makefile中我们通常定义很多的程序编译规则,在终端命令行下敲击一个make命令,那么这个时候make这个程序,就会跑到当前目录下找寻这个Makefile文件,然后按照makefie中已经规划好的编译顺序以及编译规则来完成整个项目的编译
- make命令
只在当前目录下找名字为Makefile/makefile的文件
make可以检测目标对象与依赖对象的时间属性,判断程序是否需要重新编译(一个目标对象是否重新生成)
永远之找第一个目标对象生成,生成了第一个对象之后就退出了
make可以指定要生成的对象 ,例如make clean
- 伪对象
不管是不是最新的都需要重新生成(执行下边的生成命令)
使用 ==.PHONY== 来声明一个对象是伪对象
- 变量
预定义变量—Makefile中已经提前定义好的变量
$@ 编写规则中要生成的目标对象
$^ 编写规则中所有的依赖对象
$< 编写规则中第一个依赖对象
wildcard关键字用于获取文件名
a=$(src),变量的使用需要加上一个$符号,否则认为是字符串赋值
- 如何编写makefile
1 | 目标对象名称:依赖对象名称 |
gdb使用
- gcc -g
gcc -g 选项是开启gdb调试选项,目的是为了在可执行程序中加入调试符号信息
gdb调试一个程序需要这个程序在编译时加上-g选项来开启调试,为可执行程序加入一些调试符号信息。例如:gcc -g main.c -o main
- gdb如何加载程序
gdb ./main 或者 gdb进入之后 file ./main
- gdb常用命令
1 | q 退出 |