嵌入式linux系统设计与应用 课件 第3、4章 Linux基础、嵌入式Linux开发环境搭建_第1页
嵌入式linux系统设计与应用 课件 第3、4章 Linux基础、嵌入式Linux开发环境搭建_第2页
嵌入式linux系统设计与应用 课件 第3、4章 Linux基础、嵌入式Linux开发环境搭建_第3页
嵌入式linux系统设计与应用 课件 第3、4章 Linux基础、嵌入式Linux开发环境搭建_第4页
嵌入式linux系统设计与应用 课件 第3、4章 Linux基础、嵌入式Linux开发环境搭建_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式Linux系统原理与应用第三章Linux基础目录3.1Linux和Shell3.2常见Linux发行版本3.3Linux文件管理3.4Linux目录3.5Linux文件权限和访问模式3.6Linux环境变量3.7Linuxyum命令3.8Linuxapt命令3.9本章小结严格的来讲,Linux不算是一个操作系统,只是一个Linux系统中的内核,即计算机软件与硬件通讯之间的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。Linux是一个多用户多任务的操作系统,也是一款自由软件,完全兼容POSIX标准,拥有良好的用户界面,支持多种处理器架构,移植方便。

Linux和ShellPartOne3.1关于Linux,涉及的几个重要概念:内核:内核是操作系统的核心。命令和工具:有250多个命令,每个命令都有多个选项;第三方工具。文件和目录:Linux系统中所有的数据都被存储到文件中,这些文件被分配到各个目录,构成文件系统。Shell:Shell是一个处理用户请求的工具,它负责解释用户输入的命令,调用用户希望使用的程序。Shell既是一种命令语言,又是一种程序设计语言。何为Shell?Shell与Shell脚本Linux的Shell种类运行Shell脚本的两种方法1.作为可执行程序chmod+x./test.sh#使脚本具有执行权限./test.sh#执行脚本2.作为解释器参数/bin/shtest.sh/bin/phptest.php

常见Linux发行版本PartTwo3.2Linux的发行版本可以大体分为两类:商业公司维护的发行版本;社区组织维护的发行版本。主流Linux发行版本1.RedHatLinux2.UbuntuLinux3.SuSELinux4.GentooLinux5.其他Linux发行版

Linux文件管理PartThree3.3

Linux中的所有数据都被保存在文件中,所有的文件被分配到不同的目录。目录的结构类似于树的结构。本节主要讲解基本的文件操作,如创建文件、删除文件、复制文件、重命名文件以及为文件创建链接等内容。Linux中有三种基本的文件类型:1.普通文件

普通文件是以字节为单位的数据流,包括文本文件、源码文件、可执行文件等。2.目录

目录可以包含普通文件和特殊文件,目录相当于Windows和MacOS中的文件夹。3.设备文件

Linux中,为便于统一管理,所有的外部设备都被视为文件,Linux与外部设备(例如光驱,打印机,终端,modern等)通过设备文件来进行通信。ls命令

查看当前目录下的文件和目录可以使用$ls列出当前目录下的文件$ls-l

列出当前目录下文件的详细信息3.3.1查看文件前缀描述-普通文件。如文本文件、二进制可执行文件、源代码等。b块设备文件。硬盘可以使用块设备文件。c字符设备文件。硬盘也可以使用字符设备文件。d目录文件。目录可以包含文件和其他目录。l符号链接(软链接)。可以链接任何普通文件,类似于Windows中的快捷方式。p具名管道。管道是进程间的一种通信机制。s用于进程间通信的套接字。

字符前缀和文件类型

元字符是具有特殊含义的字符。也称为通配符,*和?都是元字符,*可以匹配多个任意字符,?匹配一个字符。3.3.2元字符隐藏文件的第一个字符为英文句号或点号(.),Linux程序(包括Shell)通常使用隐藏文件来保存配置信息。.profile:BourneShell(sh)初始化脚本;.kshrc:KornShell(ksh)初始化脚本;.cshrc:CShell(csh)初始化脚本;.rhosts:RemoteShell(rsh)配置文件。查看隐藏文件需要使用

ls

命令的

-a

选项3.3.3隐藏文件

cat

命令来查看文件内容,

-b

选项来显示行号。3.3.4

查看文件内容

wc

命令来统计当前文件的行数、单词数和字符数3.3.5

统计单词数目

cp

命令来复制文件。3.3.6复制文件

mv

命令重命名文件

。3.3.7重命名文件

rm命令删除文件,使用需慎重。3.3.8删除文件

