Unix的入门教程

发布时间:2010-08-01 12:27:11   来源:文档文库   
字号:
这篇东西是关于Unix系统操作的教程。也是Unix的入门教程。如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。如果你满足于dos,windows的操作,不想对网络服务器,有任何了解的话,可以不看。因为你并不想成为计算机高手。本教程仅仅讲授Unix系统的常用命令,不涉及 Unix的历史、安装和编程。如果你想得到更多的知识,请查找其他的教材。本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南 》等书,你可以在那里找到更多的知识。 准备知识: Unix是一个多任务多用户的操作系统。多任务是指可以同时运行几个不同的程序,或命令。在操作系统的术语里叫“进程”,就象在运行Windows 95的时候我们可以一边听CD 一边打字,同时打印机还在工作。多用户是指一台运行Unix系统的机器可以同时具有几个不同的输入输出设备,给几个,几十个用户同时使用。不同的输入输出设备我们称为终端。Unix给每个终端设置不同的序号以协调工作,这个序号被称为终端序号。Unix是一个根本不同于Dos 的系统,无论其命令格式,用途都和Dos有很大区别。比如:目录分割符是"/",而不是"\"。具体的不同请参考其他书籍。 开始练习之前: 在开始教授Unix命令之前,请先记下这个地址:http://www.cyberspace.org。它是 一台在美国的,连上Internet的Unix主机。之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。是免费的。就是说你可以先去那里申请一个帐号,然后在那里练习你所学到的Unix命令。因为我相信不是每个朋友都可以轻松地得到Unix帐号的。在你成功的申请好帐号之后,请在你 Windows 95的dos窗口里输入"telnet cyberspace.org" 等待连上主机。接下来就是输入你的用户名和密码,不要告诉我这些你都不会,如果你不会的话,你是怎么连到这个网页的?现在假定你连上了主机,系统的提示符应该是"cyberscpae.org%",对这个就是提示符就象dos里的"c:\>"。接下去我将开始命令篇。 认识命令: ls 你记不记得你学会的第一个Dos命令?反正我学会的第一个命令是dir:列目录和文件的 命令。你学会的第一个Unix的命令也是列目录和文件的命令 ls. 功能列出当前目录下的文件和目录。同Dos一样,Unix系统命令也是带参数的。ls的参数有"a","l","F"。请注意,F是大写。 Unix系统里对命令的大小是严格区分的。(所以我们做网页常常会发生连接错误)同dos 不一样的地方在于,Unix命令的参数是"-"为其前导,而不是"/"。所以完整的ls命令是 ls -l -a -F或ls -laF -l:long的意思,把文件的其他资料,如文件长度,上次修改的日期等等列出来。 -a:all的意思, 把本目录下所有的文件,包括隐含的文件也列出来。 -F:显示文件类型。"*"表示可执行文件,"/"表示目录,"@"表示连接。 好,请在你的机器上输入ls -l -a -F,或许这是你一生里第一个Unix命令。记住了吗? cd 变换目录,和Dos相同。如果你在cd后面没有给定目的地,则表示目的地是家目录。在unix中有三中表示目录的符号".","..","~"。 "."表示当前目录路径的位置 ".."表示当前路径的上一层目录,或称"父目录" "~"表示家目录,所谓家目录指系统管理员分配给你的目录,比如你的用户名是li,那么 你的家目录就是在"~li",在cd后面加上"~li"就是去你的家目录。 date 显示出当前的时间和日期,记住在Unix里你是无法修改系统时间的。输出时间一般是 格林威志时间。 who 该命令告诉你现在你使用的系统里有哪些用户。Unix是一个多用户的操作系统,同时在 机器上的可能有数十甚至数百人。who命令可以把他们的名字和终端号都列出来。who命令有 一个比较有趣的用法,"who am I"如其字面上的意思,让Unix显示你的用户名和终端类型 more more命令有点象Dos里的Type命令,就是显示文本文件的内容。比如你要显示文件file1的 内容,可以用:more file1 当要看的文件超过屏幕可以容纳的行数,就会在屏幕的左下角出现一个"--More--"并告诉你已经看过了整个文件的百分之几。如果要继续看下去,就敲 "Space Bar",可以看下一页,或用"Enter",就会读入下一行。more命令还可以由你指定开始的行数。比如file1文件有1000 行,你已经看过100行,那么可以用"more +100 file1"则直接从第100行开始看起。还有可以在命令里指定关键字。ore + /key_word 这样写,more就会从含有"key_word"字样的那一行的前两行开始显示。也许你已经注意到,Unix里对文本文件的操作要比 Dos强大的多,实际上的确如此。 cp cp命令同dos里的copy命令是一样的,复制文件。比如: cp file1 file2 注意,如果你当前目录里已经含有file2这个文件,这个操作将会覆盖原来的file2。也许 在Dos里不会这样,它会要你确认。但你现在在用Unix,在你没有叫它确认之前,它不会那么做。 cp -i file1 file2 当你使用了-i这个选项,再遇到重名的情况系统将要你确认是否继续。cp命令还有两个比较重要的选项:-r -p cp -r /dir1 /dir_temp 这条命令是将目录dir1完全地复制到目录/dir_temp里,在Dos里着条命令叫xcopy cp -p file1 file2 Unix的系统和dos有一个不同的地方,在dos里copy一个文件是不会改变它的文件修改时间 的,除非你确实那样做了。在Unix里不同,它要改你的时间,或许它认为cp也是一种修改吧。当你加上-p以后就不会改 时间了。 用惯Dos的人或许会对下面的一行命令大惑不解: cp file1 file2 file3 dir_dest 这条命令把file1,file2,file3三个文件一起复制到/dir_dest里去。 好了就讲到这里,最后留一个思考题,请说明一下下面一行命令的作用,请不要用Dos 的思考方式。 思考问题,请说出以下命令的作用: cp file1+file2 file3 一、UNIX基础 在最终使热联线决定录用的个人简历中我说我精通Unix。但实际上这并不是事实。Unix中仍然有很多我不了解的东西。当我夹着一本UNIX入门赶到三藩的办公室时,我发现给我配备的电脑不是我所希望的Macintosh,而是一台漂亮的紫色SGI。 我认识到我必须加紧学习Unix。首先我学用的是SGI的图形用户界面,这个界面和Macintosh 桌面的界面很相似。但我很快发现速度太慢。所以赶快找乐几本更好的Unix书籍,并找到一个好心的Unix 专家帮助我,很快我就能够象闪电那样使用cp、mv和chmod命令。 Unix偶尔还令我感到后怕,但是我还是很喜欢它。它的速度非常快,非常有用。而且如果在你的简历上有一条精通UNIX的记录,你被录用的机会将增加数倍。 我准备了一下有关UNIX的入门知识。但是我要先提醒你,UNIX非常强大,你错误的键盘指令很有可能将你的文件吹到十万八千里之外,你可能将永远无法挽回。所以在你打算移动某些文件之前先拿样本作一下练习。 开始 首先,你需要登记一个帐户。找一个服务器管理员、系统管理员或Unix管理员请他给你注册一个帐户和一个用户目录。并向他们保证你不会经常问他们问题烦他们。尽管这一条对我来说常常只是大白话。 注意Unix系统的安装方法有很大的区别。如果什么东西在你这里不能用,则说明有某个系统没有安装或系统配置不对。还有可能是因为你在使用一种不同的 UNIX系统,所以拟定指令可能同其他的UNIX系统存在某些区别。如果你碰到说明问题,去向给你帐户的人寻求帮助,但记住一定要带点儿礼物。 获得帐户后,去书店买几本Unix的书。 Telnet 要进入你的帐户,你需要一个shell程序 (将你所键入的任何东西都传输到主机的程序)。最方便的办法是开启一个Telnet视窗。如果你用的就是主机,则你已经有了shell。用Telnet获取文件的方法和在你的MAC机上打开chooser或在PC机上打开网上邻居的方法基本相同,不同之处在于当你进入文件结构的时候,你不会那些五颜六色的目录。 所以打开Telnet,并从File菜单中选择打开联结(Open Connection),填入主机地址(Host/Session Name) ,然后点击联结( Connect)。它会提示你输入用户名和口令。你应该还有一个用户子目录。当你登录时,你会遇 到: IRIX (sutro) login: pam Password: IRIX Release 5.3 IP20 sutro Copyright 1987-1994 Silicon Graphics,Inc. All Rights Reserved. Last login: Fri Dec 13 14:04:59 PST 1996 by UNKNOWN@hill.hotwired.com You have mail. sutro[~]% 在你登录的时候你可能看不到你的用户子目录,但你的用户子目录应该如同下面的例子: sutro.hotwired.com[~]%pwd/usr/people/pam 二、基本指令 我列出了几项基本指令。大部分的指令都有若干选项,这些选项使得这些指令功能更加强大。你可以在Unix在线指南中找到具体的用法。 ls -列出某个子目录中的文件。 语法: ls [选项] [名称] 显示结果应该如同下面的例子: sutro.hotwired.com[~]% ls airwolf.au goo.html unixclass apanel.parameters graphics 在这个例子中,我的用户子目录中有两个文件(airwolf.au和goo.html)和3个下级子目录 (unixclass,apanel.parameters,and graphics) 。 cd - 改变子目录 语法:cd [dir] 例: sutro.hotwired.com[~]% cd unixclass sutro.hotwired.com[~/unixclass]% ls one one.html two two.html sutro.hotwired.com[~/unixclass]% 在本例中,我从用户子目录改变到unixclass 子目录,在该子目录中有两个文件和一个下级子目录(如果你想返回原来的子目录,则使用% cd ../). mv - 移动或重命名一个文件或子目录 语法:mv [选项] 源文件/子目录 目标 例 sutro.hotwired.com[~/unixclass]% mv one/ two/ sutro.hotwired.com[~/unixclass]% ls one.html two two.html sutro.hotwired.com[~/unixclass]% ls two/ one sutro.hotwired.com[~/unixclass]% 我将子目录one移到了子目录two。 如果你用mv重命名一个文件或子目录,则: sutro.hotwired.com[~/unixclass]% mv two/ somethingdifferent sutro.hotwired.com[~/unixclass]% ls one.html somethingdifferent two.html 在本例中我将子目录two重命名为somethingdifferent。 rm - 删除一个文件 语法:rm [选项] [文件] 例: sutro.hotwired.com[~/unixclass]% rm one.html sutro.hotwired.com[~/unixclass]% ls somethingdifferent two.html 我删除了子目录unixclass下的文件。 rm -ir - 删除一个子目录 例: sutro.hotwired.com[~/unixclass]% rm -ir somethingdifferent/ Directory somethingdifferent/. Remove ?(yes/no)[no] : yes Directory somethingdifferent//one. Remove ?(yes/no)[no] : yes sutro.hotwired.com[~/unixclass]% ls two.html 在本例中,我用rm -ir 指令删除子目录 somethingdifferent。在删除该子目录之前,我必须确认我要删除该子目录。一旦我确认删除之后,子目录 somethingdifferent将不复存在。所以使用 rm时一定要谨慎,因为,一旦执行该命令,该文件或子目录将----覆水难收 ... mkdir - 建立新子目录 语法:mkdir [选项] 新子目 录名 例: sutro.hotwired.com[~/unixclass]% mkdir waga sutro.hotwired.com[~/unixclass]% ls two.html waga 我用mkdir建立了新子目录waga。 more - 分屏过滤或者叫分屏显示(more)一个文件,当你只是想阅读一个文件而不编辑它时。 less - less的功能和more类似,但它还允许你在一个文件内执行查询功能。 exit - 从登录的主机退出 date - 显示当前日期和时间cal 1997 - prints the 1997 calendar whoami - 显示当前登录到你的终端的用户 mail - 调出一个简单的邮件编辑器 pwd - 告诉你当前你所在的位置,它显示当前子目录的完整路径名。 Unix在线指南 如果你项了解各个指令的细节,你可以查询Unix的在线指南man。例如如果你想了解ls,键入 sutro.hotwired.com[~/unixclass]% man ls 你就会看到: ls(1) NAME ls - list contents of directory SYNOPSIS ls [-RadLCxmlnogrtucpFbqisf1AM] [names] DESCRIPTION For each directory argument,ls lists the contents of the directory;for each file argument,ls repeats its name and any other information requested. The output is sorted alphabetically by default. 要退出man,则键入q。>> 三、许可 在你浏览主机时,你会发现有很多事情你不能做。你不能象在你自己的用户子目录中那样编辑和移动文件。 还记得ls是我们的基本指令吗?该指令的选项ls -l用于显示文件和子目录的信息。 例: sutro.hotwired.com[~/unixclass]% ls -l total 20 drwxrwxr-x 2 pam staff 512 Dec 5 09:34 one -rw-rw-r-- 1 pam staff 4233 Dec 5 09:35 one.html drwxrwxr-x 2 pam staff 512 Dec 5 09:34 two -rw-r--r-- 1 pam staff 4233 Dec 5 09:36 two.html 这里我们可以看到子目录unixclass中的内容,该子目录中包含两个下级子目录(one和two)和两个文件。第1列文字列出了我们的权限:读、写、或执行文件和子目录。 第2列清单(pam,pam,pam,pam)显示文件的主人,在本例中文件的主人是我(pam)。 第3列我所属的类别。要得知你属于哪个类别,你可以键入groups和你的名称,例: sutro.hotwired.com[~/unixclass]% groups pam infomgr staff prod edit 第4列显示文件的尺寸。 第5列是文件最近一次被修改的时间和日期。第6列是文件名。 rwx代表的含义? 这几个字母决定了我们的使用权限: 对于文件来说: r = 可读-你可以阅读该文件(用more 或less指令) w = 可写-你可以对该文件写盘(用VI,Emacs,或Pico编辑该文件) x = 执行- 你可以执行该文件(运行Perl程序) 对于子目录来说: r = 可读-你可以阅读该子目录的内容 w = 可写-你可以建立、移动、重命名或删除文件或子目录 x = 可执行-你可以查询该子目录 ls -l的例子: drwxrwxr-x 2 pam staff 512 Dec 5 09:34 one/ -rw-rw-r-- 1 pam staff 4233 Dec 5 09:35 one.html 对于每一个文件夹和文件,有4组 rwx。在上例中,含义很清楚,因为他们用联线断开。第1组显示你的许可程度(权限),第2组用于用户组,第3组用于其他项,第4组用于所有人。 细分的话,每一组用一个字母代表: you = u group = g other = o all = a 要增加对一个文件或子目录的授权,需使用+,研删除对其授权,需使用-。例,我们取消用户组对该文件的写盘权利: -rw-rw-r-- 1 pam staff 4233 Dec 5 09:35 one.html 要实现该目的我们还需用到chmod指令来改变对文件的存取方式。 sutro.hotwired.com[~/unixclass]% chmod g-w one.html sutro.hotwired.com[~/unixclass]% ls -l total 19 -rw-r--r-- 1 pam staff 4233 Dec 5 10:59 one.html 要使所有人都可以执行某个程序,则: sutro.hotwired.com[~/unixclass]%ls -l svensprogram.pl -rw-rw-r-- 1 pam staff 0 Dec 5 11:02 svensprogram.pl sutro.hotwired.com[~/unixclass]% chmod a+x svensprogram.pl sutro.hotwired.com[~/unixclass]% ls -l total 19 -rwxrwxr-x 1 pam staff 0 Dec 5 11:02 svensprogram.pl 要改变文件的主人,使用chown指令: sutro.hotwired.com[~/unixclass]% ls -l svensprogram.pl -rwxrwxr-x 1 pam staff 0 Dec 5 11:02 svensprogram.pl sutro.hotwired.com[~/unixclass]% chown sven svensprogram.pl sutro.hotwired.com[~/unixclass]% ls -l total 19 -rwxrwxr-x 1 sven staff 0 Dec 5 11:02 svensprogram.pl 要改变可以存取该文件的用户组权限的设置,使用chgrp指令: sutro.hotwired.com[~/unixclass]% ls -l svensprogram.pl -rwxrwxr-x 1 sven staff 0 Dec 5 11:02 svensprogram.pl sutro.hotwired.com[~/unixclass]% chgrp infomgr svensprogram.pl svensprogram.pl - Not privileged 四、文本编辑器 VI 最常用的文本编辑器是vi,它对于机用户最为合适。你只需知道几个基本指令便可开始使用 要启动vi,只需在指令提示符后键入vi sutro.hotwired.com[~/unixclass]% vi myfile.html 使用vi的不便之处在于你必须告诉它你将添加或删除文本,而不能简单第键入文本或删除文本,你必须使用下列指令: 要添加文本 - 按esc键和字母i键(用于插入文字) 要删除文本 - 按esc键和字母x键(用于删除文字) 要删除整行内容 - 按esc键和字母键dd 要保存文件 - 按esc键并键入:w,然后按回车 要保存并退出vi - 按esc键,并键入:wq 并按回车 EMACS Emacs是我喜欢的编辑器,但如果你是Macintosh 机用户,不要使用它。我没在PC机上用过它。 PICO 如果你是一个初学者,pico可能会是你的最佳选择。你只需键入: s utro.hotwired.com[~/unixclass]%pico myfile.html 然后你就进入了该编辑器。所有的指令都列在屏幕顶端和底部。但注意经常保存文件

本文来源:https://www.2haoxitong.net/k/doc/532d95c789eb172ded63b70d.html

《Unix的入门教程.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式