Linux教程

Linux 操作系统_第三章

本文主要是介绍Linux 操作系统_第三章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第3章 嵌入式 Linux 程序设计基础

3.1 Linux 系统下的开发环境以及常用工具介绍

3.1.1 Linux 编程

Linux 程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。

例如编程时,先用普通的编程语言生成一系列指令,这些指令可被翻译为适当的可执行应用程序的二进制代码。这个翻译过程可由解释器一步步来完成,或者也可以立即由编译器明确地完成。shell 编程语言如 BASH、TCSH、GAWK、Perl、Tcl 和 Tk 都利用自己的解释器。用这些语言编制的程序尽管是应用程序文件,但可以直接运行。编译器则不同,它将生成一个独立的二进制代码文件然后才可以运行。

3.1.2 GNU 风格

基于GNU开放源代码方面的要求:

  1. 在任何情况下都不要引用有版权的源代码。
  2. 善意接受别人给您的程序添加的代码,但请记住检查其合法性,即是否也是 GNU 的。
  3. 编写日志文件(Changelog),这将使您的代码更容易维护。

GNU 编写代码时应遵循这些基本要求:

  1. 函数返回类型说明和函数名分两行放置,函数起始字符和函数开头的左花括号放到最左边,避免把任何其他的左花括号、左括号或者左方括号放到最左边。
  2. 尽力避免让两个不同优先级的操作符出现在相同的对齐方式中,应该附加额外的括号使得代码缩进可以表示出嵌套。
  3. 每个程序都应该有一段简短地说明其功能的注释开头。例如:fmt-filter for simplefilling of text.
  4. 请为每个函数书写注释,以说明函数做了些什么,需要哪些种类的参数,参数可能的值的含义以及用途。如果用了非常见的、非标准的东西,或者可能导致函数不能工作的任何可能的值,应该进行特殊说明。如果存在重要的返回值,也需要说明。
  5. 不要在声明多个变量时跨行,在每一行中都以一个新的声明开头。
  6. 当在一个 if 语句中嵌套了另一个 if-else 语句时,应用花括号把 if-else 括起来。
  7. 要在同一个声明中同时说明结构标识和变量,或者结构标识和类型定义(typedef)。先定义变量,再使用。
  8. 尽力避免在 if 的条件中进行赋值。
  9. 请在名字中使用下划线以分隔单词,尽量使用小写;把大写字母留给宏和枚举常量,以及根据统一的惯例使用的前缀。例如,应该使用类似 ignore_space_change_flag 的名字,不要使用类似 iCantReadThis 的名字。
  10. 命令一个命令行选项时,给出的变量应该在选项含义的说明之后,而不是选项字符之后。

3.1.3 Linux 内核编程风格

  1. Linux 内核缩进风格是 8 个字符。
  2. Linux 内核风格采用 K&R 标准,内核将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位。
  3. 变量命名尽量使用简短的名字。但是命名全局变量就应该用描述性命名方式,例如count_active_users(),而不是cntusr()。本地变量应该避免过长。
  4. 函数最好短小精悍,一个函数最好只作一件事情。
  5. 注释。注释说明代码的动能,而不是说明其实现原理。

3.2 嵌入式 Linux 编辑器 vim

3.2.1 下载 vim

1.安装 vim

sudo apt-get install vim

2.安装 ctags

sudo apt-get install ctags

3.配置 vim

  • step1:将 vim_configure 拷入当前用户的目录下,使用 samba 或共享文件夹完成
  • step2:打开终端,执行以下以下命令:
cd vim_configure ./copy_con.sh

3.2.2 vi 的三种模式

1.命令模式(尾行模式)

​ 在一般模式当中,输入“:, /”,三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你搜寻资料的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作都是在此模式中达成的。

2.编辑模式

编辑模式可以对内容进行编辑,在一般指令模式下按下“i,I,o,O,a,A,r,R”等任何一个字母之后即可进入编辑模式。如果要回到一般指令模式时,则必须要按下 Esc 这个按键即可退出编辑模式。

3.一般指令模式

以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中,可以使用上下左右按键来移动光标,可以使用删除字符或删除整行来处理文件内容,也可使用复制、粘贴来处理文件数据。

4.模式切换

(1)由编辑模式或者命令模式进入一般指令模式方法是按 ESC 键;

(2)由一般指令模式进入命令模式按 shift;

(3)由一般指令模式进入编辑模式按“a,i,o ”;

(4)编辑模式和命令模式不能直接切换。

3.2.3 插入指令

按键功能
i光标位置当前处插入文字
I光标所在行首插入文字
o(字母)光标下一行插入文字(新行)
O(字母)光标上一行插入文字(新行)
a光标位置右边插入文字
A光标所在行尾插入文字
s删除光标后边的字符,从光标当前位置插入
S删除光标所在当前行,从行首插入

3.2.4 保存退出指令

按键功能
:wq保存退出
:x(小写)保存退出
:w filename保存到指定文件
:q退出,如果文件修改但没有保存,会提示无法退出
:q!退出,不保存(对于忘加权限的文件,可以使用这种方式退出)

3.2.5 删除指令

按键功能
[n]x删除光标后 n 个字符
[n]X删除光标前 n 个字符
D删除光标所在开始到此行尾的字符
[n]dd删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除)
dG删除光标所在开始到文件尾的所有字符
dw删除光标开始位置的字,包含光标所在字符
d0(0 为数字)删除光标前本行所有内容,不包含光标所在字符
dgg删除光标所在开始到文件首行第一个字符开始的所有字符

3.2.6 撤销

按键功能
.(点)执行上一次操作
u撤销前一个命令
ctrl+r反:撤销
100 + .执行上一次操作100次

3.2.7 复制粘贴

按键功能
[n]yy复制从当前行开始的 n 行
p把粘贴板上的内容插入到当前行

3.2.8 移动光标

按键功能
Ctrl + f向前滚动一个屏幕
Ctrl + b向后滚动一个屏幕
gg到文件第一行行首
G(大写)到文件最后一行行首,G 必须为大写
mG或mgg到指定行,m 为目标行数
0(数字)光标移到到行首(第一个字符位置)
$光标移到到行尾
l(小写L)向右移动光标
h向左移动光标
k向上移动光标
j向下移动光标
^光标移到到行首(第一个有效字符位置)

3.2.9 查找

按键功能
/字符串从当前光标位置向下查找(n,N 查找内容切换)
?字符串从当前光标位置向上查找(n,N 查找内容切换)

3.2.10 选中

按键功能
Shift + v按字符移动,选中文本,可配合 h、j、k、l 选择内容,使用 d 删除,使用 y 复制
v行选(以行为单位)选中文本,可配合 h、j、k、l 选择内容,使用 d 删除,使用 y 复制
Ctrl + v列选 选中文本,可配合 h、j、k、l 选择内容,使用 d 删除,使用 y 复制

3.2.11 替换

按键功能
这篇关于Linux 操作系统_第三章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!