Linux常用命令详解 1 系统安全性命令 1.1 注册
注册名 当用户在计算机屏幕上看到如下提示时,就表示计算机已准备接受用户的注册:
这时,输入用户的注册名(有时也称其为用户名),然后按下【Enter】键。 此时,在屏幕上会看到自己的用户名和要求输入口令的提示:
1 2 #localhost login:admin(admin是用户输入的注册名) #Password:
系统管理员可以根据需要设置不同的提示词。 2. 口令 当屏幕上出现如下提示时,可输入用户的账户口令:
输入口令后,再按【Enter】键,如果用户输入的注册名和口令都正确,那么系统会在屏幕上显示shell提示符,表示注册成功。接着,用户就可以输入命令完成自己要做的工作了。 如果用户输入的注册名或者口令不正确,那么系统将发出注册有错的信息:
然后,系统重新发出注册提示信息,让用户重试。
1.2 退出系统 当完成任务想要退出系统时,可以在提示符后面输入以下命令:
有些Linux系统退出系统的命令为:exit 。 然后按【Enter】键,系统进行相应的处理后,会重新在屏幕上显示注册提示信息。
1.3 重新启动和关闭系统
reboot命令 reboot命令的一般格式:
该命令用于重新启动系统,即实际上是指向halt命令一个符号连接。
选项及其含义: -d:重新启动以后,系统不向/var/tmp/wtmp文件中写入记录。 -w:仅做测试,并不实际执行重新启动操作,但是命令将重新启动信息写入/var/tmp/wtmp文件中。 -f:强制系统重新启动。
halt命令 halt命令的一般格式:
该命令用于关闭系统,并且在/var/log/wtm记录系统关闭的信息。如果系统的运行级别不是0或者6,则系统调用shutdown来代替该命令关闭系统。
选项及其含义: -d:不在/var/log/wtm文件中记录相应的信息。 -f:不调用shutdown命令,强行关机。 -p:在执行该命令关闭系统以后,执行poweroff命令,关闭电源。 -w:在/var/log/wtm文件中记录相应的信息,但不关闭系统。
shutdown命令 shutdown命令的一般格式:
该命令用于关闭系统,向所有已登录的用户发送信息,并向所有进程发送SIGTERM信号,通知进程关闭。
选项及其含义: time:设置在什么时间关机。 warning-message:设置发送给所有用户的警告信息。 -h:在关闭系统以后关机。 -k:向所有已登录用户发送警告信息,但不真正关闭系统。 -n:不调用init而直接关闭系统,一般情况下最好不要用这个选项关闭系统。 -r:在关闭系统以后重新启动系统。 -t sec:init在发送警告以后sec秒删除进程。
1.4 修改口令
选择口令 选择用户口令时,应遵守以下基本规则: (1)一个口令至少应有8个字符,包括字母、数字及符号,如ily&%wxy; (2)不建议使用姓名、别名、短语及字典中可以找到的词从前向后或者从后向前拼写的形式等作为口令; (3)不同的计算机上要使用不同的口令,但是不要用计算机名作为口令; (4)不要重复使用老口令,或许已将一个口令告诉过其他用户; (5)如果认为其他用户已经知道了口令,就要及时修改口令; (6)口令应注意保密,不要将口令写在自己桌面的纸上或者通过电子邮件发送出去,也不要与其他用户共用一个口令; (7)要选择一个能够记住的口令。如果忘记了口令,就无法恢复它,但是系统管理员可以为用户重新设置一个口令。
更改口令 可以利用passwd命令更改用户的口令,其具体过程如下: (1)登录系统,在提示符下, 输入passwd命令:
1 [studentL @localhost studentL]$passwd
(2)在屏幕上马上出现如下提示信息:
1 2 3 Changing password for user studentL. Changing password for studentL (current)UNIX password:
此时,输入老口令(即用户注册进入系统时使用的口令)。 系统验证无误后,给出如下提示:
此时输入新口令。 (3)输入一个合法的新口令后,系统会要求再输入一遍新口令,以便加以确认:
如果用户两次输入的口令完全一样,那么系统就接受这个口令作为用户下次注册时的口令。出于安全考虑,用户输入的所有口令都不在屏幕上以明文显示。 如果用户输入的口令不对,那么系统会发出提示,要求用户重新输入。
1.5 锁住终端会话 如果必须离开终端一会儿,可以使用==【vlock】命令==来锁住终端,使当前的会话不被他人看到。 该锁将一直锁住这个显示器,直到输入这个用户的登录口令才能解锁。
2 命令的使用
使用系统命令是与Linux操作系统交流的直接的方式。bash提供了数百个系统命令,尽管这些命令的功能不同,但它们的使用方式和规则都是统一的。
2.1 bash简介
当进入Linux环境时,系统将自动启动相应的shell。shell是一种命令行解释程序,负责用户和操作系统之间的沟通。在提示符下输入的每个命令都先由shell解释,然后传给Linux内核执行。通过shell,可以启动、挂起、停止甚至编写程序。
各种Linux环境下安装了多种shell,这是由历史原因造成的。这些shell都是由不同的人编写并都得到一部分用户的青睐。常用的是Bourne shell(sh)、C shell(chs)、Bourne Again shell(bash)和Korn shell。而Red Hat Linux的默认shell是bash。
bash是Bourne Again shell的缩写,其作者是Brain Fox和Chet Ramey。它是向下兼容的,并且吸收了其他shell的许多优点,是一种功能全面的shell。另外,bash还有很多自己的特色。例如,可以使用方向键查阅以往的命令,对命令进行编辑;在忘记命令名时,还可以向系统求助,使用命令补齐功能等。bash在shell编程方面也相当优秀。
各种Linux环境下安装了多种shell,这是由历史原因造成的。这些shell都是由不同的人编写并都得到一部分用户的青睐。常用的是Bourne shell(sh)、C shell(chs)、Bourne Again shell(bash)和Korn shell。而Red Hat Linux的默认shell是bash。
2.2 命令的使用
命令名由小写的英文字母构成,往往是表示相应功能的英文单词或单词的缩写。例如:date表示日期;who表示谁在系统中;cp是copy的缩写,复制命令,用于复制文件。
其中==方括号括起的部分==,表明该项对命令行来说==不是必须的,是可选的==。既可以直接在提示符后面输入命令date,显示当前的日期和时间,也可以在date命令名后面带有选项和参数。
选项是对命令的特别定义,以“-”开始,多个选项可用一个“-”连起来,例如“ls -l -a”与“ls -la”相同。
命令行的参数提供命令运行的信息或者是命令执行过程中所使用的文件名。通常参数是一些文件名,告诉命令从哪里可以得到输入及将输出送到什么地方。
如果命令行中没有提供参数,命令将从标准输入文件(即键盘)接收数据,输出结果显示在标准输出文件(即显示器)上。
可以使用重定向功能对这些文件进行重定向。
命令在正常执行后返回一个0值,表示执行成功;如果命令执行过程中出错,没有完成全部工作,则返回一个非零值。在shell脚本中可用此返回值作为控制逻辑流程的一部分。
Linux操作系统的联机帮助对每个命令的准确语法都做了说明,使用时可以查阅。
2.3 键入命令
在【shell】提示符下,可以输入相应的命令。输入后,必须按【Enter】键予以确认。shell会读取该命令并予以执行。命令完成后,屏幕将显示新的提示符。
shell命令可以==识别大小写==。例如,DATE、date和Date是不同的,其中只有一个是真正的Linux命令。
如果系统找不到输入的命令,会显示反馈信息:“-bash:命令:command not found”。这时,就要检查键入命令的拼写及大小写是否正确。
如果一个命令太长,一行放不下时,要==在第一行行尾键入“\”字符==并按【Enter】键。这时==shell会返回一个大于号(>)==作为提示符,表示允许命令延续到下一行。然后,可以接着输入命令。
在命令与选项、参数之间要用空格或制表符隔开。连续的空格会被shell解释为单个空格。
2.4 修改命令行输入错误
输入命令时,可以使用多个空格符,但是拼写和语法必须是准确的。如果在命令行中出现拼写错误,在按【Enter】键之前,可以通过下列两种方式修改。 (1)用==“退格”键(即【Backspace】键)==从后向前删除有错误的字符,再键入正确的命令字符串。 (2)用==【Ctrl+U】键==可以删除光标所在的命令行。如果命令多于一行,首行末尾有反斜线,则只删除当前行。
2.5 特殊控制符 shell提供了许多控制符及特殊字符,用于简化命令的输入。 (1)==【Ctrl+H】==键为默认的删除符号,它的功能与【Backspace】键相同。 (2)==【Ctrl+U】==键可以删除光标所在的命令行。 (3)==【Ctrl+J】==键相当于回车。 (4)如果在命令行中使用一对单引号,shell将==不解释被单引号括起的内容==,包括其中的空格和回车字符。 (5)分号可以将两个命令隔开,这样可以实现在一行中输入多个命令。命令的执行顺序与输入的顺序相同。
3 文件操作命令 3.1 文件系统概念
磁盘上的文件系统是分层次的,由若干目录及其子目录组成,上层的目录称为根目录,用“/”表示。
3.1.1 文件与目录的定义
名称
定义
文件系统
它是磁盘上有特定格式的一片区域,操作系统通过文件系统可以方便地查寻和访问其中所包含的磁盘块。
文件
文件系统中存储数据的一个命名对象。一个文件可以是空文件,但仍可为操作系统提供其他信息。
目录
包含许多文件项目的一类特殊文件。目录支持文件系统的层次结构。文件系统中的每个文件都登记在一个(或多个)目录中。
子目录
包含在另一个目录中的目录。包含子目录的目录称为父目录。除了根目录以外,所有的目录都是子目录,并且有它们的父目录。根目录就作为自己的父目录。
文件名
用来标识文件的字符串,它保存在一个目录文件项中。
路径名
由斜线字符“/”结合在一起的一个或多个文件名的集合。路径名指定一个文件在分层的树形结构(即文件系统)中的位置。
3.1.2 文件结构 文件是Linux操作系统处理信息的基本单位。所有软件都组织成文件形式。 (1)文件的成分 无论文件是一个程序、一个文档、一个数据库,或者是一个目录,操作系统都会赋予文件相同的结构,具体信息如下: ① 索引节点: 又称I节点。在文件系统结构中,包含有关相应文件信息的一个记录,这些信息包括文件权限、文件主(文件拥有者)、文件大小等。 ② 数据: 兰德公司的研究结论表明,85%倒闭的大企业是由管理者的重大决策失误造成的。 (2)命名文件 文件名保存在目录文件中。Linux的文件名几乎可以由ASCII字符的任意组合构成,文件名可长达255个字符。 为方便管理文件,文件名应遵循以下规则: ① 文件名应尽量简单,并且应反映出文件内容。文件名没有必要超过14个字符。 ② 除斜杠“/”和空字符以外,文件名可以包含任意的ASCII字符,因为这两个字符被核心当做表示路径名的特殊字符来解释。 ③ 习惯上允许使用下线符“_”
和句点“.”
来区别文件的类型,使文件名更易读。
1 2 但是应避免使用以下字符,因为对系统的shell来说,它们有特殊的含义。 这些字符是: ; | < > ` " ' $ ! % & * ? \ ( ) [ ],另外文件名应避免使用空格、制表符或其他控制字符。
④ 同类文件应使用同样的后缀或扩展名。 ⑤ Linux系统区分文件名的大小写,例如名为letter的文件与名为Letter的文件不是同一个文件。
注意: 以圆点“.”开头的文件名是隐含文件,默认方式下使用ls命令并不能将它们在屏幕上显示出来。同样,在默认情况下,shell通配符并不匹配这类文件名。 (3)文件名扩展字符 为了能一次处理多个文件,shell提供了几个特别字符,称为文件名扩展字符(也称通配符)。文件名扩展字符主要有以下几种: ① 星号“ * ”
与0个或多个任意的字符相匹配,可以匹配当前目录下的所有文件,但以点“.”开头的隐含文件除外。例如:file*
可以代表file123、fileabc或file。 ② 问号“?”
只与一个任意的字符匹配。可以使用多个问号。例如:file?
可以与file1、file2、file3匹配,但不与file、file10匹配。 ③ 方括号“[ ]”
只与方括号中字符之一匹配,可以用短横代表一个范围内的字符,在方括号中如果以惊叹号开始,表示不与惊叹号后的字符匹配。例如,file[1234]
只与文件file1、file2、file3或file4匹配;file[!1234]
除了file1、file2、file3和file4这4个文件外,与其他任何一个以file起始的文件名匹配。
3.1.3 文件类型 Linux操作系统支持以下文件类型:普通文件、目录文件、设备文件和符号链接文件。 (1)普通文件 普通文件也称为常规文件,包含各种长度的字符串。核心对这些文件没有进行结构化,只是作为有序的字符序列将它提交给应用程序。应用程序自己组织和解释这些数据。它包括文本文件、数据文件和可执行的二进制程序。 (2)目录文件 目录文件是一种特殊文件,利用它可以构成文件系统的==分层树形结构==。如同普通文件那样,目录文件也包含数据。但目录文件与普通文件的差别是:核心对这些数据加以结构化,即它是由成对的“I节点号/文件名”构成的列表。 ※ I节点号是检索I节点表的下标,I节点中存有文件的状态信息。 ※ 文件名是给一个文件分配的文本形式的字符串,用来标识该文件。在一个指定的目录中,任何两项都不能有同样的名字。 当把文件添加到一个目录中时,该目录的大小会增大,以便容纳新文件名。当删除文件时,目录的尺寸并不减少,而是核心对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。 (3)设备文件 设备文件是一种特殊文件,除了存放在文件I节点中的信息外,它们不包含任何数据。系统利用它们来标识各个设备驱动器,核心使用它们与硬件设备通信。它通常包含字符设备和块设备。 (4)符号链接文件 符号链接文件是一种特殊文件,它们提供对其他文件的参照。它们存放的数据是文件系统中通向文件的路径。当使用符号链接文件时,核心自动地访问所保存的这个路径。
3.2 文件显示命令 3.2.1 cat命令
cat命令连接文件并打印到标准输出设备上,经常用来显示文件的内容,相当于DOS下的type命令。
cat命令的一般格式:
该命令有两项功能: 其一是用来==显示文件的内容==。它依次读取由参数文件1所指明的文件,将它们的内容输出到标准输出上。 其二是==连接两个或多个文件==,如cat f1 f2 >f3,将把文件f1和f2的内容合并起来,然后通过输出重定向符“>”,将它们放入文件f3中。
选项的含义如下: -b,–number -noblank:从1开始对所有非空输出行进行编号。 -n,–number:从1开始对所有输出行编号。 -s,–squeeze-blank:将多个相邻的空行合并成一个空行。
3.2.2 more命令
如果文件太长,用cat命令只能看到文件的后一页,而用more命令时可以==一页一页地显示==。
more命令的一般格式:
功能: 该命令一次显示一屏文本,满屏后显示停下来,并且在每个屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比:–More-(××%)。 进入more状态,用==【Enter】==键可以向后移动一行;用==空格键==可以向后移动一页;用==【Q】==键可以退出;用==【B】==键,显示上一屏内容;用==【H】==键,显示帮助屏,该屏上有相关的帮助信息。在more状态下还有许多功能,可用man more命令获得。
选项的含义如下: -num:这个选项指定一个整数,表示一个屏幕显示多少行。 -d:在每屏的底部显示以下“[Press space to continue,'q' to quit.]”
,并且在用户输入非功能键后,显示“[Press 'h' for instructions.]”
信息。 -p:不滚屏,在显示下一屏之前先清屏。 -s:文件中连续的空白行压缩成一个空白行显示。
3.2.3 less命令
与more命令一样,less命令也用来分屏文件内容,但功能比more命令的功能还强大。
less命令的一般格式:
功能 less实际上是more命令的改进版,其命令的直接含义是more的反义,功能比more命令的功能更灵活。 例如,用【==PgUp】键==可以向前移动一页,用==【PgDn】==键可以向后移动一页,用==向上光标键==可以向前移动一行,用==向下光标键==可以向后移动一行。【Q】键、【Enter】键、空格键的功能与more命令中类似。
3.2.4 head命令
head命令在屏幕上显示==指定文件的开头若干行==,行数由参数值来确定。显示行数的==默认值为10==。
head命令的一般格式:
选项的含义如下: -c SIZE,–bytes=SIZE:显示文件开始的SIZE字节。 -n NUMBER,–LINES=NUMBER:显示开始的NUMBER行,默认输出10行。 -q ,–quiet,–silent:不显示文件名。 -v,–verbose:显示文件名。
3.2.5 tail命令
tail命令在屏幕上显示==指定文件的末尾若干行==。行数由参数决定,默认显示文件的后10行。如果指定的文件多于一个,那么tail在显示每个文件之前先显示文件名。
tail命令的一般格式:
选项的含义如下: -c N,–byte=N:输出后N个字节。 -f,–follow tail:命令超过文件的末端以后,继续尝试读取更多的文件内容。有些文件的内容不断增加,如日志文件,这个选项可以不断地输出新添到文件中的内容。 -n,–line=N:输出后N行,而不是默认的10行。 -q,-quiet,–silent:不输出包含给定文件的文件名。 -v,–verbose:始终输出包含给定的文件名。
3.3 匹配、排序命令 4 目录及其操作命令 5 文件压缩命令 6 进程控制命令 7 网络命令 8 其他命令 9 联机帮助命令