# 7.1目录操作命令

  1. 查看目录

查看目录内容的命令是ls,它默认显示当前目录的内容,可以在命令行参数的位置给出一个或多个目录名,从而可以查看这些目录。命令的语法格式为:

ls [选项]…[文件名]…

ls命令有多个命令行选项,如:

-a 列出所有文件,包括那些以“.”开头的文件;
-d 如果后面接的是一个目录,那么使用该参数只输出该目录的名称;
-l 使用长格式显示文件条目,包括连接数目、所有者、大小、最后修改时间、权限等;
-t 按文件修改时间进行排序,而不是使用文件名排序;
-C 按列纵向对文件名排序;
-F 在文件名后加上一个符号来表示文件类型;
-Cx 按行跨页对文件名排序;
-CF 按列列出目录中的文件名,该命令在文件名之后附加一个字符用来区分目录和文件的类型;
-CR 按多栏格式显示当前目录中的所有文件以及沿目录树向下各个子目录的所有文件,也称作递归列表。该命令可以区分目录和可执行的文件,即在文件名之后附加一个字符。
  1. 改变工作目录

进入一个目录,或者说改变当前工作目录,使用cd命令,其命令的语法格式为:

cd 目录名

cd命令带有唯一的一个参数,即表示目标目录的路径名(相对路径名或绝对路径名)。

利用点点(..)把工作目录向上移动一级目录:cd . .

为了从系统中的任何地方返回到用户主目录,可以使用不带任何参数的cd命令。

  1. 创建目录

使用mkdir命令创建一个目录或多个目录,以便有效地组织自己的文件。其命令的语法格式为:

mkdir [选项] 目录名 [目录名…]

同一子目录应包含类似的文件。例如,应建立一个子目录,包含所有的数据库文件;另一个子目录包含电子表格文件;还有一个子目录用来保存某项目相关文件。

-p选项:同时创建目录及其子目录。

mkdir -p 目录名/子目录名

  1. 删除目录

当目录不再被使用,或磁盘空间已达到使用限定值时,就需要从文件系统中删除失去使用价值的目录。

利用rmdir命令可从目录中删除一个或多个空的子目录,其语法格式如下:

rmdir [选项] 目录名 [目录名…]

子目录被删除之前应该是空目录。即该目录中的所有文件必须已被清空。如果该目录中仍有其它文件,则不能用rmdir命令将其删除。

当前的工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

-p选项:递归地删除指定的目录及其子目录。即:如果指定的目录有子目录,就先删除其子目录,再删除该目录。

  1. 显示当前目录

在具体操作时,很可能会记不清自己当前所在的目录,命令pwd用来显示用户当前所在目录树中的位置。如:

# pwd

# /usr/local/rfinput/bin

系统给出的信息表示用户当前所在的目录是/usr/local/rfinput/bin。

# 7.2文件操作命令

  1. 显示文本文件

文本文件是由可打印字符和控制字符(如制表符和换行符)组成的。有几个命令可以显示文本文件。

  • cat命令

cat命令的一般语法是:

cat [选项] 文件名 [文件名…]

该命令运行后,指定文件的内容将在标准输出(通常是屏幕)上显示出来。如果文件内容很长,在一个屏幕中显示不够完整,便会出现屏幕滚动。为控制滚屏,可以按<Ctrl+S>组合键,停止滚屏;按<Ctrl+Q>即可恢复滚屏。

其中选项及其意义如下:

-v 用一种特殊的形式显示控制字符,除去LFO与TAB
-n 显示输出行的编号
-b 显示非空输出行的编号
  • head命令

其命令语法如下:

head [显示行数] 文件名 [文件名…]

head命令在屏幕上显示指定文件最前面的若干行,行数由“显示行数”确定,默认值是10。

  • tail命令

其命令语法如下:

tail [显示行数] 文件名 [文件名…]

tail [-n] 文件名 [文件名…]

在屏幕上显示指定文件末尾的若干行,行数由“显示行数”确定;或从指定行号开始显示,直至该文件的末尾。

  • more命令

more命令显示文件内容,每次显示一屏。其语法是:

more [选项] 文件名 [文件名]

可在每个屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比。

可以用几种不同的方法对提示做出回答:

——按<Space>键,显示文本的下一屏内容。

——按<Enter>键,只显示文本的下一行内容。

