Linux结构与基础指令.ppt
第二课 Linux结构与基础指令,学习目标,Linux 体系结构,Linux 操作系统的组成:内核Shell文件系统实用程序,命令、程序或shell脚本,shell,用户空间,内核空间,系统调用(system calls),文件系统,cache,I/O,内存管理,调度,中断异常处理,Linux内核结构,app1,App2,.,用户空间,C Library,System call interface,progressmanagement,memorymanagement,filesystemsupport,Devicecontrol,Networking,Filesystem type,CPU supportcode,CPU/MMUsupport code,Stroagedevicers,Characterdevice drives,Networkdevice drives,linux 启动过程,设备加电,BIOS自检,引导启动,装载linux内核,系统初始化,用户登陆,文件系统,exe2文件系统ext2文件系统(即second extended filesystem)是Linux默认直接支持的文件系统。ext2文件系统和其他现代Unix使用的文件系统非常相似,但更接近于BSD系统所用的Berkeley Fast Filesystem。ext2文件系统的最大容量是4 TB,但目前它的最大文件大小被Linux内核限制为2 GB。ext2的核心是两个内部数据结构,即superblock和inode。,文件系统(续),-superblock是一个包含文件系统重要信息的表格,比如标签、大小、inode的数量等,它是对文件系统结构的基础性的、全局性的描述。因此,没有了superblock的文件系统将不再可用。由于这个原因,文件系统中不同位置存放着superblock的多个副本。-inode是基本的文件级数据结构,文件系统中的每一个文件都可以在其中一个inode中找到其描述。inode描述的文件信息包括:文件的创建和修改时间,文件大小,实际存放文件数据的块列表,等等。对于较大的文件,块列表可能包含附加数据块列表的磁盘位置(称为间接块),甚至有可能出现二重或三重的间接块列表。文件名字通过目录项(Directory Entry)关联到inode,目录项由“文件名字-inode”对构成。,基础文件管理指令,ls功能说明:列出目录内容。语法:ls-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX-I-T-w-block-size=-color=-format=-full-time-help-indicator-style=-quoting-style=-show-control-chars-sort=-time=-version文件或目录.补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。,ls命令,常用的选项如下:-a 显示指定目录下所有子目录与文件,包括隐藏文件。-A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和“.”。-c 按文件的修改时间排序。-C 分成多列显示各项。-d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选项一起使用,以得到目录的详细信息。-i 在输出的第一列显示文件的i节点号。-l 以长格式来显示文件的详细信息。这个选项最常用。-R 递归式地显示指定目录的各个子目录中的文件。-s 给出每个目录项所用的块数,包括间接块。,ls命令,敲入ls l,则结果如下drwx-14 student student 4096 11月 17 16:58 student第一个字符表示文件类型,它可以是下述类型之一:-普通文件、d 目录、l 符号链接、b 块设备文件、c 字符设备文件2.后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读、写和执行权限。各权限如下所示:r 读w 写x 执行。对于目录,表示进入权限。3.注意,linux文件系统不是根据后缀来执行文件的,而是根据此文件有没有执行权限。,ls命令,列出目录下所有文件,包含隐藏文件rootlocalhost#ls la第一段文件种类及权限,也就是类似这样的-rw-r-r 第二段 硬链接个数第三段、第四段 所属用户、组第五段 文件或目录所占用的字节数第六段 最后访问时间第七段 文件名,ls命令,仅查看目录的属性-d参数rootlocalhost/#ls-ld/etcdrwxr-xr-x 54 root root 4096 Nov 19 14:57/etc,ls命令,查看文件或目录的inode节点,-i参数的运用rootlocalhost#ls-li/root 列出目录和文件的inode节点,关于inode节点,后面会详细描述,ls命令,ls的-F参数的示例-F或-classify在执行文件、目录、Socket、符号连接、管道名称后面,各自加上“*”,“/”,“=”,“”,|号。rootlocalhost root#ls-F/bin/dev/home/lib/misc/opt/root/tmp/var/boot/etc/initrd/lost+found/mnt/proc/sbin/usr/,ls命令,通配符在ls命令中的应用*代表0个或多个字符 内部包括任何字符?任何单个字符例:显示以i开头的所有文件,在/root目录中的;rootlocalhost#ls/root/i*显示以数字开头的所有文件;rootlocalhost root#cp install.log 1rootlocalhost root#lsrootlocalhost root#ls 0-9*?通配符的示例:rootlocalhost root#cp install.log I nstall.llgrootlocalhost root#ls*.l?ginstall.llg install.log,ls命令,获得ls 的帮助rootlocalhost#ls-helprootlocalhost#man lsrootlocalhost#info ls,cd命令,语法:cd目的目录说明:cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。.父目录.当前目录/根目录主目录,pwd命令,显示工作目录语法:pwd-help-version补充说明:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。参数:-help在线帮助。-version显示版本信息。每个用户的主目录存放在$HOME环境变量中。echo$HOME,mkdir命令,创建一个目录(类似MSDOS下的md命令)语法:mkdir 选项 dirname 说明:该命令创建目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或 文件名称。命令中各选项的含义为:m 对新建目录设置存取权限。也可以用chmod命令设置。-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。,mkdir命令,参数-p 的应用示例创建一个目录linuxsir,并且linuxsir目录下包含子目录sirdoc,sirdoc目录下还有 redhat目录;rootlocalhost#mkdir-p linuxsir/sirdoc/redhat,mkdir命令,参数-m 的应用示例在目录创建之时就给其授权了;rootlocalhost#mkdir-m 644 sundirrootlocalhost#mkdir-m 755 moondirrootlocalhost#mkdir-m 000 beinandirrootlocalhost#ls-ld sundir moondir beinandird-2 root root 4096 04-20 11:01 beinandirdrwxr-xr-x 2 root root 4096 04-20 11:01 moondirdrw-r-r-2 root root 4096 04-20 11:00 sundir关于文件权限指令chown稍后详细解释,rmdir命令,删除空目录语法:rmdir 选项 dirname 说明:删除目录注意,一个目录被删除之前必须是空的。rm-r 命令可代替 rmdir。命令中各选项的含义为:-p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。,rmdir命令,-p 参数的使用rootlocalhost#mkdir-p linuxsir/sirdoc/redhat/rootlocalhost#rmdir-p linuxsir/sirdoc/redhat/rootlocalhost#ls linuxsir ls:linuxsir:没有那个文件或目录,cp命令,语法:cp 选项 源文件或目录、目标文件或目录 常用选项含义如下:-a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。-d 拷贝时保留链接。-f 删除已经存在的目标文件而不提示。-i 要提示要求用户确认。-R 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。-b删除,覆盖目标文件之前的备份,备份文件会在字尾加上一个备份字符串。,cp命令,参数-i的示例rootlocalhost root#cp-i install.log aarootlocalhost root#cp-i install.log aacp:overwrite aa?y注:人机交互在数-i的运用;如果源文件复制到目标文件,如果目标文件存在,则提示警告;,cp命令,参数-a的示例及说明把源目录复制到另外的一个目标,相当于克隆了一个目录,源目录和目标目录在用户组、权限及修改或访问时间保持一致;rootlocalhost#cp-a mydir youdir注:复制目录mydir 到youdir,如果yourdir目录不存在,则创建。并且把mydir中所有的文件下级子目录都复制到 yourdir目录中。-a 参数等同于-dpR,并且源目录和目标目录的属性(用户组、权限、最后访问及修改时间)都一致;,cp命令,参数-b的示例应用rootlocalhost root#cp install.log ddrootlocalhost root#cp-bi install.log ddcp:overwrite dd?Yrootlocalhost root#ls-lh dd-rw-r-r-1 root root 15K Nov 19 17:00 ddrootlocalhost root#ls-lh dd*-rw-r-r-1 root root 15K Nov 19 17:00 dd-rw-r-r-1 root root 15K Nov 19 16:59 dd,cp命令,把多个文件复制到目录目录中示例把位于用户当前目录下的fonts.dir、Kernel.rpm和Plist文件,复制到当前用户所处的目录下的sun目录中;rootlocalhost#cp fonts.dir Kernel.rpm Plist sun/rootlocalhost#ls sun/fonts.dir Kernel.rpm Plist,find命令,功能说明:查找文件或目录。语法:find-name/path file,补充说明:find指令用于查找符合条件的文件。任何位于参数之前的字符串都将被视为欲查找的目录。,grep指令,功能说明:查找文件里符合条件的字符串。语法:grep-abcEFGhHilLnqrsvVwxy-A-B-C-d-e-f-help范本样式文件或目录.补充说明:grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。grep-ir chars 在当前目录的所有文件查找字串chars,并且不在意大小写,cp命令,复制目录时-R参数的应用在用户当前操作的目录中,有mydir目录,想把mydir复制为medir(在复制之前medir是不存在的)。rootlocalhost#cp-R mydir medir注:如果medir目录不存在,则创建medir目录,并且medir目录中的内容和mydir中的一样;如果您把-R参数换成-a参数,会有什么不同?,mv命令,语法:mv 选项 源文件或目录,目标文件或目录 命令中各选项的含义为:-i 交互方式操作。询问是否覆盖。-f 禁止交互操作。如果目标文件重名,不提示,直接覆盖。,mv命令,rootlocalhost root#mkdir aarootlocalhost root#mv*aamv:cannot move aa to a subdirectory of itself,aa/aarootlocalhost root#lsaarootlocalhost root#cd aarootlocalhost aa#lsanaconda-ks.cfg install.log rootlocalhost aa#mv*./.rootlocalhost aa#lsmv 也能和通配符结合一起使用,这样能把相似特征的文件移动到某处;,mv命令,移动以数字开头的文件或目录到 root目录下的tmp目录中;rootlocalhost#mv 0-9*tmp/rootlocalhost#ls-lh tmp/总计 4.0K-rw-r-r-1 root root 21 04-19 15:06 234.txt-rw-r-r-1 root root 0 04-19 22:23 2kexe.txt-rw-r-r-1 root root 0 04-19 22:25 333.tot-rw-r-r-1 root root 0 04-19 22:23 6mns.doc,rm命令,删除文件及目录rm 选项 文件 如果没有使用-r选项,则rm不会删除目录。该命令的各选项含义如下:f 忽略不存在的文件,从不给出提示。r 指示rm将参数中列出的全部目录和子目录均递归地删除。i 进行交互式删除。,rootlocalhost#rm-i 123.sh 注:这是删除一个文件,用-i参数的示例,有警告提示;rm:是否删除一般空文件“123.sh”?Y如果您想终止rm命令,请按ctrl+c组合健退出rm;rootlocalhost#rm-ri mydir/rm:是否进入目录“mydir/”?yrm:是否进入目录“mydir/youdir”?yrm:是否删除一般文件“mydir/youdir/enteruml.sh”?如果您想没有任何警告信息的删除mydir目录下的所有文件及子目录,可以用-r和-f参数的组合;rootlocalhost#rm-rf mydir 删除目录下所有的内容,不提示(非常危险!)rm rf*,rm命令,基本系统管理与设置指令,进入Linux 系统有两种帐号:1root-超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。2普通用户-这个帐号供普通用户使用,可以进行有限的操作。用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:rootloclhost/root#这时就可以对系统做各种操作了。超级用户的提示符是“#”,其他用户的提示符是“$”。,useradd 命令,功能说明:建立用户帐号。语法:useradd 用户名。补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码。可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。建立一个用户则在/home目录下建立一个主目录。,passwd 命令,语法:passwd-dklS-u用户名称说明:passwd指令让用户可以更改自己的密码,而系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。参数:-d删除用户密码,仅能以root权限操作;-f 强制操作;仅root权限才能操作;-k设置只有在密码过期失效后,方能更新;-l 锁住用户无权更改其密码,仅能通过root权限操作;-S列出密码的相关信息,仅能通过root权限操作;-u解除锁定,仅能通过root权限操作。?如何能让linux接收简单密码答:用root设置,列出当前已登录的用户语法:who-Himqsw-help-versionami记录文件参数:-H显示各栏位的标题信息列。-u显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成.号,如果该用户已超过24小时没有任何动作,则标示出old字符串。-m此参数的效果和指定ami字符串相同。,who 命令,结束Linux 会话:注销,在此命令提示处键入exit 或 logout后结束了你当前的 Linux 会话。你也可按下+d 来结束此 Linux 会话,id 命令,显示用户的ID,以及所属群组的ID语法:id-gGnru-help-version用户名称参数:-g显示用户所属群组的ID。-G显示用户所属附加群组的ID。-n显示用户,所属群组或附加群组的名称。-r显示实际ID。-u显示用户ID。,清除屏幕,CLEAR指令,基本网络通讯指令,ifconfig功能说明:显示或设置网络设备。语法:ifconfig 网络设备down up-allmulti-arp-promiscadddelio_addrirqmediamem_startmetricmtunetmasktunnel-broadcast-pointopointIP地址补充说明:ifconfig可设置网络设备的状态,或是显示目前的设置。,基本网络通讯指令,ping 功能说明:检测主机。语法:ping-dfnqrRv-c-i-I-l-p-s-t主机名称或IP地址补充说明:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。,ping 命令(续),参数:-d 使用Socket的SO_DEBUG功能。-c 设置完成要求回应的次数。-f 极限检测。-i 指定收发信息的间隔时间。-I 使用指定的网络界面送出数据包。-l 设置在送出要求信息之前,先行发出的数据包。-n 只输出数值。-p 设置填满数据包的范本样式。-q 不显示指令执行过程,开头和结尾的相关信息除外。-r 忽略普通的Routing Table,直接将数据包送到远端主机上。-R 记录路由过程。-s 设置数据包的大小。-t 设置存活数值TTL的大小。-v 详细显示指令的执行过程。,备份压缩指令,tar功能说明:备份文件。补充说明:tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。,tar(续),参数:-c:建立一个压缩文件的参数指令(create 的意思);-x:解开一个压缩文件的参数指令!-t:查看 tarfile 里面的文件!特别注意,在参数的下达中,c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。-z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?-j:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!-f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!例如使用 tar-zcvfP tfile sfile就是错误的写法,要写成 tar-zcvPf tfile sfile才对喔!-p:使用原文件的原来属性(属性不会依据使用者而变)-P:可以使用绝对路径来压缩!-N:比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!-exclude FILE:在压缩的过程中,不要将 FILE 打包!,tar(续),范例一:将整个/etc 目录下的文件全部打包成为/tmp/etc.tar tar-cvf/tmp/etc.tar/etc=仅打包,不压缩!tar-zcvf/tmp/etc.tar.gz/etc=打包后,以 gzip 压缩 tar-jcvf/tmp/etc.tar.bz2/etc=打包后,以 bzip2 压缩特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用.tar 来作为辨识。#如果加 z 参数,则以.tar.gz 或.tgz 来代表 gzip 压缩过的 tar file#如果加 j 参数,则以.tar.bz2 来作为附档名,tar(续),范例二:查阅上述/tmp/etc.tar.gz 文件内有哪些文件?范例三:将/tmp/etc.tar.gz 文件解压缩在/usr/local/src 底下rootlinux#cd/usr/local/src范例四:在/tmp 底下,我只想要将/tmp/etc.tar.gz 内的 etc/passwd 解开而已rootlinux#cd/tmprootlinux tmp#tar-zxvf/tmp/etc.tar.gz etc/passwd范例五:将/etc/内的所有文件备份下来,并且保存其权限!rootlinux#tar-zxvpf/tmp/etc.tar.gz/etc,Linux 文件系统,Linux 文件系统,Linux 文件系统,Linux 文件系统,Linux中的文件命名,Linux中的文件命名:可以到256 个字符长;可包含除/外的特殊字符;可包含大写和小写字母;是大小写敏感;不应有空白或标记;,Linux中的文件的扩展名,Windows的文件类型根据文件的后缀就能判断文件的类型。在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性。但是现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。比如:、file.tgz、file.rar、file.gz、file.zip.这些是归档文件。要通过相应的工具来解压或提取;file.php 这个大家都知道吧,是能用php语言解释器进行解释,能用浏览器打开的文件;file.so 这类是库文件;file.doc file.obt 这是OpenOffice 能打开的文件;用一些工具创建的文件,其后缀也不相同,就看我们用什么工具了,比如 Gimp,gedit,OpenOffice 等工具,创建出来的文件后缀名也不一样。,Linux中的文件类型,1、在Linux系统中,目录和设备都被视为文件2、共有普通文件、目录、字符设备文件、块设备文件、符号链接文件 等,普通文件,rootlocalhost#ls-lh install.log-rw-r-r-1 root root 53K 03-16 08:54 install.log第一个符号是-,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具.或 cp工具等。这类文件的删除方式是用rm 命令。,目录文件,rootsz1 home#ls-lh总用量 4.0Kdrwx-14 student student 4.0K 11 17 21:40 student看到有类似 drwxr-xr-x,这样的文件就是目录,目录在Linux是一个比较特殊的文件。创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。,字符设备或块设备文件,进入/dev目录,列一下文件,会看到类似如下的;rootlocalhost#ls-la/dev/ttycrw-rw-rw-1 root tty 5,0 04-19 08:29/dev/ttyrootlocalhost#ls-la/dev/hda1brw-r-1 root disk 3,1 2006-04-19/dev/hda1第一个字符是 c,这表示字符设备文件。比如猫等串口设备;第一个字符是b,这表示块设备,比如硬盘,光驱等设备;这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。,套接口文件,当我们启动MySQL服务器时,会产生一个mysql.sock的文件。rootlocalhost#ls-lh/var/lib/mysql/mysql.socksrwxrwxrwx 1 mysql mysql 0 04-19 11:12/var/lib/mysql/mysql.sock注意这个文件的属性的第一个字符是 s。我们了解一下就行了。,符号连接文件,例如:rootsz1 root#ls-lhlrwxrwxrwx 1 root root 15 11月17 22:44 aa-anaconda-ks.cfg-rw-r-r-1 root root 1.2K 2007-11-17 anaconda-ks.cfg-rw-r-r-1 root root 18K 2007-11-17 install.log-rw-r-r-1 root root 3.0K 2007-11-17,inode,inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘.)被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode 就相当于这本书前面的目录,一本书有很多的内容,如果想查找某部份的内容,我们可以先查目录,通过目录能最快的找到我们想要看的内容。当我们用ls 查看某个目录或文件时,如果加上-i 参数,就可以看到inode节点了;rootlocalhost#ls-li lsfile.sh2408949-rwxr-xr-x 1 root root 7 04-21 12:47 lsfile.shlsfile.sh 的inode值是 2408949;查看一个文件或目录的inode,要通过ls 命令的的-i参数。,inode,inode 相同的文件是硬链接文件。在Linux 文件系统中,inode值相同的文件是硬链接文件。不同的文件名,inode可能是相同的,一个inode值可以对应多个文件。在Linux中,链接文件是通过ln工具来创建的。,创建硬连接,用ln 创建文件硬链接的语法:#ln 源文件 目标文件例如:为sun.txt 创建其硬链接sun002.txt。rootlocalhost#ls-li sun.txt 注:查看sun.txt的属性;2408263-rw-r-r-1 root root 29 04-22 21:02 sun.txtrootlocalhost#ln sun.txt sun002.txt rootlocalhost#ls-li sun*2408263-rw-r-r-2 root root 29 04-22 21:02 sun002.txt2408263-rw-r-r-2 root root 29 04-22 21:02 sun.txt创建了硬链接sun002.txt创建后,这个值变成了2。inode值相同的文件,他们的关系是互为硬链接的关系.当修改其中一个文件的内容时,互为硬链接的文件的内容也会跟着变化。如果删除互为硬链接关系的某个文件时,其它的文件并不受影响。,创建软连接,语法:#ln-s 源文文件或目录 目标文件或目录rootlocalhost#ls-li linuxsir001.txt2408274-rw-r-r-1 root root 29 04-22 21:53 linuxsir001.txtrootlocalhost#ln-s linuxsir001.txt linuxsir002.txtrootlocalhost#ls-li linuxsir001.txt linuxsir002.txt2408274-rw-r-r-1 root root 29 04-22 21:53 linuxsir001.txt2408795 lrwxrwxrwx 1 root root 15 04-22 21:54 linuxsir002.txt-linuxsir001.txt对比一下节点:两个文件的节点不同;两个文件的归属的种类不同 linuxsir001.txt是-,也就是普通文件,而linuxsir002.txt 是l,它是一个链接文件;两个文件的读写权限不同 linuxsir001.txt 是rw-r-r-,而linuxsir002.txt的读写权限是 rwxrwxrwxlinuxsir002.txt 后面有一个标记-,这表示linuxsir002.txt是linuxsir001.txt的软链接文件。修改链接文件的内容时,就意味着我们在修改源文件的内容。源文件删除后,链接文件只存在一个文件名,因为失去了源文件,所以软链接文件也就不存在了。这一点和硬链接是不同的;如果一个链接文件失去了源,就意味着它已经不存在了;,小结,Linux 操作系统由内核、shell、实用程序、及应用程序组成熟练使用了Linux中的常用命令了解Linux中的文件组织结构,课后练习,在自己用户目录下练习Linux中的所有指令,