2019年6月29日 星期六

Unix中的基本命令

Unix中自带有上千条基本命令,例如,查找程序的命令,停止程序的命令,显示时间,日期和日历命令,设置Unix提醒服务的命令,查看系统信息的命令,显示自己以及其他用户信息的命令等;另外,您会体会到非常有趣的leave命令接下来,我们就一个一个介绍一下这些属于Unix的基本命令。
当在shell提示处输入命令时,实际上是告诉shell根据这个名称运行程序。例如,当输入date命令时,就是请求shell运行程序。
Unix差不多有上千个不同的程序,这意味着可以输入上千条不同的命令,其中许多程序要求理解一些理论。例如,在使用文件系统命令之前,需要学习一些文件系统的知识。还有的程序非常复杂,需要大量的时间才能掌握。例如,Unix的两个主要文本编辑器(viEmacs)就是这种情况。这些程序非常有用,但是页面相当复杂。我们会在后面专门讲vi。
但是,还有一些程序不需要特殊的知识,而且使用起来也不是特别困难。这些程序是能够立即使用的程序,在这里将介绍一些这样的程序。
在众多的Unix程序中,我挑选了一些自己认为特别有用,有趣和搞笑的程序。有两个目的,首先,希望您能知道这些程序,因为它们确实都非常有用,有趣,或者搞笑。其次,之前已经介绍了不少的通用理论,我希望给您一个熟悉使用Unix CLI(命令行界面)的机会。

1. 在系统中查找程序:which, type, whence
Unix并不是指一个具体的操作系统。它是一族操作系统的总称:Linux, FreeBSD, Sloaris, AIX等。此外,即便Linux本身也不是指一个系统。名称“Linux”指的是任何使用Linux内核的Unix系统,世界上差不多有数百种不同的Linux发行版。
尽管各种不同Unix拥有许多共同之处,但是它们并没有提供完全相同的程序集。例如,伯克利Unix(FreeBSD, NetBSD和OpenBSD)中存在的一些程序,在Linux中就不存在。此外,即使比较两台运行相同版本的Unix的计算机,您也会发现不同的程序。这是因为在Unix安装过程中,有许多关于安装哪些程序的选项,并不是每个人都会选择相同的选项。
基本的Unix就是基本的Unix,因此大多数系统都安装了全部重要的程序。因此不管您使用的是何种类型的Unix,下面所讲的程序页有可能没有安装在您的系统上。
基于这一原因,现在我希望首先考虑两个重要的问题:您如何知道一个特定的程序是否在您的系统上存在?如果系统上没有这个程序,那么您应该怎么做?
查看是否可以访问一个程序的最简单的方法就是在shell提示处键入该程序的名称(记住,shell的命令就是解释程序)。如果系统有这个程序,则将会发生一些事情。如果系统上没有这个程序,那么shell将会将会说明它找不到这个程序。不要大学这种方式的试验结果。如果输入了一条不存在的命令,那么它不会产生任何问题——除了产生一个错误信息。
查看某个程序是否可用一种更精确的方法就是使用which命令。which的目的就是让shell回答下述问题:如果我准备输入一条具体命令,那么将会运行哪个程序?如果这个问题有答案,那么这个程序就安装在您的系统上,也就是说可以使用这个命令。如果,这个问题没有答案,那么这个命令在您的系统上不可用。
在使用which时,只需在键入的which命令后跟一个或者多个程序的名称即可,例如:

which date
which date less vi emacs

下面是第一条命令的输出

/bin/date

在这个例子中,which 命令告诉你如果输入了date命令,那么shell将运行存储在/bin/date文件中的程序。这就告诉您,在您的系统上 date是一条有效的命令。
如果询问which一个在系统上不存在的事情会发生什么事情呢?例如:

which Harley

这条命令的结果有两种可能性,这取决于which 的版本。第一种是,不发生任何事情。也就是说,没有任何输出。这意味着which 找不到指定的程序。这是许多Unix程序的特征:如果没什么可说的,那么它们就是什么也不说(但愿更多人拥有这样的理念)。
第二种可能性是您将看到一个错误信息。下面是一个典型的错误消息:

user/bin/which/: no harley in (/usr/local/bin: usr/bin: bin/usr/X11R6/bin:/home/harley/bin)