——按斜线符(/),接着输入一个模式,可以在文本中寻找下一个相匹配的模式。

——按h键,显示帮助屏,该屏上有相关的帮助信息。

——按b键,显示上一屏内容。

——按q键,退出more命令。

  1. 创建新文件

可以利用命令和实用程序来创建文件,如文本编辑器,专门用于把有用的数据放入文件中。然而,有时可能只需要仅有文件名的文件,即空文件。

Linux系统提供touch命令来创建空文件。其语法如下:

touch 文件名 [文件名…]

不存在的文件名被当作空文件创建。已存在文件的时间标签会更新为当前的时间(默认方式);它们的数据将原封不动地被保留下来。

  1. 拷贝文件

使用cp命令可以做文件的备份,或者做其他用户文件的个人拷贝。

可以使用cp命令把一个源文件拷贝到一个目标文件,或者把一系列文件拷贝到一个目标目录中。其语法是:

cp 源文件目标文件

cp 源文件1 [源文件2…] 目标文件

在第一种语法格式中,源文件被拷贝到目标文件。

如果目标文件是目录文件,那么把源文件拷贝到这个目录中,而文件名保持不变;

如果目标文件不是目录文件,那么源文件就拷贝到该目标文件中,后者原有的内容将被破坏,但文件名不变;

在第二种语法格式中,所有的源文件都被拷贝到目标文件——该目标文件必须是目录文件,所有源文件的名字均不改变。

  1. 移动和重命名文件

mv命令用来移动文件或对文件重命名。该命令的语法为:

mv 源文件目标文件

mv 源文件1 [源文件2…] 目标文件

在第一种用法中,源文件被移至目标文件后有两种不同的结果:

  • 如果目标文件是某一目录文件的路径,源文件会被移到此目录下,且文件名不变;

  • 如果目标文件不是目录文件,则源文件名会变为此目标文件名,并覆盖已存在的同名文件。

在第二种用法中,所有的源文件都会被移至目标文件,此处的目标文件必须是目录文件。所有移到该目录下的文件都将保留以前的文件名。

如果源文件和目标文件在同图4.17 添加账户

一个目录下,mv的作用就是重命名文件,例如:

mv oldname newname

  1. 删除文件

用rm命令删除不需要的文件和目录。该命令的语法为:

rm [选项] 文件名1 [文件名2…]

在删除文件之前,最好再看一下文件的内容,确定是否要真正删除。

-i选项:该选项在使用文件扩展名字符删除多个文件时特别有用。此选项会要求用户逐一确定是否要删除文件,必须输入y或Y,按<Enter>键后才能删除文件。如果仅按<Enter>键或其他字符,文件不会被删除。

-r选项:可以删除目录。当一个目录被删除时,所有文件和子目录将均被删除。注意,它是一个非常危险的命令选项。

  1. 文件链接

NFS Server 4 具有为一个文件起多个名字的功能,称为链接。这样,只需对一个文件进行修改,即可完成对所有目录下相应链接文件的修改。

ln命令用来创建链接,语法为:

ln 源文件目标文件

ln 源文件1 [源文件2…] 目标文件

在第一种语法格式中,如果目标文件是到某一目录文件的路径,源文件会链接到此目录下,文件名不变;如果目标文件不是到某一目录文件的路径,源文件会链接到此目标文件,并覆盖已经存在的同名文件。

在第二种语法格式中,所有的源文件都被链接到目标文件——该目标文件必须是目录文件。所有源文件的名字均不被改变。

文件链接有两种形式,即硬链接和符号链接。

  • 硬链接

默认情况下,ln命令创建硬链接。

一个文件的硬链接数可以在目录的长列表格式的第二列中看到,无额外链接的文件链接数为1。ln命令会增加链接数,rm命令会减少链接数。一个文件除非链接数为0,否则不会物理地从文件系统中被删除。

对硬链接有如下限制:不能对目录文件作硬链接;不能在不同的文件系统之间作硬链接。

  • 符号链接

符号链接也称软链接,是将一个路径名链接到某个文件。事实上,它只是一个文本文件,其中包含它提供链接的另一个文件的路径名。另一个文件是实际包含所有数据的文件。所有读写文件内容的命令,当它们被用于符号链接时,将沿着链接方向前进去访问实际的文件。

