Linux操作系统精讲大连理工大学软件学院邱铁综合楼413,Tel:0411-87571632E_mail:qiutie@dlut.edu.cn参考教材:邱铁、于玉龙、徐子川编著《Linux应用与开发典型实例精讲》清华大学出版社.2010.5第2章Linux常用命令训练学习本章要达到的目标:1.掌握终端控制台的启动和使用方法。2.熟悉Linux关于文件和目录操作的常用命令。3.掌握Linux关于用户和系统操作的常用命令。4.掌握查看命令帮助的方法。5.掌握Linux中变量、流、管道操作的命令。6.掌握Linux中进程操作的命令。7.掌握Linux中网络操作的命令。8.了解Linux中其它常用操作的命令。2.1关于ShellShell是Linux与用户交流的一种主要的渠道,它采用字符界面的控制台形式Shell工作流程用户通过Shell命令以字符串的形式向Linux发送操作请求,Shell对字符串进行解释,并将解释的结果交付Linux,并由Linux启动对应的程序进行处理,并将处理结果通过输出设备返回给用户几种著名的ShellBourneShellShell的特点是简单,但缺乏别名、任务控制等交互功能CShellShell脚本编程语法与C语言类似KornShell向下兼容BourneShell,有增加了一些新的特性,并且运行速度较快bashShell编程语法与BourneShell相兼容,同时又提供了CShell和KornShell受人欢迎的特性2.2文件操作命令文件浏览、文件拷贝、文件移动、文件链接、文件删除、文件属性修改以及文件搜索2.2.1文件浏览1.ls语法:ls[参数]…[文件]…说明:使用ls命令列出文件列表的信息,默认情况为当前目录下所有文件,并按照字母顺序排序。参数说明:-a不隐藏任何以“.”开头的文件-b不显示以“~”结尾的文件--color=[WHEN]是否以颜色区分文件类型,WHEN的可能表达式:never、always、auto。-l使用长格式列出文件信息-r逆序排序-R递归列出所有子目录的内容-S按文件大小排序-t按修改时间排序--help显示帮助信息文件属性文件名修改时间所有者所属组长度引用次数r:可读;w:可写;x:可执行其他人权限同组者权限所有者权限文件类型-:普通文件d:目录c:字符设备b:块设备l:链接文件图2.1ls命令长格式2.file语法:file[选项]…[-f]文件…说明:显示指定文件的类型与编码格式。参数说明:-b以简明方式显示信息-f指定该选项后面的字符串为文件列表-z查看压缩文件内部的文件信息-d显示调试信息-s按照普通文件处理特殊文件(如字符设备文件)2.2.2文件拷贝cp语法:cp[参数]…[源文件]…目标目录说明:将指定的一个文件或多个文件拷贝到指定的目录中。参数说明:-a保留链接、文件属性,递归拷贝所有子目录-d保留链接-f拷贝时自动替换已存在的目标文件,不提示用户-i若目标文件存在,提示用户如何操作-r目录拷贝,递归拷贝所有子目录2.2.3文件移动mv语法:mv[参数]…源文件…目标文件/目录说明:将文件从移动到另外的目录或修改文件名称。参数说明:-I若目标文件存在,提示用户如何操作-f移动时自动替换已存在的目标文件,不提示用户2.2.4文件链接ln语法:ln[参数]…目标文件链接名说明:建立一个链接文件,该链接文件指向指定的目标文件。默认情况下建立硬链接。参数说明:-i若目标文件存在,提示用户如何操作-f拷贝时自动替换已存在的目标文件,不提示用户-s建立符号连接,而不是硬链接。符号连接具有更大的灵活度。2.2.5文件删除rm语法:rm[参数]…目标文件…说明:删除指定的目标文件。参数说明:-f忽略不存在的文件,不给出提示-r递归删除子目录中的所有文件-i以交互的方式,提示用户确认删除2.2.6修改文件属性1.chmod语法:chmod[参数]…{模式[,模式]…|八进制模式}文件…其中,模式的格式为:[ugoa]*([-+=]([rwxXst]*|[ugo]))+(该模式采用正则表达式表示,关于正则表达式请参见文献)。表达式中,“u”表示文件所有者,“g”表示同组者,“o”表示其他所有用户,“a”表示所有的用户(包括u和g);“-”表示删除某种权限,“+”表示添加某种权限,“=”表示赋予某种权限;“r”表示可读,“w”表示可写,“x”表示可执行。八进制模式采用三位八进制数表示权限,每位八进制数代表一类用户的权限,从高位到低位分别为文件所有者、同组者、其他所有用户。每位八进制数可以看成三位二进制数,从高位到低位分别表示可读、可写、可执行,值为1表示具有相应的权限,为0则不具有该权限。例如,764(二进制代码为111110100)表示文件所有具有可读、可写、可执行的权限;同组者有可读、可写得权限,但不可执行;其他所有人只由可读得权限。说明:chmod用来修改文件的访问权限。参数说明:-c仅在有修改时显示结果-f去除大部分的错误信息-v处理任何文件都会显示详细信息-R以递归方式更改所有文件及子目录2.touch语法:touch[选项]…文件…说明:touch用来修改文件的访问和修改时间,如果文件不存在默认创建空文件。参数说明:-a仅修改访问时间-c不创建任何文件-d字符串使用字符串表示时间,而非当前时间-m只修改修改时间-r文件使用指定文件的时间属性,而非当前时间-t时间模式使用[[CC]YY]MMDDhhmm[.ss]格式的时间,而非当前时间2.2.7文件搜索1.grep语法:grep[参数]…搜索字符串文件…其中,“搜索字符串”采用标准的正则表达式。说明:grep用来完成在指定的文件范围内搜索符合要求的字符串,并将字符串所在的行输出参数说明:-E使用扩展的正则表达式-G使用标准的正则表达式-f文件从文件中获取搜索字符串-s不显示错误信息-v选择不匹配的行-n同时输出行数2.find语法:find[参数]…路径…[测试]…动作关于find的语法格式比较复杂,上述所列语法仅为常见语法,此外还存在比较复杂的格式支持更加复杂的操作,有兴趣的读者可以自行尝试。在这个格式当中,“路径”用来提出所要搜索文件的范围,“测试”用来提出搜索的条件,“动作”用来指出对于符合测试条件的文件所进行的操作。说明:find用来搜索符合要求的文件,并对这些文件进行指定的操作。参数说明:-P对于符号连接文件,使用文件本身的属性-L对于符号连接文件,使用被连接文件的属性测试说明:-name字符串按照指定的字符串匹配文件名,“字符串”可使用“*”“?”等匹配符。-perm字符串按照指定的字符串所代表的权限来匹配文件。“字符串”的格式同chmod的“模式”相同。测试说明:-user字符串按照字符串指定的文件所有者匹配文件。-group字符串按照字符串指定的文件所有者所在组匹配文件。-mtime{-|+}n按照文件修改时间匹配文件,“-”表示n天以内,“+”表示n天以前。-atime{-|+}n按照文件访问时间匹配文件。-ctime{-|+}n按照文件创建时间匹配文件。-type字符按照字符所指定的文件类型匹配文件。“字符”包含:“b”块设备文件,“c”字符设备文件,“d”目录,“f”普通文件,“l”符号连接文件,“p”管道文件。-sizen[单位]按照指定的文件大小匹配文件,默认单位是块(512字节)。“单位”包括:“c”字节,“b”块,“w”字(2字节),“k”KB,“M”MB,“G”GB。-depth在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。动作说明:-print将搜索结果通过标准输出设备打印。这是默认动作。-exec命令针对搜索结果执行指定的命令。在命令中使用“{}\;”(注意这个字符串中“{}”和“\;”之间有一个空格,并且不要忘了昀后的“;”)来代表搜索结果。-ok命令同上,在执行前需要得到用户的确认。2.3目录操作在Linux中目录是一种特殊的文件,它是一种保存文件信息的文件。在使用者看来,目录就像一个文件夹,我们可以把相关的文件放在一个目录中,以方便查阅。关于目录的操作包括目录创建、删除、进入,以及查看当前所在目录2.3.1创建目录mkdir语法:mkdir[参数]…目录…说明:在当前目录下创建指定的目录。参数说明:-m模式对新创建的目录设置权限模式,“模式”的格式同chmod的“模式”相同。-p需要时,创建上层目录-v创建时显示相关信息2.3.2删除目录rmdir语法:rmdir[参数]…目录…说明:如果所列目录为空,则删除该目录。参数说明:-p删除目录后,尝试的删除所指定目录中所有的上层目录-v删除过程中显示相关信息2.3.3修改当前目录cd语法:cd目录其中,“目录”可以是通常的目录名称,也可以下述的一些特殊符号:“..”当前目录的上一级目录,“~”用户的主目录(不是Linux的根目录),“-”上一次变更当前目录前所在的目录。说明:进入到指定的目录中2.3.4查看当前目录pwd语法:pwd说明:在标准输出设备上输出当前目录。2.4用户与系统操作分为用户切换、密码修改、系统关机与重启2.4.1用户切换1.su语法:su[参数][用户名]说明:切换当前用户或者切换到超级用户(根用户)。如果用户名省略则切换到超级用户,切换用户可能需要提供要目标用户的密码。参数说明:-l重新加载登陆时的启动脚本-m保留当前环境变量,不重新加载脚本2.sudo语法:sudo[参数]命令说明:以其他用户身份运行指定的命令。与su不同,它是在单条命令中临时切换到其它用户运行,运行后立即返回当前用户。默认情况下是超级用户。运行命令前系统可能会要求用户输入目标用户密码。参数说明:-b后台运行命令,运行后立即返回提示符,而不是等待其运行结束后返回提示符。-H使用目标用户的主目录-u{用户名|用户ID}指定目标用户,缺省为超级用户3.login语法:login[-p]{[用户名][ENV=VAR]…|[-h主机名][-f用户名]}说明:启动一个用户会话。该命令要求超级用户才能运行参数说明:-p保留当前的环境变量设置-h设定登录主机-f设定登录用户2.4.2用户信息修改passwd语法:passwd[参数][用户名]说明:该命令可以完成对用户的管理,密码修改等操作参数说明:-a查看所有用户的密码状态-d删除指定用户的密码-l锁定指定的用户-u解除指定用户的锁定-wn设定n为密码过期警告的天数2.4.3关闭系统exit退出当前终端会话,关闭终端控制台。reboot退出当前终端会话,系统进入关机程序,关闭系统,然后重新启动系统。init0同上。shutdown退出当前终端会话,系统进入关机程序,关闭系统,关闭计算机电源。halt同上。poweroff强行关闭系统,关闭计算机电源。2.5获得帮助Linux系统中有一套比较完善的帮助系统,当你需要对Linux命令进行进一步了解的时候,他们会起到很大的帮助作用。利用这里帮助信息,你可以比较全面、详细的了解到Linux命令的具体用法。这些帮助信息也可以使你能够在这本书的基础之上进一步学习Linux。这里我们介绍几种常用的获得帮助的方法。2.5.1获取简要帮助[命令]–h[命令]-?[命令]--help2.5.2获得详细帮助man[命令]info[命令]2.6变量、流、管道操作变量,是一种临时记录字符串的方式,它仅仅在一次会话中有效,可以通过变量记录一些特殊含义的字符串。流,是文件打开的一种形式,是文件在内存中的组织形式的一种抽象。管道,是一种进程间通信的方式,用来在命令之