嵌入式培训
美国上市嵌入式培训机构

400-111-8989

热门课程

嵌入式linux基础学习笔记总结

  • 时间:2017-05-03
  • 发布:嵌入式培训
  • 来源:嵌入式学习笔记

Linux是什么

1、 Linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的。

2、 1973年:unix的正式诞生,Ritchie等人以C语言写出第一个正式unix核心。

3、 1977年:重要的unix分支——BSD(Berkeley Software Distribution)的诞生。

4、 目前被称为纯的unix指的就是System V(AT&T) 以及BSD(SUN)这两套。

5、 1984年,史托曼开始GNU计划,这个计划的目的是:建立一个自由、开放的unix操作系统(Free unix)。

6、 主、次版本为奇数:发展中版本。

7、 主、次版本为偶数:稳定版本。

8、 Distribution主要分为两大系统,一种是使用RPM方式安装软件的系统,包括red hat ,fedora,suse等这些;一种则是使用debian的dpkg方式安装软件的系统,包括debian,ubuntu,b2d等等。

9、 Linux的特点1、硬件需求低;2、架构开放;3、系统稳定性及保密性功能够强;4、完全免费。

10、 Linux distribution的组成含有:linux kernel + free software +documentations(tools) + 可完全安装的程序;所组成的一套完整的系统。

Linux怎么学习

1、 计算器概论与硬件相关知识;

2、 先从linux的安装与指令学起;

3、 Linux操作系统的基础技能;

4、 务必学会vi文书编辑器;

5、 Shell与shell script的学习;

6、 一定要会软件管理员;

7、 网络基础的建立。

虚拟机安装过程

1、 网络类型:桥接网络、使用网络地址转换、仅主机模式网络各自代表什么意思。

2、 I/O控制类型:SCSI控制器:BusLogic 、LSI Logic、LSI Logic SAS三者各自代表什么意思。

3、 磁盘类型:IDE、SCSI、SATA各自代表什么意思。

常用指令和小技巧

date

#显示日期的指令。

cal

#显示日历的指令。

bc

#简单好用的计算器;输入qiut离开bc这个计算器。

Tab按键

功能:

1、 命令补全。

2、 档案补齐。

*#Tab接在一串指令的第一个字的后面,则为命令补全。

*#Tab接在一串指令的第二个字以后时,则为档案补齐。

Ctrl + c按键

#让当前的程序停掉。

Ctrl +d按键

#Ctrl+d按键代表:键盘输入结束(End of File,EOF or End of Input)的意思!

#另外,他也可以用来取代exit的输入!例如你想要离开文字接口,可以直接按下Ctrl+d就可以直接离开。

man page

#查询指令的用法和相关参数的说明。

#指令后面跟的数字表示的内容:

#其中1、5、8三个号码特别重要。

#man page的内容所包含的的部分:

#还可能会看到Authors与Copyright等。

info page

#info与man 的用途其实差不多,都是用来查询指令的用法或者是档案的格式。但是与man page 一口气输出一堆信息不同的是,info page 则是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写,并且在各个页面中还有类似网页的『超链接』来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。

1、File:代表这个info page的资料是来自info.info档案所提供的;

2、Node:代表目前的这个页面是属于Top节点。 意思是info.info 内含有很多信息,而Top 仅是info.info 档案内的一个节点内容而已;

3、Next:下一个节点的名称为GettingStarted,你也可以按『N』到下个节点去;

4、Up:回到上一层的节点总揽画面,你也可以按下『U』回到上一层;

5、Prev:前一个节点。但由于Top 是info.info 的第一个节点,所以上面没有前一个节点的信息。

nano

#超简单文字编辑器。

1、[ctrl]-G:取得联机帮助(help),很有用的!

2、[ctrl]-X:离开naon 软件,若有修改过档案会提示是否需要储存喔!

3、[ctrl]-O:储存档案,若你有权限的话就能够储存档案了;

4、[ctrl]-R:从其他档案读入资料,可以将某个档案的内容贴在本档案中;

5、[ctrl]-W:搜寻字符串,这个也是很有帮助的指令喔!

6、[ctrl]-C:说明目前光标所在处的行数与列数等信息;

7、[ctrl]-_:可以直接输入行号,让光标快速移动到该行;

8、[alt]-Y:校正语法功能开启或关闭(单击开、再单击关)

9、[alt]-M:可以支持鼠标来移动光标的功能。

正确的关机方式

1、 who 查看有谁在线

2、 netstat –a 查看网络的联机状态

3、 ps –sux 查看背景执行的程序

4、 sync 将数据同步写入硬盘中的指令

5、 shutdown 关机指令

6、 reboot, halt, poweroff 重新启动。

切换执行等级:init

#Linux共有七种执行等级。

#run level 0 : 关机

#run level 3 : 纯文本模式

#run level 5 : 含有图形接口模式

