嵌入式系统 第二章.docx
- 文档编号:25244378
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:91
- 大小:2.36MB
嵌入式系统 第二章.docx
《嵌入式系统 第二章.docx》由会员分享,可在线阅读,更多相关《嵌入式系统 第二章.docx(91页珍藏版)》请在冰豆网上搜索。
嵌入式系统第二章
第2章Linux基础命令
Linux是个高可靠、高性能的系统,而所有这些优越性只有在直接使用Linux命令行(Shell
环境)才能充分地体现出来。
在本章将帮助读者学会如下内容
1.掌握Shell基本概念
2.熟练使用Linux中用户管理命令
3.熟练使用Linux中系统相关命令
4.熟练使用Linux中文件目录相关命令
5.熟练使用Linux中打包压缩相关命令
6.熟练使用Linux中文件比较合并相关命令
7.熟练使用Linux中网络相关命令
8.了解Linux的启动过程
9.深入了解INIT进程及其配置文件
10.能够独立完成在Linux中解压软件
11.学会添加环境变量
12.能够独立定制Linux中系统服务
2.1Linux常用操作命令
在安装完Linux再次启动之后,就可以进入到与Windows类似的图形化界面了。
这个界面就是Linux图形化界面X窗口系统(简称X)的一部分。
要注意的是,X窗口系统仅仅是Linux上面的一个软件(或者也可称为服务),它不是Linux自身的一部分。
虽然现在的X窗口系统已经与Linux整合地相当好了,但毕竟还不能保证绝对的可靠性。
另外,X窗口系统是一个相当耗费系统资源的软件,它会大大地降低Linux的系统性能。
因此,若是希望更好地享受Linux所带来的高效及高稳定性,建议读者尽可能地使用Linux的命令行界面,也就是Shell环境。
当用户在命令行下工作时,不是直接同操作系统内核交互信息的,而是由命令解释器接受命令,分析后再传给相关的程序。
Shell是一种Linux中的命令行解释程序,就如同C是DOS下的命令解释程序一样,为用户提供使用操作系统的接口。
它们之间的关系如图2.1所示。
用户在提示符下输入的命令都由Shell先解释然后传给Linux内核。
小知识:
Shell是命令语言、命令解释程序及程序设计语言的统称。
它不仅拥有自己内建的Shell命令集,同时也能被系统中其他应用程序所调用。
Shell的另一个重要特性是它自身就是一个解释型的程序设计语言,Shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。
Shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的Shell程序中。
关于Shell编程的详细讲解,感兴趣的读者可以参见其他相关书籍。
Linux中运行Shell的环境是“系统工具”下的“终端”,读者可以单击“终端”以启动Shell
环境。
这时屏幕上显示类似“[sunq@wwwhome]$”的信息,其中,sunq是指系统用户,而home是指当前所在的目录。
由于Linux中的命令非常多,要全部介绍几乎不可能。
因此,在本书中按照命令的用途进行分类讲解,并且对每一类中最常用的命令详细讲解,同时列出同一类中的其他命令。
由于同一类的命令都有很大的相似性,因此,读者通过学习本书中所列命令,可以很快地掌握其他命令。
图2.1内核、Shell和用户的关系
命令格式说明。
格式中带[]的表明为可选项,其他为必选项。
选项可以多个连带写入。
本章后面选项参数列表中加粗的含义是:
该选项是非常常用的选项。
2.1.1用户系统相关命令
Linux是一个多用户的操作系统,每个用户又可以属于不同的用户组,下面,首先来熟悉一下Linux中的用户切换和用户管理的相关命令。
1.用户切换(su)
(1)作用
变更为其它使用者的身份,主要用于将普通用户身份转变为超级用户,而且需输入相应
用户密码。
(2)格式
su[选项][使用者]
其中的使用者为要变更的对应使用者。
(3)常见参数
主要选项参数见表2.1所示
选项
-,-l,--login
为该使用者重新登录,大部分环境变量(如HOME、SHELL和USER等)和工作目录都是以该使用者(USER)为主。
若没有指定USER,缺省情况是root
-m,-p
执行su时不改变环境变量
-c,--command
变更账号为USER的使用者,并执行指令(command)后再变回原来使用者
(4)使用示例
示例通过su命令将普通用户变更为root用户,并使用选项“-”携带root环境变量。
(5)使用说明
在将普通用户变更为root用户时建议使用”-”选项,这样可以将root的环境变量和
工作目录同时带入,否则在以后的使用中可能会由于环境变量的原因而出错。
在转变为root权限后,提示符变为#。
小知识
环境变量实际上就是用户运行环境的参数集合。
Linux是一个多用户的操作系统。
而且在每个
用户登录系统后,都会有一个专有的运行环境。
通常每个用户默认的环境都是相同的,而这
个默认环境实际上就是一组环境变量的定义。
用户可以对自己的运行环境进行定制,其方法
就是修改相应的系统环境变量。
常见的环境变量如下。
☆PATH是系统路径。
☆HOME是系统根目录。
☆HISTSIZE是指保存历史命令记录的条数。
☆LOGNAME是指当前用户的登录名。
☆HOSTNAME是指主机的名称,若应用程序要用到主机名的话,通常是从这个环境变量中来
取得的。
☆SHELL是指当前用户用的是哪种Shell。
☆LANG/LANGUGE是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
☆MAIL是指当前用户的邮件存放目录。
设置环境变量方法如下。
通过etho显示字符串(指定环境变量)。
通过export设置新的环境变量。
通过env显示所有环境变量。
通过set命令显示所有本地定义的Shell变量。
通过unset命令来清除环境变量。
读者可以试着用“env”命令查看“su-root”和“suroot”的区别。
2.用户管理(useradd和passwd)
Linux中常见用户管理命令如表2.2所示,本书仅以useradd和passwd为例进行详细讲解,
其他命令类似,请读者自行学习使用。
表2.2Linux常见用户管理命令
命令
命令含义
格式
useradd
添加用户账号
useradd[选项]用户名
usermod
设置用户账号属性
usermod[选项]属性值
userdel
删除对应用户账号
userdel[选项]用户名
groupadd
添加组账号
groupadd[选项]组账号
groupmod
设置组账号属性
groupmod[选项]属性值
groupdel
删除对应组账号
groupdel[选项]组账号
passwd
设置账号密码
passwd[对应账号]
id
显示用户所属的组
groups[组账号]
who
显示登录到系统的所有用户
who
groups
显示用户所属的组
groups[组账号]
(1)作用
①useradd:
添加用户账号。
②passwd:
更改对应用户账号密码。
(2)格式
①useradd:
useradd[选项]用户名。
②passwd:
passwd[选项][用户名]。
其中的用户名为修改账号密码的用户,若不带用户名,缺省为更改当前使用者账号密码。
(3)常用参数
①useradd主要选项参数见表2.3所示。
表2.3useradd命令常见参数列表
选项
参数义
-g
指定用户所属的群组
-m
自动建立用户的登入目录
-n
取消建立以用户名称为名的群组
②passwd:
一般很少使用选项参数。
(4)使用实例
实例中先添加了用户名为shidianfa的用户,接着又为该用户设置了账号密码。
并从su的命令可以看出,该用户添加成功,其工作目录为”/home/shidianfa”。
(5)使用说明
在使用添加用户时,这两个命令是一起使用的,其中,useradd必须用root的权限。
而且useradd指令所建立的账号,实际上是保存在“/etc/passwd”文本文件中,文件中每一行
包含一个账号信息。
在缺省情况下,useradd所做的初始化操作包括在“/home”目录下为对应账号建立一
个名为同名的主目录,并且还为该用户单独建立一个与用户名同名的组。
adduser只是useradd的符号链接(关于符号链接的概念在本节后面会有介绍),两者
是相同的。
passwd还可用于普通用户修改账号密码,Linux并不采用类似windows的密码回显(显
示为*号),所以输入的这些字符用户是看不见的。
密码最好包括字母、数字和特殊符号,并
且设成6位以上。
3.系统管理命令(ps和kill)
Linux中常见的系统管理命令如表2.4所示,本书以ps和kill为例进行讲解。
表2.4Linux常见系统管理命令
命令
命令含义
格式
ps
显示当前系统中由该用户运行的进程列表
ps[选项]
top
动态显示系统中运行的程序(一般为每隔5s)
top
kill
输出特定的信号给指定PID(进程号)的进程
kill[选项]进程号(PID)
uname
显示系统的信息(可加选项-a)
uname[选项]
setup
系统图形化界面配置
setup
crontab
循环执行例行性命令
crontab[选项]
shutdown
关闭或重启Linux系统
shutdown[选项][时间]
uptime
显示系统已经运行了多长时间
uptime
clear
清除屏幕上的信息
clear
(1)作用
①ps:
显示当前系统中由该用户运行的进程列表。
②kill:
输出特定的信号给指定PID(进程号)的进程,并根据该信号而完成指定的行
为。
其中可能的信号有进程挂起、进程等待、进程终止等。
(2)格式
①ps:
ps[选项]。
②kill:
kill[选项]进程号(PID)。
kill命令中的进程号为信号输出的指定进程的进程号,当选项是缺省时为输出终止信号
给该进程。
(3)常见参数
①ps主要选项参数见表2.5所示
表2.5ps命令常见参数列表
选项
参数含义
-ef
查看所有进程及其PID(进程号)、系统时间、命令详细目录、执行者等
-aux
除可显示-ef所有内容外,还可显示CPU及内存占用率、进程状态
-w
显示加宽并且可以显示较多的信息
②kill主要选项参数见表2.6所示。
表2.6kill命令常见参数列表
选项
参数含义
-s
根据指定信号发送给进程
-p
打印出进程号(PID),但并不送出信号
-l
列出所有可用的信号名称
(4)使用实例
该实例中首先查看所有进程,并终止进程号为7053的ntp进程,之后再次查看时已经没
有该进程号的进程。
(5)使用说明
ps在使用中通常可以与其他一些命令结合起来使用,主要作用是提高效率。
ps选项中的参数w可以写多次,通常最多写3次,它的含义表示加宽3次,这足以
显示很长的命令行了。
例如:
ps–auxwww。
小知识
管道是Linux中信息通信的重要方式。
它是把一个程序的输出直接连接到另一个程序的输入,
而不经过任何中间文件。
管道线是指连接二个或更多程序管道的通路。
在shell中字符”|”表
示管道线。
如前例子中的ps–ef|grepntp所示,ps–ef的结果直接输入到grepntp的程序中(关
于grep命令在后面会有详细的介绍)。
grep、pr、sort和wc都可以在上述管道线上工作。
读者
可以灵活地运用管道机制提高工作效率。
4.磁盘相关命令(fdisk)
Linux中与磁盘相关的命令如表2.7所示,本书仅以fdisk为例进行讲解。
表2.7Linux常见系统管理命令
选项
参数含义
格式
free
查看当前系统内存的使用情况
free[选项]
df
查看文件系统的磁盘空间占用情况
df[选项]
du
统计目录(或文件)所占磁盘空间的大小
du[选项]
fdisk
查看硬盘分区情况及对硬盘进行分区管理
fdisk[-l]
(1)作用
fdisk可以查看硬盘分区情况,并可对硬盘进行分区管理,这里主要向读者介绍查看硬盘
分区情况,另外,fdisk也是一个非常好的硬盘分区工具,感兴趣的读者可以另外查找资料学
习使用fdisk进行硬盘分区。
(2)格式
fdisk[-l]
(3)使用实例
可以看出,使用”fdisk–l”列出了文件系统的分区情况。
(4)使用说明
使用fdisk必须拥有root权限。
IDE硬盘对应的设备名称分别为hda、hdb、hdc和hdd,SCSI硬盘对应的设备名称则为
sda、sdb、…此外,hda1代表hda的第一个硬盘分区,hda2代表hda的第二个分区,依此类推。
通过查看/var/log/messages文件,可以找到Linux系统已辨认出来的设备代号。
5.磁盘挂载命令(mount)
(1)作用
挂载文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
正如1.2.1节中所
述,挂载是指把分区和目录对应的过程,而挂载点是指挂载在文件树中的位置。
mount命令
就可以把文件系统挂载到相应的目录下,并且由于Linux中把设备都当作文件一样使用,因
此,mount命令也可以挂载不同的设备。
通常,在Linux下“/mnt”目录是专门用于挂载不同的文件系统的,它可以在该目录下
新建不同的子目录来挂载不同的设备文件系统。
(2)格式
mount[选项][类型]设备文件名挂载点目录
其中的类型是指设备文件的类型。
(3)常见参数
mount常见参数如表2.8所示
表2.8mount命令选项常见参数列表
选项
参数含义
-a
依照/etc/fstab的内容装载所有相关的硬盘
-l
列出当前已挂载的设备、文件系统名称和挂载点
-t类型
将后面的设备以指定类型的文件格式装载到挂载点上。
常见的类型有前面介绍过的几
种:
vfat、ext3、ext2、iso9660、nfs等
-f
通常用于除错。
它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常
会和-v一起使用
(4)使用实例
使用mount命令主要通过以下几个步骤。
①确认是否为Linux可以识别的文件系统,Linux可识别的文件系统只要是以下几种。
Windows95/98常用的FAT32文件系统:
vfat。
WinNT/2000的文件系统:
ntfs。
OS/2用的文件系统:
hpfs。
Linux用的文件系统:
ext2、ext3、nfs。
CD-ROM光盘用的文件系统:
iso9660。
②确定设备的名称,确定设备名称可通过使用命令“fdisk-l”查看。
③查找挂接点。
必须确定挂载点已经存在,也就是在“/mnt”下的相应子目录已经存在,一般建议在“/mnt”
下新建几个如“/mnt/windows”,“/mnt/usb”的子目录,现在有些新版本的Linux(如红旗Linux、
中软Linux、MandrakeLinux)都可自动挂载文件系统,RedHat仅可自动挂载光驱。
④挂载文件系统如下所示。
笔者挂载的是笔者的usb,可见,在挂载usb后,可以直接访问usb中的内容。
⑤在使用完该设备文件后可使用命令umount将其卸载。
可见,“/mnt/”目录下,没有usb文件,usb成功的卸载。
小知识
在Linux下如何使用U盘呢?
一般U盘为SCSI格式的硬盘,其格式为vfat格式,其设备号可通过“fdisk–l”进行查看,假
若设备名为“/dev/sda1”,则可用如下命令就可将其挂载:
mount-tvfat/dev/sda1/mnt/u
若想设置在开机时自动挂载,可在文件“/etc/fstab”中加入相应的设置行即可。
2.1.2文件目录相关命令
由于Linux中有关文件目录的操作非常重要,也非常常用,因此在本节中,作者将基本
所有的文件操作命令都进行了讲解。
1.cd
(1)作用
改变工作目录。
(2)格式
cd[路径]
其中的路径为要改变的工作目录,可为相对路径或绝对路径。
(3)使用实例
该实例中变更工作目录为“/home/shidianfa/”,在后面的pwd(显示当前目录)的结果中可以看出。
(4)使用说明
该命令将当前目录改变至指定路径的目录。
若没有指定路径,则回到用户的主目录。
为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
该命令可以使用通配符。
可使用“cd–”可以回到前次工作目录。
“./”代表当前目录,“../”代表上级目录。
2.ls
(1)作用
列出目录的内容。
(2)格式:
ls[选项][文件]
其中文件选项为指定查看指定文件的相关内容,若未指定文件,默认查看当前目录下的
所有文件。
(3)常见参数
ls主要选项参数见表2.9所示
表2.9ls命令常见参数列表
选项
参数含义
-1,--format=single-column
一行输出一个文件(单列输出)
-a,-all
列出目录中所有文件,包括以“.”开头的文件
-d
将目录名和其他文件一样列出,而不是列出目录的内容
-l,--format=long,
--format=verbose
除每个文件名外,增加显示文件类型、权限、硬链接数、所有者名、组
名、大小(Byte)及时间信息(如未指明是其他时间即指修改时间)
-f
不排序目录内容,按它们在磁盘上存储的顺序列出
(4)使用实例
该实例查看当前目录下的所有文件,并通过选项“-l”显示出详细信息。
显示格式说明如下。
文件类型与权限链接数文件属主文件属组文件大小修改的时间名字
(5)使用说明
在ls的常见参数中,-l(长文件名显示格式)的选项是最为常见的。
可以详细显示出
各种信息。
若想显示出所有“.”开头的文件,可以使用-a,这在嵌入式的开发中很常用。
注意
Linux中的可执行文件不是与Windows一样通过文件扩展名来标识的,而是通过设置文件相应
的可执行属性来实现的。
3.mkdir
(1)作用
创建一个目录。
(2)格式
mkdir[选项]路径
(3)常见参数
mkdir主要选项参数如表2.10所示
表2.10mkdir命令常见参数列表
选项
参数含义
-m
对新建目录设置存取权限,也可以用chmod命令(在本节后会有详细说明)设置
-p
可以是一个路径名称。
此时若此路径中的某些目录尚不存在,在加上此选项后,系统将自动
建立好那些尚不存在的目录,即一次可以建立多个目录
(4)使用实例
该实例使用选项“-p”一次创建了./mnt/my多级目录。
该实例使用改选项“-m”创建了相应权限的目录。
对于“777”的权限在本节后面会有
详细的说明。
(5)使用说明
该命令要求创建目录的用户在创建路径的上级目录中具有写权限,并且路径名不能是当
前目录中已有的目录或文件名称。
4.cat
(1)作用
连接并显示指定的一个和多个文件的有关信息。
(2)格式
cat[选项]文件1文件2…
其中的文件1、文件2为要显示的多个文件。
(3)常见参数
cat命令的常见参数如表2.11所示。
表2.11cat命令常见参数列表
选项
参数含义
-n
由第一行开始对所有输出的行数编号
-b
和-n相似,只不过对于空白行不编号
(4)使用实例
在该实例中,指定对hello.c和hello1.c进行输出,并指定行号。
5.cp、mv和rm
(1)作用
①cp:
将给出的文件或目录复制到另一文件或目录中。
②mv:
为文件或目录改名或将文件由一个目录移入另一个目录中。
③rm:
删除一个目录中的一个或多个文件或目录。
(2)格式
①cp:
cp[选项]源文件或目录目标文件或目录。
②mv:
mv[选项]源文件或目录目标文件或目录。
③rm:
rm[选项]文件或目录。
(3)常见参数
①cp主要选项参数见表2.12所示。
表2.12cp命令常见参数列表
选项
参数含义
-a
保留链接、文件属性,并复制其子目录,其作用等于dpr选项的组合
-d
拷贝时保留链接
-f
删除已经存在的目标文件而不提示
-i
在覆盖目标文件之前将给出提示要求用户确认。
回答y时目标文件将被覆盖,而且是交互式拷贝
-p
此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r
若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。
此时目
标文件必须为一个目录名
②mv主要选项参数如表2.13所示。
表2.13mv命令常见参数列表
选项
参数含义
-i
若mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,并要求用户回答y
或n,这样可以避免误覆盖文件
-f
禁止交互操作。
在mv操作要覆盖某已有的目标文件时不给任何指示,在指定此选项后,i
选项将不再起作用
③rm主要选项参数如表2.14所示。
表2.14rm命令常见参数列表
选项
参数含义
-i
进行交互式删除
-f
忽略不存在的文件,但从不给出提示
-r
指示rm将参数中列出的全部目录和子目录均递归地删除
(4)使用实例
①cp
该实例使用-a选项将“/home/shidianfa”目录下的所有文件复制到当前目录下。
而此时在原先
目录下还有原有的文件。
②mv
该实例中把“/home/shidianfa”目录下的所有文件移至当前目录,则原目录下文件被自动删除。
③rm
该实例使用“-r”选项删除“./shidianfa”目录下所有内容,系统会进行确认是否删除。
(5)使用说明
①cp:
该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
②mv:
该命令根据命令中第二个参数类型的不同(是目标文件还是目标目录)来判断是重命
名还是移动文件,当第二个参数类型是文件时,mv命令完成文件重命名,此时,它将所给
的源文件或目录重命名为给定的目标文件名;
当第二个参数是已存在的目录名称时,mv命令将各参数指定的源文件均移至目标目录中;
在跨文件系统移动文件时,mv先复制,再将原有文件删除,而链至该文件的链接也
将丢失。
③rm:
如果没有使用-r选项,则rm不会删除目录;
使用该命令时一旦文件被删除,它是不能被恢复的,所以最好使用-i参数。
6.chown和chgrp
(1)作用
①chown:
修改文件所有者和组别。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统 第二章 嵌入式 系统 第二