Linux第二次实验(第三周)


学习目标

  1. 熟悉Linux系统下的开发环境
  2. 熟悉vi的基本操作
  3. 熟悉gcc编译器的基本原理
  4. 熟练使用gcc编译器的常用选项
  5. 熟练使用gdb调试技术
  6. 熟悉makefile基本原理及语法规范
  7. 掌握静态库和动态库的生成

VI的使用

1.VI的模式

(1)命令行模式

(2)插入模式

(3)底行模式

2.VI的基本流程

(1)进入vi,即在命令行下输入"vi hello",进入命令行模式。

(2)在命令行模式下输入i进入插入模式。

(3)在插入模式中,按"Ese",将当前模式转入命令行模式,并在底行行中输入":wq"(存盘退出)进入底行模式

3.vi功能键的学习过程:

h:左移光标

j:下移光标

k:上移光标

l:右移光标

在命令行模式中:

i:切换到插入模式,在目前的光标所在处插入输入的文字,已存在的文字会后退

x:删除光标所在为止的一个字符

a:切换到插入模式,并从目前光标所在为止的下一个位置开始输入文字

vim 文件名: 进入Vim编辑器

dw:从当前光标删除至下一个单词的起始处,不包括它的第一个字符

d$:从当前光标删除至行末

de:从当前光标删除至单词末尾,包括最后一个字符

**对于中文的操作是否也是如此?

0:光标移动至行的开头

$:光标移动至行的结尾

e:光标移动至所在处下一个单词尾部

ne:光标移动至所在处下n个单词尾部

w:光标移动至所在处下一个单词开头

nw:光标移动至所在处下n个单词开头

**若所需移动的单词本行不足以提供时会怎样? 答:下一行的单词将用以拼凑

**用d0,d$来加深理解

dd:删除当前行

ndd:删除光标所在处往下n行(包括自己)

u:撤销最后执行的命令,相当于windows中的ctrl+z

U:撤销对整行的修改

ctrl+r:撤销掉撤销的动作

在正常模式下修改命令的格式:

operator [number] motion

operator - 操作符,代表要做的事情,比如d代表删除

[number] - 可以附加数字,代表动作重复的次数

motion - 动作,代表在所操作的文本上的移动,例如w代表单词(word),$代表行末等等

p:将最后依次删除的内容防止光标之后。(若删除的为行,则需要将光标移至需添加处的上方。若为仅为单词或字母,则可以需要将光标移至需添加出的左方。)

r和一个字符:替换光标所在为止的字符

R:多字符替换

ce:修改文本直到一个单词的末尾(相当于删除+插入的操作)

c [number] motion

c$:修改文本直至行末

**ce与cw的区别?

G:光标移动至文件最后一行

gg:光标移动至文件第一行

nG:光标移动至文件第n行

ctrl+g:显示当前编辑的文件名和文件中光标位置

/和一个字符串:在当前文件中查找该字符串

n:向光标所在处下方查找上一次的字符串

N:向光标所在处上方查找上一次的字符串

?相对于/为逆向查找

ctrl+0:回到之前的位置

ctrl+i:光标移动至较新的位置

%:查找配对的括号

v:进入可视模式

v+方向键:选取所需要进行操作的内容

o:在光标所在的下一行进入插入模式

O:在光标所在的上一行进入插入模式

y:复制

yw:复制一个单词

p:粘贴

[[ : 转到上一个位于第一列的"{"

]] : 转到下一个位于第一列的"{"

{ : 转到上一个空行

} : 转到下一个空行

gd 转到当前光标所指的局部变量的定义


在插入模式中:

完成后输入"Esc"退出编辑


在底行模式中:

输入":wq"存盘退出

输入":q!"放弃所有改动

输入"

Linux第二次学习笔记的更多相关文章

  1. 《Linux内核分析》第二周学习笔记

    <Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  2. Linux内核分析第二周学习笔记

    linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  3. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  4. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

  5. Linux进程线程学习笔记:运行新程序

    Linux进程线程学习笔记:运行新程序                                         周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下 ...

  6. Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)

    Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)

  7. Linux进程间通信IPC学习笔记之同步二(Posix 信号量)

    Linux进程间通信IPC学习笔记之同步二(Posix 信号量)

  8. Linux进程间通信IPC学习笔记之消息队列(SVR4)

    Linux进程间通信IPC学习笔记之消息队列(SVR4)

  9. Linux进程间通信IPC学习笔记之有名管道

    基础知识: 有名管道,FIFO先进先出,它是一个单向(半双工)的数据流,不同于管道的是:是最初的Unix IPC形式,可追溯到1973年的Unix第3版.使用其应注意两点: 1)有一个与路径名关联的名 ...

随机推荐

  1. 通过设置虚拟机(ubantu15.10)的分辨率达到全屏效果

    最近搭建了一个ubantu 15.10虚拟机,怎么折腾都不能全屏显示.虽然我已经点了,  还是无法达到真正的全屏. 查了一下,http://jingyan.baidu.com/article/0964 ...

  2. 使用Ant构建struts2 web工程,自动编译,打包成war

    c&c++语言通常使用make脚本来构建和管理自己的工程,同样java也有自己的构建工具(Ant),使用时需要写一个biuld.xml,有点类似c&c++里的makefile. 一.首 ...

  3. ORACLE 创建与使用视图

    一.what(什么是视图?) 1.视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询 ...

  4. 页面间(窗口间)的取值赋值及获取iframe下的window对象

    ①同一个窗口中,获取某个iframe的信息 <body> <iframe id="PAID" name="PA" src="Item ...

  5. cocos2d-x之计时器初试

    bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...

  6. 【DPDK】虚拟机开发环境配置

    DPDK介绍见:www.dpdk.org 本文介绍的步骤基本适用于dpdk 1.7.0 - dpdk 2.0.0 各版本.只是setup.sh显示的菜单有一些小的不同:同样的,也适用于ubuntu更高 ...

  7. ProjectManager Alpha8 - 项目管理器,管理起开发中的项目很方便

    话不多说= = 放几张图了: 文件下载: 32位下载:Package_ProjectManager-1.13.12.exe 64位下载:Package_ProjectManager_x64-1.13. ...

  8. java String部分源码解析

    String类型的成员变量 /** String的属性值 */ private final char value[]; /** The offset is the first index of the ...

  9. 关于点击空白关闭弹窗的js写法推荐

    $(document).mouseup(function(e){ var _con = $(' 目标区域 '); // 设置目标区域 if(!_con.is(e.target) && ...

  10. php 利用activeMq+stomp实现消息队列

    php 利用activeMq+stomp实现消息队列 一.activeMq概述 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J ...