-1-Linux常用命令详解(常用、详细)BISTU自动化学院刷碗小工(frisen.imtm)2010年11月开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看)(配合Ctrl+F可快速查找你想了解的命令)-2-索引:(待完善)文件说明:Linux命令很多,但最常用的80个左右文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂由于忙于其他事情,改进排版的工作只能搁置了最后,望此文档能为大家Linux学习之路献微薄之力一、路径:执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令:一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“commandnotfind”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。二、命令顺序:若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。三、参数(或称选项)顺序:一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a–v”与输入“–v–a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–acmd1–vcmd2”,则不能任意改变选项顺序。四、常用参数:下面所列的是常见的参数(选项)意义:--help,-h显示帮助信息--version,-V显示版本信息-v繁琐模式(显示命令完整的执行过程)-i交谈模式(指定界面)-l长列表输出格式-q,-s安静模式(不显示任何输出或错误信息)-R递归模式(连同目录下所有文件和子目录一起处理)-z压缩五、命令的结合与定向:命令中除了一般命令外,还有管道(或称途径)(|)与定向(或)。管道(途径)的用法:“命令一[选项]”|“命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls/etc”会列出etc下的所有文件,若加上“|less”,也就是“ls/etc|less”,则会将“ls/etc”的结果通过less分页输出。定向的用法:将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“lstemp.txt”,就会将ls的结果输出到文件temp.txt中。“”与“”的差异在于前者是覆盖,而后者是附加。六、命令中的命令:许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合键。-3-1、adduser(字意:adduser)增加一个系统用户。在RedHat中,adduser命令实际上是useradd命令的一个符号连接,指向/usr/sbin/useradd。语法:adduser[选项]用户名选项:-d登陆目录指定新用户登陆的起始目录,默认为/home-e有效期限指定用户的有效期限,格式为YYYY-MM-DD-g用户组指定用户所属的组-p密码为新用户设置密码-r建立系统用户示例:One.创建一个新用户frisen,设定登录起始目录为/home/guest,密码123456:Two.创建一个指定目录、有效期和归属组的账户frisen2:Three.创建一个系统账户frisen3,并指定登录起始目录,同时账户密码设为123456:2、alias(字意:alias)为Linux系统中的命令定义别名,以简化操作。语法:alias[别名=‘命令’]选项:无示例:One.列出目前所有的别名设置:-4-Two.将ps-ef的别名设置为ps:Three.为一个复杂命令设置别名:注意:alias的优先权高于PATH(系统查找的路径),因此若是我们设置了与系统命令相同的别名,会以我们设置的别名为准。Shell环境中设置的别名仅在该次登陆过程中有效,若要所定义的命令别名每次登陆时都有效,需要将自定义的别名输入到文件.profile(bash)或.cshrc(tcsh)中,以保证每次启动时自动加载所定义的命令别名。3、at(字意:atsometime)在指定的时间执行特定的命令。时间以24小时制指定,格式为HH:MM。默认情况下,任何用户都可以使用at服务,但这样是不安全的。如果系统中存在at.allow,则只有列在文件中的用户才可以使用at服务。如果系统中存在at.deny,则列在文件中的用户不可以使用at服务,其他用户则可以。语法:at[选项][时间]选项:-d作业编号将待执行的作业删除-f文件从文件中读取要执行的命令-m将at执行的结果以E-mail的方式返回示例:One.如果想在晚上21:00的时候让屏幕显示出“Hello,world”字样,可以现在Shell提示符下输入:接着at命令显示一个“at”的提示符,继续输入:最后用组合键Ctrl+D结束输入。注意不要连续按Ctrl+D键两次,否则就自动退出系统了。Two.如果想在晚上22:00的时候播放CD—ROM里面的音乐,可以按照上面的步骤重新操作一遍,不同的是在第一次出现“at”提示符后应该输入命令“cdplay”。-5-4、bzip2(字意:Burrows—Wheelerzipfile)对文件进行压缩或解压。压缩后和解压前的文件类型为“.bz2”类型,默认操作为压缩。bzip2是一个无损压缩软件,具有高质量的数据压缩能力。bzip2可对任何普通文件进行压缩,也可以对其他压缩工具产生的文件(xxx.gz)进行二次压缩,但是不能对xxx.bz2的压缩文件进行二次压缩,也不能对目录文件进行压缩。bizp2对压缩较大的文件效果相当好,但若是将压缩文件再压缩,或是小的文本文件,则未必会有好的效果,甚至会出现比原来文件还有大的情况。语法:bzip2[选项]文件名选项:-d解压文件,需指定文件名-k压缩或解压缩时保留原文件,默认为删除-f强制覆盖。在压缩或解压过程中,如果产生的目标文件名在当前目录中已经存在则强制覆盖。默认不覆盖直接退出。-数字用指定的数字调整压缩的速度,-1或--fast表示最快压缩(低压缩比),-9或--best表示最慢压缩(高压缩比),系统默认值为6。-v显示命令执行的详细过程示例:One.压缩时指定压缩速率并保留原文件:(压缩后文件名为writeinfo.c.bz2,.bz2为类型名)Two.将当前目录下所有以ge开头的文件进行压缩,并显示压缩比(也即显示命令执行过程):(对比上例,压缩的源文件getarg.c、getarg.h已被删除)Three.以高压缩比压缩当前目录下的所有内容:Four.将压缩文件解压:-6-5、cal(字意:calendar)简单的显示月历。命令cal、cdp如同Windows下计算器、画图等实用性小程序。用一个单一的选项指定要显示的年份(1~9999)时,年份必须被完全指出,例如:“cal10”不会显示2010年的年历。默认一年从1月1日开始。语法:cal[选项]cal[月份][年份]选项:-3显示本月与前后两个月的月历-m显示月历时把星期一作为一周的第一天,默认星期日-y显示本年度所有月份示例:One.显示本月月历:Two.显示本月与前后两个月的月历,并把星期一作为一周的第一天(对比):-7-Three.显示2008年8月份的月历:(查看过去或将来特定时间的月历)6、cat(字意:concatenate)串接文件到指定文件或在标准输出上显示文件内容。语法:cat[选项][文件名]选项:-n对输出的行数编号-b和-n类似,但对空白行不编号-s将连续两行以上的空白行替换成一行空白-E在每行的结尾显示“$”符号-T将文件中的Tab键显示为“^I”-t等同于“-vT”-A显示全部,等同于“-vET”示例:One.从键盘接收数据并在屏幕上打印:说明:cat命令不指明参数可以从标准输入接收数据,同时又没有指定重定向文件,所以从标准输入接收的数据又输出到标准输出上。Two.查看文件内容,并对输出的内容进行编号且在每行结尾显示“$”符号:Three.同时显示多个文件的内容,在每一行的末尾以“$”结束且将Tab键显示为“^I”:-8-Four.把文件example1.c输入到文件example2.c,带行号,不显示空白行:说明:如果重定向文件example2.c不存在,则创建之。Five.将hello.c的内容附加到hello2.c上:注意:串接的文件必须存在,且不能对目录文件进行串接。-9-7、cd(字意:changedirectory)切换工作目录。在Linux中每个文件都被保存在一个目录中,目录中还可以包含子目录,这些子目录进一步可以包含文件和下一层子目录;文件系统呈树形结构,目录就是树的枝干,不论目录分支有多远都链接在根目录上,根目录是整个文件系统的起点,所有的目录和文件都连在根目录上。“~”表示当前用户的主目录(如/home/user1),“.”表示当前目录,“..”表示当前目录的上一层目录。语法:cd[目的目录]选项:无示例:One.切换到指定目录/home/frisen:Two.切换到自己的主目录:8、chmod(字意:changemode)更改文件或目录的访问权限。Linux系统提供了以字符和八进制两种方法,chmod命令仅限文件所有者和超级用户使用。语法:chmod[选项]文件名选项:-c只有在文件或目录权限更改的前提下,才显示更改信息-R递归处理。若目标文件为目录文件,则以递归形式更改目录下所有文件的权限,并显示更改信息。--reference=文件名或目录名设置成与指定的文件或目录相同的权限示例:One.将文件getarg.h的权限设置为所有用户(a=u+g+o)具有读、写、执行权限:两种方法-10-Two.使目录/test下的所有文件具有可读可写可执行权限:9、chown(字意:changeowner)改变文件的所有者或用户组,或两者同时改变。文件的属性包括文件属主(所有者)和属组,文件创建者默认为文件的属主,文件属组默认为文件创建者所在的工作组,属主用户对自己创建的文件具有最大的权限,其操作权限可以和超级用户相媲美;一个用户可以位于多个组内,因此一个文件也可以位于多个组内,同一组内的用户对文件具有共享的权限。文件与目录的用户与组,是Linux系统中极其重要的权限控制。在部分Linux版本中,不支持使用“.”来作用户与组的分隔,而必须使用“:”来分隔。语法:chown[选项][用户]:[组]文件名选项:-c只显示更改部分的信息-R递归处理,将指定目录下的所有文件及子目录一并处理--reference=文件名或目录名用指定文件或目录的组来改变目标文件或目录的组用户示例:One.将文件getarg.h的属主改为frisen,属组改为group:属主frisen和属组group必须存在Two.将目录/test下所有以writeinfo.开头的文件属组改为group,不改变属主:两种不同命令表示法-11-Three.只改变文件的所有者为frisen,属组不变:10、clear(字意:clear)清屏11、cp(字意:copy)12、date(字意:date)显示或设置系统的时间、日期。语法:date[选项][日期或时间格式]选项:-d字符串显示字符串所表示的时间。加ago表示之前的时间,不加表示之后的时间-s字符串设置字符串所代表的时间-u显示格林威治标准时间格式:%j显示该年的第几天%U显示该年的第几周%Z显示时区示例:显示当