Linux目录PartFour3.4

登录后,用户所在的位置就是主目录(或登录目录)进入主目录的命令为cd:$cd~$cd~username$cd-3.4.1主目录3.4.2

绝对路径和相对路径

Linux中目录有清晰的层次结构,/代表根目录,所有的目录都位于/下面;文件在层次结构中的位置可以用路径来表示。路径以/开头,就称为绝对路径

/etc/passwd不以/开头的路径称为相对路径

chem/notes常用的与路径相关的命令:pwd:获取当前所在的目录

ls

:查看目录中的文件

mkdir

命令用来创建目录,语法为:$mkdirdirname常有以下形式:$mkdirmydir$mkdir/tmp/test-dir$mkdirdocspub$mkdir-p/tmp/amrood/test3.4.3

创建目录rmdir

命令用来删除空目录,非空目录无法删除,语法为:$rmdirdirname例如删除多个目录:$rmdirdirname1dirname2dirname33.4.4

删除目录mv

(move)命令用来重命名目录,语法为:$mvolddirnewdir3.4.6

重命名目录cd

命令用来改变当前所在目录,进入任何有权限的目录,语法为:$cddirname3.4.5

改变所在目录

Linux文件权限和访问模式PartFive3.5

Linux中,不同的文件有不同的权限,每个文件都拥有下面三种权限:所有者权限:文件所有者能够进行的操作;组权限:文件所属用户组能够进行的操作;外部权限(其他权限):其他用户可以进行的操作。命令

ls-l查看文件权限相关信息,示例:$ls-l/home/amrood-rwxr-xr--1amroodusers1024Nov200:10myfile第一列包含了文件或目录的权限。第一列的第一个字符代表文件类型,-代表是普通文件,d代表是文件夹。而接下来的字符所对应的权限一共分成3组,3个一组,分别属于文件所有者(o)、文件所属用户组(g)和其他用户(u)。权限中的每个字符都代表不同的权限,其中分别为读取(r)、写入(w)和执行(x)。3.5.1查看文件权限基本的权限有读取(r)、写入(w)和执行(x)。读取:用户能够读取文件信息,查看文件内容写入:用户可以编辑文件,可以向文件写入内容,也可以删除文件内容执行:用户可以将文件作为程序来运行3.5.2

文件访问模式目录的访问模式:读取:用户可以查看目录中的文件写入:用户可以在当前目录中删除文件或创建文件执行:执行权限赋予用户遍历目录的权利,例如执行cd和ls命令。3.5.3

目录访问模式示例:$ls-ltestfile-rwxrwxr--1amroodusers1024Nov200:10testfile$chmodo+wxtestfile$ls-ltestfile-rwxrwxrwx1amroodusers1024Nov200:10testfile$chmodu-xtestfile$ls-ltestfile-rw-rwxrwx1amroodusers1024Nov200:10testfile3.5.4

改变权限符号说明+为文件或目录增加权限-删除文件或目录的权限=设置指定的权限1.使用符号表示权限2.使用数字表示权限数字说明权限0没有任何权限---1执行权限--x2写入权限-w-3执行权限和写入权限:1(执行)+2(写入)=3-wx4读取权限r--5读取和执行权限:4(读取)+1(执行)=5r-x6读取和写入权限:4(读取)+2(写入)=6rw-7所有权限:4(读取)+2(写入)+1(执行)=7rwx3.5.5

更改所有者和用户组chown:chown命令是"changeowner"的缩写,用来改变文件的所有者。语法如下:$chownuserfilelist示例:$chownamroodtestfilechgrp:chgrp命令是"changegroup"的缩写,用来改变文件所在的群组。语法为:$chgrpgroupfilelist示例:$chgrpspecialtestfileLinux中,用户的密码保存在

/etc/shadow文件中,使用

passwd

命令来更改密码时,需要对

/etc/shadow文件有写入权限。通过给程序设置SUID(SetUserID)和SGID(SetGroupID)位来赋予普通用户特殊权限。当运行一个带有SUID位的程序时,就会继承该程序所有者的权限;如果程序不带SUID位,则会根据程序使用者的权限来运行。如果程序设置了SUID位,就会在表示文件所有者可执行权限的位置上出现's'字母。给程序设置SGID后,会根据程序所在组的组权限运行。如果设置了SGID,就会在表示文件群组可执行权限的位置上出现's'字母。语法:

$chmodug+sdirname示例:

$ls-l

drwsr-sr-x2rootroot4096Jun1906:45dirname

Linux环境变量PartSix3.6

