一、Vim的基本操作。

Normal模式下

1.h 键 向左移动光标   2.  j  键  向下移动光标   3. k 键 向上移动光标 4. l键  向右移动光标

5.x 键  删除光标所在位置的字符 6.i 键  插入文本 7.dw 光标移至单词开头输入,删除整个单词

8.[number] +[command]+[object] 

9.p 键 在光标处重新置入缓冲区内的字符 10.r +[字母] 可以替换光标处错误的单个字符 11 . [number]+ c + [object] 更改命令,cw更改单词,c$更改本行。

11.Ctrl+g 显示当前光标所在位置行数及文件信息。 12. Shift+g 跳到末尾行;[行数]+Shift+g 跳到指定行数。 

13. / + [xxxx] 从前向后 搜索指定字段;n继续查找上次查找字段;Shift+ n 从相反方向查找 14.? +[xxxx] 从后向前搜索指定字段。

15. % 键    光标选中]})括号后按可以查看对应括号 16.  :s/old/new 替换

17. :![command]  用来执行外部命令 18.:w  [FILENAME]

19.o 在光标下方一行插入字符串  O 在光标上方一行插入字符串              20.a在光标所在位置之后插入 A 在光标所在行的末尾插入

21.R 进入替换模式,ESC退出、  21. :set [xxxx] 设置xxxx选项

 二.GCC编译器

基本规则

.c为后缀的文件,C语言源代码文件;

.a为后缀的文件,是由目标文件构成的档案库文件;

.C,.cc或.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;

.h为后缀的文件,是程序所包含的头文件;

.i 为后缀的文件,是C源代码文件且不应该对其执行预处理;

.ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;

.m为后缀的文件,是Objective-C源代码文件;

.o为后缀的文件,是编译后的目标文件;

.s为后缀的文件,是汇编语言源代码文件;

.S为后缀的文件,是经过预编译的汇编语言源代码文件。

编译过程 

预处理:gcc –E hello.c –o hello.i; gcc –E调用cpp

生成中间文件 编 译:gcc –S hello.i –o hello.s; gcc –S调用ccl

翻译成汇编文件 汇 编:gcc –c hello.s –o hello.o; gcc -c 调用as

翻译成可重定位目标文件 链 接:gcc hello.o –o hello ; gcc -o 调用ld** 创建可执行目标文件

实验楼例题 

但是编译发生错误。

三. GDB。

基本操作

·         gdb programm(启动GDB)

·         b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)

·         run 开始运行程序

·         bt 打印函数调用堆栈

·         p 查看变量值

·         c 从当前断点继续运行到下一个断点

·         n 单步运行

·         s 单步运行

·         quit 退出GDB

·         display 跟踪变量值的改变

·         until 跳出循环

·         finish 跳出函数

·         help 帮助

man 命令对其解释

四.MarkFile

基本介绍

一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,
哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见makefile都成为了一种在工程方面的编译方法。

Makefile的规则

target ... : prerequisites ...

command

...

Makefile执行后的图...

目标:依赖

执行指令 ...

target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)。

① prerequisites就是,要生成那个target所需要的文件或是目标。

② command也就是make需要执行的命令。(任意的Shell命令)

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行(command一定要以Tab键开始,否者编译器无法识别command),减少重复编译,提高了其软件工程管理效率。

​定义变量

$*

不包含扩展名的目标文件名称。

$+

所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。

$<

第一个依赖文件的名称。

$?

所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。

$@

目标的完整名称。

$^

所有的依赖文件,以空格分开,不包含重复的依赖文件。

$%

如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为

mytarget.so(image.o),则 $@ 为 mytarget.so,而 $% 为 image.o。

AR

归档维护程序的名称,默认值为 ar。

ARFLAGS

归档维护程序的选项。

AS

汇编程序的名称,默认值为 as。

ASFLAGS

汇编程序的选项。

CC

C 编译器的名称,默认值为 cc。

CFLAGS

C 编译器的选项。

CPP

C 预编译器的名称,默认值为 $(CC) -E。

CPPFLAGS

C 预编译的选项。

CXX

C++ 编译器的名称,默认值为 g++。

CXXFLAGS

C++ 编译器的选项。

FC

FORTRAN 编译器的名称,默认值为 f77。

FFLAGS

FORTRAN 编译器的选项。

转载于:https://www.cnblogs.com/L1nke/p/4840905.html