which告诉您,它在您的搜索路径中找不大一个名叫harley的程序。当讨论各种shell时,我们将讨论搜索路径。现在重要的是意识到,因为which 找不到一个名为harley的程序,所以不能在您的系统上使用命令。
那么如果您希望试着运行本章中的一个程序,而该程序看上去似乎不在您的系统上,该怎么办呢?十分明显,第一件事情就是检查拼写。
如果您已经正确拼写了命令,但它还是找不到,那么您有几种选择。第一,您可以忘掉它。
第二,如果能访问其他Unix系统,那么您可以在这些Unix系统上尝试一下,看看它们是否拥有该命令。
第三,如果使用的是共享系统,那么您可以请求系统管理员,看看他们是否愿意在系统上安装该程序。
最后,如果使用自己的Unix计算机,那么您可以自己安装程序。(方法略复杂,可以请教他人)
如果您使用shell是Bash,那么which命令还有一个备用命令type,例如:

type date

如果您使用的是Korn shell,那么您可以使用whence命令:

whence date

typewhence命令有时候要比which 命令显示更多的细节信息。这在特定的环境下很有用。但是,在实际应用中,还是which命令的应用跟广泛。
在结束本部分之前,我先询问一个问题,如果对which命令自身使用which命令,您认为会发生什么事情呢?换句话说,就是使用 which which 命令将得到什么样的结果?试一试:

which which

如果使用的shell 是bash,还可以试一试下述命令:

type which
which type
type type

2. 如何停止程序
大多数Unix命令执行一个任务,然后自动停止,例如,在下一节中我们将讨论date命令。该命令所做的工作就是显示时间和日期。然后它停止运行,您又返回到shell提示。
有一些命令比较复杂。当启动它们时,它们将置于一个环境中,在这个环境中,可以通过提条接一条的输入命令与程序进行交互。当结束该程序的工作是,需要输入一个特殊的命令来退出程序,此时,程序停止,您又返回到shell提示。
这一命令的例子是bcbc是后面即将讨论的一个计算机程序。当使用bc时,需要先启动它,然后可以一次输入一个计算命令。只要愿意,可以运行该程序任意长的时间。当结束计算时,必须告诉bc您准备退出。为此要输入quit命令。
对于这样的程序一般总有一个特殊命令来退出程序。该命令通常是q或者quit。为了确定退出命令的名称,您可以阅读Unix联机手册中有关该程序的文档。
除了使用特殊的退出命令之外,还有一种简单停止程序的方式,即告诉程序已经没有数据需要处理了。这种方法是通过按^D(<Ctrl-D>),即eof键实现的。这通常是停止程序最简单的方法。例如,当使用bc程序时,只需输入^D就可以使程序停止。
如果其它所有的方法都失败了,那么您可以按intr键停止程序,intr键可能是^C或者<Delete>。
提示:
大多数程序拥有自己的可交互环境,提供了一些内置帮助。为了访问该帮助,可以试一试键入help或者h或者(问号)
3.显示时间和日期
date命令是所有Unix命令中最重要的命令之一。简单地输入:

date

Unix将显示当前的时间和日期。下面是一个样本的输出,Unix使用的24小时制时钟:

Sat Jun 29 20:07:44 CST 2019
注意,date同时显示时间和日期,因此当希望知道时间时,这就是要使用的命令。Unix系统中还有一个time命令,但是这个命令并不显示时间。它测量程序的运行时间。
从本质上讲,Unix并没有运行在本地的时间上。所有的Unix系统都使用协调世界时(Coordinated Universal Time, UTC),它是格林威治标准时间(Greenwich Mean Time, GMT) 的现代名称。Unix在需要时默默地在UTC和本地时区时间进行转换。本地时区的细节信息在安装Unix时指定。
有时候,查看UTC时间比较便利。为了显示UTC时间,只需使用:

date -u

您将看到一个类似于下述形式的时间和日期:

sat Jun 29 12:16:55 UTC 2019

4. 显示日历: cal
Unix的出色之处在于它不是一个由委员会设计的。当Unix程序员决定需要新工具时,他就可以自己编写程序,并将程序添加到系统中。这种情况最好的一个例子就是cal命令,该命令显示一个日历。
显示当前月份的日历时,可以输入:

cal

显示某一年的日历时,需要指定年度,例如:

cal 1952
当指定年度时,确定键入了全部4个数。例如,如果输入了cal 52,那么,您将得到公元52年的日历。
提示:
当显示一年的完整日历时,输出会很长,屏幕无法完全显示。
如果担心日历的顶部在阅读之前滚出了视野,那么您可以每次一屏地显示输出,即将命令输出发送给less程序。例如:
cal 1952 | less
cal 12 1952为了显示特定月份地日历,需要将这个月指定为一个位于1~12(1=一月)之间的数字,并且还要指定年度。例如,显示1952年12月的日历的命令如下:
得到的结果为:

December 1952

如果希望指定一个具体的月份,那么必须同时指定月份和年度。例如,如果希望得到2009年7月份的日历,则必须输入:

cal 7 2009
如果输入的是:

cal 7
那么得到的将是公元7年的日历
如果不希望显示日期,只希望得到这一天是这一年中的第几天,即从1~365编号(1月1日=1, 1月2日=2,等等),那么也可以使用cal程序。只需在cal名称之后键入-j即可。下面举一个例子。

cal -j 12 2009
输出为:

December 2009

假设您希望推断某年是不是闰年。非Unix人士将查看该年度是否可以被4整除,如果可以,那么该年度就是闰年。但是,作为一名Unix人士,您还有另一种方法。您所要做的全部就是显示该年度12月份的日期编号。如果12月以366天结束,那么该年度就是闰年。否则这个年度就不是闰年。试试下述命令,看看有什么结果:

cal -j 12 2000
cal -j 12 2008
cal -j 12 1776


顺便说一下,-j代表儒略历(Julian),即每年有365天或者366天的现代日历的名称。更多的信息,请看下面方框中的内容:

儒略历和格里历(Gregorian calendar):
正常年度应该有365天,而闰年应该有366天,这一思想起源于儒略历,儒略历由儒恺撒于公元前46年制定。
但是准确的说,一年平均有多长呢?如果4年中有3年是365天,第4年是366天,那么一年平均有365.25天。但是,自然界并不总是那么协作,这个值要比实值长11分10秒。在16世纪的时候,这个小误差已经累计到大约10天,这意味着大家使用的日历没有与太阳和星星的移动相匹配。
为了解决这个问题,罗马教皇格列高里(Gregory)十三世于1852年颁布法令,倡导世界应该修改日历,从而使所有世纪年(如1600年,1700年,1800年)并不全都是闰年,只有那些可以被400整除的世纪年(如1600年或者2000年)才是闰年,这一方案被成为格里历或者西洋新历(New style calendar)。为了校准当前的日期,格里列高进一步颁布法令,使l0天神秘地消失了。
如果我们希望特别准确,那么我们可以说现代(格里)日历基于400年一循环,平均每年有3 65.2425天(一个有趣的事实是,在这个日历下,十亿分之一世纪(nanocentury)近似为π秒。
罗马教皇于1582年颁布了法令。到1587年时,天主教欧洲国家已经实现了修改。而新教国家推迟了一些年才开始实施,最后一个国家是英国,直到1752年才进行修改。
随着英国的修改,美洲大陆也开始进行修改,但是,这个时候,误差已经增加至11天。因此,如果输入命令:

cal 9 1752

那么您将看到1752年9月2日和9月14日之间有一个缺口,这个缺口有11天。这一缺口对于太阳和星星的正常运转是必须的(至少对于英国和美国来说)。
5. Unix 提醒服务: Calendar
我们前面讨论的cal程序显示日历。Unix确实有了一个名为calendar的命令。但是它与cal命令完全不同。calendar程序基于一个自己创建的包含重要日期和消息的文件提供提醒服务。
对于该程序来说,您只需生成一个命名为calendar的文件。calendar程序将在当前目录中查找文件。这个文件中包含若干行文本,每行文本都包含一个日期,后面是一个制表符,再后面是一个提醒注释。例如:

October 21<Tab>Tammy’s birthday
November 20<Tab>Alex’s birthday
December 3<Tab>Linda’s birthday
December 21<Tab>Harley’s birthday


因为制表符是不可见的,所以查看这个文件时看到的内容如下所示:

October 21 Tammy’s birthday
November 20 Alex’s birthday
December 3 Linda’s birthday
December 21 Harley’s birthday

一旦建立好了calendar文件,就可以在任何时候输入calendar命令:

Calendar

当这样做时,calendar程序将检查calendar文件,并显示所有拥有今天或者明天日期的文本行。如果“今天”是星期五,那么calendar将显示接下来三天的提醒。
这里的要求是你要时不时的向calendar文件中添加一些文本行,直到您的生活完全条理化了。当然,在创建这样一个文件之前,必须知道如何使用文本编辑器程序。最重要的是文本编辑器是viEmacs
如果希望每次登录时都自动运行calendar命令,则可以将calendar命令放在.profile文件(Bash或Korn shell)或者.login文件(C-Shell)中。
一些Unix系统提供有内置的calendar文件,该文件包含一些有趣的条目。因此,即使不想创建自己的calendar文件,也可以时不时的运行calendar命令,只是为了看看有什么事即将发生。您现在就可以试一试。
有关calendar命令和calendar信息文件格式的更多信息,可以查看Unix联机手册中关于calendar的条目。命令如下:

man calendar

6. 查看系统信息: uptime, hostname, uname

Unix中提供了几条命令可以用来查看系统的信息。首先,我们讨论uptime命令。该命令用来显示系统已经运行多长时间(也就是连续运行)的有关信息:

uptime

下面是一些典型的输出:

10:07 up 57 mins, 2 users, load averages: 1.87 1.45 1.33

在这个例子中,系统已经运行了57分钟,而且当前3个用户标识登陆。最后3个数字展现了一直等待执行的程序数量分别是之前1分钟,5分钟和15分钟的平均数。这些数字能够表现系统的负载。负载越高,系统所做的工作就越多。
hostname命令用来查看计算机的名称。如果经常登陆不止一台计算机,那么该命令非常管用,如果忘记了正在使用哪一个系统,则可以输入:

hostname

uname命令显示操作系统的名称。例如,输入下述命令:

uname

将得到如下结果(如果使用的Macintosh):

Darwin

如果要得到操作系统更多的信息,可以使用-a选项(all information,全部信息):

uname –a
下面是一系列输出:

Darwin hellos-MacBook-Air.local 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64

这里最主要的信息是我们用了Darwin内核。
(Linu起源于Linus,Darwin是基于Mach和BSD修改而来
Linux只是类UNIX,而macOS是通过了Single UNIX Specification的正统UNIX)

7. 显示自己的信息: whoami, quota
whoami命令显示您登录使用的用户标识。如果您有许多用户标识,而且忘记了正在使用的是哪个用户标识,那么使用这条命令相当便利。同理,如果您碰到了一个正在登录着的计算机,那么whoami命令将显示当前的用户标识。只需输入:

whoami

如果您的系统上没有whoami命令,则可以尝试下面3个单独的单词:

who am i
最后一条显示您自己信息的命令是quota。在共享系统上,系统管理员有时候会强加限制,例如,限制每个用户只允许使用多少磁盘空间。为了查看自己的限制,可以输入:

quota

注意,Unix以KB或者千字节计算磁盘空间,其中1KB=1024字节(字符)。

8. 显示其他用户的信息: user, who, w
以前,Unix计算机是共享的,大多数时间,系统有多个用户同时登录。实际上,特大型的Unix计算机支持数十个(甚至几百个)用户同时使用,为了查看当前有哪些用户登录,Unix系统提供了几条命令。现在如果您与其他人共享系统,那么这些命令依然有用。
最简单的一条命令就是users。只需输入命令本身即可:

users

该命令在运行之后,将显示当前登录系统的所有用户标识,例如:

alex casey harley root tammy
前面讲过,在Unix系统中,只有用户标识拥有真正的身份。真正的人——也就是用户——由他们的用户标识表示。因此,您看不到真实任务的名字,看到的只是用户标识。
如果使用的是共享系统,那么users命令就非常有用。我可以告诉您,以我的经验来看,能够意识到其他人正在和您使用同一个系统会带来一种快乐的感觉,特别是当您深夜在办公室或者终端室工作时。
下一条命令是我们已经讨论过的who命令。这条命令要比users命令显示更多的信息。对于每个用户标识,who命令将显示终端的名称,用户标识的登录时间,而且如果合适的话,还会显示用户标识使用哪台远程计算机连接到系统上。
下面是一个人们通过远程连接登录的系统中运行who命令的输出:

tammy tty1 Nov 10 21:25
root tty2 Nov 11 15:12
casey pts/0 Nov 11 11:07 (luna)
harley pts/1 Nov 11 10:52 (nipper.harley.com)
alex pts/2 Nov 111 4:39 (thing.taylored-soft.com)
hello console Jun 30 09:10
hello ttys000 Jun 30 09:20
在这个例子中,用户tammy使用终端tty1登录,root(超级用户)在终端tty2上登录。这两个终端是主计算机的虚拟控制台。正如前面所说,名称tty通常用作“terminal(终端)”的缩写。在这个例子中,碰巧用户tammy是系统管理员,而且她当前登录了两次:一次使用她个人的用户标识,一次作为超级用户。
下面继续看另一个用户标识casey,casey从一台名为luna的计算机上登录,这台计算机位于局域网中。最后是另外两个用户标识haelry和alex,他们通过网络远程登录系统。
如果希望查看系统上用户标识更多的相关信息,那么您可以使用w命令。w名称的含义是“who is doing what? (谁正在做什么)”下面是一些输出样本:

22:39:16 up 415 days, 13:07, 6 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
qlsy tty7 :0 10May18 415days 7:00 2.58s /sbin/upstart --user
minmin pts/6 10.2.4.11 22:39 3.00s 0.01s 0.01s w
qlsy pts/7 tmux(26139).%10 11May19 17days 0.36s 2:43 tmux -2 -u
qlsy pts/9 tmux(26139).%7 27Apr19 17days 0.57s 0.57s -bash
qlsy pts/11 tmux(26139).%3 27Apr19 63days 0.05s 0.05s -bash
qlsy pts/12 tmux(26139).%13 27May19 33days 1.15s 1.08s gvim -v paper_ams1.tex

输出的第一部分显示系统统计信息,这一部分信息已经在前面讨论的uptime命令时看到过。这个例子中,系统已经运行了415天13小时7分钟,当前有6个用户标识登录。最后三个数字显示的是一直等待执行的程序的数量。这些数字可以使您知道系统的负载。负载越高,系统所做的工作就越多。
在第一行下面,是8列信息,分别解释如下。
USER:当前登录系统的用户标识,在这个例子中,他们分别是qlsy,minmin
TTY:各个用户标识使用的终端名称。
FORM:用户标识登录系统所使用的远程计算机名称,在我们的例子中qlsy从一台名叫tmux的计算机上登录。
LOGIN@:用户标识的登录时间。
IDEL:用户上一次按键后已经过去的时间。这段时间称为空闲时间,在这个例子中,minmin空闲了3秒钟,qlsy空闲了33天。如果您正在等待一个耗时的任务结束,而且等待过程中没有键入信息,那么w命令将显示您空闲。
JCPU:自登录后所有进程总共使用的处理器时间。其中,J代表“job(作业)”的意思。
PCPU:当前进程所使用的处理器时间。P-process(进程),处理器时间或者用秒(如1.08s),或者用分钟(如2:43)表示。自计算机价格昂贵,而且处理器时间是一个贵重商品的时代,这些数字非常有价值。
WHAT:当前正在运行的命令。在我们的例子中,minmin正在运行w命令,qlsy正在运行Bash shell,以及qlsy正在用gvim编辑一个名为paper_amsl.tex的文件。
注意,无论何时,当您运行w命令时,都将看到自己在运行w命令。在我们的例子中,minmin就是这种情况。
默认情况下,w命令显示所有登录到系统中的用户标识的信息。如果只需要得到一个用户标识的信息,那么可以在w命令之后输入该用户标识的名 称,例如,假设您刚刚登录系统,并且输入user命令查看了还有哪些用户登录了系统。您看到:

alex casey harley minmin tammy weedly qlsy
如果您希望查看weedly正在做什么,可以输入:

w weedly

名称含义: CPU
在大型计算机时代,计算机的“大脑”(现称之为处理器)非常庞大,需要一个大盒子才可以装下,我们称它为中央处理单元或者CPU。
现在即便大多数人已经不再使用大型计算机,但我们仍然使用术语CPU作为“处理器”的同义词。
9. 终端临时上锁:lock 在登录状态下离开计算机是很不好的。这样有些人可能会以您的用户标识的名 义输入命令,从而导致不少麻烦。例如,恶意的人可以删除您的所有文件,或者用您的名字向系统管理员发送不礼貌的邮件等。
但是,如果您只是需要离开终端一小会,那么注销以后再登录也很麻烦。如果您使用了一个或者多个终端窗口登录远程主机,或者已经建立好自己喜欢的整个工作环境,那么这时注销尤为麻烦。
这种情况下,可以使用lock命令。该命令告诉Unix您希望临时锁住终端。除非您输入了一个特殊的口令,否则终端将一直保持锁住状态。使用该命令只需输入:

Lock

Unix将显示:

key:

输入用于终端解锁的口令。该口令可以根据自己的愿望设定,它与登录口没有任何关系。实际上,最好不要使用登录口令作为该口令。在输入口令时,Unix不回显口令,以防被别人看见,在输入口令之后,Unix将显示:

again:

这是要求再次键入口令,以确保口令输入过程中没有出错。
一旦您输入并再次输入这个特殊口令后,Unix将冻结终端。除非输入口令(不要忘记按<Return>键),否则不管别人在终端上键入什么内容,终端都不会有任何反应。一旦输入正确的口令,Unix将重新激活终端,您又可以继续工作。
提示:
如果您登录了一个或多个远程主机,那么您应该分别锁住每个会话
如果您的工作环境是必须共享计算机而且还有人等着用,那么离开一段不是很短的时间(例如,去吃饭)而将终端锁上就不太好。因为Unix是在一个基于共享的环境中开发的,所以lock命令有一个内置的限制:在一个特定的时间量之后终端会自动解锁。
默认情况下,lock将冻结终端15分钟。但是如果希望替换这个默认值,那么一些版本的lock允许在输入命令时指定另外一个时间限制。在该命令之后,留一个空格,然后输入-(一个连字符),后面再跟一个数字。例如,将终端锁住5分钟的命令为:

lock -5
您可能会问,如果有人将终端锁上,然后离开后不回来了怎么办?最终,如果时间到了,命令会自动解锁。如果在上锁时间耗尽之前,需要激活终端,那么系统管理员可以输入root(超级用户)口令。lock总是可以接受root口令,后者在某种程度上就像是万能钥匙一样。

10. 请求Unix提醒何时离开: leave
在计算机上工作时经常需要全神贯注,很容易忘记时间。为了帮助您及时完成其他事情,只需输入下述命令:

Leave

顾名思义,您可以使用leave命令提醒自己何时到时间,应该离开了,您还可以使用该命令提醒什么时候该吃饭了。例如,您喜欢每过一会(假如20分钟)站起来伸一下腰,那么您可以请求一个提醒。
当输入该命令是,leave将询问您一个时间:

When do you have to leave?

以hhmm(先是小时,后是分钟)的格式输入您希望离开的时间,例如如果希望在10:33离开,可以输入1033。
时间输入既可以是12小时制也可以是24小时制。例如,1344意味着1:44PM(下午)。而如果输入的小时数小于或者等于12,那么leave假定该时间位于接下来12小时之内。
另一种输入leave命令的方法就是在命令行上立即输入时间。在命令之后留下一个个空格,然后键入时间。例如,要在10:30离开,可以输入:

leave 1030

如果需要在一个特定的时间间隔之后离开,则可以输入+(加号),后面,跟着分钟数。例如,如果需要在15分钟之后离开,可以输入:

leave +15

确保不要在+字符之后留空格。
提示:
当注销系统时,Unix会废除悬挂的leave命令。因此,如果使用了leave命令,但是随后注销了系统并再次登录,那么您需要重新运行leave程序。
You have to leave in 5 minutes.一旦输入了leave命令,Unix就会定期检查还剩下多长时间,在指定的时间前5分钟,Unix会显示:
当还剩下1分钟时间时,您将会看到:

Just one more minute!
当时间到时,Unix显示:

Time to leave!

从这时起,Unix将不停的提醒您,每分钟1次,直到您注销系统:
最后,在这样提醒10次之后,您将会看到:

That was the last time I'll tell you. Bye.

或许该程序该命名为mother
提示
在登录时,可以自动地运行leave命令,为此,只需将该命令放在您的初始文件中即可(对于Bash或Korn Shell来说是.profile,对于C-Shell来说是.login)。
这意味着每次登录时,系统都会向您询问希望工作多长时间。通过这种方式,您不用再看着时钟了,Unix会问您做好此事。
如果以这种方式使用leave,但是在当前会话种不希望leave运行,那么您可以在第一个提示处按下<Return>键,改程序就会终止。
提示:
当您需要一会之后就去做某事,而且需要一个提醒时,使用leave程序相当便利。例如,假如您工作,且希望每隔15~20分钟站起来活动一下。但是,您全身心投入到工作中,很难记起要休息一会儿。为此只需要简单的输入下述命令:

leave +20

15分钟之后(提前5分钟),leave将发出一个警告提醒您注意。在接下来的5分钟时间内,leave将显示更多的警告。
在休息之后可以再输入这条命令,15分钟之后,您将会得到另一个提醒。

沒有留言:

張貼留言