Linux中,环境变量可以由系统、用户、Shell以及其他程序来设定。这里变量就是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型的数据。Bourneshell的初始化过程?

登录系统后,Shell会有一个初始化的过程,用来设置环境变量。这个阶段,Shell会读取/etc/profile和.profile两个文件,Shell首先检查

/etc/profile文件是否存在,如果存在,就读取内容,否则就跳过,但是不会报错。然后检查主目录(登录目录)中是否存在

.profile文件,如果存在,就读取内容,否则就跳过,也不会报错。/etc/profile文件包含了通用的Shell初始化信息,由Linux管理员维护,一般用户无权修改。用户可以修改主目录下的

.profile文件,增加一些特定初始化信息,包括:设置默认终端类型和外观样式;设置Shell命令查找路径,即PATH变量;设置命令提示符等。3.6.1

profile文件用户使用的终端是由login或getty程序设置,对于没有使用过的终端,可能会比较生疏,不习惯命令的输出样式,交互起来略显吃力。

用户会将终端设置成下面的类型:

$TERM=vt100

Vt100是被绝大多数Linux系统所支持的一种虚拟终端规范,常用的还有ansi、xterm等。3.6.2

设置终端类型

Shell会根据PATH变量来查找该命令对应的程序,PATH变量指明了这些程序所在的路径。

$PATH=/bin:/usr/bin多个路径使用冒号(:)分隔。3.6.3

设置PATH变量PS1变量用来保存命令提示符,可以随意修改,如果用户不习惯使用$作为提示符,也可以改成其他字符。

示例:

$PS1='=>'=>=>PS1="[\u@\h\w]\$"

[root@ip-72-167-112-17/var/www/tutorialspoint/Linux]$3.6.4PS1和PS2变量如果用户输入的命令不完整,Shell还会使用第二提示符来等待用户完成命令的输入。默认的第二命令提示符是>,保存在PS2变量,可以随意修改。

示例:

$echo"thisisa>test"thisisatest$$PS2="secondaryprompt->"$echo"thisisasecondaryprompt->test"thisisatest$3.6.5常用环境变量变量描述DISPLAY用来设置将图形显示到何处。HOME当前用户的主目录。IFS内部域分隔符。LANGLANG可以让系统支持多语言。例如,将LANG设为pt_BR,则可以支持(巴西)葡萄牙语。PATH指定Shell命令的路径。PWD当前所在目录,即cd到的目录。RANDOM生成一个介于0和32767之间的随机数。TERM设置终端类型。TZ时区。可以是AST(大西洋标准时间)或GMT(格林尼治标准时间)等。UID以数字形式表示的当前用户ID,Shell启动时会被初始化。

Linuxyum命令PartSeven3.7何为Linuxyum?

Linuxyum(YellowdogUpdater,Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。Linuxyum的功能?Linuxyum基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

Linuxyum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁。Linuxyum语法:

yum[options][command][package...]

其中options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程);command:要进行的操作;package:安装的包名。Linuxyum常用命令包括:1.yumcheck-update;2.yumupdate;3.yuminstall<package_name>;4.yumupdate<package_name>;5.yumlist;6.yumremove<package_name>;7.yumsearch<keyword>;8.yumcleanpackages;9.yumcleanheaders;10.yumcleanoldheaders:.......

Linuxapt命令PartEight3.8

Linuxapt命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令十分简洁。Linuxapt语法如下:

apt[options][command][package...]Linuxapt常用命令包括:1.sudoaptupdate。2.sudoaptupgrade。3.aptlist–upgradeable。4.sudoaptfull-upgrade。5.sudoaptinstall<package_name>。6.sudoaptinstall<package_1><package_2><package_3>。7.sudoaptupdate<package_name>。8.sudoaptshow<package_name>。9.sudoaptremove<package_name>。

.......本章小结PartNine3.9

Linux开放源代码、易于移植、资源丰富、免费等优点,使得它除了在服务器和PC桌面端之外的嵌入式领域越来越流行。更重要的一点,由于嵌入式Linux与PCLinux源于同一套内核代码,只是裁剪的程度不一样,这使得很多为PC开发的软件再次编译之后,可以直接在嵌入式设备上运行。嵌入式Linux系统原理与应用第4章嵌入式Linux开发环境搭建目录4.1vi编辑器4.2PC端设置:超级终端设置4.3虚拟机及系统配置服务4.4本章小结在进行嵌入式Linux开发之前,需搭建基于Linux的嵌入式系统开发工作平台。该平台从硬件上分析包括主机端(也叫宿主机端)和目标机(也叫目标开发板)。在主机端通常采用PC机结合“虚拟机+Linux”的开发模式,在目标机端采用基于有较强计算能力和具有MMU(内存管理单元)的硬件平台(比如当前最主流的ARM架构)的开发环境,然后完成对于该目标机平台的嵌入式Linux内核移植、文件系统制作工作,以确保目标机平台具有合适的工作环境。在此基础上,开发者可在主机端进行应用程序编辑,构建交叉编译工具链,程序下载及调试等重要工作。