#run level 6 : 重新启动

linux 的档案权限与目录配置

chgrp

改变档案所属群组

命令chgrpgroupname install.log

chmod

改变档案的权限

1、 用chmod改变拥有者和群组,chmoduser.group file或者chmoduser:group file

2、 chmod xyz 档案或目录

3、 chmod (u/g/o/a) (+/-/=) (r/w/x)档案或目录

mkdir

mkdir [-mp] 目录名称

-m : 配置文件的权限!直接设定,不需要看预设权限的脸色。

-p : 帮助你直接将所需要的目录(包括上层目录)递归建立起来!

rmdir

rmdir [-p] 目录名称

-p :连同上层空的目录一起删除

cp

cp [-adfilprsu] 来源文件(source) 目标文件(destination)

选项与参数:

-a : 相当于–pdr 的意思,至于pdr 请参考下列说明;

-d : 若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;

-f : 为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次;

-i : 若目标文件已经存在时,在覆盖时会先询问动作的进行

-l : 进行硬式连接(hand link)的连接档建立,而非复制档案本身

-p : 连同档案的属性一起复制过去,而非使用默认属性;

-r : 递归持续复制,用于目录的复制行为

-s : 复制成为符号链接文件(symbolic link),亦即【快捷方式】档案

-u : 若destination比source旧才更新destination!

rm

移除档案或目录

rm [-fir] 档案或目录

-f : 就是force的意思,忽略不存在的档案,不会出现警告讯息;

-i : 互动模式,在删除前会询问使用者是否动作

-r : 递归删除啊!最常用在目录的删除了!

mv

移动档案与目录,或更名

mv [-fiu] source destination

-f : force强制的意思,如果目标档案已经存在,不会询问而直接覆盖

-i : 若目标档案(destination)已经存在时,就会询问是否覆盖

-u : 若目标档案已经存在,且source比较新,才会更新(update)

touch

建立一个空的档案

将某个档案日期修订为目前

touch [-acdmt] 档案

-a : 仅修订access time

-c : 仅修订档案的时间,若该档案不存在则不建立新档案

-d : 后面可以接欲修订的日期而不用目前的日期,也可以使用–date=”日期或时间”

-m : 仅修改mtime

-t : 后面可以接欲修订的时间而不用目前的时间

whereis

寻找特定档案(在数据库档案里面搜寻,不搜寻硬盘)

whereis [-bmsu] 档案或目录名

-b : 只找binary格式的的档案

-m : 只找在说明文件manual路径下的档案

-s : 只找source来源档案

-u : 搜寻不在上诉三个项目当中的其他档案

locate

locate [-ir] keyword

-i : 忽略大小写的差异

-r : 后面可接正规表示法的显示方式

压缩文件

*.Z compress程序压缩的档案

*.gz gzip程序压缩的档案

*.bz2 bzip2程序压缩的档案

*.tar tar程序打包的档案,并没有压缩

*.tar.gz tar程序打包的档案,并且经过gzip的压缩

*.tar.bz2 tar程序打包的档案,其中并且经过bzip2的压缩

tar

1、 压缩:tar –jcv –f filename.tar.bz2 要被压缩的档案或目录名称

2、 查询:tar –jtv –f filename.tar.bz2

3、 解压缩:tar –jxv –f filename.tar.bz2 –C 要解压的目录

dump

dump 的功能颇强,他除了可以备份整个文件系统之外,还可以制定等级喔

vim程序编辑器

删除

复制

yy 复制游标所在的那一行;

nyy n为数字,复制光标所在的向下n行;

粘贴

复原与重复

插入或取代

储存与离开

Vim环境的变更

区块选择

多档案编辑

多窗口

认识与学习BASH

Linux使用的shell称为【BourneAgain SHell】,简称bash。

命令编修能力(history)

在指令列按上下键就可以找到前后一个输入的指令。这么多指令记录在家目录内的.bash_history里面。

放在/root/.bash_history里面。

命令与档案补齐功能([tab]按键)

命令别名设定功能(alias)

例:alias lm=’ls-al’

后面的lm=’ls-al’不能有空格,要连在一起。

通配符(Wildcard)

Bash shell的内建命令:type

查看指令是来自与外部指令或是内建bash当中的。

export

自定义变量转成环境变量

影响显示结果的语系变量(locale)

declare / typeset

宣告变量的类型

#declare [-aixr] variable

-a : 将后面名为variable的变量定义成数组类型

-i : 将后面名为variable的变量定义成整数数字类型

-x : 用法与export一样,就是将后面的variable变成环境变量

-r : 将变量设定为readonly类型,该变量不可被更改内容,也不能unset

正规表示法与文件格式化处理

grep

用法:grep [选项]… 模式 [文件]…

在每个文件中查找样式或标准输入。

PATTERN默认的是一个基本的正则表达式(BRE)。

例: grep –I ‘hello’menu.h main.c

