收藏 分享(赏)

Unix操作系统基础与入门.docx

上传人:11xg27ws 文档编号:7820290 上传时间:2019-05-26 格式:DOCX 页数:30 大小:234.68KB
下载 相关 举报
Unix操作系统基础与入门.docx_第1页
第1页 / 共30页
Unix操作系统基础与入门.docx_第2页
第2页 / 共30页
Unix操作系统基础与入门.docx_第3页
第3页 / 共30页
Unix操作系统基础与入门.docx_第4页
第4页 / 共30页
Unix操作系统基础与入门.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、Unix 操作系统的入门与基础 Unix 操作系统的入门与基础 与大家熟悉的 Windows 用户界面和使用习惯不同,Unix 是常使用命令运行、极具灵活性的操作系统,目前的产品主要有 IBM-AIX、SUN-Solaris、HP-UNIX 等。初期接触 Unix 操作系统,下列的问题几乎是常遇的:由图形界面操作转到以命令行方式操作的不习惯性;在短期内掌握全部命令的困难性;针对同一操作有几个命令的难选择性;不同shell 命令格式的易混淆性,等等。一些初学者可能会因此而丧失继续学习的信心。根据上述的实际情况,本文遵循“避繁就简、避滥就精,不求详尽、只求适用”的原则,以初学者上机的必经过程为思路

2、,力求用层次分明的浚理和详略得当的阐释,解读该操作系统使用的基本须知内容,以期达到便捷入门和较快精进的目的。 (一)Unix 操作系统概述 Unix 操作系统是一种强大的多任务、多用户操作系统。早在上世纪六十年代未,AT cp file1 tmp/file2; ls -l tmpUnix 会顺序执行以上三条命令,要注意的是在命令间使用分隔符“;”,只代表命令执行的先后顺序。(三)重定向符的使用用户欲执行一个命令,当然是要先输入此命令,系统默认的标准输入设备是键盘,而执行命令后的结果通常显示在系统默认的标准输出设备显示器上。但是,Unix 系统具有重定向功能,即将标准输出重定向则可将命令的处理结

3、果存入指定的文件,而非显示在屏幕上;将标准输入重定向则可把指定的数据文件作为输入源,而非从键盘输入数据。重定向符如下:重定向输出到一个文件或设备,如文件不存在则创建该文件,如文件已存在则覆盖该文件 重定向输出到一个文件或设备,并将输出信息追加到已存在文件的尾部例如:cal 5 2005 doc1.txt /将 2005 年 5 月份的日历保存在文件 doc1.txt 中cal 6 2005 doc1.txt /将 2005 年 6 月份的日历保存在文件 doc1.txt 尾部/此时文件 doc1.txt 中保存了 5、6 两个月的日历cat doc2.txt /将 doc1.txt 作为输入源

4、,把其中的内容保存在 doc2.txt 中(四)管道符 “|”的使用有时可能会需要将一个命令的标准输出发送给另一个命令使用,而非发送到一个目标文件,这时就需要使用 Unix提供的管道符“|”在这两个命令间架起一条连接管道。管道符“|” 的作用就是从“|”左边的命令接受输出数据并发送给“|”右边的命令作为输入数据。如:ls -l /etc | more 管道符“|”的功能非常强大且很有用,利用它可以实现一些复杂的操作。在下一节关于信息查找命令部分,我们将会看到它的一些应用。(五)其它特殊字符美元符“$”是一个特殊操作符,当其置于变量名前面时,变量名会被变量值所代替。因此通常都是通过在变量名前加上

5、“$”来引用该变量的值,“$”也常被称为变量取值符。Unix 中可以使用三种引号符:(1 )单引号( ):功能是让系统原样输出单引号中所含的内容。(2 )双引号( “ ”):双引号中的字符串若含有通配符,则系统会先进行通配后再输出;若含有变量取值符“$”,则系统会先进行变量取值后再输出。(3 )反引号( ):反引号中所含的内容必须是一个命令,这样它会先执行此命令,然后把命令执行的结果返回输出。对于上述几个特殊字符,在下文关于 Shell 脚本编程部分大家会看到具体的应用例子。此外,常见的特殊字符还有“.” 代表用户所在的当前目录,“”代表用户所在的当前目录的父目录,“”代表用户登陆系统的主目录

