Unix系统操作教程一
这篇东西是关于Unix系统操作的教程。也是Unix的入门教程。如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。如果你满足于dos, windows的操作,不想对网络服务器,有任何了解的话,可以不看。因为你并不想成为计算机高手。本教程仅仅讲授Unix系统的常用命令,不涉及 Unix的历史、安装和编程。如果你想得到更多的知识, 请查其他的教材。本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南 》等书,你可以在那里到更多的知识。
准备知识:
Unix是一个多任务多用户的操作系统。多任务是指可以同时运行几个不同的程序,或命令。在操作系统的术语里叫“进程”,就象在运行Windows95的时候我们可以一边听CD 一边打字,同时打印机还在工作。多用户是指一台运行Unix系统的机器可以同时具有几个不同的输入输出设备,给几个,几十个用户同时使用。不同的输入输出设备我们称为终端。 Unix给每个终端设置不同的序号以协调工作,这个序号被称为终端序号。 Unix是一个根本不同于Dos 的系统,无论其命令格式,用途都和Dos有很大区别。比如: 目录分割符是"/",而不是"\"。具体的不同请参考其他书籍。
开始练习之前:
在开始教授Unix命令之前,请先记下这个地址:。它是 一台在美国的,连上Internet的Unix主机。之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。是免费的。就是说你可以先去那里申请一个帐号,然后在那里练习 你所学到的Unix命令。因为我相信不是每个朋友都可以轻松地得到Unix帐号的。 在你成功的申请好帐号之后,请在你 Windows95的dos窗口里输入"" 等待连上主机。接下来就是输入你的用户名和密码,不要告诉我这些你都不会,如果你 不会的话,你是怎么连到这个网页的? 现在假定你连上了主机,系统的提示符应该是"%",对这个就是提示符 就象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
cdrw的rw是什么意思
注意,如果你当前目录里已经含有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
You have mail.
sutro[~]%
在你登录的时候你可能看不到你的用户子目录,但你的用户子目录应该如同下面的例子:
sutro.hotwired[~]%pwd
/usr/people/pam
二 基本指令
我列出了几项基本指令。大部分的指令都有若干选项,这些选项使得这些指令功能更加强大。你可以在Unix在线指南中到具体的用法。
ls -列出某个子目录中的文件。
语法: ls [选项] [名称]
显示结果应该如同下面的例子:
sutro.hotwired[~]% ls
airwolf.au goo.html unixclass
apanel.parameters graphics
在这个例子中,我的用户子目录中有两个文件(airwolf.au和goo.html)和3个下级子目录 (unixclass, apanel.parameters, and graphics) 。
cd - 改变子目录
语法:cd [dir]
例:
sutro.hotwired[~]% cd unixclass
sutro.hotwired[~/unixclass]% ls
one one.html two two.html
sutro.hotwired[~/unixclass]%
在本例中,我从用户子目录改变到unixclass 子目录,在该子目录中有两个文件和一个下级子目录(如果你想返回原来的子目录,则使用% cd ../).
mv - 移动或重命名一个文件或子目录
语法:mv [选项] 源文件/子目录 目标
例
sutro.hotwired[~/unixclass]% mv one/ two/
sutro.hotwired[~/unixclass]% ls
one.html two two.html
sutro.hotwired[~/unixclass]% ls two/
one
sutro.hotwired[~/unixclass]%
我将子目录one移到了子目录two。
如果你用mv重命名一个文件或子目录,则:
sutro.hotwired[~/unixclass]% mv two/ somethingdifferent
sutro.hotwired[~/unixclass]% ls
one.html somethingdifferent two.html
在本例中我将子目录two重命名为somethingdifferent。
rm - 删除一个文件
语法:rm [选项] [文件]
例:
sutro.hotwired[~/unixclass]% rm one.html
sutro.hotwired[~/unixclass]% ls
somethingdifferent two.html
我删除了子目录unixclass下的文件。
rm -ir - 删除一个子目录
例:
sutro.hotwired[~/unixclass]% rm -ir somethingdifferent/
Directory somethingdifferent/. Remove ? (yes/no)[no] : yes
Directory somethingdifferent//one. Remove ? (yes/no)[no] : yes
sutro.hotwired[~/unixclass]% ls
two.html
在本例中,我用rm -ir 指令删除子目录 somethingdifferent。在删除该子目录之前,我必须确认我要删除该子目录。一旦我确认删除之后,子目录 somethingdifferent将不复存在。所以使用 rm时一定要谨慎,因为,一旦执行该命令,该文件或子目录将----覆水难收 ...
mkdir - 建立新子目录
语法:mkdir [选项] 新子目录名
例:
sutro.hotwired[~/unixclass]% mkdir waga
sutro.hotwired[~/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[~/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[~/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[~/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[~/unixclass]% chmod g-w one.html
sutro.hotwired[~/unixclass]% ls -l
total 19
-rw-r--r-- 1 pam staff 4233 Dec 5 10:59 one.html
要使所有人都可以执行某个程序,则:
sutro.hotwired[~/unixclass]%ls -l svensprogram.pl
-rw-rw-r-- 1 pam staff 0 Dec 5 11:02 svensprogram.pl
sutro.hotwired[~/unixclass]% chmod a+x svensprogram.pl
sutro.hotwired[~/unixclass]% ls -l
total 19
-rwxrwxr-x 1 pam staff 0 Dec 5 11:02 svensprogram.pl
要改变文件的主人,使用chown指令:
sutro.hotwired[~/unixclass]% ls -l svensprogram.pl
-rwxrwxr-x 1 pam staff 0 Dec 5 11:02 svensprogram.pl
sutro.hotwired[~/unixclass]% chown sven svensprogram.pl
sutro.hotwired[~/unixclass]% ls -l
total 19
-rwxrwxr-x 1 sven staff 0 Dec 5 11:02 svensprogram.pl
要改变可以存取该文件的用户组权限的设置,使用chgrp指令:
sutro.hotwired[~/unixclass]% ls -l svensprogram.pl
-rwxrwxr-x 1 sven staff 0 Dec 5 11:02 svensprogram.pl
sutro.hotwired[~/unixclass]% chgrp infomgr svensprogram.pl
svensprogram.pl - Not privileged
四 文本编辑器
VI
最常用的文本编辑器是vi,它对于机用户最为合适。你只需知道几个基本指令便可开始使用
要启动vi,只需在指令提示符后键入vi
sutro.hotwired[~/unixclass]% vi myfile.html
使用vi的不便之处在于你必须告诉它你将添加或删除文本,而不能简单第键入文本或删除文本,你必须使用下列指令:
要添加文本 - 按esc键和字母i键(用于插入文字)
要删除文本 - 按esc键和字母x键(用于删除文字)
要删除整行内容 - 按esc键和字母键dd
要保存文件 - 按esc键并键入:w,然后按回车
要保存并退出vi - 按esc键,并键入:wq 并按回车
EMACS
Emacs是我喜欢的编辑器,但如果你是Macintosh 机用户,不要使用它。我没在PC机上用过它。
PIC
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论