vi编辑器PartOne4.1vi是Linux中最常用的文本编辑器,被认为是事实上的标准编辑器,Vim是

Vi

improved的缩写,是vi的改进版,在vi的基础上增加了正则表达式的查找、多窗口的编辑等功能4.1.1进入vi编辑器命令描述vifilename如果filename存在,则打开;否则会创建一个新文件再打开。vi-Rfilename以只读模式(只能查看不能编辑)打开现有文件。viewfilename以只读模式打开现有文件。示例:$vitestfile|~"testfile"[NewFile]竖线|代表光标的位置;波浪号~代表该行没有任何内容。1.普通模式普通模式下,从键盘输入任何字符都被当作命令来解释。普通模式下没有任何提示符,输入命令后立即执行2.编辑模式编辑模式主要用于文本的编辑。该模式下用户输入的任何字符都被作为文件的内容保存起来,并在屏幕上显示出来。3.命令模式命令模式下,用户可以对文件进行一些高级处理,如字符串查找、替换、显示行号等。4.1.2

工作模式4.1.3退出vi编辑器退出命令说明q如果文件未被修改,会直接退回到Shell;否则提示保存文件。q!强行退出,不保存修改内容。wqw命令保存文件,q命令退出vi,合起来就是保存并退出。ZZ保存并退出,相当于wq,但是更加方便。注意:vi编辑文件时,用户的操作都是基于缓冲区中的副本进行的。如果退出时没有保存到磁盘,则缓冲区中的内容就会被丢失。4.1.4移动光标命令描述k向上移动光标(移动一行)j向下移动光标(移动一行)h向左移动光标(移动一个字符)l向右移动光标(移动一个字符)

典型移动光标命令注意:vi是区分大小写的,输入命令时注意不要锁定大写。4.1.5控制命令命令描述CTRL+d向前滚动半屏CTRL+f向前滚动全屏CTRL+u向后滚动半屏CTRL+b向后滚动整屏CTRL+e向上滚动一行CTRL+y向下滚动一行CTRL+I刷新屏幕控制命令4.1.6编辑文件命令描述i在当前光标位置之前插入文本I在当前行的开头插入文本a在当前光标位置之后插入文本A在当前行的末尾插入文本o在当前位置下面创建一行O在当前位置上面创建一行编辑文件命令4.1.7删除字符命令说明x删除当前光标下的字符X删除光标前面的字符dw删除从当前光标到单词结尾的字符d^删除从当前光标到行首的字符d$删除从当前光标到行尾的字符D删除从当前光标到行尾的字符dd删除当前光标所在的行删除字符命令4.1.8修改文本命令描述cc删除当前行,并进入编辑模式。cw删除当前字(单词),并进入编辑模式。r替换当前光标下的字符。R从当前光标开始替换字符,按Esc键退出。s用输入的字符替换当前字符,并进入编辑模式。S用输入的文本替换当前行,并进入编辑模式。修改文本命令4.1.9粘贴复制命令描述yy复制当前行nyy复制n行yw复制一个字(单词)nyw复制n行p将复制的文本粘贴到光标后面P将复制的文本粘贴到光标前面:setbf忽略输入的控制字符,如BEL(响铃)、BS(退格)、CR(回车)等。复制粘贴命令输入!命令即可运行Linux命令

例如保存文件前,输入:!ls即可列出当前目录下的文件,可查看该文件是否存在。4.1.10运行命令PC端设置:超级终端设置PartTwo4.2