6、。Unix 的轻巧 “约取而实得” (中篇) 三、与查找比较相关的命令使用 Windows 系统的用户可能都有这样的经历,在网上看到可悠长品赏的电影,down ;看到匠心独运的电子书,down;看到妙织锦绣的文章,down;看到衔华佩实的资料,down。但时间一长,想再回顾一下星战前传 3:西斯的反击中奥比旺和阿纳金在熔岩横流的穆斯塔法星上展开光剑对决的精彩片段,或者是重温一下李开复先生给中国学生第四封信中所提出在大学校园应当掌握的“七项学习”,可能自己都记不清当时是放在哪个目录里了。幸好,Windows 为我们提供了“搜索”功能,再加上现今 Google、百度相继推出的 Google 桌面搜

7、索、百度硬盘搜索,才使得这些文件幸免于藏身深宫大院之中,茕茕孑立、形影相吊的命运。那么在 Unix 系统中的文件又是怎样的命运呢?且看以下的命令功能:(一)利用 find 命令查找文件find 命令的功能是在指定目录及其子目录下查找符合条件的文件,命令格式如下:find path expression参数 path 指欲开始查找的起始目录,find 会遍寻此目录以及其子目录,并且此参数可以有多个目录名称,只要在目录与目录之间用空格分开即可。参数 expression 指明了诸如基于文件名、文件类型、文件所有者、最后一次修改时间等的查找规则,find 命令将遵循此查找规则来查询指定目录以及子目录

8、中的文件。常用的查找规则如下:-name filename指定要寻找的文件或目录名称-print 将搜索到的符合条件结果以包含路径名的方式输出-type x 以文件类型作为寻找条件,常用的文件类型 x 如下:d - 目录文件, f - 普通文件, b - 块设备文件, c - 字符设备文件, l - 链接文件-user user 寻找用户 user 所拥有的文件,user 可为用户名或 uid 号-atime n 寻找 n 天之前曾被访问过的文件-mtime n 寻找 n 天之前曾被修改过的文件-exec command ;用寻找到的文件作为执行 command的对象,中保存执行 comman

9、d 时所需的参数,注意必须以 ; 为结束下面来看一些具体的查找实例:例 1 在目录/home 中查找名为 javac 的文件,并要显示出完整的路径名:find /home name javac -print例 2 在当前目录下查找以 doc 开头,7 天之前曾被修改过的文件:find . name “doc*” -mtime 7例 3 在目录/home 中查找名为 anray 的目录,并显示出完整的路径:find /home name anray type d -print例 4 在目录/home 中查找用户 zcl 所拥有的普通文件,并将其删除:find /home type f user

10、zcl -exec rm ;(二)使用 grep 命令查找字符串使用 grep 命令在文本文件中查找指定的字符串,并将所有出现该字符串的行打印显示出来。grep 命令的格式如下:grep -iv 字符串 文件名参数 i 代表查找字符串时忽略字母大小写,参数 v 显示出所有不包含指定字符串的行。如果在欲查找的字符串中包含有空格,那么应该用单引号将此字符串引起来。此外,如果是想同时在多个文件中查找指定的字符串,那么只需列出所有欲搜索的文件即可,这样 grep 命令会在所列出的匹配行前加上文件名。grep 常与通配符、管道符一起搭配使用,这样可以实现一些特殊的查找功能,大家应能结合上面所介绍的命令来