如果给ln命令加上s选项,则建立符号链接。例如:

ln -s source destination

符号链接没有硬链接的限制,可以对目录文件作符号链接,也可以在不同文件系统之间作符号链接。

  1. 文件内容比较
  • 比较文本文件

diff命令用于比较文本文件,并显示两文件间的不同。其一般格式是:

diff 文件1 文件2…

如果两个文件完全一样,则不显示任何输出。如果有区别,即会分段显示两文件的区别。

  • 比较数据文件

cmp命令用于比较任何两个包含正文或数据的普通文件。其一般语法为:

cmp file1 file2

由于二进制数据不能显示到屏幕上,cmp命令只是简单地报告从哪一个字节开始出现不同。

  1. 查找文件
  • find命令

find命令用来查找文件和目录的位置。该命令的语法为:

find 路径名 [选项]图4.17 添加账户

其中,常用选项有:

-print:显示输出查找到的结果。如果未指定任何选项,系统默认为-print。如find命令的最基本的用法是列出指定目录下的所有文件和子目录:

# find /usr -print

-name:按文件名查找。

-size:按文件大小查找。

例如,下面的命令将查找/usr目录下超过100k的文件:

# find /usr -size 100k

-user:按文件主查找。

-type:按文件类型查找。常见的类型有:

类型 说明
b 块特别文件
c 字符特别文件
f 普通文件
l 符号链接文件
d 目录文件
  • locate命令

locate是一个使用方便且查询速度极快的文件和目录查找命令。该命令的语法为:

locate 文件名 [选项]

使用locate命令的前提是要先创建一个用于定位文件或目录位置的slocate数据库,而且该数据库应及时更新,这样才能保证locate查找结果的准确性。

以下命令用于从/开始创建slocate数据库:

数据库创建后就可以查找文件了。例如,要查找所有关于telnet命令的文件,可使用:

# locate telnet

locate命令将在其数据库中检查所有与telnet匹配的文件和目录并在屏幕上显示结果。

更新slocate数据库的命令是updatedb,需要以root用户身份执行此命令。

一般情况下,系统管理员会设置由cron程序在夜间自动更新数据库。cron是一个后台守护进程,它定期执行计划好的任务。

  • grep命令

在文件中查找正文。grep命令用来在文本文件中查找指定模式的词或短语,并在标准输出上显示包括给定字符串的所有行。grep命令的语法为:

grep [选项] 查找模式文件名 [文件名…]

默认情况下,grep在查找模式时是区分大小写的;如果不想区别大小写,可以用选项-i。

例如,下面的命令将在/etc目录及其子目录下的所有文件中查找字符串“hello world”出现的次数:

# grep ‘hello world’ /etc/*/*

查找模式可能是唯一的参数,如果在模式中使用了shell元字符,通常要把它用单引号(’)括起来。

# 7.3文件权限操作

在多用户操作系统中,出于安全性的考虑,需要给每个文件和目录加上访问权限,严格地规定每个用户的权限。同时,用户可以为自己的文件赋予适当的权限,以保证他人不能修改和访问。

  1. 改变文件主

Linux为每个文件都分配了一个文件所有者,称为文件主,对文件的控制取决于文件主或超级用户(root)。文件或目录的创建者对创建的文件或目录拥有特别使用权。

文件的所有关系是可以改变的,chown命令用来更改某个文件或目录的所有权。chown命令的语法格式是:

chown [选项] 用户或组文件1 [文件2…]

用户可以是用户名或用户ID。文件是以空格分开的要改变权限的文件列表,可用通配符表示文件名。

如果改变了文件或目录的所有权,原文件主将不再拥有该文件或目录的权限。

系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限。

  1. 改变用户组

在Linux下,每个文件又同时属于一个用户组。当创建一个文件或目录,系统会赋予它一个用户组关系,用户组的所有成员都可以使用此文件或目录。

文件用户组关系的标志是GID。文件的GID只能由文件主或超级用户(root)来修改。chgrp命令可以改变文件的GID,其语法格式为:

chgrp [选项] group 文件名

其中,group是用户组ID。文件名是以空格分开的要改变属组的文件列表,它支持通配符。

  1. 文件权限设置

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件、目录进行访问与操作。

访问权限规定三种不同类型的用户:

  • 文件主(owner)

  • 同组用户(group)

  • 可以访问系统的其他用户(others)

