1Welcome!嵌入式Linux系统培训Linux操作系统入门2一周课程安排一、Linux操作系统结构;常用的LinuxShell命令二、开发环境使用(ultraedit、nfs、samba、超级终端(wins)、minicom(linx))Shell编程实验三、编译器GCC使用;调试器GDB;项目管理工具MAKE标准I/O开发,文件I/O操作编程四、实验:设置编译环境;文件I/O实验(包括如何实验GCC,MAKE)3Linux是什么?Linux是一种计算机操作系统和它的内核的名字。它也是自由软件和开放源代码发展中最著名的例子。4Linux是一种?Linux是一种Unix类操作系统Unix类?5Linux的诞生1991年,LinusTorvalds还是芬兰赫尔辛基大学的一名学生,最初用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从Minix中得到灵感,发誓要写一个比Minix更好的Minix,于是开始写了一些硬件的设备驱动程序、一个小的文件系统……这样0.0.1版本的Linux就出来了,但是他必须在有Minix的机器上编译以后才能玩,这时候的Linus已经完全“走火入魔”了,决定完全脱离Minix,于是在1991年10月5号发布了Linux0.0.2版本,这个版本已经可以运行bash(一种用户与操作系统内核通讯的软件)和gcc(GNUC编译器)了……6Linux的编年史1.1991年11月,芬兰赫尔辛基大学的学生LinusTorvalds写了个小程序,取名为Linux,放在互联网上。1993年,在一批高水平黑客的参与下,诞生了Linux1.0版2.1994年,Linux的第一个商业发行版Slackware问世3.1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由OpenLinux公司打包)符合POSIX标准4.1999年起,多种Linux的简体中文发行版相继问世。国内自己创建的有BluePointLinux、FlagLinux、XtermLinux等,美国有Xlinux、TurboLinux等5.2001年,Linux2.4版内核发布6.2003年,Linux2.6版内核发布7.现在i.市场上出现多种Linux发行版ii.Linux广泛用于桌面系统、嵌入式系统、网络服务器系统iii.众多大厂商参与Linux的开发工作,Linux可用软件越来越多7开启你的Linux旅途……8第一步如何使用Vmware打开RedHatLinux演示….9Linux的启动与初始化LinuxBootStopBIOSopenthepowerkernel/bootlilo/grabmingettyinitshelllogin-linuxperationLogonprogram引导启动第一个进程10第二步:登陆Linux系统终端模式—LinuxLogin—Password:—终端提示符$#Xwindow模式RedHatLinuxrelease7.3(Valhalla)Kernel2.4.18-3onan1686localhostlogin:rootPassword:123456localhostlogin:rootPassword:_LastLogin:SunSep1120:Youhavenewmail.[root@localhostroot]#_localhostlogin:sunkangPassword:_[sunkang@localhostsunkang]$11Linux:登陆与退出logout:退出登录(exit)reboot:重启系统shutdown:关闭系统poweroff:关闭系统halt:系统挂起12第三步:如何启动终端在菜单中,选择“系统设置”-”终端”13开始使用“终端”下面将介绍的是:1、Linux操作系统的根文件系统(目录)2、Linux操作系统的系统文件结构3、常用的Linux操作系统shell命令141、Linux操作系统的根文件系统FHS:FilesystemHierarchyStandardFHS:规范档案目录的命名及存放标准大多数Linux系统遵循FHSLinux:目录&路径目录:Directory...路径-绝对路径例:/usr/src/linux15根文件系统基本文件系统结构至少含有以下目录:/dev、/proc、/bin、/etc、/lib、/usr、/tmp最基本的应用程序,如sh、ls、cp、mv等最低限度的配置文件,如rc.d、inittab、fstab等设备:/dev/hd*、/dev/tty*、/dev/fd0基本程序运行所需的库函数161、Linux操作系统的根文件系统以Redhat为例/bin-linux常用的命令,如cp,ls,ping,mount,vi,tar,kill,grep,rpm,dd,ps,ln,gzip,cat等/boot-启动文件,如vmlinuz/dev-设备文件,如fd0(软盘),hda(第一硬盘),hdal,hdb,sda,sdal,cdrom(hdc),mouse(psaux),等;hd-harddisk;sd-scsi/etc-配置文件,如hosts,lilo.conf,inittab,rc,d(dir),samba/smd.conf等17根文件系统/home,/root-每个用户在home下有一个自己的目录。-root的在/root-权限和保护/lost+found-Lost?found!一些丢失的文件可能可以在这里找到/lib-共享库相关文件/mnt-mount文件系统到这个目录如cdrom,floppy18根文件系统/var-执行中记录数据/proc-内存文件,报告程序执行的在线动态信息-如进程id数字目录,sys,net等(/proc/sys/net/目录主要包括了许多网络相关的主题,例如:appletalk/,ethernet/,ipv4/,ipx/,及ipv6/。通过改变这些目录中的文件,网络管理员能够在系统运行时调整相关网络参数)/sbin-启动时需要,系统管理员程序工具、配置等-如fsck(修复分区),lilo(安装引导程序),init(内核启动的第一个用户进程),fdisk等/tmp-临时文件夹/usr-用户应用程序和文件192、Linux文件系统结构应用程序存储设备RelserFSVFS文件访问请求文件系统EXT3设备驱动程序NTFSISO9660VirtualFileSystem是Linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口。它提供了内核中的一个抽象功能,允许不同的文件系统共存。VFS提供统一的接口(open,read,write...)访问不同的实际文件系统,所以Linux系统可以同时支持多种文件系统一个文件系统通常占用一个逻辑分区20EXT2-TheSecondExtendedFileSystemEXT2文件系统的整体结构和布局启动扇区块组块组M块组N超级块文件系统组描述符表块位图inode位图inode表数据块超级块:文件系统基本信息的描述,包括文件系统大小,状态组描述符:描述每个块组的控制和统计信息I节点:用于描述一个文件或目录、模式、拥有者信息、文件大小、时间标志、数据块指针21EXT3EXT2的加强版本:EXT3EXT3是一种日志文件系统:它会将磁盘的写入动作完整记录在磁盘的某个区域上,以免突然情况下发生不一致现象。资料有效性资料完整性tune2fs:将ext2文件系统的分区转移成ext3文件系统的分区22设备也是一个文件设备命名第一个软驱/dev/fd0第二个软驱/dev/fd1第一个硬盘/dev/hda第一个硬盘第一个分区/dev/hda1第一个硬盘第二个分区/dev/hda2第一个硬盘第三个分区/dev/hda3第一个硬盘第四个分区/dev/hda4第一个硬盘第一个逻辑分区/dev/hda5第一个硬盘第二个逻辑分区/dev/hda6依次类推......第二个硬盘/dev/hdb依次类推......233、常用的Linux操作系统shell命令内核信息关于当前内核的基本信息-uname命令:uname–a(显示内核基本信息):例如:2.4.18内核版本-major.minor.patchlevel{核心版本.主号(偶数为稳定版本).第几次的修改(从0开始)}内核源文件所在目录-内核源码通常被置于:/usr/src/linux下24目录相关的命令cd:changedirectory,切换到其他目录—格式:cddirectory例:#cd/usrpwd:presentworkingdirectory,显示当前路径—格式:pwd25实例进入/usr进入/usr/src/linux1、cdsrc/linux2、cd./src/linux3、cdsrc;cdlinux回到/usr1、cd/usr2、cd../..(回到根目录)进入/home1、cd../home26lsls命令用于显示目录内容,类似DOS下的dir。ls[options][filename]主要参数:-a,--all:列出所有文件,包括隐藏文件;-l:使用较长格式列出信息;-m:所有项目以逗号分隔,并填满整行行宽;-R,--recursive:同时列出所有子目录层;蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,灰色表示是其他格式文件。ls最常使用的是ls-l。其别名为ll。27文件操作相关的命令mkdir:makedirectory,创建一个文件夹-如#mkdirtemprmdir:removedirectory,删除目录(要求目录是空的)-如#rmdirtemp28cpandmvcp[option](可有可无)源地址目的地址如:cpfile1file2将文件file1复制成file2。cpfile1dir1将文件file1复制到目录dir1下。cp/tmp/file1file2cp–rdir1dir2复制整个目录。mv[option]源地址目的地址mvfile1file2将文件file1更名为file2。mvfile1dir1将文件file1移到目录dir1下。mvdir1dir2将目录dir1更改为目录dir2。29rmrmfile1删除文件名为file1的文件。rmfile?删除文件名中有五个字符且前四个字符为file的所有文件。rmf*删除文件名中以f为字首的所有文件。rm–rdir1删除目录dir1及其子目录下所有文件。rm–rfdir1不须确认,--force(强制)30filefile通过探测文件内容判断文件类型。file[option]文件名使用file命令可以知道某个文件究竟是二进制的可执行文件,还是ShellScript文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。#filegrapgrap:Englishtextfile命令不能探测包括图形、音频、视频等多媒体文件类型。31帮助命令man:用户手册(mannual)-手册的章节-格式:mancommand-#manman#man-S2readinfo:读取info版的帮助文档-格式:infocommand#infoinfowhatis:从whatis数据库里找某个命令的简单描述-格式:whatiscommand#whatismanApropos:从whatis数据库中找某个字符串-格式:aproposkeyword#aproposprint--help:命令参数,显示简单的用户帮助-格式:command--help32lnln命令用来在文件之间创建链接ln[option]源文件[链接名]-s:进行软链接(S