通过PC的串口和目标开发板进行交互,需要使用一个终端程序。Windows超级终端的设置:(1)打开“开始->程序->附件->通讯”菜单的“超级终端”选项,出现询问“默认Telnet程序”的界面,选择“否”选项之后,会弹出“位置信息”的界面,填入区号号码后,点击“确定”选项后继续。(2)在“连接描述”界面输入图标的名称,这里可输入“超级终端”,选择好图标后,点击“确定”继续。(3)出现“连接到”界面,提示请选择所连接的comN,N代表连接的是PC的物理串口序号,由于本次使用的是PC的COM1口,所以这里选择的是COM1,点击“确定”继续。4.2.1设置超级终端(4)如图4-1所示出现“COM1属性”界面,这里设置“波特率:115200,数据位:8,奇偶校验:无,停止位:1,数据流控制:无”,然后点击“确定”继续。(5)出现超级终端窗口,点击“文件”菜单的“保存”选项,保存刚才设置的超级终端,以便后续使用。超级终端端口设置1.向PC主机发送文件(1)在超级终端窗口点击鼠标右键,在弹出菜单中选择“接收文件”选项。(2)在“接收文件”的界面中点击“接收”按钮继续。4.2.2使用串口和PC实现文件互传(3)在超级终端输入“sz/root/Documents/NewDivide.mp3”命令,开始向PC传送位于“/root/Documents/”目录下面的“NewDivide.mp3”文件:(请注意在敲命令的时候必须严格按照大小写和空格)。(4)发送完毕之后,系统会自动保存该文件到刚才设置的目录里面。2.向实验平台发送文件(1)在超级终端里面输入“rz”命令,开始接收从PC传过来的文件。(2)在超级终端窗口中,点击鼠标右键,在弹出的菜单中选择“发送文件”。(3)在出现的“发送文件”的窗口,点击“浏览”按钮然后定位要发送的文件。点击“发送”按钮,然后就可以开始发送文件到当前目录下面。虚拟机及系统配置服务PartThree4.3虚拟机(VirtualMachine)指通模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。嵌入式Linux系统的开发需要主机端具有Linux环境,通常我们会采用“虚拟机+Linux”的主机端开发境式。1.虚拟机准备(1)打开VMware选择新建虚拟机4.3.1虚拟机及其虚拟工具安装(2)典型安装与自定义安装2.虚拟机兼容性选择VMware向上兼容3.操作系统的选择4.处理器与内存的分配处理器分配

虚拟机内存配置5.网络连接类型的选择6.指定磁盘容量7.取消不需要的硬件8.点击完成,已经创建好虚拟机虚拟机vm-tools工具的安装:虚拟机vm-tools工具是虚拟机为数据共享而开发的一种功能。Linux系统中共享的数据,默认是在/mnt/目录下,挂载节点为/mnt/hgfs下。本节以安装脚本和安装rpm软件包两种方法实现文件共享。在虚拟机菜单选择中“虚拟机”-->“安装VMwareTools”1.用tar包安装方法TarxvfzVMwareTools-7.8.4-126130.i386.tar.gz–C/opt进入解压目录运行:./Vxxxx.pl2.用rpm包安装方法[root@localhostcdrom]#rpm-ivhVMwareTools-7.8.4-126130.i386.rpm设置共享目录,Windows中的目录为主机中显示的路径。Linux中对应目录为/mnt/hgfs/name中路径。这两个路径的文件内容是相同,也就是说将windows中的目录挂载到Linux中的/mnt/hgfs下VMware下配置网络:1.通过虚拟机菜单项“编辑”“虚拟网络编辑器”打开虚拟机网络配制界面。2.通过桥接的方式,将实际的物理网卡配制成直连网络。4.3.2虚拟机下配制网络3.在虚拟机中的Linux系统中配制静态IP地址,菜单项“system”“network”。4.打开网络地址配制界面,编辑IP地址。5.添加相应的静态IP地址6.重启网络使之生效。

/etc/init.d/networkrestart7.上述操作设置了固定的IP地址,有时需要对IP地址作临时的修改,则可以使用以下命令。

Ifconfigeth030(临时的IP地址)up8.验证生效成功后的IP地址何为FTP,有何作用?FTP(FileTransferProtocol,文件传输协议)包括两个组成部分,其一为FTP服务器,其二为FTP客户端。服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。4.3.3配置PC机Linux的FTP服务1.测试系统是否安装相应软件服务包setup,在工具选项中选择“系统服务”,找到其中的tftp查找是否有启动tftp

netstat

-a|grep

tftp下载安装rpm安装包,并安装

rpm

-ivh

tftp******2.修改配制文件编辑配置文件。可以使用如下命令。

vi

/etc/xinet.d/tftp或者是如下命令。

gedit/etc/xinet.d/tftp在该文件中将对应条目修改为:

disable=no

server_args=-s/tftpboot(所设置的tftp目录,可根据需要手动新建)查看根目录下是否有tftpboot目录

#mkdirtftpboot

#chmod777tftpboot(给予服务器目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论