访问权限规定三种访问文件或目录的方式:

  • 读(r)

  • 写(w)

  • 可执行或查找(x)

当用ls -l命令或l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。其中各位的含义如下:

文件访问权限

读权限(r) 只允许指定用户读其内容,而禁止对其做任何更改操作。将所访问的文件内容作为输入命令都需要有读的权限。例如:cat、more等。
写权限(w) 允许指定用户打开并修改文件。例如命令vi、cp等。
执行权限(x) 指定用户将该文件作为一个程序执行。

目录访问权限

读权限(r) 可以列出存储在该目录下的文件,即读目录内容列表。这一权限允许shell使用文件扩展名字符列出相匹配的文件名。
写权限(w) 允许从目录中删除或添加新的文件,通常只有目录主才有写权限。
执行权限(x) 允许在目录中查找,并能用cd命令将工作目录改到该目录。
  1. 改变文件权限

4.1 以符号模式改变权限

chmod用于改变文件或目录的访问权限。用户可以用它控制文件或目录的访问权限。只有文件主或超级用户root才有权用chmod改变文件或目录的访问权限。

chmod命令的语法为:

chmod key 文件名

key由以下各项组成:

[who] [操作符号] [mode]

其中,操作对象who可以是下述字母中的任一个或组合:

u user,表示用户,即文件或目录的所有者。
g group,表示同组用户,即与文件属主有相同组ID的所有用户。
o others,表示其他用户。
a all,表示所有用户,它是系统默认值。

操作符号可以是:

+ 添加某个权限
- 取消某个权限
= 赋予给定权限并取消其他所有权限(如果有的话)

mode所表示的权限可用下述字母的任意组合:

r 可读
w 可写
x 可执行
s 在文件执行时把进程的属主或组ID置为该文件的文件属主
t 保存程序的文本到交换设备上
u 与文件属主拥有相同的权限
g 与和文件属主同组的用户拥有相同的权限
o 与其他用户拥有相同的权限

这三部分必须按顺序输入。可以用多个key,但必须以逗号间隔。

4.2 以绝对方式改变权限

通常也可以用chmod命令配以不同类型的key直接设置权限。此时以数字代表不同的权限。这里key可以包括三个(或三个以上)的数字,每个数字表示对不同类型用户的权限。

数字表示的属性的含义:

0表示禁止该权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。

通常,key是以三位八进制数字出现的,第一位表示用户权限、第二位表示组权限,第三位表示其他用户权限。

例如,要使文件myfile的文件主和同组用户具有读写权限,但其他用户只可读,可以用以下命令指定权限:

chmod 664 myfile

  1. 默认权限

默认情况下,系统将创建的普通文件的权限设置为-rw-r-r--,即文件主对该文件可读可写(rw),而同组用户和其他用户都只可读;同样,在默认配置中,将每一个用户主目录的权限都设置为drwx------,即只有文件主对该目录可读、写和可查询(rwx),即用户不能读其他用户目录中的内容。

用户可以修改新建文件的默认存取权限,如使用如下命令:

umask u=rwx,g=,o=

它会在创建新文件时给文件主以全部权限,而同组用户及其他用户没有任何权限。

# 7.4定向和管道

执行一个Shell命令行通常会自动打开三个标准文件,即标准输入文件(stdin)、标准输出文件(stdout)和标准错误输出文件(stderr)。stdin通常对应终端的键盘,stdout和stderr对应终端的屏幕。进程从标准输入文件中得到数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

下面以cat命令为例,cat命令的功能是从命令行给出的文件中读取数据,并将这些数据直接送到标准输出。例如,使用以下命令将会把文件config的内容依次显示到屏幕上:

$ cat config

但是,如果cat的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。例如:

$ cat

Hello world

Hello world

$

直接使用标准输入/输出文件存在以下问题:

数据从标准终端输入时,输入的数据只能用一次,下次再想用这些数据时则需要重新输入;而且在终端上输入时,若输入有误修改起来较为困难。

输出到终端屏幕上的信息只能看不能修改。用户无法将输出的内容进行更多处理,如将输出作为另一命令的输入做进一步地处理等。

为了解决上述问题,Linux系统为输入、输出的传送引入了另外两种机制,即输入/输出重定向和管道。

  1. 输入重定向