11、综合应用。例 1 在文件 file1 中查找字符串“Java Web”,并忽略大小写。grep i Java Web file1或 cat file1 | grep i Java Web或 grep i Java Web myfind &这样,我们就可以通过查看 myfind 文件来查看查找结果了。在运行此命令的同时,我们还可以继续输入其它命令来进行其它操作。例 2 要求前台运行 find 命令,在当前目录及其子目录下查找文件名前缀为 file 的文件,运行过程中挂起进程,并将其放入后台运行。解:此题可以使用如下的命令:find . -name “file*” myfindz (按 Ctrl

12、+ z)jobs /通过 jobs 命令来查看 find 进程的作业号,假设为 1bg %1这里再补充与记取一个小知识点,即当在前台杀掉某一进程后,那么此进程的所有子进程都会同时被杀掉;而如果是在后台杀掉某一进程,那么此进程的所有子进程都将“过继”给“祖宗”进程(即进程号为 1 的进程)而继续运行。Unix 的轻巧 “约取而实得” (下篇) 六、网络通信相关命令“功能性文盲” 的概念是 1965 年联合国教科文组织在伊朗德黑兰召开的各国教育部长会议上首次提出的,它最初的含义是指未能获得读、写及计算能力的人。时至今日,此概念的内涵已经发生了很大的变化。读不仅要读印刷的文本,而如何快捷、有效地读取

13、互联网上丰富的信息资源已成了现代人必备的才能;写不仅是以往习惯的“爬格子”,而且会借用计算机的“神手” ,更要将自己的所思所想写在网上,与全世界的人进行交流和互助;算不仅需要核算物质成本和产出,而且要节约时间与精力,把握生命的张弛节律,将积极有效的精力投到最有意义的活动中去。对于现代人来说,若离开了网络,那就真要返回到“功能性文盲”状态了。当然,Unix 系统也离不开网络,它的缺省网络协议即为当今网络架构基础的 TCP/IP 协议。TCP/IP 协议由一系列协议组成,统称 TCP/IP 协议族。TCP/IP 协议是 TCP/IP 协议族中的基本协议,协议族常用协议有:(1)传输控制协议/互联网

14、络协议(TCP/IP - Transmission Control Protocol/Internet Protocol)是协议族的基本协议。(2)用户数据报协议(UDP - User Datagram Protocol)提供无连接的传输层协议,不保证传输的可靠性。(3)远程登录协议(telnet)定义了远程登录的标准。(4)文件传输协议(FTP - File Transfer Protocol)定义了不同系统间进行文件拷贝的标准。下面再介绍基于 TCP/IP 协议族的 Unix 系统的相关命令。1、 Telnet 命令前文中我们曾经使用过 telnet 命令,该命令的主要功能是在用户使用的本

15、地计算机上通过网络登陆远程 Unix 主机,把本地计算机当成远程主机的一个仿真终端,而此处的网络可以是任何采用了 TCP/IP 协议的网络,如LAN、WAN 、 Internet 等。在本地计算机上运行的 telnet 或下文将要介绍的 ftp 程序,实际上都是 telnet/ftp 的客户端程序,它通过 TCP/IP 协议与远程主机中的服务端程序相连。当用户利用 telnet 完成与远程 Unix 主机的连接后,就能像是在 Unix 主机终端上操作一样了,不过此时用户所能使用的功能和资源将取决于该系统所赋予用户的使用权限。telnet 的命令格式如下:telnet IP 地址或域名 端口号此

16、处的 IP 地址或域名是指远程 Unix 主机的 IP 地址或域名。当建立连接之后,将会出现信息提示用户输入登陆的用户名及口令,正确输入后就可以进入 Unix 系统了。 2、 FTP 命令FTP 的主要功能是实现本地计算机与远程主机之间的文件传输,它可以将远程 Unix 系统上的一个或多个文件下载到本地计算机,也可以将本地计算机上的一个或多个文件上传到远程 Unix 系统上。FTP 的命令格式如下:ftp IP 地址或域名此处的 IP 地址或域名是指远程 Unix 主机的 IP 地址或域名。当建立连接之后,将会出现信息提示用户输入登陆的用户名及口令,正确输入后就会出现 ftp 提示符“ftp”