正则表达式的选择和解释:

-E,--extended-regexp PATTERN是一个扩展的正则表达式(ERE)

-F,--fixed-strings PATTERN是一套新行分离修复字符串

-G,--basic-regexp PATTERN是一个基本的正则表达式(BRE)

-P,--perl-regexp PATTERN是一个Perl正则表达式

-e,--regexp=PATTERN 使用 PATTERN 来匹配

-f,--file=FILE 从 FILE 来获得 PATTERN

-i,--ignore-case 忽略大小写

-w,--word-regexp 强制 PATTERN 仅匹配整个词

-x,--line-regexp 强制 PATTERN 仅匹配整行

-z,--null-data 结尾为 0 字节而不是新行符的数据行

杂项:

-s,--no-messages 不显示错误信息

-v,--invert-match 选择不匹配的行

-V,--version 打印版本信息并退出

--help 显示本帮助并退出

--mmap 如果可能,使用内存映象作为输入

输出控制:

-m,--max-count=NUM 在有NUM个匹配后停止

-b,--byte-offset 在输出行的同时打印字节位移

-n,--line-number 在输出行的同时打印行数

--line-buffered flush outputon every line

-H,--with-filename print the filenamefor each match

-h,--no-filename suppress theprefixing filename on output

--label=LABEL print LABELas filename for standard input

-o,--only-matching show only the partof a line matching PATTERN

-q,--quiet, --silent suppress all normaloutput

--binary-files=TYPE assume thatbinary files are TYPE;

TYPE is `binary',`text', or `without-match'

-a,--text 等同于 --binary-files=text

-I 等同于 --binary-files=without-match

-d,--directories=ACTION how to handledirectories;

ACTION is `read',`recurse', or `skip'

-D,--devices=ACTION how to handledevices, FIFOs and sockets;

ACTION is `read' or`skip'

-R,-r, --recursive 等同于 --directories=recurse

--include=FILE_PATTERN 只搜索符合FILE_PATTERN型式的文件

--exclude=FILE_PATTERN 跳过名字为FILE_PATTERN的文件或目录

--exclude-from=FILE skip filesmatching any file pattern from FILE

--exclude-dir=PATTERN directories that match PATTERN will be skipped.

-L,--files-without-match print only names of FILEs containing no match

-l,--files-with-matches print only names ofFILEs containing matches

-c,--count print only a countof matching lines per FILE

-T,--initial-tab make tabs line up(if needed)

-Z,--null FILE名字后打印0字节

上下文控制:

-B,--before-context=NUM 打印 NUM 行上文

-A,--after-context=NUM 打印 NUM 行下文

-C,--context=NUM 打印 NUM 行输出上下文

-NUM 与 --context=NUM相同

--color[=WHEN],

--colour[=WHEN] 使用标记来高亮匹配的字符串;

WHEN 可取值为“always”,“never”或“auto”

-U,--binary 不去掉 EOL(MSDOS)处的 CR 字符

-u,--unix-byte-offsets 如果 CR 不在那里(MSDOS),报告偏移值

‘egrep’ 与 ‘grep -E’含义一致。‘fgrep’与 ‘grep -F’的含义一致。

直接调用‘egrep’和‘fgrep’的方式已经被废弃了。

没有 FILE或者 FILE 是 -,读取标准输入。如果少于两个 FILE,

假设 -h。如果任意行被选中,退出状态为 0;

如果出现任何错误并且 -q 未被给出,退出状态为 2。

如果想查看没有某个字符的行,用反向选择[^]来实现。

想要查看the开头的:

#grep ‘^the’ a.txt

符号’^’在[]内和外是不同的,在[]内表示反向选择,在[]外表示定位在行首的意思。

搜寻空白行,

#grep ‘^$’ a.txt

(小数点). 代表一定有一个任意字符的意思

(星星号)* 代表重复前一个0到无穷多次的意思,为组合形态

限定连续字符范围{}

Shell script

1、 指令的执行是从上而下、从左而右的分析与执行

2、 指令的下达:指令、选项与参数间的多个空白都会被忽略掉

3、 空白行也会被忽略掉,并且[tab]按键所推开的空白同样视为空格键

4、 如果读到一个ENTER符号(CR),就尝试开始执行该行命令

5、 至于如果一行的内容太多,则可以使用【\enter】来延伸至下一行

6、 【#】可作为批注,任何加在#后面的资料将全部被视为批注文字而被忽略

sh sh01.sh 和 ./sh01.sh 执行完以后,子程序内的各项变量将会结束而不会传回到父程序中

source sh01.sh 执行完以后,子程序内的各项变量将会传回到父程序中。

上一篇:嵌入式(ARM)培训入门学习建议
下一篇:嵌入式应用层开发学习步骤详解

嵌入式linux基础学习笔记总结

选择城市和中心
贵州省

广西省

海南省

台湾