输入重定向是指把命令(或可执行程序)的标准输入重定向到指定的文件中。即输入可以不是来自于键盘,而来自某个指定的文件。

例如,命令wc统计指定文件包含的行数、单词数和字符数。如果仅在命令行上键入:

$ wc图7.1访问权限

wc将等待用户的输入,这时Shell好像宕掉一样,从键盘键入的所有文本都出现在屏幕上,但并没有任何结果,直至按下<Ctrl+D>,wc才将命令结果写在屏幕上。

如果给出一个文件名作为wc命令的参数,wc将返回该文件所包含的行数、单词数和字符数。

另一种把/etc/passwd文件内容传给wc命令的方法是重定向wc的输入。输入重定向的一般形式为:

命令<文件名>

可以用下面的命令把wc命令的输入重定向为/etc/passwd文件:

$ wc< /etc/passwd

20 23 726

大多数命令都以参数的形式在命令行指定输入文件的文件名,所以输入重定向并不经常使用。尽管如此,当使用一个不接受文件名作为输入参数的命令,或需要的输入内容存在于一个文件里时,就能利用输入重定向来解决问题了。

  1. 输出重定向

输出重定向是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不会显示在屏幕上,而是写入到指定的文件中。

输出重定向比输入重定向更常用。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到某个文件中,然后再用文本编辑器打开该文件,即可查看输出信息;如果想保存一个命令的输出,也可以使用此方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入。

输出重定向的一般形式为:

命令>文件名

例如:

$ ls> directory.out

$ cat directory.out图7.1访问权限

ch1.doc ch2.doc ch3.doc chimp config mail/ test/

将ls命令的输出保存为一个名为directory.out的文件。

为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,Shell提供了输出重定向的一种追加手段。

输出追加重定向与输出重定向非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。

如果要将某条命令的输出结果追加到指定文件的后面,可以使用追加重定向操作符“>>”。形式为:

命令>>文件名

例如:

$ ls *.doc>>directory.out

$ cat directory.out

ch1.doc ch2.doc ch3.doc chimp config mail/ test/

ch1.doc ch2.doc ch3.doc

和程序的标准输出重定向一样,程序的错误输出也可以重新定向。使用符号2>(或追加符号2>>)表示对错误输出设备重定向。例如下面的命令:

$ls /usr/tmp 2> err.file

可在屏幕上看到程序的正常输出结果,但又将程序的任何错误信息送到文件err.file中,以备将来检查用。

还可以使用另一个输出重定向操作符(&>)将标准输出和错误输出同时送到同一文件中。例如:

$ls /usr/tmp &> output.file

利用重定向将命令组合在一起,可实现系统单个命令不能提供的新功能。例如使用下面的命令序列,即统计了/usr/bin目录下的文件个数。

$ ls /usr/bin > /tmp/dir

$wc -w < /tmp/dir

459

  1. 管道

将一个程序或命令的输出作为另一个程序或命令的输入有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起,例如上节例子中的/tmp/dir文件将ls和wc命令连在一起;另一种是Linux所提供的管道(pipe)功能,这种方法比前一种方法更为方便。

管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。图7.1访问权限

显示在屏幕上的是管道行中最后一个命令的输出。

通过使用管道符“|”来建立一个管道行。用管道重写上面的例子:

$ ls /usr/bin|wc -w

1789

再如:

$ cat sample.txt|grep “High” |wc -l

管道将cat命令的输出送给grep命令。grep命令在输入里查找单词High,grep命令的输出则是所有包含单词High的行,这个输出又被送给wc命令,wc命令统计出输入中的行数。假设sample.txt文件的内容如下:

Things to do today:

Low:Go grocery shopping

High:Return movie

High:Clear level 3 in Alien vs. Predator

那么该管道行的结果是2。

# 7.5进程和作业控制命令

简单地说,进程(process)是一个程序或任务的执行过程。在Linux系统中,执行任何一个命令都会创建一个或多个进程。即命令是通过进程实现的。

从进程的角度可以更好地理解Linux操作系统的多任务概念。对于系统管理员来说,管理系统进程是日常管理的重要部分。

  1. 用ps查看系统中的进程状态