17、,我们就可以在此提示符后输入 ftp 命令进行相关的操作了。FTP 的常用命令及解释列表如下:ftp 命令 解释bin 设定以二进制模式传输文件asc 设定以 ASCII 模式传输文件(缺省值)pwd 列出当前所处的远程主机目录cd directory 改变所处的远程目录ls 显示所处的远程目录的内容lcd directory 设定本地欲上传或下载文件的目录put file 将本地计算机中的文件上传到远程主机上get file 将远程主机中的文件下载到本地计算机上mput files 将本地计算机中的多个文件上传到远程主机上mget files 将远程主机中的多个文件下载到本地计算机上bye

18、退出 ftp下面是一次模拟的 FTP 登陆实例。假设远程主机的 IP 地址为 198.4.30.25,现在要求将本地计算机系统/home/zcl 中的文件 Calculator.java 上传到远程主机/newusers/zcl 目录中,同时将/newusers/zcl 目录中所有的文件下载到本地计算机目录/home/zcl/down 中。解:ftp 198.4.30.25Name: Password:(输入 Unix 用户名及口令)ftp ascftp lcd /home/zclftp cd /newusers/zclftp put Calculator.javaftp binftp lcd

19、 /home/zcl/downftp mget *ftp bye说明: 当我们使用 ftp 时,可简单地把文件分为两种基本类型:文本文件和二进制文件。文本文件也称为 ASCII 文件,其文件内容遵循 ASCII 的定义,其主要特征是文件内容由若干行组成,可以使用操作系统的显示、编辑命令来显示和编辑 ASCII 文件的内容,它使用的传输模式是 “asc”。二进制文件(Binary File)是指除 ASCII 文件以外的所有文件格式,它使用的传输模式是“bin”。需要注意的是,可以将 ASCII 文件按二进制模式传输,但决不能将二进制文件按ASCII 模式传输,否则二进制文件的内容会遭到破坏而无

20、法使用。3、用户间通讯命令对于 QQ、MSN 这类聊天工具,大家应该是再熟悉不过了,那么在 Unix 系统中能否进行此类的聊天操作呢?答案当然是肯定的。Unix 提供了多种方式让用户相互通信,它允许以文本的方式给某个用户或所有用户传递信息,而信息来源可以是文本文件或直接由键盘输入的内容。(1)使用 write 发送消息使用 write 命令可以向任何已登录同一系统的另一位用户发送消息,这时在对方用户终端上就会自动显示出信息,而对方也同样可以使用 write 命令来回复消息,这样双方之间就能互相通信了。write 命令的格式如下:write user-name此处 user-name 是将要与之

21、通信的用户名,可以使用 who 命令来查看系统中已登陆的用户名。输入 write 命令后,即可进入发送消息状态,这时就可以通过键盘输入消息,回车即可向对方发送此条消息了。要想退出发送消息状态,可以使用“Ctrl + d”退出 write 命令回到 shell。(2 )使用 talk 进行双方对话talk 命令允许双方实现类似于 MSN、QQ 这样的实时对话,其命令格式如下:talk user-name 当用户向另一用户发送对话请求,只有在对方同意接受对话请求,即对方也使用 talk 命令后,双方的对话才会建立。这时双方终端上都会显示“connect established”,这样双方就可以从键

22、盘输入文字,talk 会把这些输入显示在对方的屏幕上,若任意一方按 键就会退出对话状态。(3)使用 wall 进行广播式消息传送使用 wall 命令可以向所有用户广播通知信息,而所有登录系统的用户都可收到该消息。wall 命令有以下几种格式:wallwall filenamewall “send a message to all the people!”(4)使用 mesg 允许或拒绝接收消息当一位用户正在全身心的投入某项工作的时候,可能会不想被另外一位用户用上述方式突然发送来的消息打断思路,那么就可使用 mesg 命令来设置是否允许接收由其它用户发来的信息。mesg 命令的格式如下:mesg

