《命令与示例》PPT课件_第1页
《命令与示例》PPT课件_第2页
《命令与示例》PPT课件_第3页
《命令与示例》PPT课件_第4页
《命令与示例》PPT课件_第5页
已阅读5页,还剩198页未读 继续免费阅读

下载本文档

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

文档简介

1,第2章命令与示例,2,为什么要学习命令?,命令对于熟练使用Linux/Unix系统而言是必不可少的;命令行应用的可扩展性、灵活性更好;打破了使用Windows时一个鼠标“一点到底”的简单与乏味,它提供给用户更大的灵活性与想象空间;命令已成为Linux/Unix的典型标志,也已成为Linux/Unix的魅力所在。,3,本章主要内容,2.1常用命令与示例2.2管道与重定向2.3vi编辑器使用简介2.4正则表达式简介,系统目录简介Linux安装完毕后,在硬盘中会建立若干系统默认的目录:/bin:此目录放置操作系统所需使用的各种命令程序。/root:系统管理员专用的目录,亦即root帐号的专属目录。/boot:系统启动时必须读取的文件,包括系统核心文件。/dev:保存着外围设备代号的文件。/etc:保存与系统设置、管理相关的文件。/tmp:供全部用户暂时放置文件的目录/home:此目录用来保存用户的专属目录。/lib:保存一些共享的函数库。/usr:此目录包括许多子目录,用来存放系统命令、程序等信息。/var:Linux操作系统执行时,需要暂时记录的部分数据或临时文件,都会放置在这个目录里。/mnt:默认有/mnt/cdrom和/mnt/floppy两个目录在这里,文件系统的结构树型结构:倒长的树树型目录结构:Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树型结构组织起来,即常说的目录。也就是说,整个文件系统有一个“根”(root),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈,杈上也可以长出“叶子”。“根”和“杈”在Linux中被称为是“目录”或“文件夹”。而“叶子”则是一个个的文件。实践证明,此种结构的文件系统效率比较高。Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。以根目录为起点,所有其他的目录都由根目录派生而来。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。Linux目录提供了管理文件的一个方便途径。每个目录里面都包含文件。用户可以为特定的文件创建特定的目录,也可以把一个目录下的文件移动或复制到另一目录下,而且能移动整个目录,并且和系统中的其他用户共享目录和文件。根目录(系统目录)是Linux系统中的特殊目录。Linux是一个多用户系统,操作系统本身的程序存放在以根目录开始的专用目录中。目录:LINUX下的“目录”等同于WINDOWS的“文件夹”工作目录(也叫当前目录)用户在登录到Linux系统中之后,每时每刻都“处在”某个目录之中,此目录被称作工作目录或当前目录(WorkingDirectory)。工作目录是可以随时改变的。用户初始登录到系统中时,其主目录(HomeDirectory)就成为其工作目录。,用户主目录:是系统管理员增加用户时建立起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。,路径路径是指从树型目录中的某个目录层次到某个文件的一条道路。也就是描述一个文件或目录所处的位置,既是描述一个文件或目录在哪个目录中此路径的主要构成是目录名称,中间用“/”分开。某个文件在文件系统中的位置都是由相应的路径决定的。路径又分相对路径和绝对路径。绝对路径是指从“根/”开始描述的路径,也称为完全路径;相对路径是从用户工作目录开始的路径。应该注意到,在树型目录结构中到某一确定文件的绝对路径只有一条。绝对路径是确定不变的,/必须以“/”开头:/xxx/yyy/zzz/abc“/”在路径的最前头出现就表示是根目录,否则只是分隔符。相对路径从当前目录开始描述,则随着用户工作目录的变化而不断变化。/不能以“/”开头:yyy/zzz/abc子目录、父目录是相对的概念根目录:“/”;一个LINUX系统有且只有一个根目录。root,目录树:从根目录“/”开始并通过一系列的子目录向下扩展而成。当前目录(也叫工作目录):A是系统默认处理的目录。涉及目录、文件操作时,若不明确指定目录、路径,系统就对当前目录或当前目录下的文件做操作。B开机时,当前目录是登录用户的主目录,用户主目录是系统管理员增加用户时建立起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。例如:超级用户root登录后,当前目录是root用户的主目录/root。C同一个时刻有且只有一个目录可成为当前目录。D可通过cd命令改变当前目录E每个目录下面都固定有两个目录:一个是.表示是该目录自身,常在命令参数中表示当前目录。另一个是.表示是该目录的父目录,常在命令参数中用来表示当前目录的父目录。./.当前目录的父目录的父目录。F什么时候转换当前目录?当准备对某个目录或该目录下的文件或子目录,连续做多次命令操作时,应将当前目录转换到该目录,可提高工作效率。,9,2.1常用命令与示例,说明:Linux命令及其参数是严格区分大小写Linux文件名严格区分大小写,命令补齐(Command-LineCompletion):是指当键入的字符足以确定唯一的文件或目录时,只须按Tab键就可以自动补齐该文件名或目录名的剩下部分,例如要把目录/freesoft下的文件gcc-2.8.1.tar.gz解包,当键入到tarxvfz/freesoft/g时,如果此文件是该目录下唯一以g开头的文件,这时就可以按下Tab键,这时命令会被自动补齐为:tarxvfz/freesoft/gcc-2.8.1.tar.gz,11,2.1.1文件基本操作命令,1.ls命令ls命令的功能是显示指定目录下的文件目录清单相当于dos下的dir命令,而且其参数更加丰富多样。,1文件显示命令ls:lIsT显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。该命令的使用方式如下:ls选项文件目录列表ls命令中的常用选项如下:-a:显示所有文件及目录(ls规定将文件名或目录名中开头为“.”的视为隐藏档,一般不会列出,除非有-a参数选项)-c:按列输出,纵向排序-x:按列输出,横向排序-l:除文件名外,也将文件状态、权限、拥有者、文件大小等信息详细列出-t:根据文件建立时间的先后次序列出-A:同-a,但不列出.(目前目录)及.(父目录)-X:按扩展名排序显示-R:递归显示下层子目录-help:显示帮助信息-version:显示版本信息lsdrwxr-x-表示的含义是:d表示这条信息是目录-表示这条信息是个文件,ls列出当前目录下的文件和子目录。ls-versionls-help|morelscolor,14,(1)ls示例一不带参数user1server1$lsabchost.confphp.ini功能:显示指定目录中的文件清单,如果没有指定任何目录,则默认为当前目录。,15,(2)ls示例二显示隐含文件user1server1$ls-a.abc.bash_profile.emacshost.conf.viminfo.bash_logout.bashrc.gtkrcphp.ini.zshrc参数-a的功能:显示隐含文件。说明:若文件名以“.”开头,则认为是隐含的,进而普通的ls命令不显示以“.”开头的文件;所以要完全显示某目录下的文件清单,必须加上-a参数才行。,16,(3)ls示例三长格式输出user1server1$ls-ltotal60drwxrwxr-x2user1user14096Aug1709:10abc-rw-r-r-1user1user117Aug1709:04host.conf-rw-r-r-1user1user138450Aug1709:04php.ini参数-l的功能是:以长格式列表输出指定目录中的文件清单。,17,以上述输出中文件abc为例解释长格式输出的内容如下:文件类型文件权限连接数属主属组大小最近修改日期时间文件名drwxrwxr-x2user1user14096Aug1709:10abc,18,Linux中的文件类型,-:表示普通文件。d:表示目录文件,在Linux中目录也是文件,不仅如此,实际上在Linux中任何设备也可以被当作文件处理。l:表示这是一个符号链接的文件,实际指向另一个文件,类似windows的快捷方式b:表示块设备文件如硬盘的设备文件/dev/hda,其中字母a表示第一块,h表示IDE类型的硬盘,SCSI类型的硬盘用s表示;分区也有相对应的设备文件,如/dev/sdb3,表示第2块SCSI硬盘上的第3个分区。需要说明的是优盘也采用SCSI硬盘的设备文件名来表示。,19,Linux中的文件类型(续),c:表示字符设备文件,如/dev/tty1。p:表示管道文件。s:表示套接字文件。,20,关于文件权限的说明,Linux文件有三种典型的权限,即r读权限、w写权限和x执行权限。在长格式输出中在文件类型的后面有9列权限位,实际上这是针对不同用户而设定的,如下所示。属主的权限属组的权限其他用户的权限rwxrwxr-x,文件及目录访问权限的设置Linux系统上的每个文件和进程都属于特定的用户账号(称为文件和进程的属主)。如果没有得到属主的许可,那么其他用户就不能访问这些文件和进程。三种不同的用户类型能够访问一个文件或目录:文件的所有者(owner,或称属主)、文件所属的用户组(groupowner,或称属组)或系统中的其他用户。,一般权限对普通文件而言:r权限(rEAD,读取):具有打开并读取文件的内容的权限;w权限(wRITE,写入):具有删除、新增、修改文件内容的权限;x权限(ExCUTE,执行):允许具有执行文件的权限;对目录而言:x权限(ExCUTE,执行):允许用户具有进入或通过该目录,但不一定允许列出它的内容。r权限(rEAD,读取)和x权限(ExCUTE,执行)的结合才允许列出目录的内容。w权限(wRITE,写入)和x权限(ExCUTE,执行)的结合则允许在目录中创建、删除和重新命名文件。ls-l可显示文件目录的权限设置,-rwx-rw-rw-r-xdrwx-x-x以上lsl的显示结果的前十位中,第一位是文件目录的类型,“-”表示该项是个普通文件,“d”表示该项目是一个目录。其余九位是权限位,每3位为一组,第一组为所有者权限,第二组为属组权限,第三组为系统其他人权限。每组第一位为r位,第二位为w位,第三位为x位,有权限则标上相应权限代码r、w、或x,没有权限则用“-”表示。,23,(4)ls示例四递归显示user1server1$ls-R.:abchost.confphp.ini./abc:a1.txta2.txt参数-R的功能是:递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单。,24,练习以下几种用法:ls-lals-Ra/ls-Ral/etc,通配符基础通配符又称多义符:主要用于方便描述一批名字具有相同特征的文件或目录,以便成批处理。?:表示该位置可以是一个任意的单个字符。*:表示该位置可以是若干个任意字符。方括号charset:可替代charset集中的任何单个字符,如cChH:表示在文件的该位置中可出现任意单个的c或h字符的大小写形式。通配符集还能描述介于字符对之间的所有字符。如“a-z”就可以代替任意小写字母,而a-zA-Z则可替代任意字母。注意可替代的字符包括a到z和A到Z字符对之间的所有字符。rma*out*tmp?该命令可以删除一系列临时性的输出文件,如ab.out.temp1、ab.out.temp1等。如果需要显示nic-1.png,nic-2.png,nic-3.png,nic-4.png,nic-5.png,只须要在终端的命令提示符后输入:lsnic-1-5.pngls*.cls/home/*/*.clsn*.conflstest?.datlsabc*ls!abc*lsa-zA-z,26,2.pwd命令,示例:pwduser1server1$pwd/home/user1功能:显示当前目录。,27,3.mkdir命令,(1)mkdir示例一user1server1$mkdirabc功能:在当前目录下创建目录abc,28,(2)mkdir示例二创建多级目录user1server1$mkdir-pa/b/cuser1server1$lsRaa:ba/b:ca/b/c:功能:参数-p功能是如果要创建的目录的父目录不存在,则先创建其父目录,再创建该目录;如果指定的目录存在,则不影响原目录,也不会报错。在本示例中会连续创建a目录、a/b目录、a/b/c目录。,4.cd命令改变当前目录语法:cdnamecHANGEdIRECTORYname:目录路径,例如:cd改变当前目录位置至用户登录时的工作目录。cddir1改变当前目录位置至dir1目录下。cdmybin改变当前目录位置至此刻当前目录下的mybincd.改变当前目录位置至此刻当前目录的父目录。cd./user改变当前目录位置至以相对路径描述的user目录下。user是此刻当前目录的父目录下的另一个子目录。cd/./.改变当前目录位置至以绝对路径方式描述的目录位置下。cd/a/b/ccd-改变当前目录位置至以上一次的当前目录所在目录,30,(1)cd示例一切换工作目录user1server1$cd/varuser1server1var$pwd/var功能:将当前的工作目录切换为/var,31,(2)cd示例二切换到当前用户的主目录user1server1var$cduser1server1$pwd/home/user1功能:不带参数的cd命令直接将当前的工作目录切换为该用户的主目录。主目录又称为家目录,在RHEL中是在创建用户时,自动在/home下为用户创建一个用其用户名同名的目录,并将该目录的所有权划归给该用户所有。注意:字符“”代表(当前)用户的主目录。,32,5.touch命令,(1)touch示例一创建空文件user1server1$touchmyfileuser1server1$ls-lmyfile-rw-rw-r-1user1user10Aug1711:54myfile功能:如果myfile不存在,则创建一个大小为0字节名为myfile的空文件。,33,(2)touch示例二改变文件的最后修改时间再执行一次touchmyfileuser1server1$touchmyfileuser1server1$ls-lmyfile-rw-rw-r-1user1user10Aug1711:56myfile功能:如果myfile已存在,则将改变myfile的最后修改时间。,6.cp命令文件复制命令cp:cOpY相当于WINDOWS的复制+粘贴。Linux下的cp命令用于复制文件或目录,其命令格式如下:cp选项源文件或目录目标文件或目录参数说明如下:源文件:要拷贝的文件。目标文件:目标名。也可以是目录,这种情况下,源文件名作为目标文件名,而文件放在该目录下。源文件组:要拷贝文件的由空格分隔的列表。目标目录:目标目录。cp命令常用选项说明:-a在备份中保持尽可能多的源文件结构和属。-b作将要覆盖或删除文件的备份。-f删除已存在的目标文件。-i提示是否覆盖已存在的目标文件。-p保持原先文件的所有者,组权限和时间标志-r递归拷贝目录,把所有非目录文件当普通文件拷贝,指将目录之下的文件及子目录一起复制-R递归拷贝目录。,cpfile1file2将文件file1复制成file2cpx.txty.txtcpfile1dir1将文件file1复制到目录dir1下,文件名仍为file1。cp/bin/cpiomybincp/tmp/file1.将目录/tmp下的文件file1复制到当前目录下,文件名仍为file1。cp/bin/?sh.cp/usr/bin/yz*.cp/tmp/file1file2将目录/tmp下的文件file1复制到当前目录下,文件名为file2。cp/test/x.txty.txtcp-rdir1dir2复制整个目录。cp-r/etc/skel.,cp-r/test/xyzcpfile1file2dir1将file1、file2一起复制到dir1目录下:cpabcbcmydoc覆盖(overwrite):删除同一个目录下的原来的同名文件,37,user1server1$cp/etc/php.*abc功能:将/etc/目录下以php.开头的文件文件复制到目录abc中。说明:“*”是通配符,可以匹配多个字符;“?”只能匹配一个字符。,38,复制目录user1server1$cp-/etcabc功能:增加了参数-,就能将目录/etc下面的所有子目录和文件都复制到目录abc中。,7.mv命令移动文件mv:mOvE移动文件可使用mv命令。Mv命令还可改文件改名。该命令所使用语法形式有:mv-f-i文件1文件2mv-f-i目录1目录2mv-f-i文件列表目录命令中的参数说明如下:-f:通常情况下,目标文件存在但用户没有写权限时,mv会给出提示。本选项会使mv命令执行移动而不给出提示。-i:交互模式,当移动的目录已存在同名的目标文件名时,用覆盖方式写文件,但在写入之前给出提示。文件1:源文件名。文件2:目标文件名(新文件名)。目录1:源目录名。目录2:目标目录名(新目录名)。文件列表:用空格分隔的文件名列表。本选项用于文件保持它们的名字被移动到一个新目录。目录:目标目录。,40,mv示例将文件移动到目录中user1server1$mvmyfilemydir1功能:如果mydir1存在且是个目录,则将文件myfile移动到目录mydir1中。,41,mv示例文件改名user1server1$mvmyfilemyfile2功能:将文件(或目录)myfile改名为myfile2。,42,8.rmdir命令,删除目录语法:rmdir目录名rEmOVEdirECTORY。user1server1$rmdirmydir1功能:删除指定的空目录,该空目录必须没有文件和目录存在,否则无法删除。,9.rm命令文件的删除命令rm:rEmOVErm命令可从文件系统中删除文件及整个目录。rm命令所使用的命令格式如下:rm选项文件列表参数说明如下:常用命令的选项列表如表2-6所示。文件列表:希望删除的用空格分隔的文件列表,可以包括目录名。rm命令常用选项-r删除文件列表中指定的目录,若不用此标志则不删除目录-I指定交互模式。在执行删除前提示确认。任何以Y开始的响应都表示肯定;其他则表示否定。-f指定强行删除模式。通常,在删除文件权限可满足时rm提示。本标志强迫删除,不用提示。-V在删除前回显文件名。-指明所有选项结束。用于删除一个文件名与某一选项相同的文件。例如:假定偶然建立了名为-f的文件,又打算删除它,命令rm-f不起任何作用,因为-f被解释成标志而不是文件名;而命令rm-f能成功地删除文件。,44,(1)rm示例一删除文件user1server1$rmphp.ini功能:删除指定的文件php.ini。,45,(2)rm示例二删除目录user1server1$rm-rfabc功能:参数-r是递归的意思,即可以删除非空目录;参数-f是强制的意思。本例中abc为非空目录,读者可以尝试是否可用rmdir直接删除。,46,10.cat命令,(1)cat示例一显示文件内容user1server1$catmyfilehello,world功能:显示指定文件myfile的内容。,47,(2)cat示例二创建文件user1server1$catmyfile2WelcometoLinuxWorld!按ctrl+d结束输入功能:利用输出重定向符“”来创建简短的文本文件myfile2。,48,11more和less命令,$more/etc/httpd/conf/httpd.conf功能:分屏显示指定文件httpd.conf的内容,非常适合显示超过一屏的文本文件。每按一下空格键,向后翻一屏;每按一次回车键,向后翻一行。说明:与more功能很相似,只不过less功能更强大,支持PageUp键向前翻屏,及PageDown向后翻屏。,49,12.head命令,(1)head示例一显示文件头10行内容$head/etc/httpd/conf/httpd.conf功能:默认显示指定文件的头10行的内容。,50,(2)head示例二显示文件头n行内容$head-n19/etc/httpd/conf/httpd.conf功能:参数-n设置显示指定行数,本例会显示文件的头19行的内容。,51,13.tail命令,(1)tail示例一显示文件最后10行内容$tail/etc/httpd/conf/httpd.conf功能:默认显示指定文件的末尾10行的内容。,52,(2)tail示例二显示文件最后n行内容$tail-n12/etc/httpd/conf/httpd.conf功能:参数-n设置显示指定行数;本例会显示文件的末尾12行的内容。,53,2.1.2用户、组管理命令,Linux采用组来组织和管理用户在Linux中每个用户有唯一的用户标识符UID,该UID是一个无符号整数。同时每个用户也必须至少属于一个组,也有组标识符GID。其中UID与GID独立编号。,54,1.groupadd命令,(1)groupadd示例一创建组账号rootserver1#groupaddmygroup1功能:创建一个新组mygroup1,其GID号为已存在GID号的下一个顺序编号。说明:创建一个组的同时会在/etc/group文件中为该组增加相应的一行,用来记录该组的名称、GID号及成员等信息。,55,(2)groupadd示例二创建组账号并设置其GID号#groupadd-g5000mygroup2功能:创建一个新组mygroup2,并指定其GID号为5000,其中-g用来设置用户的主要组,每个用户都有一个主要组。,56,2.useradd命令,(1)useradd示例一创建用户账号rootserver1#useradduser1功能:创建一个用户user1,同时在/etc/passwd文件和/etc/shadow文件增加一行,并自动为用户创建相应的主目录:/home/user1。说明:/etc/passwd文件记录了系统中每个用户的用户名、UID号、GID号、主目录、shell等信息。注意:用户的口令原来也存放在此文件中,现在为了保证安全采用了影子口令文件/etc/shadow来保存每个用户的口令。,57,(2)useradd示例二创建用户账号并设置相应属性值#useradd-u600-gmygroup1-Gmygroup2-d/home/student1s1功能:创建用户s1,其中参数-u指定UID号为600;-g指定用户的主要组为mygroup1;-G指定用户的附加组为mygroup2,每个用户可以有多个附加组;-d指定用户的主目录为/home/student1。,58,3.userdel命令,(1)userdel示例一删除用户rootserver1#userdeluser1功能:删除指定的用户user1。,59,(2)userdel示例二删除用户的同时删除其主目录rootserver1#userdel-ruser2功能:删除指定的用户user2,同时删除其主目录。,60,4.groupdel命令,rootserver1#groupdelmygroup2功能:删除指定的组注意:当某个组是某现有用户的主要组时,则不能被删除。,61,5.passwd命令,(1)passwd示例一改变口令user1server1$passwdChangingpasswordforuseruser1.Changingpasswordforuser1(current)Unixpassword:NewUnixpassword:BADPASSWORD:itistoosimplistic/systematicNewUnixpassword:BADPASSWORD:istoosimilartotheoldoneNewUnixpassword:RetypenewUnixpassword:passwd:allauthenticationtokensupdatedsuccessfully.功能:普通用户只可以修改自己的口令,62,(2)passwd示例二禁止用户登录rootserver1#passwd-luser1Lockingpasswordforuseruser1.passwd:Success功能:参数-l可以给指定的用户user1加锁,即禁止该用户登录。,63,(3)passwd示例三恢复用户登录rootserver1#passwduuser1Unlockingpasswordforuseruser1.passwd:Success.功能:参数-u可以给指定的用户user1解锁,即恢复该用户登录。,64,(4)passwd示例四删除用户口令rootserver1#passwd-duser1Removingpasswordforuseruser1.passwd:Success功能:参数-d可以删除指定的用户user1口令,即以user1登录时无需口令。,65,6.usermod命令,#usermod-u601-g501s1功能:将(已存在的)用户s1的UID号修改为601、主要组修改为501说明:usermod还能修改用户主目录、登录shell及口令等,请读者自行练习。,66,7.id命令,rootserver1#iduser1uid=501(user1)gid=501(user1)groups=501(user1)功能:显示用户的UID、GID及所属的组信息。,67,2.1.3文件属性操作命令,1.chown命令(1)chown示例一改变文件的属主rootserver1#chownuser1hello.txt功能:将指定文件hello.txt的属主(所有者)改为user1。,68,(2)chown示例二递归改变文件的属主#chown-Ruser1mydir功能:参数-R,表示递归,即可以深入到指定目录中的每一层,将所有子目录和文件的属主(所有者)改为指定的用户;本例中会将mydir目录中所有子目录和文件的属主设定为user1。,69,2.chgrp命令,(1)chgrp示例一改变文件的属组#chgrpmygroup1hello.txt功能:将指定文件hello.txt的属组改为mygroup1。,70,(2)chgrp示例二递归改变文件的属组#chgrp-Rmygroup1mydir功能:参数-R,表示递归,即可以深入到指定目录中的每一层,将所有子目录和文件的属组改为指定的组;本例中会将mydir目录中所有子目录和文件的属组设定为mygroup1。请读者试一下:chownRuser1:mygroup1mydir命令的功能。,71,3.chmod命令,(1)chmod示例一字母方式图中字母u针对属主、g针对属组、o针对其他用户、a针对所有用户;=表示赋予(设置)指定权限,要注意它会覆盖原权限,+表示在原有权限的基础上增加指定权限,-表示在原有权限的基础上去掉指定权限;r、w、x三种权限,既可以单独使用也可以组合使用,rwx,ugoa,+-=,72,$chmodu+xhost.conf功能:为文件host.conf的属主增加执行权限。$chmodg-w,o=xhost.conf功能:将文件host.conf的属组去掉写权限,同时将其他用户设置为只有执行权限,而文件属主的权限不变。,73,请读者练习如下指令,并体会相应功能。$chmodug=rwx,o=host.conf$chmodugo=r,ug+wxhost.conf,74,(2)chmod示例二数字方式chmod的数字使用方式,使用起来也是很方便的,关键是一个数制转换的问题。这种方式是先将每个权限位化成二进制数,其中如果某权限位是“-”则用0来表示,否则用1来表示;接着,将这9列权限分为三组(每三位一组),再将每组化成一个八进制数。例如,某文件有如下权限rwxrw-r-,则转换为二进制数为111110100,再化为八进制数则为764;反之,当看到八进制数764时也应该很快转化为相应权限。,75,$chmod764host.conf功能:将文件host.conf的权限设置为:属主拥有全部权限;属组拥有读写权限;其他用户拥有只读权限。,图形界面下用“文件管理器”改变文件、目录的权限使用chmod和数字改变文件/目录的访问特权chmod:chANGEmodEchmod-R-R参数可以改变一个目录以及在它之下的所有文件的设定。在文本模式下,可执行chmod命令去改变文件与目录的权限r:对应数值4。(就是二进制数100,即r-)w:对应数值2。(就是二进制数010,即-w-)x:对应数值1。(就是二进制数001,即-x)-:对应数值0。(就是二进制数000,即-)按照上述法则,rwx合起来就是4+2+1=7,一个rwxrwxrwx权限全开放的文件,数字表示为777;而完全不开放权限的文件“-”其数字表示则为000。,ls-lchmod777smb.conflslchmod700smb.conflslchmod750smb.conflsschmod-R775/mydir,79,特殊权限:s权限,s权限具有改变进程的执行身份功能。原则上,用户在执行某程序的过程中,该进程就具有该用户的身份。当设置了s权限后,就可以改变该进程的运行身份,请看如下示例:,80,s权限示例:rootserver1#ls-ltest.txt-rw-1rootroot42Aug2310:34test.txt注意观察test.txt文件的权限,只有root用户才能读写该文件。rootserver1#cptest.txt/home/user1rootserver1#whichcat/bin/catrootserver1#cp/bin/cat/home/user1/mycat,81,按ALT+F2切换到第二个控制台,以user1登录,并执行如下命令:user1server1$./mycattest.txt./mycat:test.txt:Permissiondenied执行上述命令时会报错,表示没有相应的访问权限。请执行ls-ltest.txt查看相应权限,解释原因。,82,接下来,按ALT+F1切换到第一个控制台,执行如下命令:rootserver1#chmodu+s/home/user1/mycat功能:为文件/home/user1/mycat加上s(SetUID)权限,表示当该程序被执行时,其执行身份为该程序的所有者。执行如下命令:rootserver1#ls-l/home/user1/mycat-rwsr-xr-x1rootroot19140Aug2311:05/home/user1/mycat,83,最后,再按ALT+F2切换到第二个控制台,以user1身份执行如下命令:user1server1$./mycattest.txthello,thisfilecanbereadonlybyroot!说明:可以看出这次执行mycattest.txt,就能够显示出test.txt文件的内容,这充分说明“s”权限的作用。除了本例中u+s,还可以有g+s的用法,84,例子:在linux中,不管是root用户还是普通用户,都可以使用“passwd”命令来更改自身的密码。但是,Linux中的密码通常是保存在“/etc/passwd”和“/etc/shadow”文件中,这两个文件对系统安全至关重要,因此只有root用户才能对其执行读写操作。以管理员的身份登陆系统,在Linux示符下执行“ls-l/etc/passwd/etc/shadow”命令,在返回信息中可以看到普通用户对这两个文件并没有写权限,因此从文件属性的角度看,普通用户在更改自身密码时,是无法将密码信息写入到上述文件中的,那么用户是怎样成功的更改密码的呢?实际上,问题的关键不在于密码文件本身,而在于密码更改命令“passwd”。在提示符下执行命令“ls/usr/bin/passwd”,在返回信息中的文件所有者执行权限位上显示“S”字样,表示“passwd”命令具有SetUID权限,其所有者为root,这样普通用户在执行“passwd”命令时,实际上以有效用户root的身份来执行的,并具有了相应的权限,从而将新的密码写入到“/etc/passwd”和“/etc/shadow”文件中,当命令执行完毕,该有效用户root的身份立即消失。如何设置SetUID权限呢?使用“chmod”命令即可为指定文件设置SetUID权限,例如“chmod4xxxfilename”,85,命令,取消SetUID权限的命令为“chmodxxxfilename”。类似的,执行“chmod2xxxfilename”命令可以设置SetUID权限,使用“chmodxxxfilename”命令即可取消SetGID权限,如果执行“chmod6xxxfilename”命令,即可同时为指定文件设置SetUID和SetGID,执行命令“chmod0 xxxfilename”,即可同时取消指定文件的SetUID和SetGID权限。例如以root用户登陆系统,执行“chmod0511/usr/bin/passwd”命令,就可以取消“passwd”命令的SetUID权限,这样普通用户就无法修改自己的密码了。,86,特殊权限:“t”权限,特殊权限“t”,又称为粘滞位。粘滞位有两类功能:一是针对可执行文件而言,设置了粘滞位可以使其第一次运行后在交换分区swap中保留正文的副本,由于交换分区的文件是连续存放的,所以下次运行时能较快调入内存。对于现代文件系统来说,这一功能已经没有什么实际意义了。,87,目前用的最多是粘滞位的第二类功能,即针对目录设置粘滞位。如果对一个目录设置了粘附位,则只有对于该目录具有写权限的用户且满足如下三个条件之一,才能删除或改名该目录下的文件:第一是超级用户root,第二是此目录的所有者,第三是将被删除或改名文件的所有者。实例:这一特性被Linux应用到了/tmp目录上,即任何人都可以使用该目录存储文件,但只有文件所有者和root可以删除或更名文件。,88,4.umask命令,(1)umask示例一显示文件的创建掩码先来看如下命令的执行:user1server1$touchtestuser1server1$ls-ltest-rw-rw-r-1user1user10Aug1811:57test发现文件test的权限是664,再创建几个文件会发现权限都是664。,89,下面执行如下命令:user1server1$umask0002功能:显示文件创建掩码;文件的被创建后其权限分两种情况,一是如果创建的是目录文件,则用777减去文件创建掩码;二是如果创建的是普通文件,则用666减去文件创建掩码。本例中umask当前值为0002,用touch创建的test是普通文件,所以test的权限=666-0002=664。,90,(2)umask示例二设置文件的创建掩码user1server1$umask0006功能:先设置文件创建掩码为0006。请读者自行练习如下命令,体会相应功能。user1server1$touchtest2user1server1$mkdirdirtest2,91,5.lsattr命令,除了上述介绍的权限位以外,文件还具有若干(隐藏)属性位,来影响对文件的访问。user1server1$lsattr功能:显示指定目录下文件的属性。,92,6.chattr命令,chattr命令可以改变文件的属性(1)chattr示例一设置文件的追加属性rootserver1#chattr+ahello.log功能:参数+a的功能是设置文件只能以追加方式打开,即只能向文件末尾追加内容。可以如下命令测试:rootserver1#cathello.log-bash:hello.log:Operationnotpermittedrootserver1#cathello.logadditionaldataBeijingrootserver1#lsattrhello.log-a-hello.log,93,(2)chattr示例二设置文件的修改属性rootserver1#chattr+itest功能:参数+i的功能是设置该文件不能被删除、改名、写入,也不能为其创建硬连接(参照下面相关指令)。说明:参数+i经常用来保护一些内容固定的重要的文件,即便是root用户也要受到该参数的限制。要去掉相应的属性只需把“+”改为“-”即可。,94,2.1.4i节点及其相关命令,ext2文件系统是当前Linux上流行的文件系统之一,其主要结构如图2-2所示:,95,引导块的功能是负责系统的引导。超级块是用来描述ext2文件系统整体信息的数据结构,其内容非常重要,主要包含了i节点表和数据区的位置,是ext2文件系统的核心机制。i节点表是ext2文件系统的特色,其内容就是该文件系统中所有i节点的列表。,96,每一个文件都要与一个i节点相关联。i节点是一个64字节大小的数据结构,它记录了文件的重要信息,主要包括文件的属主、属组、权限、大小、日期时间以及15个数据块指针等内容。i节点的示意图请参见下图所示:,97,98,关于i节点,值得注意的是i节点中并没有包含文件名!“目录文件”主要内容:包括位于该目录下的文件的名称及相应的i节点号。文件名到i节点的转换:当通过文件名访问文件时,首先在目录中查找是否有相应的文件名存在,若存在,则访问与该文件名相对应的i节点,进而通过i节点中的15个指针定位真正的数据块。简单地说,目录实现了文件名到i节点的转换。,99,符号连接和硬连接,硬连接是Unix类操作系统中特有的概念。本质上,一个i节点可以对应多个文件名,每个文件名都是该i节点的一个硬连接。新创建的硬连接与原文件名共用同一个i节点。需要说明的是,不能为目录创建硬链;而且硬连接也不能跨越文件系统。,100,符号连接,符号连接是一种特殊的文件。与硬连接不同,符号连接采用了新的i节点,这说明它与原文件之间是有着本质区别的。符号连接的内容实际上是目标文件名(路径)而已,即是一条指向原(目标)文件的文件名的路径,相当于Windows系统中的“快捷方式”。符号连接可以跨越文件系统,也能够为目录来创建符号连接。,101,可以操纵i节点的ln命令,(1)ln命令示例一建立硬连接user1server1$lnmyfilemyfile.hlink功能:为文件myfile创建名为myfile.hlink的硬连接。user1server1$ls-il180590-rw-rw-r-2user1user112Aug1712:14myfile180590-rw-rw-r-2user1user112Aug1712:14myfile.hlink说明:通过lsil命令可以看出myfile与myfile.hlink的i节点号(最左面的数)是一样的,即硬连接与原文件共用同一个i节点,请注意两个文件的连接数(位于长格式列表中权限位与属主之间的数)都增加了1变成2了。,102,(2)ln命令示例二建立符号连接user1server1$ln-smyfilemyfile.slink功能:为文件myfile创建名为myfile.slink的符号连接。user1server1$ls-li180590-rw-rw-r-2user1user112Aug1712:14myfile180590-rw-rw-r-2user1user112Aug1712:14myfile.hlink180606lrwxrwxrwx1user1user16Aug2106:21myfile.slink-myfile说明:试试用rm命令删除myfile文件,注意观察连接数的变化,再分别访问myfile.hlink和myfile.slink,看看是否能够正常访问,解释为什么会有这样的结果。,103,2.1.5查找命令,1.which命令user1server1$whichcp/bin/cpuser1server1$whichupdatedb/usr/bin/updatedb功能:显示命令的绝对路径。注意:该命令只能在命令搜索路径指定的目录中去查找命令或程序。,104,2.whereis命令,user1server1$whereislnln:/bin/ln/usr/share/man/man1/ln.1.gz/usr/share/man/man1p/ln.1p.gz功能:查询指定命令所在目录以及帮助文档所在目录。,105,3.slocate命令,user1server1$slocatenamedwarning:slocate:couldnotopendatabase:/var/lib/slocate/slocate.db:Nosuchfileordirectorywarning:Youneedtoruntheupdatedbcommand(asroot)tocreatethedatabasePleasehavealookat/etc/updatedb.conftoenablethedailycronjob.功能:在其数据库中,安全快速查找指定的文件。说明:在第一次使用slocate之前需要用updatedb命令来创建数据库。注意必须以root身份来执行updatedb命令。注意,在构造数据库阶段,时间较长。,106,先介绍一个新命令su,user1server1$su-Password:rootserver1#功能:是可以切换当前用户的身份su命令带有参数“-”,其含

温馨提示

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

评论

0/150

提交评论