Linux原理及应用08.ppt_第1页
Linux原理及应用08.ppt_第2页
Linux原理及应用08.ppt_第3页
Linux原理及应用08.ppt_第4页
Linux原理及应用08.ppt_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

LINUX原理及应用,武汉大学计算机学院 郑鹏 Email:,第8章 Linux常用命令,Linux系统提供了丰富的命令集,用户利用这些命令可以有效地完成大量的工作,如文件操作、目录操作、进程管理、文件权限设定等。 Linux系统中的每条命令都包含不同的命令选项和参数,本章只介绍了Linux的一些常用命令及选项。,8.1 Linux命令基础,8.1.1 Linux命令格式 Linux命令的一般格式如下: 命令名 选项 参数1 参数2 其中命令名由小写的英文字母构成,它往往是表示相应功能的英文单词或单词的缩写。方括号表示这部分内容可选。可以直接在系统命令提示符后面输入命令,也可以在命令名后面带有选项和参数。选项是对命令的特别定义,以-开始,多个选项可用一个-连起来。 命令行参数提供命令运行的信息,通常参数是一些文件名,告诉命令从哪里可以得到输入,以及把输出送到什么地方。如果命令行中没有提供参数,命令将从标准输入文件接受数据,输出结果显示在标准输出文件上,而错误信息则显示在标准错误输出文件上。可以使用重定向功能对这些文件进行重定向。 命令在正常执行完成后返回一个0值,表示执行成功;如果命令执行过程中出错,没有完成全部工作,则返回一个非0值。,8.1.2 联机帮助命令,在Linux操作系统下,非常容易获得帮助。象大多数UNIX运行版本一样,Linux操作系统发行版本也为几乎每个程序、工具、命令或系统调用编制了使用手册页。从中可以得到几乎所有命令的信息,包括man命令本身。 举例来说,输入下列命令就可以阅读man命令的使用手册页: # man man,8.1.3 登录及退出Linux,LILO是指Linux Loader,它负责加载Linux操作系统。LILO是一个能作多重启动选择的程序,可以加载硬盘中其他可启动的操作系统。GRUB是另一种加载程序也能做多重启动。 Linux是多用户操作系统,只有被授权的用户才能够登录进入系统。如果是一个新用户,那么在第一次登录进入系统之前应由系统管理员为新用户建立一个账户,该账户包括用户名、用户口令、用户主目录等信息。管理员在系统中为新用户建立了账户以后,新用户就是一个被授权使用系统的用户了。,8.1.3 登录及退出Linux,1.登录Linux系统 当Linux系统启动完成并显示login提示符时,用户需要向系统提供用户名及密码。例如: Login: zheng Password: 这时需要在login提示之后输入用户名,再按下Enter键。然后系统显示要求输入口令的提示Password,接下来输入用户口令。注意用户所输入的口令字符并不在屏幕上显示出来。 在输入用户口令后,再按下Enter键。如果输入的用户名和口令都正确,系统会在屏幕上显示Shell提示符。,8.1.3 登录及退出Linux,注意不同的Linux版本其提示符是不同的。通常,对一般用户来说系统默认的提示符是“$”;对超级用户root用户来说,系统默认的提示符是“#”。 如果输入的用户名或者口令不正确,系统将发出登录出错信息: Login incorrect 然后,系统重新显示以上所示的登录提示信息。让用户重新登录。 注意,如果用户是系统管理员,那么在一般情况下应尽量避免使用root注册账号,除非要完成系统管理任务。因为root拥有系统的所有权限,一旦误操作可能会给用户的系统带来灾难性的后果。,8.1.3 登录及退出Linux,2退出Linux系统 当用户执行完各种操作后,应及时退出系统。可以在系统命令提示符后面输入命令logout,然后按下回车键。 $logout 系统进行相应处理后,重新在屏幕上显示登录提示信息。 有些Linux系统的退出命令是exit。还有其他退出系统的方法,最常用的是在Shell提示符之后,同时按下Ctrl+D键: $Ctrl+D,8.1.3 登录及退出Linux,3Passwd命令 用户口令是整个Linux系统的安全核心,Linux系统中的每一个用户除了有用户名外,还有对应的用户口令。当建立新用户后,需要为用户设置一个初始口令。在新用户第一次登录时,必须使用系统管理员所设置的口令才能登录成功,然后新用户应该立即将口令修改为自己容易记忆的其他口令。 可以使用passwd命令来修改自己的口令。,8.2 文件及目录操作命令,对于普通用户来说,最常使用的Linux命令是针对文件和目录的操作命令。本节将对常用的文件及目录操作命令进行介绍。,8.2.1 改变及显示目录命令,1.cd命令 cd命令的功能是改变用户的当前目录。其语法格式如下所示: cd 路径名 当用户登录进Linux操作系统之后,用户处于自己的主目录中,其路径名为/home/用户名。 输入带路径名参数的cd命令,可以直接进入到另外一个子目录中去。 $cd /usr/bin 把当前目录切换到/usr/bin子目录中 $cd 若当前目录为/usr/bin时,将当前目录改为/usr子目录 $cd / 将当前目录改为根目录,即“/”目录: $cd 用户回到自己的主目录 $cd 用户回到自己的主目录,8.2.1 改变及显示目录命令,2pwd命令 pwd命令的功能是显示当前目录的路径名。其语法格式如下所示: pwd 例如,如果执行命令: $cd /usr/bin 接着输入: $pwd 就会看到: /usr/bin,8.2.2 文件及目录操作命令,1ls命令 ls命令可以列出指定目录下的文件和子目录的清单。对于每个目录,该命令将列出其中的所有子目录与文件;对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。ls命令的语法格式如下: 1s 选项 文件名或目录名 ls命令的常用选项有: -a:列出指定目录下所有子目录与文件,包含隐藏文件。 -l:以长格式来显示文件的详细信息,包括权限、所有者、建立日期、时间、大小等。 -F:在列出的文件或目录项后加一个符号表示文件类型,如“/”表示目录,“*”表示可执行文件,“”表示连接文件,“l”表示管道文件,没有任何标志则表示普通文件。 -R:递归处理,列出指定目录与子目录下的文件。 -m:输出按字符流格式,以逗号分隔文件名。,8.2.2 文件及目录操作命令,例如,假设用户zheng的当前目录为/home/zheng,当前目录下有文件a.txt、子目录d1及backup,使用不带任何选项的ls命令将列出当前目录下的文件或目录的名字,其结果如下所示: $ls a.txt backup d1 使用-F选项将在每个文件(目录)的后面加上表示文件类型的标记: $ls F a.txt backup/ d1/ 为列出某个目录下所有的文件(含隐藏文件),使用选项-a: $ls a . a.txt .bash_history .bash_profile d1 .gtkrc backup .bash_logout .bashrc .emacs 使用-l选项将以长格式列出某个目录下的文件: $ls l -rw-rw-r- 1 zheng zheng 6 Apr 26 14:54 a.txt drwxrwxr-x 2 zheng zheng 4096 Apr 26 14:55 backup drwxrwxr-x 2 zheng zheng 4096 Apr 26 15:03 d1,8.2.2 文件及目录操作命令,2cp命令 cp命令的功能是拷贝文件或子目录,语法格式如下所示: cp 选项 源文件名或目录名 目标文件名或目录名 cp命令的常用选项有: -i:以交互方式来执行cp命令。如果目标文件存在则会给出提示,以免覆盖已存在的目标文件。cp命令认为覆盖文件是正常操作,所以命令执行时若覆盖了已存在文件将不会给出任何提示,这样不带任何选项的cp命令就有覆盖文件的危险。 -f:强制复制。若目标文件存在,则删除已存在的目标文件而不提示。使用此选项后,-i选项将不再起作用。 -r:在进行目录复制时连带整个子目录进行复制,即若给出的源文件是一个目录文件时,cp将递归复制该目录下所有的子目录和文件。 -b:若目标文件存在则先做目标文件备份,再复制文件。,8.2.2 文件及目录操作命令,在cp命令中,文件名部分可以使用通配符。此外cp还可以将数个文件名各不相同的文件复制至同一个目录下,此时的命令格式为: cp文件名1 文件名2 文件名3 目录名 例如把用户zheng主目录下的a.txt文件复制到d1目录下,可使用命令: $cp a.txt d1 若要将目标文件的文件名改为newdoc,可使用命令: $cp a.txt d1/newdoc 若要将d1目录及其下的所有文件包括子目录复制到backup目录,可使用以下命令: $cp -r d1 backup 将a.txt、d1/newdoc两个文件复制到目录/tmp下,可使用以下命令: $cp a.txt d1/newdoc /tmp,8.2.2 文件及目录操作命令,3mv命令 mv命令可以完成文件或目录改名功能,也可以将文件或目录由一个位置移到另一个位置。其语法格式如下所示: mv 选项 源文件名或目录名 目标文件名或目录名 mv命令的常用选项有: -i:交互方式操作。如果mv命令的执行将导致对已存在目标文件的覆盖,此时系统询问用户是否覆盖,要求用户回答y或n,这样可以避免误覆盖文件。 -f:强制进行改名或移动操作。在mv命令执行时,若目标文件已存在,系统将不给任何提示信息并覆盖目标文件。使用此选项后,-i选项将不再起作用。 -b:若目标文件存在则先做目标文件备份,再移动文件或为文件改名。,8.2.2 文件及目录操作命令,例如,假设当前目录为/home/zheng/d1,该目录下有文件a.txt,现在希望将其更名为anew.txt,则可以使用以下命令: $mv a.txt anew.txt 如果希望将文件/home/zheng/d1/anew.txt移动到目录/home/zheng下面,可使用以下命令: $mv /home/zheng/d1/anew.txt /home/zheng 下面的命令可以将/home/zheng/d1中的所有文件移到当前目录中(当前目录用.表示): $mv /home/zheng/d1/*,8.2.2 文件及目录操作命令,在把某文件或子目录名字改为其他已存在文件或子目录的名字时,若要对原有文件或子目录进行备份,应使用-b选项。例如,在当前目录/home/zheng/d1下创建三个文件: $touch flie1 flie2 file3 $ls file* file1 file2 file3 $mv -b file1 file2 $ls file* file2 file2 file3 上例说明file1已被改名为file2,但由于使用了-b选项,在mv命令完成改名操作之前已经生成了file2的备份,备份文件名由源文件名后带波浪号()。上例中的命令touch可以建立一个长度为0的文件。 mv的-i选项与cp命令的该选项一样,是起确认作用的,例如: $mv -i file2 file3 mv:replace file3? y 在上例中,mv命令询问是否想覆盖文件file3(如果不发生覆盖,就是用了i选项也不会产生询问)。,8.2.2 文件及目录操作命令,4rm rm命令的功能是删除文件或目录,语法格式如下: rm 选项 文件名/目录名 其中文件名和目录名中可以使用通配符,这样就可以删除一个或几个文件。该命令的常用选项有: -i:交互方式操作,它使rm在每次删除时提醒用户确认删除操作。 -r:使用选项-r可以递归删除整个目录。由于这个命令功能强大,所以也十分危险,假如用户是在/目录下使用带-r选项的rm命令,很有可能导致系统文件的误删除,所以应该谨慎使用。 -f:强制删除文件或目录。使用-f选项可以使-i选项无效,也就是将不产生任何提示而删除文件。除非对要删除的内容十分清楚,否则须慎用-f选项,以免造成误删除。,8.2.2 文件及目录操作命令,例如,要删除当前目录下所有文件扩展名为txt的文件,可使用以下命令: $rm *.txt 为保证安全,应使用rm命令的-i选项,这样在删除文件时会给出确认信息。例如: $rm -i file* rm: remove file2? n rm: remove file2? y rm: remove file3? n 还可以使用-f选项强制删除某个文件,例如: $rm -f new* 如果使用了-f选项但没有文件能够匹配new*格式时,rm命令失效。而当rm命令遇到子目录时,即使子目录是空的,也不进行删除操作,并且还会给出出错信息,甚至在使用了-f参数时也是如此。例如: $rm f temp* rm:temp:is a directory rm:temp2:is a direclory,8.2.2 文件及目录操作命令,当把-f和-r选项一起使用时,就可以删除目录及该目录中的所有文件和子目录(如果用户拥有删除它们的操作权限的话),如: $rm fr temp* 需要特别注意的是,以超级用户身份登录系统并使用rm命令可能造成灾难性后果,因为下述rm命令可能毁掉Linux系统,甚至毁掉包括DOS分区、活动硬盘等在内的任何已安装文件系统: #rm -fr /* 该命令会从根目录开始递归地删除所有的文件和子目录。,8.2.2 文件及目录操作命令,5mkdir mkdir命令的功能是创建子目录,它的语法格式是: mkdir 选项 目录名 例如,在当前目录下建立子目录temp,可以使用下述命令: $mkdir temp 该命令有一个选项-p,其后的目录名可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录。例如,假设在/home/zheng下建立三级目录par、ch1级ch2使用以下命令: $mkdir -p /home/zheng/par/ch1/ch2,8.2.2 文件及目录操作命令,6rmdir rmdir命令的功能是删除目录。该命令只能删除空目录,如果要删除的目录非空,就会出现错误提示信息Directory not empty。rmdir命令的语法格式为: rmdir 选项 目录名称 例如,假如用户当前目录下的par/ch1/ch2目录为空,则可以键入如下命令删除此子目录: $rmdir par/ch1/ch2 与mkdir类似,该命令也有一个-p选项,可以使用这个参数来删除指定的整个目录结构,如下所示: $rmdir -p par/ch1 当然,只有在目录ch1为空目录,并且par目录中只包含ch1时,这条命令才能执行成功。,8.2.3 显示文件内容命令,在Linux系统中,常用的显示文件内容命令有:cat、more、less、head和tail,用户需要查看一个文件的内容时,可以根据需求的不同选用不同的显示文件内容命令。,8.2.3 显示文件内容命令,1cat cat命令的功能是在屏幕上显示一个或多个文件的内容。一般使用该命令来显示短文本文件的内容,其语法格式如下所示: cat 选项 文件名 该命令的常用选项有: -b:为文件的所有非空行编号,编号从l开始。 -n:将文件按行来进行编号。与-b不同的是它对文件所有行编号,其中包括空行。,8.2.3 显示文件内容命令,例如,可以使用下述命令来显示文本文件的内容:,$cat test.txt Today is my birthday, I am very happy, Because my friend give me a lovely present 可以使用-n选项在阅读文件时加上行号,例如: $cat n test.txt 1 Today is my birthday, 2 I am very happy, 3 Because my friend give me a lovely present,8.2.3 显示文件内容命令,因为cat命令也接受通配符,所以还能使用cat命令一次查看多个文件: 正如所看到的,cat命令在它的输出中包含了另外一个文件,并为整个输出结果的每一行加上了行号。还可以使用下面的方法来查看这两个文件: 这个命令的输出结果与使用通配符的时候看到的结果完全一样。,$cat n test* 1 Today is my birthday, 2 I am very happy, 3 Because my friend give me a lovely present 4 This is the first line of test2.txt. 5 This file was created by cat. 6 This is the last line of test2.txt. $cat n test.txt test2.txt,8.2.3 显示文件内容命令,同时查看几个文件只是cat命令的一种用法。还可以使用cat命令和重定向操作符(“”)来合并文件。例如,若想把文件test.txt与文件test2.txt合并到test3.txt文件中,可以使用下述命令:,$cat test* test3.txt 使用下面的方法可以检查操作结果: $ls -l test* -rw-r-r- 1 zheng zheng 83 Jan 4 16:06 test.txt -rw-r-r- 1 zheng zheng l03 Jan 4 16:17 test2.txt -rw-r-r- 1 zheng zheng 186 Jan 4 16:30 test3.txt,8.2.3 显示文件内容命令,使用cat命令也可以建立短文本文件。例如,若要建立的文件名为myfile.txt,则可以使用:,$cat myfile.txt 现在输入一些文本内容,如下所示: This is the cat word processor. This is the end of the file. 现在按下Ctrl+D来结束文件输入。使用下面的命令查看是否建立了文件: $ls -l myfile.txt -rw-r-r- 1 zheng zheng 61 Jan 4 16:51 myfile.txt $cat myfile.txt This is the cat word processor. This is the end of the file.,8.2.3 显示文件内容命令,2more more命令的功能是分页显示文件内容,这在阅读长文本时特别有用。more命令的语法格式如下: more 选项 文件名 more命令每次显示一屏文本信息,然后暂停显示,并在终端底部显示出“More-”,若要继续显示,可以按回车键显示下一行或按空格键显示下一页。例如: $more longfile.txt more命令是一个传统的分页命令,它提供了早期分页命令的基本特色,如果需要查看帮助信息,敲H键就会看到一个帮助画面,还可以用惊叹号“!”从more命令中执行其它命令。,8.2.3 显示文件内容命令,3less less命令的功能与more命令类似,即分页显示文件内容。但less命令的功能比more命令更强大。 less命令提供了许多比more命令更优秀的功能: 可以用方向键前后翻阅文本文件。 可以以行数或百分比作为书签来浏览文件。 可以实现在多个文件中进行复杂的检查、格式匹配、高亮显示等功能。 键盘操作与字处理程序如emacs兼容。 阅读到文件结束或标准输入结束时less命令不会退出。 屏幕底部的信息提示符更容易控制使用,并提供更多的信息。 带有许多附件,包括一个独立的键定义程序lesskey,这样可以定义使用哪个按键来控制less命令。,8.2.3 显示文件内容命令,在安装了Linux后,less命令是许多程序(如man命令)使用的缺省分页命令。,8.2.3 显示文件内容命令,4head和tail 如果用户希望查看一个文件究竟保存的是什么内容,可以只查看文件开头的几行,而不必浏览整个文件。 head命令的功能是显示文件或标准输入的头几行,其命令格式如下所示: head 选项 文件名列表 其中“文件名列表”是用户希望显示的文件名,用空格符分隔。如果省略文件名列表,则从标准输入读取文本。如果有多个文件,则会在文件名前面加上“=文件名=”,以便于区分不同文件。 该命令的常用选项有: -c N:显示文件的前N个字节。 -n N:显示文件的前N行,默认值是10。,8.2.3 显示文件内容命令,如果用户想查看文件尾部的内容,可以使用tail命令。tail命令的功能是把指定文件或标准输入文件末尾的内容显示在标准输出设备上,该命令的语法格式如下: tail 选项 文件名列表 其中“文件名列表”是用户希望显示的文件名,用空格符分隔。如果省略文件名列表,则从标准输入读取文本。如果有多个文件,则会在文件名前面加上“=文件名=”,以便于区分不同文件。,例如,要显示文件com.txt的前10行,可使用以下命令: $head com.txt 要显示文件com.txt的前4行,可使用以下命令: $head n 4 com.txt,8.2.4 文件查找及处理命令,Linux除了提供前述基本文件操作命令外,还提供了很多高级文件操作命令以满足用户的不同需要。本小节介绍与文件查找、排序及统计相关的部分命令。,8.2.4 文件查找及处理命令,1find find命令的功能是查找文件或目录,其语法格式如下所示: find 路径名 查找选项 操作选项 其中,路径名是find开始搜索的目录名,find命令将遍历查询指定路径下的各个子目录,并显示查询结果。 该命令的常用选项有: -name 文件名:根据给定的文件名查找文件。 -type 文件类型:查找具有指定文件类型的文件,其中的文件类型可以取值b、c、d、f、l等,分别代表块特殊文件、字符特殊文件、目录文件、普通文件及链接文件。 -user 用户名:查找属于指定用户的文件。,8.2.4 文件查找及处理命令,-atime 天数:查找在指定天数以前被访问过的文件。 -mtime 天数:查找在指定天数以前被修改过文件内容的文件。 -ctime 天数:查找指定天数以前被修改过文件状态的文件。 -size 文件长度:查找指定文件长度的文件。文件长度默认以块(512字节)为单位。,8.2.4 文件查找及处理命令,find命令提供的查找条件可以组合使用,并且可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义为: 逻辑与(and):在命令中用-a表示,是系统默认的选项,当所给的条件都满足时,寻找条件才算满足。 逻辑或(or):在命令中用-o表示,当所给条件中有一个满足时,寻找条件就算满足。 逻辑非(not):在命令中用!表示,当所给条件不满足时,寻找条件就算满足。,8.2.4 文件查找及处理命令,对于要求输入数值的选项,可以有3种输入方式,如下所示: +n:表示大于n。 -n:表示小于n。 n:表示等于n。 对于查找到的文件,可以执行以下操作: -exec 命令 ;:对查找出来的文件执行所给的命令。可以用表示所执行命令的参数,即所找到的文件,命令的末尾必须以“;”结束。 -ok 命令 ;:对查找出来的文件执行所给的命令,与-exec不同的是,它会在执行前询问用户是否需要执行该命令。 -print:在标准输出设备上显示查找出的每个文件的路径名。,8.2.4 文件查找及处理命令,例如,例如要在目录/home/zheng下寻找文件first.c,可以使用 $find /home/zheng -name first.c 若要查找所有文件名以doc开始或是以.txt结尾的文件,可使用以下命令: $find / -name doc* -o name *.txt 如果想查找子目录/usr/bin中最近一百天没有使用过的程序,可以采用下述命令: $find /usr/bin -type f atime +100 -print,8.2.4 文件查找及处理命令,2locate locate命令查询文件名中包含指定字符串的文件。该命令使用一个预先建立的文件名数据库来查找文件,所以查找速度比较快,并且由于它只按文件名查找,命令格式也没有find那么复杂。但应注意,由于locate对文件名数据库查询,所以要注意及时更新此数据库,否则新建立的文件可能无法查到。更新数据库的命令为updatedb,此命令需要以root用户的身份执行,可能一分钟左右才能完成,完成后会在/var/lib目录下生成数据库文件slocate。 locate命令的语法格式如下所示: locate 选项 文件名 其中文件名可以使用通配符。该命令的常用选项有: -i:忽略大小写。 例如,想查找系统上的所有文件名包含test的文件,应使用如下命令: $locate test,8.2.4 文件查找及处理命令,3whereis whereis命令查找指定命令的二进制文件、源文件及手册页的存放位置。但whereis命令有一个很大的缺陷妨碍了它的使用,它的搜索路径是固定的,并且用户不能通过修改配置文件的方法来增加查找路径。所以如果使用whereis未查到任何结果,很可能是在指定路径内没有该文件,而不是该文件不存在。,8.2.4 文件查找及处理命令,查询一般的文件并不推荐使用whereis命令。whereis命令的语法格式如下所示: whereis 选项 文件名 该命令的常用选项如下: -b:只查询二进制文件。 -m:只查询手册页。 -s:只查询源代码。 例如,要查询find命令,并同时显示该命令的二进制文件和手册页的位置,可使用以下命令: $whereis find find: /usr/bin/find /usr/man/man1/find.1.gz 其中/usr/bin/find为其二进制文件的存放位置,/usr/man/man1/find.1.gz为其手册页文件存放的位置。,8.2.4 文件查找及处理命令,4grep 使用grep命令可以在一个文件或一系列文件中查找指定字符串,可以使用正则表达式来描述需要查找的字符串。 正则表达式是由普通字符(如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式,该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。,8.2.4 文件查找及处理命令,grep命令格式如下: grep 选项 模式 文件名 该命令的常用选项如下所示: -c:只显示匹配行的数量 -i:比较时不区分大小写 -l:只显示具有匹配行的文件名,不显示匹配行本身。如果在某文件中多次出现匹配字符串时,不重复显示此文件名 -n:显示匹配行在文件中的行号 -v:只显示不包含匹配串的行,8.2.4 文件查找及处理命令,5wc wc命令的功能是统计文件的行数、字数及字符数。其命令格式如下: wc 选项 文件名 该命令的常用选项有: -w:统计字数,即单词数。 -l:统计行数。 -c:统计字符数。 如果没有指定选项,则默认为所有选项(-lwc)。用户也可以使用这些选项的任意组合。输出列的顺序和数目不受选项顺序和数目的影响。总是按“行数、字数、字符数、文件名”的顺序显示,并且每项最多一列。,8.2.4 文件查找及处理命令,例如要统计文件file1、file2的行数、字数和字符数,可使用以下命令: $wc file1 file2 下面的命令将统计文件/etc/passwd中有多少行: $wc l /etc/passwd,8.2.4 文件查找及处理命令,6sort sort命令的功能是对指定文件中的各行进行排序,并将结果显示在标准输出上。sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,以此类推,直到字符不同或行结束。sort命令的语法格式是: sort 选项 文件名 sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。默认情况下以整行为关键字,按ASCIl字符顺序进行排序。sort命令常用的选项如下所示:,8.2.4 文件查找及处理命令,-b:排序时忽略每行中前导的空白(空格和制表符)。 -d:按字典顺序排序,比较时仅字母、数字、空格有意义,忽略标点符号及控制字符。 -f:忽略大小写区别。 -n:数字以数值大小排序。 -o 输出文件:将排序输出写到指定文件中,而不是标准输出。 -r:逆序输出排序结果,即从升序变为降序。 -t 分隔符:用指定字符作为宇段分隔符,缺省为空格。 例如,若要对文件test.txt进行排序,可以使用如下命令: $sort test.txt 如果需要将test.txt文件的排序结果送入sorted文件,并且在排序时忽略大小写,可以使用: $sort f o sorted test.txt,8.2.5 目录及文件安全命令,Linux是一个多用户的操作系统,为了保证系统中文件的安全,使用了文件权限。下面将介绍与此相关的一组命令。,8.2.5 目录及文件安全命令,1chmod chmod命令的功能是改变文件或目录的访问权限,其语法格式如下所示: chmod 选项 权限参数 文件名/目录名 命令中的权限参数有两种表达方式:英文字母表示法及数字表示法。 在英文字母表示法中,一个文件的权限用十个字符表示。第一字符代表文件类型。,8.2.5 目录及文件安全命令,文件类型字符,8.2.5 目录及文件安全命令,接下来三个字符代表文件主的权限,中间三个字符代表同组用户的权限,最后三个字符代表其他用户的权限。每类用户都有读、写、执行三种权限,分别用r、w、x表示,没有相应权限用-表示。 在英文字母表示法中,权限参数的描述形式为: 用户类别 +|-|= 权限 用户类别可以取值:a、u、g、o。a代表所有用户,它是系统默认值;u代表文件主;g代表同组用户(即与文件主同组的所有用户);o代表其他用户(即文件所属组外的其他用户)。在使用时可以同时选择多项,如ug代表文件主和同组用户。,8.2.5 目录及文件安全命令,例如,为文件file1的拥有者增加执行权且其他用户的权限不变,这时可使用以下命令: $chmod u+x file1 若要为file1的拥有者和同组用户增加写权限和执行权且删除其他用户的执行权限,可执行以下命令: $chmod ug+wx, o-x file1 若要删除所有用户对文件file1的执行权限,可执行以下命令: $chmod a-x file1,8.2.5 目录及文件安全命令,数字表示法就是使用数字来表示文件或目录的访问权限。在数字表示法中,使用三位八进制数来表示三类用户的访问权限。第1个数字代表文件主的权限,第二个数字代表同组用户的权限,第3个数字代表其他用户的权限。各数字表示的权限含义为:0表示没有权限,l表示可执行权限,2表示可写权限,4表示可读权限。若有多种权限则将相应的权限值相加。 如果想让某个文件的所有者有读、写两种权限,就可以把4(可读)和2(可写)相加得6,那么八进制数6就表示读/写权限;若想让同组用户具有可读和执行权限,需要将权限值设置为5(4+1)。,8.2.5 目录及文件安全命令,例如要将文件file1的权限设定为:文件拥有者可读写、同组用户可读、其他用户可读,可执行以下命令: $ chmod 644 file1 要将文件file1的权限设置为:文件拥有者可读写执行、同组用户可读执行、其他用户没有任何权限,这时可执行以下命令: $ chmod 750 file1,8.2.5 目录及文件安全命令,2chown chown命令的功能是改变文件所属的用户及用户组,该命令的语法格式如下所示: chown 选项 用户:用户组 文件名 其中用户可以是用户名或用户ID,用户组也可以是组名或组ID。文件名可以有多个,中间以逗号分开。 只有 root 用户可以更改文件的所有者。 例如要将文件file1的所属用户设置为user1,所属用户组也设置为user1,可使用如下命令: #chown user1:user1 file1,8.2.5 目录及文件安全命令,3chgrp 超级用户或文件的所有者可以使用chgrp命令改变文件所属的用户组,其命令格式如下: chgrp 选项 用户组 文件名 其中用户组可以是用户组ID,也可以是用户组的组名;文件名是以逗号分开的要改变所属用户组的文件列表,在文件名中可以使用通配符。 如果用户是文件主但不是 root 用户,则只可以将用户组更改为用户是其成员的组,也就是说用户同时属于两个或两个以上的组。 例如,若希望将/home/zheng目录下文件file1所属的组转变成user2,可使用下面的命令: #chgrp user2 /home/zheng/file1,8.2.5 目录及文件安全命令,4umask umask命令的功能是设置文件权限的掩码或者获得当前文件权限掩码。它告诉操作系统在创建新文件或目录时不应该赋予其哪些权限,其命令格式如下: umask 选项 掩码 掩码使用三位八进制数表示,分别表示文件主、同组用户、其他用户的掩码。掩码表示不允许拥有的权限,这一点与chmod不同。当umask命令不带掩码参数时,它返回当前掩码值。 $ umask 022 系统赋给文件的访问权限是644,即掩码的反码与设置权限值进行逻辑与的结果。 umask使用的对于目录的最大的权限是777;而对于文件最大的权限是666。,ln命令 1,该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名。而且,即使删除这个链接,也不会破坏原来的目录。 语法:ln 选项 目标 链接名,ln命令 2,链接有两种: 硬链接(Hard Link):建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。 符号链接(Symbolic Link)。对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。 在硬链接的情况下,参数中的“目标”被链接至链接名。如果链接名是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果链接名为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。,ln命令 3,如果给ln命令加上- s选项,则建立符号链接。如果链接名已经存在但不是目录,将不做链接。链接名可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果链接名是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。 例:$ ln - s lunch /home/xu 用户为当前目录下的文件lunch创建了一个符号链接/home/xu。,ln命令 4,ln命令,ln命令 5,ln命令 6,8.3 系统状态及通信命令,Linux是一个多用户多进程的系统,有时候需要了解系统中用户、进程及文件系统资源的相关情况,有时还需要在进程或用户间发送信息,本节介绍这些相关命令。,8.3.1 用户信息命令,1who who命令的功能是查询当前已登录到系统中的用户。who命令的语法格式如下: who 选项 who命令的功能是察看登录到系统中的用户信息。该命令的常用选项有: -m:显示运行who程序的用户名。whoami命令也能显示运行该程序的用户名。 -q:只显示用户的登录账号和登录用户的数量,该选项优先级高于其他任何选项。 -H:显示列标题。常用的标题有用户名、登录终端及登录时间等。,8.3.1 用户信息命令,例如,要查看登录到系统的用户情况,可以直接使用who命令:,$who root console Dec 8 08:03 zheng tty1 Dec 8 08:11 此信息表明系统中当前有两个用户:root和zheng,信息第一列是用户名,第二列是用户登录的终端标识,第三列是用户登录进入系统的时间。 为显示当前用户的用户名,可以直接使用whoami命令: $whoami zheng,8.3.1 用户信息命令,2w w命令的功能是查询当前登录到系统中用户的行为。与who命令相比,w命令功能更强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且w命令的统计数据相对who命令来说更加详细和科学。 w命令执行时在第一行中依次显示当前时间,系统启动到现在的时间,登录用户的数目,系统在最近l秒、5秒和l5秒的平均负载,接下来显示每个用户的各项数据:登录账号、终端名称、远程主机名、登录时间、空闲时间、JCPU(和该终端连接的所有进程占用的时间)、PCPU(当前进程所占用的时间)、当前正在运行进程的命令行。,8.3.1 用户信息命令,w命令的语法格式为: w 选项 用户名 其常用选项如下: -h:不显示标题。 -s:使用短格式,不显示登录时间、JCPU和PCPU时间。 若指定用户名参数,则只显示指定用户的相关情况。,8.3.1 用户信息命令,例如,要显示当前登录到系统的用户的详细情况,可直接使用w命令:,$w 9:04:08 up 1 day, 3 users, load average: 0.01, 0.04, 0.00 User tty login idel JCPU PCPU what s605 ttyp0 8:20am 1:37 vi hip.c s611 ttyp1 8:31am w s601 ttyp2 8:45am 2:10 csh 从w命令的显示中可以看出,系统中当前有三个用户,用户s605在编辑文件hip.c,用户s611在运行w,用户s601没有做什么。,8.3.2 进程及通信命令,1ps ps命令的功能是查询系统中当前活动进程的相关信息,该命令的语法格式如下: ps 选项 ps命令的常用选项有: -e:显示所有进程的信息。 -l:以长格式列出进程信息。 -h:不显示标题。 -a:显示所有有终端的进程。,8.3.2 进程及通信命令,例如,为查看当前进程状况,可直接使用ps命令:,$ps PID TTY TIME CMD 1309 tty1 0:01 bash 1354 ttyl 0:00 ps 从上述命令的运行结果中可以看到,显示的内容共分为4列,依次为PID(进程标识号)、TTY(关联终端名称)、TIME(进程执行时间)和CMD(该进程的命令行)。,8.3.2 进程及通信命令,例如:,ps 命令 rootlinux sbin# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2 0.0 0.0 0 0 ? SW Aug05 0:00 keventd root 3 0.0 0.0 0 0 ? SW Aug05 0:00 kapmd root 9 0.0 0.0 0 0 ? SW Aug05 0:00 bdflush root 5 0.0 0.0 0 0 ? SW Aug05 0:01 kswapd root 10 0.0 0.0 0 0 ? SW Aug05 0:00 kupdated root 15 0.0 0.0 0 0 ? SW Aug05 0:00 kjournald,8.3.2 进程及通信命令,2kill kill命令的功能是向指定进程发送信号,在默认处理方式下,系统将终止指定进程。该命令的常用语法格式如下所示: kill 选项 进程标识号 kill命令的常用选项有: -s 信号:指定需要发送给进程的信号。若没有使用该选项指定要发送的信号,则默认发送SIGTERM。 -l:显示信号名称列表。 例如,要终止进程1409,可以使用下述命令: $kill 1409 这时发送缺省信号SIGTERM 到进程1409来终止它的运行。,8.3.2 进程及通信命令,8.3.2 进程及通信命令,3write write命令的功能是将消息直接发送到另一个用户的终端上,以实现用户之间的通信。write命令的一般格式为: write 用户名 终端名 其中用户名指定接收消息的用户。如果要进行通信的用户在许多终端上都进行了登录,则发送方可以通过终端名来指定要将消息发送到的终端。如果接收方在许多终端上都进行了登录,而使用write命令时没有指定终端名,则write命令会自动选择当前空闲时间最少的终端进行通信。,8.3.2 进程及通信命令,通常情况下,write命令首先将进行与接收方的连接。一旦write命令与接收方建立了连接,发送方在终端输入的信息都将在接收方的终端上显示出来,并且这种连接会一直保持下去,直到发送方键入Crtl+D为止。但在使用write命令时,有时会出现不能进行通信的情形,如发送方事先用mesg命令禁止了自己终端的消息通道,或接收方当前没有登录到系统上。,8.3.2 进程及通信命令,例如,用户wang使用write命令与用户zheng通信,可执行以下命令:,$write zheng 此时系统进入发送信息状态,用户可以输入要发送的信息,输入完毕希望退出发送状态时,按Ctrl+D即可。如下所示: Hello: We have a meeting at Room 412. Ctrl+D 上述命令执行的结果是用户zheng的屏幕上会显示如下信息: Message from wang tty3 09:16 Hello: We have a meeting at Room 412.,8.3.2 进程及通信命令,4mesg write等通信命令使用户之间

温馨提示

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

评论

0/150

提交评论