23、 n或mesg -y其中,y 表示允许接收信息,n 表示拒绝接收信息。如果 mesg 后面没有跟参数,则报告当前的许可状态。4、其它命令(1)查看网上用户信息使用 finger 命令可以显示当前正在使用 Unix 系统的所有用户信息,它的命令格式如下:finger 用户名主机域名或 ip 地址如:finger /显示当前正在使用 Unix 系统的所有用户信息finger anray198.4.30.25 /查看主机 198.4.30.26 上用户 anray 的信息此外,常用的显示当前系统登陆用户信息的命令还有:who /可查看每个登陆用户的 IP 地址w /可查看每个登陆用户的当前行为who

24、 am i /查看使用者自己的信息(2 )查看网络的相关信息hostname /显示主机名cat /etc/hostname.hme0 /显示主机名cat /etc/hosts /查看同一网段中存在的所有主机cat /etc/services /查看当前系统所运行的所有程序的端口ping 主机 IP 地址 /检测是否可以访问某个主机netstat /列出系统中所有的网络连接/usr/sbin/traceroute 主机 IP 地址 /显示从本地到目标 IP 所经过的所有路由器七、文本编辑器 vi 的使用简介古希腊克里特岛迷宫里有一个牛头人身的怪物米诺陶洛斯,如果不是美女公主阿里阿德涅赠送给英雄

25、忒修斯一把魔剑,英勇的忒修斯还真奈何不了这牛头人身的怪物。vi 编辑器就是 Unix 系统赋予我们的魔剑,它是一款强有力的文本文件编辑工具。对初学者而言,常因其特殊的使用方法,而不得径门而入;对已经在使用 vi 的操作者来说,也常因对 vi 的不够熟悉与了解,而无法发挥出 vi 强大的编辑能力。以下将介绍 vi 的基本使用方法。vi 提供了两种操作模式:文本输入模式和命令模式,前者用于文本输入,后者用于输入控制指令。要启动 vi 进行文本操作,用户可在 Shell 提示符后输入如下命令:vi 文件名如果该名称的文件不存在,则系统会自动创建该文件。用户进入 vi 编辑器后,便自动处于命令模式,此

26、时键入的任何字符皆被视为指令。此模式下可对文本进行删除、替换、拷贝、移动等操作,而对文本进行操作的前提是输入文本,那就先让我们进入输入模式吧。文本输入模式的进入,有以下的指令可供使用:a 将在光标所在位置之后插入文本A 将在光标所在行末插入文本i 将在光标所在位置之前插入文本I 将在光标所在行的第一个非空字符前插入文本o 将在光标所在行的下一行开始插入文本O 将在光标所在行的上一行开始插入文本俗话说:“仙人打鼓时有差,脚步踏错谁人无。”在输入文本过程中,出现差错在所难免,但在 vi 编辑器中可不像在Word 中那样能使用 backspace 或 delete 键来删除差错之处,而是首先应该按“

27、ESC” 键进入命令模式,然后可利用下面的指令移动光标位置进行准确定位:k 上移一个字符j 下移一个字符h 左移一个字符l 右移一个字符行号 G 光标移到该指点行(如 1G 表示光标移到第一行 )G 光标移到文件结尾接着就可以使用下述指令进行删除或替换操作了:x 删除光标所在字符X 删除光标所在的前一字符s 删除光标所在的字符,并进入输入模式dd 删除光标所在行nd 删除编辑器第 n 行的所有字符(n 代表具体数字,下同)ndd 删除从光标所在行开始往下的 n 行:n,md 删除从指定的 n 到 m 行之间的所有字符(如::5,10d 将会删除编辑器中从第 5 行开始至第 10 行的内容)D

