Linux笔记.docx
《Linux笔记.docx》由会员分享,可在线阅读,更多相关《Linux笔记.docx(100页珍藏版)》请在冰点文库上搜索。
Linux笔记
嵌入式Linux笔记
奇世雅一
第一节:
1.嵌入式产品:
a)个人电子消费类
b)通信类
c)家用电子类
d)汽车电子类
e)游戏电子类
f)医疗仪器类
g)军工类
2.嵌入式定义:
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
3.嵌入式的组成:
(1).硬件层:
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口I/O接口(A/D、D/A、I/O等)
(2).中间层:
硬件层与软件层之间为中间层,也称为硬件抽象层(HardwareAbstractLayer,HAL)或板级支持包(BoardSupportPackage,BSP)它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。
(3).软件层:
操作系统,文件系统,图形用户接口,网络系统以及通用组件。
Ø小知识:
主流的嵌入式系统
1.Linux
2.Wince
3.VxWorks
4.Android
5.iPhoneIOS
4.Linux的优点
1.成本低:
A.低软件成本
B.低移植成本
C.低管理成本
2.高性能
A.操作系统的低占用率
B.高性能运算方面的优势
C.高可扩展性,可维护性
♈问:
Linux为什么不普及?
♈参考:
1.Linux的品牌和发行版本太多太杂,用户往往无所适从。
2.本地化不充分,很多发行版本都是多语言版本,但核心部分仍然是英文。
3.桌面应用有问题。
4.应用软件缺乏
5.Windows太普及,若改为Linux用户使用不习惯
6.命令较多,难以记忆
7.宣传力度部够。
第一课
1.1Linux概述:
Linux是指LinusTorvalds所写的Linux操作系统内核。
而当时Linux的优良性能备受GNU的赏识,于是GNU
就决定采用Linus及其开发者的内核。
在他们的共同努
力下,Linux这个完整的操作系统诞生了.
Linux的内核版本号:
Linux的内核版本号格式是:
x.y.zz-www,修正号表示较小的功能变动。
以2.6.12版本为例,2代表主版本号,6代表次版本号,12代表修正号。
其中次版本号还有特定的意义:
如果次版本号是偶数,则表示内核是一个可放心使用的稳版;如果次版本号是奇数,则表示该内核加入了一些测试的新功能,是一个内部可能存在BUG的测试版。
如:
2.5.74表示是一个测试版的内核,2.6.12表示是一个稳定版的内核。
http:
//www.kernel.org/
2.6.12
次版本号
偶:
稳定版
奇:
测试版
修正号
主版本号
Linux内核版本号图解
1.2如何学习Linux
1.只有通过大量的动手实践才能真正地领会Linux的精髓,才能迅速掌握在Linux上的应用开发.
2.互联网是一个很好的学习工具,以下列出了一些Linux论坛:
http:
//www.linuxfans.org
1.2Linux的安装
1.2.1基础概念
1.文件系统、分区和挂载
文件系统:
文件系统是指操作系统中与管理文件有关的软件和数据。
分区:
在windows下,目录结构属于分区;Linux下分区属于目录结构
✧挂载:
把分区和目录对应的过程叫做挂载(Mount),而这个挂载在文件树中的位置就是挂载点
2.主分区、扩展分区和逻辑分区
硬盘分区是针对一个硬盘进行操作的,它可以分为:
主分区、扩展分区、逻辑分区。
其中主分区就是包含操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,而且主分区的数量可以是1~3个;扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才可使用,其数量可以有0或1个;而逻辑分区则在数量上没什么限制。
通常在windows下的盘符和Linux设备文件的对应关系如下:
C盘—/dev/hda1(主分区)
D盘—/dev/had5(逻辑分区)
E盘—/dev/hda6(逻辑分区)
3.SWAP交换分区
Windows操作系统把这个区叫做虚拟内存,Linux把它叫做交换分区swap。
在安装Linux建立交换分区时,一般将其设为内存大小的2倍
4.分区格式
Linux是一个开放的操作系统,它最初使用EXT2格式,后来使用EXT3格式,但是它是同时支持非常多的分区格式,包括很多大型机上UNIX使用的XFS格式,也包括微软公司的FAT以及NTFS格式。
5.GRUB
GRUB是一种引导装入器(类似在嵌入式中非常重要的bootloader)——它负责装入内核并引导Linux系统,位于硬盘的起始部分。
GRUB来引导Linux操作系统。
但事实上它还可以引导windows等多种操作系统,。
在安装了windows和Linux双系统后,系统是以Linux的GRUB作为引导装入器来选择启动windows或linux的,因此,若此时直接在windows下把Linux分区删除,会导致系统因没有引导装入器而无法启动windows。
6.root权限
Linux也是一个多用户的系统,不同用户和用户组会有不同权限,其中把具有超级权限的用户成为root用户。
Root的默认主目录在“root/”下,而普通用户的目录则在“/home”下。
Root权限极高,它甚至可以修改Linux的内核,因此建议初学者要慎用root权限。
7.硬件需求
Linux对硬件的需求非常低,如果要是只想在字符方式下运行,那么一台386的计算机已经可以用来安装Linux了;如果想运行X-Windows,那也只需要一台16MB内存,600MB硬盘的486计算机即可。
这听起来比那些需要256MB内存,2.0GBHz的操作系统要好得多。
安装具体步骤:
见PPT
1.3.Linux文件及文件系统
1.3.1文件类型及文件属性
1.文件类型
Linux的文件类型与Windows有显著的区别,其中最显著的区别在于Linux对目录和设备都当作文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。
Linux中主要的文件类型分为4种:
普通文件、目录文件、链接文件和设备文件。
(1).普通文件
普通文件如同Windows中的文件一样,是用户日常使用最多的文件。
它包括文本文件、shell脚本、二进制的可执行程序和各种类型的数据。
(2).目录文件
在Linux中,目录也是文件,它们包含文件名和子目录名以及指向那些文件和子目录的指针。
因此在对目录进行文件操作时,一般不涉及对文件内容的操作,而只是对目录名和文件名的对应关系进行操作。
(3).链接文件
连接文件有些类似于Windows中的“快捷方式”,但是它的功能更为强大。
它可以实现对不同的目录、文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间。
(4).设备文件
Linux把设备都当作文件一样来进行操作,这样就大大方便了用户的使用,在Linux下与设备相关的文件一般都在/dev目录下,它包括两种,一种是块设备文件,另一种是字符设备文件。
¯块设备文件是指数据的读写,它们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等。
¯字符设备主要是指串行端口的接口设备。
2.文件属性
Linux中的文件属性如图:
首先,Linux中文件的拥有者可以把文件的访问属性设成3种不同的访问权限:
可读(r)、可写(w)和可执行(x)。
文件又有3个不同的用户级别:
文件拥有者(u)、所属的用户组(g)和系统里的其它用户(o)。
1.3.2文件系统类型介绍
1.ext3
Ext3是现在Linux(包括RedHat下)常见的默认的文件系统,ext3中采用了日志式的管理机制,它使文件系统具有很强的快速回复能力。
2.swap文件系统
该文件系统是Linux中作为交换分区使用的,在安装Linux的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是sawp而没有其他选择。
3.vfat文件系统
Linux中把DOS中采用的FAT文件系统(包括FAT12,FAT16和FAT32)都称为vfat文件系统。
4.NFS文件系统
NFS文件系统是指网络文件系统,它可以很方便的在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。
5.ISO9660文件系统
这是光盘所使用的文件系统。
Linux目录结构如下:
/usr目录包含所有的命令、程序库、文档和其它文件。
这些文件在正常操作中不会被改变的。
这个目录也包含你的Linux发行版本的主要的应用程序,譬如:
Netscape
/var目录包含在正常操作中被改变的文件:
假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。
/home目录包含用户的文件:
参数设置文件、个性文件、文档、数据、EMAL、缓存数据等。
这个目录在系统升级时应该保留。
/proc目录整个包含虚幻文件。
它们实际上并部存在磁盘上,也部占用任何空间(用ls-l可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统。
/bin系统启动时需要的执行文件(二进制),这些文件可以被普通用户使用。
/sbiin系统执行文件(二进制),这些文件不打算被普通用户使用。
(普通用户仍然可以使用它们,但要指定目录)
/etc操作系统的配置文件目录。
/root系统管理员(也叫做超级用户或根用户)的Home目录
/dev设备文件目录。
LINUX下设备被当成文件,这样依赖硬件被抽象化,便于读写、网络共享以及需要临时装载到文件系统中。
正常情况下,设备会有一个独立的子目录,这些设备的内容会出现在独立的子目录下,LINUX没有所谓的驱动符。
/lib根文件系统目录下程序和核心模块的共享库
/boot用于自举加载程序(LILO或GRUB)的文件。
当计算机启动时,(如果有多个操作系统,有可能允许你选择启动哪一个操作系统),这些文件首先被装载。
这个目录也会包含在LINUX核(压缩文件vmlinuz),但LINUX核也可以存在别处,只要配置LILO并且LILO知道LINUX核在哪。
/opt可选的应用程序,譬如REDHAT5.2下的KDE(REDHAT6.0下,KDE放在其它XWINDOWS应用程序中,主执行程序在/usr/bin目录下)
/tmp临时文件。
该目录会被自动清理干
/lost+found在文件系统修复时恢复的文件
⏹课后习题:
♈ARM微处理器有哪些特点?
✧答:
1.体积小、低功耗、低成本、高性能;
2.支持Thumb(16位)/ARM(32位)双指令集,能很好兼容8位/16位器件;
3.大量使用寄存器,指令执行速度更快;
4.大多数数据操作都在寄存器中完成;
5.寻址方式灵活简单,执行效率高;
6.指令长度固定。
♈什么是嵌入式系统?
✧答:
1.从技术的角度来定义:
就是以应用为中心、以计算机技术为基础、软/硬件可以裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
✧2.从系统的角度来定义,就是设计完成复杂功能的软/硬件,并使其紧密耦合在一起的计算机系统。
术语嵌入式反映了这些系统通常是更大系统中的一个完整部分,称为嵌入式系统。
♈嵌入式系统有哪些组成部分?
✧答:
硬件层、中间层、软件层、
♈什么是嵌入式Linux?
✧答:
Linux是一套免费使用和自由传播的类Unix操作系统的统称。
♈嵌入式Linux有哪些特点?
✧答:
1.Linux是开放源代码的
2.Linux内核小、效率高
3.Linux是免费的OS
4.Linux的跨平台性好
5.Linux内核在网络方面是非常完整的
6.Linux的大小适合嵌入式操作系统
7.真正的多用户
8.出色的稳定性和速度性能
9.可靠的系统安全
第二章
2.1.1
1.用户切换(SU)
(1)作用:
变更为其它使用者的身份,主要用于将普通用户身份变为超级用户,而且输入相应用户密码。
(2)格式:
su[选项][使用者]
(3)常见参数:
2.用户管理(useradd和passwduserdel)
(1)作用:
①.useradd:
添加用户帐号。
②.passwd:
更改对应用户帐号密码。
③.userdel:
删除用户帐号。
(2)格式:
①.useradd:
useradd[选项]用户名
②.passwd:
passwd[选项][用户名]
③.userdel:
userdel[选项][用户名]
其中的用户名为修改帐号密码的用户,若不带用户名,缺省为更改当前使用者帐号密码。
Userdel可删除用户帐号与相关的文件,若不加参数,则仅删除用户帐号,而不删除相关文件。
(3)常用参数
①.useradd主要选项参数:
②.passwd:
选项参数。
参数
说明
-d
删除密码,本参数仅有系统管理者才能使用
-f
强制执行
-k
设置只有在密码过期失效后,方能更新
-l
锁住密码
-s
列出密码的相关信息,本参数仅有系统管理者才能使用
-u
解开已上锁的帐号。
Ø[root@localhostroot]#
Ø当前用户名@主机名当前目录(‘#’提示符因登录用户而异,普通用户为$)
ØUserdel参数-f删除用户登录目录以及目录中所有文件。
3.在线帮助
(1)指令–-help
例:
ls–-help
(2)man指令(比—help更加详细)
Man指令存放目录:
usr/share/man
man–kkeyword
man–fkeyword
man–akeyword
man–nkeyword
例:
manuseradd
(3)info指令(比man更加相信)
例:
infouseradd
4.文件目录相关命令
1.ls
(1).作用
列出目录的内容。
(2).格式:
ls[选项][文件]
其中文件选项为指定查看指定文件的相关内容,若未指定文件,默认查看当前目录下的所有文件,显示“.”开头的文件可以使用-a。
(3)常见参数
ls主要选项参数:
2.cd
(1)作用
改变工作目录
(2)格式:
cd路径
其中的路径为要改变的工作目录,可为相对路径或绝对路径。
(3)使用说明:
Cd–回到前次工作目录
“./”代表当前目录,“../”代表上级目录。
3.mkdir、rmdir
(1)作用
Mkdir:
创建一个目录
Rmdir:
删除一个目录
(2)格式
mkdir[选项]路径
rmdir[选项]目录
(3)常见参数
Mkdir常见参数:
选项
参数含义
-m
对新建目录设置存取权限,也可以用chmod命令(在本节后会有详细说明)设置
-p
可以是一个路径名称。
此时若此路径中的某些目录尚不存在,在加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
Rmdir常见参数
创建who文件夹
4.cat、less、more、cal、date
(1)作用
Cat:
连接并显示指定的一个和多个文件的有关信息。
More逐屏查看文件内容
Less逐行查看文件内容
Date显示当前时间
Cal显示月历
(2)格式
cat[选项]文件1文件2…
(3)常见参数
5.cp、mv、rm
(1)作用
①.cp:
将给出的文件或目录复制到另一个文件或目录中
②.mv:
为文件或目录改名或将文件由一个目录移入另一个目录。
③.rm:
删除一个目录中的一个或多个文件或目录。
(2)格式:
①.cp:
cp[选项]源文件或目录目标文件或目录。
②.mv:
mv[选项]源文件或目录目标文件或目录。
③.rm:
rm[选项]文件或目录。
(3)常见参数:
①.cp常见参数:
选项
参数含义
-a
保留链接、文件属性,并复制其子目录,其作用等于dpr选项的组合
-d
拷贝时保留链接
-f
删除已经存在的目标文件而不提示
-i
在覆盖目标文件之前将给出提示要求用户确认。
回答y时目标文件将被覆盖,而且是交互式拷贝
-p
此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r
若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。
此时目标文件必须为一个目录名
②.mv主要参数选项
选项
参数含义
-i
若mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,并要求用户回答y
-f
或n,这样可以避免误覆盖文件
③.rm主要参数选项
选项
参数含义
-d
-d,--directory直接把欲删除的目录的硬连接数据删成0,删除该目录
-f
-f,--force强制删除文件或目录
-i
-i,--interactive删除既有文件或目录之前先询问用户
-r
-r,-R,--recursive递归处理,将指定目录下的所有文件及子目录一并处理
5.文件的权限和类型
1.chown和chgrp
(1)作用
①.chown:
修改文件所有者和组别
②.chgrp:
改变文件的组所有权。
(2)格式
①.chown:
chown[选项]…文件所有者[所有者组名]文件。
其中的文件所有者为修改后的文件所有者。
②.chgrp:
chgrp[选项]…文件所有组文件。
其中的文件所有组为改变后的文件组拥有者
(3)常见参数:
选项
参数含义
-c,-changes
详尽地描述每个file实际改变了哪些所有权
-f,--silent,--quiet
不打印文件所有权就不能修改的报错信息
2.chmod
(1)作用
改变文件的访问权限
(2)格式:
Chmod可使用符号标记进行更改和八进制数指定更改两种方式
①.符号标记:
chmod[选项]..符号权限[符号权限]..文件中的符号权限可以指定为多个。
②.八进制数:
chmod[选项]..八进制权限文件..其中的八进制权限是指要更改后的文件权限。
(3)选项参数:
选项
参数含义
-c
若该文件权限确实已经更改,才显示其更改动作
-v
显示权限变更的详细资料
-f
若该文件权限无法被更改也不要显示错误信息
(4)使用实例
chmod涉及文件的访问权限,在此对相关的概念进行简单的回顾。
在1.3.1节中已经提到,文件的访问权限可表示成:
-rwxrwxrwx。
在此设有三种不同
的访问权限:
读(r)、写(w)和运行(x)。
三个不同的用户级别:
文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。
在此,可增加一个用户级别a(all)来表示所有这三个不同的用户级别。
①对于第一种符号连接方式的chmod命令中,用加号“+”代表增加权限,用减号“−”删除权限,等于号“=”设置权限。
②八进制表示方式
转换后
8进制数
2进制
对应权限
转换后8进制数
2进制
对应权限
0
000
没有任何权限
1
001
只能执行
2
010
只写
3
011
只写和执行
4
100
只读
5
101
只读和执行
6
110
读和写
7
111
读,写和执行
3.grep
(1)作用
在指定文件中搜索特定的内容,并将含有这些内容的行标准输出。
(2)格式
grep[选项]格式[文件及路径]
其中的格式是指要搜索的内容格式,若缺省“文件及路径”则默认表示在当前目录下搜索
(3)常见参数
选项
参数含义
-c
只输出匹配行的计数
-I
不区分大小写(只适用于单字符)
-h
查询多文件时不显示文件名
-l
查询多文件时只输出包含匹配字符的文件名
-n
显示匹配行及行号
-v
显示不包含匹配文本的所有行
-s
不显示不存在或无匹配文本的错误信息
4.find
(1)作用
在指定目录中搜索文件,它的使用权限是所有用户。
(2)格式
find[路径][选项][描述]其中的路径为文件搜索路径,系统开始沿着此目录树向下查找文件,它是一个路径列表,相互用空格分离。
(3)常见参数:
选项
参数含义
-depth
使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-mount
不在其他文件系统(如Msdos、Vfat等)的目录和文件中查找
-name
支持通配符*和?
-user
用户名:
搜索文件属主为用户名(ID或名称)的文件
-print
输出搜索结果,并且打印
5.ln
(1)作用
为某一个文件在另外一个位置建立一个符号链接。
(2)格式
ln[选项]目标目录
(3)常见参数
参数
说明
-b
-backup删除,覆盖目标文件之前的备份
-d
-F,--directory建立目录硬连接
-f
-force强行建立文件或目录的连接,不论文件或目录是否存在
-i
--interactive覆盖既有文件之前先询问用户
-n
--no-dereference把符号连接的目的目录视为一般文件
-s
--symbolic对源文件建立符号连接而非硬连接
-v
--verbose显示指令执行过程
6.gzip
(1)作用
对文件进行压缩和解压缩,而且gzip根据文件类型可自动识别压缩或解压。
(2)格式
gzip[选项]压缩(解压缩)的文件名
(3)常见参数
gzip主要参数:
选项
参数含义
-c
将输出信息写到标准输出上,并保留原有文件
-d
将压缩文件解压
-l
对每个压缩文件,显示下列字段:
压缩文件的大小、未压缩文件的大小、压缩比、
-r
未压缩文件的名字
-t
查找指定目录并压缩或解压缩其中的所有文件
-v
测试,检查压缩文件是否完整
7.tar
(1)作用
对文件目录进行打包或解包。
在此需要对打包和压缩这两个概念进行区分。
打包是指将一些文件或目录变成一个总的文件,而压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?
这是由于在Linux中的很