20135231 —— 第二周任务总结报告
2015-09-26 17:12
330 查看
20135231何佳
学习计时:共19小时
读书:5
代码:2
作业:4
博客:8
[b]任务一:《深入理解计算机系统》[/b]
一、三个命令
1.Linux命令
[b] [/b]Linux中命令格式为:command[options][arguments]【中括号代表是可选的,即有些命令不需要选项也不需要参数】
选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同。
参数是指命令的作用对象。
2.man命令
man是manul的缩写,我们可以通过指令manman来查看man的帮助。
帮助文档包含:
1Executableprogramsorshellcommands(用户命令帮助)
普通的Linux命令
2Systemcalls(系统调用帮助)
系统调用,操作系统的提供的服务接口
3Librarycalls(库函数调用帮助)
库函数,C语言中的函数
4Specialfiles(usuallyfoundin/dev)
5Fileformatsandconventionseg/etc/passwd(配置文件帮助)
指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
6Games
给游戏留的,由各个游戏自己定义
7Miscellaneous(includingmacropackagesandconventions),e.g.man(7),groff(7)
是附件还有一些变量
8Systemadministrationcommands(usuallyonlyforroot)
系统管理用的命令
9Kernelroutines[Nonstandard]
多关键字查找:
man-kkey1|grepkey2|grepkey3|...
3.cheat命令
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
二、其他核心命令
和查找相关的核心命令还有find,locate,grep,whereis,which,其中:
find查找一个文件在系统中的什么位置,locate是神速版本的find(Windows下有个Everything工具和locate类似).
grep可以对文件全文检索,支持正则表达式,正则表达式也是一个重要的元知识。
whereis,which告诉你使用的命令工具装在什么地方。
【上面的命令包括man-k有一个共同特点就是基于“搜索”】
三、vim
大写“K”可以用来查找函数的帮助信息:查看manpage,命令模式下,将光标放在函数名上,按"K"可以直接察看manpage。
几个设置:
setnu显示行号
setai自动缩行
setts=4设置一个TAB键等于几个空格
移动光标:
[[转到上一个位于第一列的"{"
]]转到下一个位于第一列的"{"
{转到上一个空行
}转到下一个空行
gd转到当前光标所指的局部变量的定义
四、gcc
GCC编译代码的过程如下:
预处理:gcc–Ehello.c–ohello.i;gcc–E调用cpp
编译:gcc–Shello.i–ohello.s;gcc–S调用ccl
汇编:gcc–chello.s–ohello.o;gcc-c调用as
链接:gcchello.o–ohello;gcc-o调用ld
五、gdb
GDB最基本的命令有:
gdbprogramm(启动GDB)
b设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
run开始运行程序
bt打印函数调用堆栈
p查看变量值
c从当前断点继续运行到下一个断点
n单步运行
s单步运行
quit退出GDB
应该掌握的调试命令有:
display跟踪变量值的改变
until跳出循环
finish跳出函数
help帮助
[b]任务二:Vim编辑器[/b]
[b][b]一、Vim快速入门[/b][/b]
普通模式命令往往需要一个操作符结尾。
普通模式进入插入模式的方法:a键(append/追加)键或者i(insert/插入)键。
插入模式中回到普通模式:ESC键。
如果输入任何字符,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
二.三种常用模式的切换
vim启动进入普通模式,处于插入模式或命令行模式时只需要按
直接使用vim也可以打开vim编辑器,但是不会打开任何文件。
进入命令行模式后输入:e文件路径同样可以打开相应文件。
具体按键如下:
【注意每次要先回到普通模式才能切换成以不同的方式进入插入模式】
从普通模式输入:进入命令行模式,输入w回车,保存文档。
输入:w文件名可以将文档另存为其他文件名或存到其它路径下。
以下为其它几种退出方式:
2.普通模式下退出vim
普通模式下输入Shift+zz即可保存退出vim
[b]二、Vim文档编辑[/b]
拷贝测试文件到本地目录
打开文件进行编辑
普通模式下输入
在普通模式下,dw或者daw(deleteaword)删除一个单词,所以dnw(n替换为相应数字)表示删除n个单词
【小技巧:在完成依次跳转后,可以使用
2.行内跳转
普通模式下使用下列命令在行内按照单词为单位进行跳转
普通模式中,
普通模式中,
普通模式中,
普通模式中,
普通模式中,
普通模式中,
普通模式中,
普通模式中使用
普通模式中,
普通模式中,
打开文件进行编辑:
然后依次进行如下操作
输入
输入fa跳转到第一个
输入
输入
输入
输入
输入
输入
输入
打开文件进行编辑
普通模式下输入
普通模式下输入
普通模式下输入
普通模式下输入
2.shiftwidth命令
设置缩进为10个字符
输入
3.调整文本位置
命令行模式下输入
命令行模式下输入
命令行模式下输入:
2.快速查找练习
使用Vim打开文件进行编辑
普通模式下输入
普通模式下输入
普通模式下输入
普通模式下输入
3.高级查找
普通模式下输入
普通模式下输入
普通模式下输入
普通模式下输入
以上查找
[b]四、高级功能入门[/b]
一.多文件编辑
1.使用vim编辑多个文件
编辑多个文件有两种形式,一种是在进入vim前使用的参数就是多个文件。另一种就是进入vim后再编辑其他的文件。同时创建两个新文件并编辑
默认进入
命令行模式下输入
命令行模式下输入
2.进入Vim后打开新文件
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
3.恢复文件
如果因为断电等原因造成文档没有保存,可以采用恢复方式,
在普通模式下输入
在普通模式下输入
在普通模式下输入
在普通模式下输入
在普通模式下输入
2.可视模式命令练习
拷贝练习文件到当前目录
打开练习文件
vim可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为vim的视窗。打开方法有很多种,例如可以使用在命令行模式下输入
命令行模式下输入
命令行模式下输入
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下
普通模式下按
命令行模式下输入
命令行模式下输入
可以在编辑文件的时候进行功能设定,如命令行模式下输入
要永久保存配置需要修改vim配置文件。vim的配置文件
2.获取目前设定
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
3.set功能的说明
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
命令行模式下输入
[b]任务三:Linux系统编程[/b]
一、编译器gcc的使用
1.ggc支持编译的一些后缀名
2.gcc编译程序的流程
Tips:
Linux的可执行文件并没有像Windows那样有明显的.exe后缀名,只需向其分配x(可执行)权限即可sudochmodu+xexcutefile
作为Linux程序员,我们可以让gcc在编译的任何阶段结束,以便检查或使用该阶段的输出(这个很重要)
3.用gcc编译一个经典C程序
#include<stdio.h>
intmain(intargc,char**argv)
{
printf("Hello,Shi-Yan-Lou!");
}
二、GDB使用
1.gdb概述
gdb是GNU开发组织发布的一个强大的UNIX/Linux下的程序调试工具。
一般来说,gdb主要帮忙用户完成下面4个方面的功能:
启动程序,可以按照用户自定义的要求随心所欲的运行程序。
可让被调试的程序在用户所指定的调试的断点处停住(断点可以是条件表达式)。
当程序停住时,可以检查此时程序中所发生的事。
动态地改变程序的执行环境。
从上面来看,gdb和一般的调试工具区别不大,基本上也是完成这些功能,不过在细节上,会发现gdb这个调试工具的强大。大家可能习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。
2.使用gdb
gdb主要调试的是C/C++的程序。
首先在编译时,必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的-g参数即可。如:
三、Makefile使用
1.Makefile简介
makefile带来的好处就是——“自动化编译”,一但写好,只需要一个make命令,整个工程完全编译,极大的提高了软件的开发效率。make是一个命令工具,是一个及时makefile中命令的工具程序。
2.Makefile基本规则
一个Makefile文件主要含有一系列的规则,每条规则包含一下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’;一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab开头(初学者务必注意:是tab,而不是空格)执行以上Makefile后就会自动化编译:
3.使用带宏的Makefile
Makefile还可以定义和使用宏(也称做变量),从而使其更加自动化,更加灵活,在Makefile中定义宏的格式为:
使用宏的格式为:
作业
[b]任务四:阅读《嵌入式Linux应用程序开发标准教程》第三章[/b]
[b]任务五:阅读教材第一章、第七章[/b]
遇到的问题
1.在学习Vim的过程中,在进行普通模式进入插入模式时,无论按a或是i键都没有反应,刷新或者关掉重来也无法进入下一步。后是第二天重新做了一遍成功进入插入模式得以解决。
2.在学习gcc那一节时按照文本里的提示的在GVIM中编写代码,按储存为hello.c之后在Xfce终端无从下手不知道如何进行下一步,所以还是换成了在Xfce终端里通过Vim进行操作。不知是否是我理解错了意思,毕竟桌面上确实有一个GVIM的应用,但是在以往的学习中没有用到过。
3.在编写的时候只写了stdio.h忘记加上头文件head.h导致报错,补上之后编译正确。
4.在学习makefile的过程中我按照提示指导操作却总是报错,一直出现“未定义调用myfun()"的提示。
总结体会
1.Vim的操作中指令很多没有记住,导致了我在后续的学习操作中得不停的翻阅前面的笔记。
2.在Vim的操作过程中一定要注意当前处在什么模式下,下一步操作需要什么模式。
3.不知是学习的顺序问题还是没有弄懂,没能将所学的知识在脑中形成清晰的脉络,感觉有点杂乱无章。
4.感觉看书的难度有点大,很多内容啊概念啊看不懂看了一遍感觉跟没看差不了多少。
学习计时:共19小时
读书:5
代码:2
作业:4
博客:8
[b]任务一:《深入理解计算机系统》[/b]
一、三个命令
1.Linux命令
[b] [/b]Linux中命令格式为:command[options][arguments]【中括号代表是可选的,即有些命令不需要选项也不需要参数】
选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同。
参数是指命令的作用对象。
2.man命令
man是manul的缩写,我们可以通过指令manman来查看man的帮助。
帮助文档包含:
1Executableprogramsorshellcommands(用户命令帮助)
普通的Linux命令
2Systemcalls(系统调用帮助)
系统调用,操作系统的提供的服务接口
3Librarycalls(库函数调用帮助)
库函数,C语言中的函数
4Specialfiles(usuallyfoundin/dev)
5Fileformatsandconventionseg/etc/passwd(配置文件帮助)
指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
6Games
给游戏留的,由各个游戏自己定义
7Miscellaneous(includingmacropackagesandconventions),e.g.man(7),groff(7)
是附件还有一些变量
8Systemadministrationcommands(usuallyonlyforroot)
系统管理用的命令
9Kernelroutines[Nonstandard]
多关键字查找:
man-kkey1|grepkey2|grepkey3|...
3.cheat命令
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
二、其他核心命令
和查找相关的核心命令还有find,locate,grep,whereis,which,其中:
find查找一个文件在系统中的什么位置,locate是神速版本的find(Windows下有个Everything工具和locate类似).
grep可以对文件全文检索,支持正则表达式,正则表达式也是一个重要的元知识。
whereis,which告诉你使用的命令工具装在什么地方。
【上面的命令包括man-k有一个共同特点就是基于“搜索”】
三、vim
大写“K”可以用来查找函数的帮助信息:查看manpage,命令模式下,将光标放在函数名上,按"K"可以直接察看manpage。
几个设置:
setnu显示行号
setai自动缩行
setts=4设置一个TAB键等于几个空格
移动光标:
[[转到上一个位于第一列的"{"
]]转到下一个位于第一列的"{"
{转到上一个空行
}转到下一个空行
gd转到当前光标所指的局部变量的定义
四、gcc
GCC编译代码的过程如下:
预处理:gcc–Ehello.c–ohello.i;gcc–E调用cpp
编译:gcc–Shello.i–ohello.s;gcc–S调用ccl
汇编:gcc–chello.s–ohello.o;gcc-c调用as
链接:gcchello.o–ohello;gcc-o调用ld
五、gdb
GDB最基本的命令有:
gdbprogramm(启动GDB)
b设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
run开始运行程序
bt打印函数调用堆栈
p查看变量值
c从当前断点继续运行到下一个断点
n单步运行
s单步运行
quit退出GDB
应该掌握的调试命令有:
display跟踪变量值的改变
until跳出循环
finish跳出函数
help帮助
[b]任务二:Vim编辑器[/b]
[b][b]一、Vim快速入门[/b][/b]
一.Vim的六种基本模式
1.普通模式
Vim的普通模式用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式,而不是大多数编辑器的插入模式。普通模式命令往往需要一个操作符结尾。
普通模式进入插入模式的方法:a键(append/追加)键或者i(insert/插入)键。
2.插入模式
在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。插入模式中回到普通模式:ESC键。
3.可视模式
与普通模式类似,但移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。4.选择模式
这个模式中,可以用鼠标或者光标键高亮选择文本。如果输入任何字符,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
5.命令行模式
在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
6.Ex模式(Exmode)
这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。二.三种常用模式的切换
vim启动进入普通模式,处于插入模式或命令行模式时只需要按
Esc或者
Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。普通模式中按
i(插入)或
a(附加)键都可以进入插入模式,普通模式中按
:进入命令行模式。命令行模式中输入
wq回车后保存并退出vim。
三.进入Vim
1.使用vim命令进入vim界面
vim后面加上你要打开的已存在的文件名,不存在的文件名则会作为新建文件。打开Xfce终端,输入以下命令:$vimpractice_1.txt
直接使用vim也可以打开vim编辑器,但是不会打开任何文件。
$vim
进入命令行模式后输入:e文件路径同样可以打开相应文件。
2.游标移动
在进入vim后,按下i键进入插入模式,在该模式下可以输入文本信息;按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。具体按键如下:
按键 | 说明 |
---|---|
h | 左 |
l | 右(小写L) |
j | 下 |
k | 上 |
w | 移动到下一个单词 |
b | 移动到上一个单词 |
四.进入插入模式
在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入。具体按键对应如下:命令 | 说明 |
---|---|
i | 在当前光标处进行编辑 |
I | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
o | 在当前行后插入一个新行 |
O | 在当前行前插入一个新行 |
cw | 替换从光标所在位置后到一个单词结尾的字符 |
五.保存文档
命令行模式下保存文档从普通模式输入:进入命令行模式,输入w回车,保存文档。
输入:w文件名可以将文档另存为其他文件名或存到其它路径下。
六.退出vim
1.命令行模式下退出vim
从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑以下为其它几种退出方式:
命令 | 说明 |
---|---|
:q! | 强制退出,不保存 |
:q | 退出 |
:wq! | 强制保存并退出 |
:w<文件路径> | 另存为 |
:saveas文件路径 | 另存为 |
:x | 保存并退出 |
:wq | 保存并退出 |
普通模式下输入Shift+zz即可保存退出vim
七.删除文本
1.普通模式下删除vim文本信息
进入普通模式,使用下列命令可以进行文本快速删除:命令 | 说明 |
---|---|
x | 删除游标所在的字符 |
X | 删除游标所在前一个字符 |
Delete | 同x |
dd | 删除整行 |
dw | 删除一个单词(不适用中文) |
d$或 D | 删除至行尾 |
d^ | 删除至行首 |
dG | 删除到文档结尾处 |
d1G | 删至文档首部 |
一、vim重复命令
1.重复执行上次命令
在普通模式下.(小数点)表示重复上一次的命令操作
拷贝测试文件到本地目录
$cp/etc/protocols.
打开文件进行编辑
$vimprotocols
普通模式下输入
x,删除第一个字符,输入
.(小数点)会再次删除一个字符,除此之外也可以重复
dd的删除操作
2.执行指定次数相同的命令
进入普通模式输入N<command>,N表示重复后面的次数
在普通模式下,dw或者daw(deleteaword)删除一个单词,所以dnw(n替换为相应数字)表示删除n个单词
二、游标的快速跳转
普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现行间跳转和行内跳转1.行间跳转
命令 | 说明 |
---|---|
nG(nShift+g) | 游标移动到第n行(如果默认没有显示行号,请先进入 命令模式,输入 :setnu以显示行号) |
gg | 游标移动到到第一行 |
G(Shift+g) | 到最后一行 |
Ctrl+o快速回到上一次(跳转前)光标所在位置】
2.行内跳转
普通模式下使用下列命令在行内按照单词为单位进行跳转
命令 | 说明 |
---|---|
w | 到下一个单词的开头 |
e | 到下一个单词的结尾 |
b | 到前一个单词的开头 |
ge | 到前一个单词的结尾 |
0或 ^ | 到行头 |
$ | 到行尾 |
f<字母> | 向后搜索<字母>并跳转到第一个匹配的位置(非常实用) |
F<字母> | 向前搜索<字母>并跳转到第一个匹配的位置 |
t<字母> | 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用) |
T<字母> | 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用) |
三、复制粘贴和剪切
1.复制及粘贴文本
普通模式中使用y复制
普通模式中,
yy复制游标所在的整行(
3yy表示复制3行)
普通模式中,
y^复制至行首,或
y0。不含光标所在处字符。
普通模式中,
y$复制至行尾。含光所在处字符。
普通模式中,
yw复制一个单词。
普通模式中,
y2w复制两个单词。
普通模式中,
yG复制至文本末。
普通模式中,
y1G复制至文本开头。
普通模式中使用
p粘贴
普通模式中,
p(小写)代表粘贴至光标后(下)
普通模式中,
P(大写)代表粘贴至光标前(上)
[code] [b]三、查找替换[/b][/code]
一.字符的替换及撤销(Undo操作)
1.替换和撤销(Undo)命令
替换和Undo命令都是针对普通模式下的操作命令 | 说明 |
---|---|
r+<待替换字母> | 将游标所在字母替换为指定字母 |
R | 连续替换,直到按下Esc |
cc | 替换整行,即删除游标所在行,并进入插入模式 |
cw | 替换一个单词,即删除一个单词,并进入插入模式 |
C(大写) | 替换游标以后至行末 |
~ | 反转游标所在字母大小写 |
u{n} | 撤销一次或n次操作 |
U(大写) | 撤销当前行的所有修改 |
Ctrl+r | redo,即撤销undo的操作 |
$vimpractice_2 #输入以下文本
然后依次进行如下操作
输入
11G,跳转到11行
输入fa跳转到第一个
a字符
输入
r,并且输入b,a字符被b字符替换(实用)
输入
R替换字符,输入新字符串,输入完按ESC回到普通模式(实用)
输入
cc替换整行字符,输入新字符串,输入完按ESC回到普通模式
输入
cw替换一个英文字(word),输入完按ESC回到普通模式(实用)
输入
~,翻转游标所在字符的大小写
输入
C替换至行尾,即游标所在处以后的字都会被替换,输入完按ESC回到普通模式
输入
u撤销上一次的操作
二.快速缩进
1.使用命令进行快速调整缩进操作
缩进操作均在普通模式下有效打开文件进行编辑
$vimprotocols[/code]
普通模式下输入
15G,跳转到15行
普通模式下输入
>>整行将向右缩进(使用,用于格式化代码超爽)
普通模式下输入
<<整行向左回退
普通模式下输入
:进入命令行模式下对
shiftwidth值进行设置可以控制缩进和回退的字符数
2.shiftwidth命令
shiftwidth命令是指上一节
>>命令产生的缩进(可以简写成
sw)普通模式下输入
:进入命令行模式下对
shiftwidth值进行设置可以控制缩进和回退的字符数获取目前的设定值
:setshiftwidth?
设置缩进为10个字符
:setshiftwidth=10
输入
ESC回到普通模式,再次尝试
>>看缩进量是否变化
3.调整文本位置
命令行模式下输入
:ce(center)命令使本行内容居中
:ce
命令行模式下输入
:ri(right)命令使本行文本靠右
:ri
命令行模式下输入:
le(left)命令使本行内容靠左
:le
三.查找
1.快速查找
普通模式下输入/然后键入需要查找的字符串按回车后就会进行查找。?与/功能相同,只不过?是向上而/是向下查找。进入查找之后,输入n和N可以继续查找n表示继续查找,N反向查找2.快速查找练习
使用Vim打开文件进行编辑
$vimprotocols
普通模式下输入
/icmp查找字符串icmp
普通模式下输入
n查找下一个icmp
普通模式下输入
?tcp向上查找字符串tcp
普通模式下输入
N查找上一个出现的tcp
3.高级查找
普通模式下输入
\*寻找游标所在处的单词
普通模式下输入
\#同上,但
\*是向前(上)找,#则是向后(下)找
普通模式下输入
g\*同
\*,但部分符合该单词即可
普通模式下输入
g\#同
\#,但部分符合该单词即可
以上查找
n,
N的继续查找命令依然可以用
[b]四、高级功能入门[/b]
一.多文件编辑
1.使用vim编辑多个文件
编辑多个文件有两种形式,一种是在进入vim前使用的参数就是多个文件。另一种就是进入vim后再编辑其他的文件。同时创建两个新文件并编辑
$vim1.txt2.txt
默认进入
1.txt文件的编辑界面
命令行模式下输入
:n编辑2.txt文件,可以加
!即
:n!强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件
命令行模式下输入
:N编辑1.txt文件,可以加
!即
:N!强制切换,之前文件内的输入没有保存,仅仅是切换到另一个文件
2.进入Vim后打开新文件
命令行模式下输入
:e3.txt打开新文件3.txt
命令行模式下输入
:e#回到前一个文件
命令行模式下输入
:ls可以列出以前编辑过的文档
命令行模式下输入
:b2.txt(或者编号)可以直接进入文件2.txt编辑
命令行模式下输入
:bd2.txt(或者编号)可以删除以前编辑过的列表中的文件项目
命令行模式下输入
:e!4.txt,新打开文件4.txt,放弃正在编辑的文件
命令行模式下输入
:f显示正在编辑的文件名
命令行模式下输入
:fnew.txt,改变正在编辑的文件名字为new.txt
3.恢复文件
如果因为断电等原因造成文档没有保存,可以采用恢复方式,
vim-r进入文档后,输入
:ewcover1.txt来恢复
$vim-r1.txt
二.可视模式
1.可视模式命令简介在普通模式下输入
v(小写),进入字符选择模式,就可以移动光标,光标走过的地方就会选取。再次按下v会后就会取消选取。
在普通模式下输入
Shift+v(小写),进入行选择模式,按下V之后就会把整行选取,您可以上下移动光标选更多的行,同样,再按一次
Shift+v就可以取消选取。
在普通模式下输入
Ctrl+v(小写),这是区域选择模式,可以进行矩形区域选择,再按一次
Ctrl+v取消选取。
在普通模式下输入
d删除选取区域内容
在普通模式下输入
y复制选取区域内容
2.可视模式命令练习
拷贝练习文件到当前目录
$cp/etc/protocols.
打开练习文件
$vimprotocols
三.视窗操作
1.视窗操作简介vim可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为vim的视窗。打开方法有很多种,例如可以使用在命令行模式下输入
:new打开一个新的vim视窗,并进入视窗编辑一个新文件(普通模式下输入
Ctrl+w也可以,但是
Ctrl+w在chrome下会与chrome关闭标签页的快捷键冲突,所以使用该快捷键你可以在IE或其它浏览器进行练习),除了
:new命令,下述列举的多种方法也可以在命令模式或普通模式下打开新的视窗:
命令行模式下输入
:sp1.txt打开新的横向视窗来编辑1.txt
命令行模式下输入
:vsp2.txt打开新的纵向视窗来编辑1.txt
普通模式下
Ctrl-ws将当前窗口分割成两个水平的窗口
普通模式下
Ctrl-wv将当前窗口分割成两个垂直的窗口
普通模式下
Ctrl-wq即:q结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
普通模式下
Ctrl-wo打开一个视窗并且隐藏之前的所有视窗
普通模式下
Ctrl-wj移至下面视窗
普通模式下
Ctrl-wk移至上面视窗
普通模式下
Ctrl-wh移至左边视窗
普通模式下
Ctrl-wl移至右边视窗
普通模式下
Ctrl-wJ将当前视窗移至下面
普通模式下
Ctrl-wK将当前视窗移至上面
普通模式下
Ctrl-wH将当前视窗移至左边
普通模式下
Ctrl-wL将当前视窗移至右边
普通模式下
Ctrl-w-减小视窗的高度
普通模式下
Ctrl-w+增加视窗的高度
四.文档加密
1.创建加密文档$vim-xfile1
五.在vim执行外部命令
在命令行模式中输入!可以执行外部的shell命令
:!ls用于显示当前目录的内容
:!rmFILENAME用于删除名为FILENAME的文件
:wFILENAME可将当前VIM中正在编辑的文件另存为FILENAME文件
六.帮助系统
Vim中的查看帮助普通模式下按
F1打开
vim自己预设的帮助文档
命令行模式下输入
:hshiftwidth打开名为
shiftwidth的帮助文件
命令行模式下输入
:ver显示版本及参数
七、功能设定
1.Vim的功能设定可以在编辑文件的时候进行功能设定,如命令行模式下输入
:setnu(显示行数),设定值退出vim后不会保存。
要永久保存配置需要修改vim配置文件。vim的配置文件
~/.vimrc,可以打开文件进行修改,不过务必小心不要影响vim正常使用
2.获取目前设定
命令行模式下输入
:set或者
:se显示所有修改过的配置
命令行模式下输入
:setall显示所有的设定值
命令行模式下输入
:setoption?显示option的设定值
命令行模式下输入
:setnooption取消当期设定值
3.set功能的说明
命令行模式下输入
:setautoindent(ai)设置自动缩进
命令行模式下输入
:setautowrite(aw)设置自动存档,默认未打开
命令行模式下输入
:setbackground=dark或
light,设置背景风格
命令行模式下输入
:setbackup(bk)设置自动备份,默认未打开
命令行模式下输入
:setcindent(cin)设置C语言风格缩进
[b]任务三:Linux系统编程[/b]
一、编译器gcc的使用
1.ggc支持编译的一些后缀名
后缀 | 源文件 |
.c | C语言源文件 |
.C.cc.cxx | C++源文件 |
.m | Object-C源文件 |
.i | 经过预处理后的C源文件 |
.ii | 经过预处理后的C++源文件 |
.s.S | 汇编语言源文件 |
.h | 预处理文件(头文件) |
.o | 目标文件 |
.a | 存档文件 |
Tips:
Linux的可执行文件并没有像Windows那样有明显的.exe后缀名,只需向其分配x(可执行)权限即可sudochmodu+xexcutefile
作为Linux程序员,我们可以让gcc在编译的任何阶段结束,以便检查或使用该阶段的输出(这个很重要)
3.用gcc编译一个经典C程序
#include<stdio.h>
intmain(intargc,char**argv)
{
printf("Hello,Shi-Yan-Lou!");
}
二、GDB使用
1.gdb概述
gdb是GNU开发组织发布的一个强大的UNIX/Linux下的程序调试工具。
一般来说,gdb主要帮忙用户完成下面4个方面的功能:
启动程序,可以按照用户自定义的要求随心所欲的运行程序。
可让被调试的程序在用户所指定的调试的断点处停住(断点可以是条件表达式)。
当程序停住时,可以检查此时程序中所发生的事。
动态地改变程序的执行环境。
从上面来看,gdb和一般的调试工具区别不大,基本上也是完成这些功能,不过在细节上,会发现gdb这个调试工具的强大。大家可能习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。
2.使用gdb
gdb主要调试的是C/C++的程序。
首先在编译时,必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的-g参数即可。如:
$gcc-ghello.c-ohello $g++-ghello.cpp-ohello
三、Makefile使用
1.Makefile简介
makefile带来的好处就是——“自动化编译”,一但写好,只需要一个make命令,整个工程完全编译,极大的提高了软件的开发效率。make是一个命令工具,是一个及时makefile中命令的工具程序。
2.Makefile基本规则
一个Makefile文件主要含有一系列的规则,每条规则包含一下内容:一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’;一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,并以tab开头(初学者务必注意:是tab,而不是空格)执行以上Makefile后就会自动化编译:
3.使用带宏的Makefile
Makefile还可以定义和使用宏(也称做变量),从而使其更加自动化,更加灵活,在Makefile中定义宏的格式为:
macroname=macrotext
使用宏的格式为:
$(macroname)
作业
[b]任务四:阅读《嵌入式Linux应用程序开发标准教程》第三章[/b]
[b]任务五:阅读教材第一章、第七章[/b]
遇到的问题
1.在学习Vim的过程中,在进行普通模式进入插入模式时,无论按a或是i键都没有反应,刷新或者关掉重来也无法进入下一步。后是第二天重新做了一遍成功进入插入模式得以解决。
2.在学习gcc那一节时按照文本里的提示的在GVIM中编写代码,按储存为hello.c之后在Xfce终端无从下手不知道如何进行下一步,所以还是换成了在Xfce终端里通过Vim进行操作。不知是否是我理解错了意思,毕竟桌面上确实有一个GVIM的应用,但是在以往的学习中没有用到过。
3.在编写的时候只写了stdio.h忘记加上头文件head.h导致报错,补上之后编译正确。
4.在学习makefile的过程中我按照提示指导操作却总是报错,一直出现“未定义调用myfun()"的提示。
总结体会
1.Vim的操作中指令很多没有记住,导致了我在后续的学习操作中得不停的翻阅前面的笔记。
2.在Vim的操作过程中一定要注意当前处在什么模式下,下一步操作需要什么模式。
3.不知是学习的顺序问题还是没有弄懂,没能将所学的知识在脑中形成清晰的脉络,感觉有点杂乱无章。
4.感觉看书的难度有点大,很多内容啊概念啊看不懂看了一遍感觉跟没看差不了多少。
相关文章推荐
- 给ubuntu换个主题
- linux 源码安装php
- Charm Bracelet 3624 (01背包)
- android使用java代码设置textview、button等内容颜色
- Log4j配置详解及不同的包(package)下的日志写入到不同的日志文件下
- Android JSON数据与实体类之间的相互转化-------GSON的用法
- SurfaceView和view分别实现触摸轨迹
- iOS讲解迷惑深入浅出值UICollectionView(集合视图)
- 必须采用初始化列表一共有三种情况
- MySql基本使用方法
- iOS —— JSON 数据结构及其解析方式
- linux redis安装源码包安装
- yum使用,使用rpm指令安装rpm,使用dpkg指令安装deb
- 阿里巴巴中间件性能挑战赛(MOM篇)
- mongodb授权和权限
- 【CS学习】——UML结构
- aircrack使用
- Linux经常使用的命令(必看)
- UI:单例的写法
- iOS基础-UINavigationController、界面通信