28、删除光标所在处到行尾的字符r 用跟在此指令之后的字符替换光标所在的字符(如:ra 是以 a 替换光标所在的字符)C 替换从光标到行尾的内容cc 替换整行的内容“Ctrl + C”、“Ctrl + X”、“Ctrl + V”这几个组合键对于 Windows 用户来说是再熟悉不过了,在 vi 编辑器当然也具备了一般编辑的拷贝、移动、粘贴功能,下面就让我们来试试吧!yw 拷贝当前光标所在处的词yy 拷贝当前光标所在行的所有字符P 在光标所在行的下一行粘贴:i,jcok 将第 i 行至第 j 行之间的文本拷贝到第 k 行之后(此处i、 j、k 分别代表不同的数字):i,jmok 将第 i 行至第 j

29、行之间的文本移动到第 k 行之后(此处i、 j、k 分别代表不同的数字)上列表中第 4、5 项如::10,20co30 将第 10 行至第 20 行的文本复制到第 30 行之后;:10,20mo30 将第 10行至第 20 行的文本移动到第 30 行之后。在完成所有的编辑工作之后,大家可要记得存盘退出 vi 编辑器。在命令模式下使用下述指令: :w 存盘:w newfile 存盘成新的文件:wq 存盘并退出 vi:q 退出 vi,若文件被修改过,则会被要求确认是否放弃修改的内容。:q! 不存盘并强行退出 vi 下面再介绍一些较常使用的指令: 改变大小写u 取消上次操作,即复原执行上一指令前的内

30、容/字符串 从当前行往下查找指定的字符串n 往下继续查找下一个指定的字符串?字符串 从当前行往上查找指定的字符串N 往上继续查找下一个指定的字符串:r file 将某文件的内容插入到光标位置J 将光标所在行与其下一行连接起来,即下一行文本移动至光标所在行的末尾:set nu 让编辑器自动显示出每一行的行号:set nonu 取消显示每行前的行号对以上所列指令用户只有稔熟在心,才能熟练自如地使用 vi 编辑器。在此基础之上,大家可以参考其它相关资料来掌握 vi 编辑器的一些更高级的指令。在后续关于 Unix 平台上程序开发的介绍中,大家将更能感受到 vi 编辑器的重要性。八、环境变量及其它设置在

31、中医理论中,纵向叫 脉,横向叫 络,任督二脉正好是在人体的前后中心,前面是任脉,后面是督脉,是人体的子午线,因此在金庸的武侠小说里,想要练成上乘的功夫,首先就是要打通任督二脉。环境变量就是 Unix 系统中的任督二脉,那就让我们来打通它吧!在介绍环境变量之前,我们先来了解一下变量这个概念。变量顾名思义就是值会变化的量,在使用变量之前必须先进行定义,变量名可以是任何符合命令规则的字母、下划线和数字的组合。对于为变量赋值,在 csh 与 bash 中的操作方式会略有不同。在 csh 中为变量赋值的格式如下:setenv variable value在 bash 中可以使用赋值操作符“=” 来为一个

32、变量进行赋值,格式如下:variable=valueexport variable注意在“=”的周围不应该有任何的空格,使用 export 命令是为了使此变量在所有嵌套的 Shell 中都有效。一旦为一个变量赋值之后,就可以通过在变量名之前放置“$”来引用该变量的值了。如果想要查看某个变量的值,则可以使用 echo命令,命令格式为:echo $variable如在 csh 中键入如下命令,将当前系统的主机名赋值给变量 WTO,并输出变量 WTO 的值:setenv WTO uname necho $WTO在 bash 中的操作方式如下:WTO= uname nexport WTOecho $W

33、TO变量的使用用途较广,经常的用法是将其作为某个命令的参数。如将某一经常用到的目录路径名赋值给一个变量,这样就可以避免一遍又一遍地反复敲入同样的内容了。看下面一个例子,要将当前目录中的文件 myfile1、myfile2 拷贝到目录/home/anray/mydocument 中,就可以使用如下的命令(以 bash 为例):mydir=/home/anray/mydocumentcp myfile1 $mydircp myfile2 $mydir如果想了解所有已定义的变量情况,则可以使用 set 命令。当用户不再需要某一个变量时,可以用 unset 命令来删除此变量,格式如下:unset va