可以通ps命令观察进程状态,它会把当前瞬间进程的状态显示出来。可根据显示的信息确定哪个进程正在运行,哪个进程是被挂起,还是遇到了某些困难,进程已运行了多久,进程正在使用的资源,进程的相对优先级,及进程的标识号(PID)。这些信息对用户很有用,对于系统管理员来说更为重要。

ps命令的一般用法是:

ps [option] [arguments]…

ps命令有以下几个主要的参数:

-a 显示包括系统中所有用户进程的状态
-f 显示进程和子进程的树形目录
-l 以长列表形式显示进程信息
-r 只显示正在运行的进程
-u 以用户格式显示进程信息,给出用户名和起始时间
pids 显示指定ID的进程信息

如果不带任何选项,ps命令会列出每个与您的当前shell有关的进程的PID。结果如下:

PID TTY TIME CMD

596 pts/0 00:00:00 bash

627 pts/0 00:00:00 vi

628 pts/0 00:00:00 ps

其中,各字段的含义如下:

PID:进程标识号

TTY:开始该进程的终端号

TIME:报告进程累计使用的CPU时间

CMD:正在执行的进程名

要获得一个完整的进程信息列表,可使用带有下列选项的ps命令:

ps –aux

除列出以上字段外,它还列出了CPU使用率(%CPU)、内存使用率(%MEM)、虚拟映像大小(SIZE)、驻留数据集大小(RSS)、终端号(TTY)、状态(STAT)等。

  1. top命令

top命令用于读入计算机系统的信息,这些信息包括当前的系统数据和进程的状态等。输入top命令后,屏幕输出如下:

在top命令中显示了进程的列表,其中包括的内容有:PID、用户、优先级、nice参数、所需的内存信息(SIZE、RSS、SHARE)、状态(STAT)、CPU占用的百分比、占用的内存信息、已用的计算机时间和各自的程序调用(COMMAND)等。关于top命令的详细使用信息,可查看其在线帮助。

  1. 用kill命令终止进程

运行过程中,可能在某一时刻,系统中有的进程出现了问题,不能正常运行,但也不能正常退出。这时可以使用kill命令终止进程的执行,释放这些进程占用的系统资源,常用的kill命令的格式为:

kill [-s signal] pid

kill –l [signal]

命令的选项和参数的意义如下:

pid给出了需要结束的进程的PID,可以通过命令ps获得进程的PID。在命令kill中可以一次列出许多的进程PID。

-s signal是一个可选参数,用来给出发给进程的信号。默认情况下,命令kill给进程发TERM信号,该信号将通知进程退出。如果进程不接收该信号,可以通过参数–9强制结束进程。

-l该参数要求kill命令列出它可以发给进程的所有信号。

  1. 用at安排任务

at命令用于实现在指定的时间运行您所安排的作业。at命令的一般用法如下:

at [选项] 时间 [日期]

at hh:mm 用指定的小时(hh)和分钟(mm)(24小时制)安排作业;
at hh:mm month day year 用指定的年(year)、月(month)、日(day)、小时(hh)和分钟(mm)安排作业;
at –l 列出已安排的作业;
at now +count time_units 作业运行的时间安排在现在的时间加上count个时间单位。时间单位(time_units)可以是分钟、小时、天或星期;
at –d job_id 取消作业号与job_id相同的作业。

由at命令调度的命令是在at命令行后输入的命令列表。at的命令列表可以从标准输入(stdin)得到。如果标准输入来自键盘,您应该在输入完命令之后键入<Ctrl+D>,表明输入结束。

# 7.6基本网络命令

NFS Server 4 具有强大的网络功能,提供了丰富的网络应用程序,完全支持TCP/IP协议。在网络环境下,可以进行远程注册、远程命令调用、传送文件等操作。本节介绍了几个基本的网络操作命令。

  1. telnet命令

telnet命令是Linux下的远程登录工具,只要拥有合法的注册名和口令,就能像使用本地机器一样访问远程计算机了。telnet也允许用户通过输入注册名和口令从远程网点登录到自己的计算机上,从而通过网络或电话线完成检查电子邮件、编辑文件和运行程序等操作。但是telnet只能在字符终端方式下工作,不支持图形用户界面。

telnet的基本用法是:

telnet [选项] IP地址/主机名

命令键入后,telnet即会启动一个远程会话,本命令可使用的选项参数主要有:

-d 启动调试功能
-a 自动注册
-n tracefile 打开跟踪程序,把跟踪程序数据保存在tracefile中
-e escape_char 将会话的转义字符设置为escape_char
-l user 把用户名发送给远程系统,以便自动注册。本参数自动包括–a参数
port 指出与远程系统连接的端口号。如不指定,将连接到缺省端口

成功地连接到远程计算机上后,telnet即可显示登录信息,并提示用户输入注册名与口令。注册成功后,便可以开始工作了。

在使用telnet后需要退出注册回到本地的shell命令提示符下。

  1. ftp命令

FTP(文件传输协议)是在TCP/IP网络计算机之间传输文件的简单而有效的方法。ftp命令的功能是在本地机和远程机之间传送文件。它允许用户传输ASCII文件和二进制文件。在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。前提是必须在本地和远程文件系统中具有进行这些操作的权限。

ftp命令的基本格式如下:

ftp [选项] IP地址/主机名

可以用help命令取得可供使用的命令清单,也可以在help命令后面指定具体的命令名称,获得该命令的说明。

ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为ASCII模式
binary 设置文件传输方式为二进制模式
close 终止当前的ftp会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get(mget) 从远程机传送指定文件到本地机
put(mput) 从本地机传送指定文件到远程机
open 连接远程ftp站点
quit 断开与远程机的连接并退出ftp
? 显示本地帮助信息
! 转到Shell中

随着Intelnet的迅速发展,提供信息资源的网站往往无法为每个要使用FTP的用户开设账号,因此出现了一种匿名FTP机制:可以使用anonymous用户名,用自己的电子邮件地址作为口令来访问大多数共享信息资源。但是因为安全的原因,匿名FTP的可访问资源是有限的,而且有些网站也不提供此服务。

  1. ssh命令

ssh命令是rlogin、rsh和telnet命令的安全替换。它允许用户登录远程机器并在其上执行命令。使用ssh登录远程机器和使用telnet相似。

例如:登录到一个名为example.test.com的远程主机,在shell提示下键入如下命令:

ssh example.test.com

第一次使用ssh登录远程机器时,会看到和下面相仿的消息:

The authenticity of host 'example.test.com ' can't be established.

RSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.

Are you sure you want to continue connecting (yes/no)?

键入yes继续,把该服务器添加到您的已知主机列表中。下一步,便会询问用户在远程主机上的口令。输入正确口令后,即在远程主机的shell提示符下了。

如登录时未指定用户名,本地客户机登录远程机器时用的用户名会被传递给远程机器。如果想指定不同的用户名,请使用以下命令:

ssh username@example.test.com或ssh -l username example.test.com

ssh命令还可以不经登录而在远程机器上执行命令。它的语法格式是:ssh hostname command。例如,查看远程主机example.test.com上/usr/share/apps目录下的内容,就在shell提示下键入命令:

ssh example.test.com ls /usr/share/apps

输入正确的口令后,远程机器/usr/share/apps目录下的内容将会被显示出来,然后返回到本地shell提示下。

  1. scp命令

scp命令可以通过安全、加密的连接在机器间传输文件。它的使用与rcp相似。

把本地文件传输给远程机器的一般语法是:

scp localfile username@remotehostname:/remotefile

localfile指定本地源文件,username@remotehostname:/remotefile指定远程目标文件。

要把本地文件file1传送到用户在example.test.com上的主目录中,在shell提示下键入:

scp file1 username@example.test.com:/home/username

把远程文件传输给本地系统的一般语法是:

scp username@remotehostname:/remotefile /localfile

remotefile指定远程源文件,localfile指定本地目标文件。

源文件可以由多个文件组成。例如,要把目录/downloads的内容传输到远程机器example.test.com上现存的uploads目录,键入下列命令:

scp /downloads/* username@example.test.com:/uploads/

  1. sftp命令

sftp命令是ftp命令的安全替换,用来打开一次安全的FTP交互会话。它的使用与ftp相似,但它使用的是安全、加密的连接。

sftp一般语法是:sftp username@hostname。一旦通过验证,就可以使用一组和FTP相似的命令。

  1. ping命令

ping命令用来确定网络上的主机是否可到达和到达速率。ping命令的格式为:

ping [选项] IP地址/主机名

ping命令将大小固定的数据包发送给对方,并要求对方返回。当终止ping命令时,会显示一些统计数据。通过数据判断是否返回以及返回时间,用户可以确定对方是否可到达,是否开机,以及网络延时时间。如果要退出请按<Ctrl+C>中断。

  1. ifconfig命令

ifconfig命令来显示或者配置网罗设备,基本的格式为:

ifconfig [interface] 可以显示当前网络配置情况。

ifconfig interface [aftype] option | address …

主要参数

-interface:指定的网络接口名,如eth0和eth1。

up:激活指定的网络接口卡。

down:关闭指定的网络接口。

broadcast address:设置接口的广播地址。

point topoint(ppp):启用点对点方式。

address:设置指定接口设备的IP地址。

netmask address:设置接口的子网掩码。

例如配置网卡:

ifconfig eth0 192.168.1.56 netmask 255.255.255.0

# 7.7其它命令

  1. man命令

man 命令及其提供的联机文档最为经常的被用户用到,用户可以通过这个命令来查阅到其他命令的使用手册。

man 命令名称

man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-Mpath] [-P pager] [-S section_list] [section] name ...

参 数:

-C config_file:指定设定文件man.conf,缺省值是/etc/man.conf。

-M path:指定了联机手册的搜寻路径, 如果没有指定则使用环境变量(environment variables)MANPATH的设定;如果没有使用 MANPATH,则会使用/usr/lib/man.conf内的设定;如果MANPATH是空字串,则表示使用缺省值。

-P pager:指定使用何种pager.man会优先使用此选项设定,然后是依环境变量MANPAGER设定,然后是环境变量PAGER;man缺省使用/usr/bin/less

-S section_list man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变量MANSECT的设定。

-a man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man继续显示所有符合name的联机手册。

-c:即使有最新的cat page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。

-d:不要真的显示联机手册,只显示除错消息。

-D:同时显示联机手册与除错消息。

-h:显示求助消息然后结束程式。

-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定section(区域)会对速度有帮助。

-m system:依所指定的system名称而指定另一组的联机手册。

  1. reboot命令

功能说明:重新开机。

语 法:reboot [-dfinw]

补充说明:执行reboot指令可让系统停止运作,并重新开机。

参 数:

-d  重图7.2 top命令

新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有"-n"参数的效果。

-f  强制重新开机,不调用shutdown指令的功能。

-i  在重开机之前,先关闭所有网络界面。

-n  重开机之前不检查是否有未结束的程序。

-w  图7.2 top命令

仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

  1. halt命令

功能说明:关闭系统。

语 法:halt [-dfinpw]

补充说明:halt会先检测系统的runlevel。若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

参 数:

-d 不要在wtmp中记录。

-f  不论目前的runlevel为何,不调用shutdown即强制关闭系统。

-i  在halt之前,关闭全部的网络界面。

-n  halt前,不用先执行sync。

-p  halt之后,执行poweroff。

-w  仅在wtmp中记录,而不实际结束系统。

  1. shutdown命令

功能说明:系统关机指令。

语 法:shutdown [-efFhknr][-t 秒数][时间][警告信息]

补充说明:shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

参 数:

-c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令。

-f  重新启动时不执行fsck。

-F  重新启动时执行fsck。

-h  将系统关机。

-k  只是送出信息给所有用户,但不会实际关机。

-n  不调用init程序进行关机,而由shutdown自己进行。

-r  shutdown之后重新启动。

-t<秒数> 送出警告信息和删除信息之间要延迟多少秒。

  1. who命令

该命令主要用于查看当前在线上的用户情况。

who命令的常用语法格式如下:

who [imqsuwHT] [--count] [--idle] [--heading] [--help] [--message] [--mesg] [--version] [--writable] [file] [am i]

所有的选项都是可选的,也就是说可以单独使用who命令。

不使用任何选项时,who命令将显示以下三项内容:

login name:登录用户名;

terminal line:使用终端设备;

login time:登录到系统的时间。

  1. whoami命令

功能说明:显示用户名称。

语 法:whoami [--help][--version]

补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。

参 数:

--help  显示帮助信息。

--version  显示版本信息。

  1. cal命令

显示本月的月历。

使用方式:cal [-mjy] [month [year]

选项:

-m : 以星期一为每周的第一天方式显示。

-j : 以凯撒历显示,即以一月一日起的天数显示。

-y : 显示今年年历。