Linux(9.21-9.27)学习笔记相关推荐

  1. 《Linux高性能服务器编程》学习笔记

    <Linux高性能服务器编程>学习笔记 Linux高性能服务器编程 TCP/IP协议族 TCP/IP协议族体系结构以及主要协议 数据链路层 网络层 传输层 应用层 封装 分用 测试网络 A ...

  2. HALCON 21.11:学习笔记---OPC_UA(I/O)

    HALCON 21.11:学习笔记---OPC_UA(I/O) 本章主要提供有关OPC_UA的信息. 系统要求 Intel compatible PC with Windows 7 (32-bit o ...

  3. Linux内核设计与实现学习笔记目录

    **注:**这是别人的笔记,我只是把目录抄过来 <Linux内核设计与实现学习笔记> 1.<Linux内核设计与实现>读书笔记(一)-内核简介 2.<Linux内核设计与 ...

  4. 鸟叔linux私房菜基础篇简体,鸟叔的Linux私房菜基础篇-学习笔记(一)

    鸟叔的Linux私房菜基础篇-学习笔记(一) 开机进入命令行模式: ctrl+alt+[F1-F6]的任意键进入命令行编辑界面 ctrl+alt+F7进入图形界面模式 开始下达指令 [dmtsai@s ...

  5. Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)

    Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程) 一.TCP服务器(一请求一线程) 的原理 二.完整代码 三.测试 四.补充 一.TCP服务器(一请求一线 ...

  6. 《鸟哥的Linux私房菜》个人学习笔记-第一篇

    <鸟哥的Linux私房菜>个人学习笔记-基础篇 这是一篇一个linux菜鸡自学的笔记 csdn上的各位大手子们好,本人实习生一枚最近想自己深入学习下linux,所以在社区里发博客,希望能记 ...

  7. Class4 Linux云上环境搭建学习笔记

    Class4 Linux云上环境搭建学习笔记 Linux的远程管理 为Linux环境安装图形化桌面(Gnome) 学习Linux的基本操作 更新一个官方教程 附阿里云高校学习计划的地址 class4 ...

  8. linux三剑客-sed命令的学习笔记

    本文为在B站上学习linux命令的学习笔记,视频出处为https://www.bilibili.com/video/BV1244y1e73a?p=23&spm_id_from=pageDriv ...

  9. cma linux 起始地址,CMA模块学习笔记

    CMA模块学习笔记 作者:linuxer 发布于:2017-6-28 18:29 分类:内存管理 前言 本文是近期学习CMA模块的一个学习笔记,方便日后遗忘的时候,回来查询以便迅速恢复上下文. 学习的 ...

  10. linux io100的原因_Linux学习笔记(九)软件包管理

    Linux基础学习笔记精选专栏 目前本专栏包含的内容有: Linux学习笔记(一)使用文本编辑器Vim Linux学习笔记(二)系统基础操作 Linux学习笔记(三)文件和文本的查看 Linux学习笔 ...

最新文章

  1. 20180827-Java网络编程
  2. POJ 1664 把苹果
  3. 牛客多校2 - Greater and Greater(bitset优化暴力)
  4. GNU __attribute 详解
  5. MyEclipse生成Javadoc帮助文档
  6. Android测试——如何捕获Windows系统的屏幕输入
  7. Kylin之Caused by :...The table :DWD_ORDER_INFO Dup key found
  8. java instanceof运算符_Java 中的instanceof 运算符
  9. 有源滤波器设计工具枪战---凯利讯半导体
  10. 离线强化学习(Offline RL)系列3: (算法篇) TD3+BC 算法详解与实现(经验篇)
  11. R语言使用lm函数构建线性回归模型、使用car包中的oulierTest函数识别样本数据中可能的离群值( identify possible outliers)
  12. Android 带你玩转实现游戏2048 其实2048只是个普通的控件(转)
  13. 本土程序员杀进硅谷的第一步---突破英语瓶颈
  14. Leetcode刷题——栈与队列
  15. python猴子吃桃递归_Python猴子吃桃题源码​:请问第一天摘了多少桃?
  16. tp6修改路由地址的后缀
  17. MLP多层感知器+BP算法原理及实战
  18. 东北大学操作系统实验三详解
  19. JavaScript——this关键字
  20. 漆包线制作空芯线圈电感方法

热门文章

  1. 【Linux】一步一步学Linux——mkdir命令(21)
  2. 【Linux系统编程】线程同步与互斥:POSIX无名信号量
  3. [Qt教程] 第11篇 2D绘图(一)绘制简单图形
  4. mysql safe无法启动_(转)mysqld_safe无法启动的解决办法
  5. 2012 r2 万能网卡驱动_老旧台式机也可升级WiFi6和蓝牙5.1,仅安装百元网卡即可...
  6. MySQL的查询缓存
  7. nacos oaut服务地址_用户认证的例子:Spring Security oAuth2 + Spring Cloud Gateway + Nacos + Dubbo...
  8. java连接linux服务器执行shell命令(框架分析+推荐)
  9. Win Api 有名管道通信--扫雷辅助(四)
  10. 每天一道LeetCode-----寻找二叉搜索树中第k小的元素