34、riable值得注意的是,当前所定义变量的作用域范围是当前正在使用的 Shell 环境,即一旦退出 Shell 后再次登录,则此前所设置的所有变量都将失效。如果需要再次使用这些变量的话,都必须重新进行定义。要想使定义的变量在每次登入系统时都有效,则需将其定义成为环境变量。环境变量可以用于定制用户的工作环境,即使用环境变量可以保存用户对系统进行设置的信息。环境变量被定义在“初始化文件”中,csh 的初始化文件是.cshrc 文件, bash 的初始化文件是.bashrc(或.bash_profile,两者等效)。在每次系统启动时,系统会自动读取初始化文件中的内容来配置相应的工作环境,常见的环境变

35、量有 HOME、PATH、SHELL 等。HOME 变量的值是用户主目录的路径名。PATH 变量的值包含了各种命令所在目录的路径名,路径名之间用冒号隔开,当用户执行某一命令时,系统就将会自动在这些目录下查询此命令并执行,若未查询到则会提示命令没有找到。SHELL 变量的值代表了用户登陆系统时默认的 Shell 环境。当然用户也可以定义自己所需的环境变量,定义方法与普通变量定义相同,两者的不同之处在于环境变量被定义在初始化文件中。通常在定义环境变量之后,需要重新进入系统才会生效。如果想在不重启系统的情况下立即使当前的配置生效,csh 中可以使用如下的命令:source .cshrcbash 中可

36、以使用如下的命令:. .bashrc关于使用 Java、Oracle、CVS、Tomcat 等时应该定义的环境变量,计划在后续的系列文章中陆续介绍,此处就先行略过。要想查看系统已定义的所有环境变量的情况,可以使用 setenv 命令。 下面我们再来介绍一下 Unix 系统中的一些其它设置。1、计划任务的设置Unix 系统允许在指定的时刻执行指定的任务,这一功能是靠 cron 进程来实现的。cron 进程会检查系统的计划任务文件,并在指定的时间执行这些指定的操作。计划任务文件内容格式如下:min hour day month day_of_week command0-59 0-23 1-31 1

37、-12 0-6(Sunday=0) 计划任务文件由若干行组成,每行表示一个任务。每行由若干字段组成,字段间用空格分开。每行中字段分别代表:分、时、日、月、星期、要执行的命令。每个字段取值举例:各字段取值举例 说明* 表示任何时间1,3,4 表示离散数字,即一系列点值1-5 表示从 1 到 5,即一范围例如:30 0 * * * /usr/tmp/a.txt0 7 * 1,3,6,8 1-5 /usr/tmp/makefile第一行表示在每天的午夜 0:30 启动/usr/tmp/a.txt 文件运行,第二行表示每当 1、3、6 和 8 月的周 1 到周五,启动/usr/tmp/makefile

38、 文件运行。计划任务文件是不能直接通过 vi 等编辑工具进行修改的,要对计划任务文件进行操作可使用 crontab 命令。crontab 命令的常用格式如下:crontab 命令举例 说明crontab -l 显示计划任务文件的内容crontab e 编辑计划任务文件的内容crontab myfile 用 myfile 文件内容覆盖原计划任务文件内容crontab -r 删除现有的计划任务文件需要补充的是, crontab e 命令在默认情况下会使用编辑器 ed 来编辑计划任务文件。此编辑器的操作非常烦琐,因此最好是通过设置环境变量 EDITOR 来指定编辑器,方法如下:setenv EDIT

39、OR vi此外,也可通过先将计划任务文件的内容读入某一临时文件,编辑完成后再覆盖原计划任务文件的方式来修改计划任务。例 在原计划任务文件基础上增加如下任务:每月 1 日凌晨 3 时运行/usr/tmp/run 程序。解:(1) 运行 crontab -l temp(2) 对 temp 文件进行编辑,追加下面一行:0 3 1 * * /usr/tmp/run(3) 运行 crontab temp2、别名的设置可以使用 alias 命令来为一个命令创建一个别名,它的命令格式如下:alias alias-name value比如,熟悉的 DOS 的用户可能会一下子不习惯 ls 这个命令,那么就可以使

40、用如下的方法来为 ls 命令取个别名:alias dir ls此外,还可以用一个别名来代替一个命令及它的参数,这样就可以简化常用的操作命令以便使用。不过这时需要用单引号将命令及其参数括起来,如:alias dir ls l若想查看已定义的所有别名的别名表,则直接使用 alias 命令即可。当想删除某个别名时,则可使用 unalias 命令,格式如下:unalias alias-name3、命令历史设置在 Unix 系统中,history 程序会自动保留用户最近所使用过的命令。历史表中的命令从 1 开始编号,上限为所设置的保留个数,默认值是 500。我们可以重设此保留个数,如:set histo

41、ry=30上述操作设定命令历史表长度为 30,即可记载已执行过的 30 个命令,可通过使用 history 命令查看此 30 个命令记录。使用“!n”命令可以执行历史表中所记录的第 n 个命令,“!”则是重复执行前一个命令。九、 Shell 脚本编程在执行某个具体任务的时候,有时可能需要把几个 Unix 命令结合起来一起使用。如果这样的操作较为频繁,则可以考虑将这些命令放入一个文件中。那么每次使用时只需执行此文件即可,这样的文件就被称为脚本文件。我们先来看一个简单的例子。首先使用 vi 创建一个名为 lsjava 的文件,在文件中输入如下内容:pwdcaldatels *.java保存退出。由

42、于默认情况下 vi 编辑器创建的文件仅有读和写权限,因此需要使用 chmod 命令来使脚本文件具备可执行权限,使用命令如下:chmod u+x lsjava在 shell 提示符后输入脚本文件名并回车,将可执行此脚本文件中的命令了,即先显示当前所处的工作目录,再显示出日历和日期,最后列表显示出当前目录下所有以“.java”为后缀名的文件。这样,脚本文件名就变成了一个新的 shell 命令。使用此种方法,我们就可以设计并创建自己的命令了。要补充说明的是,如果是在 bash 中,我们就无需更改脚本文件的权限,使用如下的命令格式即可执行此脚本文件:. lsjava /此处的点号“.”表示执行像其它的

43、 Unix 命令一样,在命令行中调用一个脚本时,也可以在此脚本名后输入参数。这样在脚本文件中就可以接收来自命令行中的参数信息,并将此作为脚本文件中某命令的参数。命令行中的参数通过使用“$”操作符和参数序号来引用,参数以“1”开始顺续引用,第一个参数用$1 来引用,第二个参数用$2 来引用,以此类推。每次还可以引用多个参数,使用操作符“$*” 即可表示引用所有的参数。此外,在脚本文件中,除了可以使用一系列的 Unix 系统命令外,还可以使用变量、算术表达式、条件选择、循环控制等来共同完成相应的任务。脚本文件功能强大,在处理较大的任务或需要循环执行某一个命令时可节省大量的时间。由于此部分涉及到编码,且内容较多,足可另写一本书,且又是非Unix 初级使用者所必须掌握的知识,故在此不再赘述,请感兴趣的读者查阅相关的书籍与资料。关于对 Unix 操作系统使用的基本介绍将就此告一段落。有智者曰:“人之知识,若登梯然,进一级则所见愈广。”本系列拙文仅作引玉之砖、铺路之石,若有关注与兴趣者籍此登梯而上,所见愈广,后能返得指教与辅导,则实为笔者遂愿之幸事!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报