第一讲
这篇东西是关于Unix系统操做的教程。也是Unix的入门教程。若是你有兴趣学,请看下去,保证你能够学到许多有用的东西。若是你知足于dos,windows的操做,不想对网络服务器,有任何了解的话,能够不看。由于你并不想成为计算机高手。本教程仅仅讲授Unix系统的经常使用命令,不涉及Unix的历史、安装和编程。若是你想获得更多的知识, 请查找其余的教材。本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南 》等书,你能够在那里找到更多的知识。
准备知识:
Unix是一个多任务多用户的操做系统。多任务是指能够同时运行几个不一样的程序,或命令。在操做系统的术语里叫“进程”,就象在运行Windows95的时候咱们能够一边听CD 一边打字,同时打印机还在工做。多用户是指一台运行Unix系统的机器能够同时具备几个不一样的输入输出设备,给几个,几十个用户同时使用。不一样的输入输出设备咱们称为终端。 Unix给每一个终端设置不一样的序号以协调工做,这个序号被称为终端序号。 Unix是一个根本不一样于Dos的系统,不管其命令格式,用途都和Dos有很大区别。好比: 目录分割符是"/",而不是"\"。具体的不一样请参考其余书籍。
开始练习以前:
在开始教授Unix命令以前,请先记下这个地址:
[url]http://www.cyberspace.org[/url]。它是 一台在美国的,连上Internet的Unix主机。之因此告诉你们这个地址是由于它提供免费的账号供你们使用。是免费的。就是说你能够先去那里申请一个账号,而后在那里练习 你所学到的Unix命令。由于我相信不是每一个朋友均可以轻松地获得Unix账号的。 在你成功的申请好账号以后,请在你Windows95的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
cp
上个星期我提出的问题你能解吗?实际上如下命令的意义是这样的:
cp file1+file2 file3
表示将一个名字为file1+file2的文件拷贝成file3。而不是在dos里的将file1和file2加在一块儿拷贝成文件file3。在unix的文件系统里,文件名字能够到255或254个字符,具体要看你到底使用那种类型的
Unix。
cat
这个命令可不是“猫”的意思,而是catenate的缩写。顾名思义,是把东西串起来。好比:
cat file1 file2
就是把文件file1和file2连在一块儿,而后输出到屏幕上。注意,输出到屏幕上是cat的自定义目的。若是要改变它的输出方向,就必须使用Unix系统的输出重定向符“>”
>
输出重定向符。稍微高级一点的dos用户都知道这个符号。在Unix里的用法同Dos的区别不是很大。但比较不一样的地方是,Unix系统将任何的一个外设都认同为一个文件。因此若是你要将输出重定向到打印机之类的地方,只要写上表明打印机的设备文件名。前一将里咱们曾讲过终端机器名,它也是一个文件。比方个人设备机器是ttya,而小李的设备机器是ttyb,他想让我把当前目录的内容给他看。那么用这条命令就能够了
ls -a-u-F >ttyb
这充分利用了Unix系统多用户的设计思想。
一样的使用ls -a-u-F>file1就是将当前目录列表输出到file1中。
又好比:
cat file1 file2>file3
就是将文件file1和file2的内容输出到file3中。在Dos里这条命令被写成copy file1+file2 file3
当你用'>'来输出重定向的时候,系统立刻打开一个空文件来准备存放'>'以前那个文件命令的输出结果。好比:
cat file1 file2>file3
系统先将file3的内容清空。因此:
cat file1 file2>file1这条命令将产生一个错误提示。也许这条命令的本意是增长file1里的内容,但在系统初始这条命令的时候就把file1里的内容清空了。因此你获得一个错误提示。若是要追加文件内容请使用如下命令:
cat file2>>file1
">>"表示追加,而不是先清空file1中的内容。
上面讲的是输出重定向,还有输入重定向。这个留在之后讲。
man
是英语"manual"的缩写。这是一条使用频率很高的命令,用来获得系统对一个特定命令的帮助信息。请各位读者必定要掌握这条命令。
格式为:man -k 命令关键字
mv
这个命令是move的缩写,就是把一个目录或文件搬来搬去。实际上我常把它当成改文件名字的命令来用。好比:
mv file1 ABC就是把文件file1改为ABC。
rm
记住rm是remove,是清除文件的意思。在Unix里是没有undelete这会事情的,因此请在使用的时候加上-i这个选项。表示确认。
在这个星期咱们的Unix教程就到这里了。有许多朋友写信告诉我没法使用cyberspace的unix,也许是那里的速度比较慢。若是你实在没地方练习unix命令,我向你推荐一个工具,叫unixdos。它是一个unix环境的dos模拟器,基本上经常使用的unix命令你均可以使用。有兴趣的朋友请写信给我,我告诉你在那里下载。
第三讲
文件权限
各位读者,通过上两个星期的热身,咱们开始渐渐接近Unix操做的核心。在本周咱们着重谈谈Unix的文件系统,下次再讲vi编辑器。
如今咱们来看一个示例:
Username:unixfree
Password:********
(登录到Unix)
%:ls -l(显示文件表)
drwxr-xrw- 1 unixfree project1 128 Apr 4 12:19 dir
-rw-r--r-- 1 unixfree project1 545 Apr 4 12:19 file1
lrwxrwxrwx 1 unixfree project1 124 Jan 13 09:01 file2-->file3
-rw------- 1 unixfree project1 212 Jul 22 14:23 file3
在文件列表最前边的就是文件的属性。通常来讲,它有十个小项目,也就是十个符号。它们以1+3+3+3的方式表示四个意义:
文件类型(1)、文件拥有者(user)对此文件的权限(3)、同组者(group)对此文件
的权限(3)、其余人(others)对此文件的权限(3)。
文件类型:文件类型有三种符号,分别为:
"-":普通文件
"d":目录
"1":表示链接(下面会详细讲)
文件权限:文件的权限也有三种
"r":只读文件
"w":可写文件
"-":不可执行文件,不可读文件,不可写文件
"x":可执行
在Unix系统里用户是分组的,就象NT的分组同样。通常来讲同一组的人每每比较接近,好比公司的同一个部门就是一个组。而不一样组的人则不在同一个组。分组状况是由系统管理员制定的。普通用户不能自行更改。
因此在上面的例子里的第一行表示该目录User可读可写可执行,本组的用户可读不可写可执行,其余用户可读可写不可执行。其余的你就本身解释吧。
前面我提到了一个文件类型"1"。这是比较特别的类型,它只是一个门牌,任何对它的访问都会自动到它指向的文件。好比上例中咱们看到file2是连向file3的一个文件,那么任何对file2的操做都是对file3的操做,而且文件的实际属性是file3的属性,而不是file2的属性。
改变文件属性的命令:chmod
chmod 是chang mode的缩写,用来改变文件的权限。用如下的文件为例:
-rw-r--r-- 1 unixfree project1 545 Apr 4 12:19 file1
第一个"-"表示本文件是一个普通的文件。"rw-"表示文件拥有者对此文件的权限为可读可写不可执行。其余的你本身看了。
要改变次文件的权限,好比我怕将此文件改坏掉,因此但愿本身不可写此文件chmod u-w file1
符号"u"表示文件的拥有者,"g"表示同组者,"o"表示其余用户,"a"表示全体用户,就是前面讲的全部的人。"-"表示去掉某个属性,"+"表示加上某个属性。
又好比我要讲file1改为全体用户均可读可写可执行的文件:
chmod a+rwx file1
而后去掉其余用户执行的权利:
chmod o-x file1
你懂了吗?若是你有兴趣,快去试试吧。咱们下周开始讲使人厌烦的vi。Bye!这个教程是为一些没有机会接触Unix的网友写的。目的是为了让你们可以有些感性的认识。若是你没有Unix账号可使用,请去
[url]http://www.cyberspace.org[/url]
申请一个免费的Unix账号。或者在网络上找一个叫UnixDos的软件来将你的Dos
模拟成Unix环境。或者将你的Win格式掉,装一个Linux。:-)
第四讲
各位细心学习的朋友,很是感谢你能继续看这个教程。这个星期咱们开始学习VI编辑器。从功能上说它是一个同EDIT基本同样的工具,可是它很是难学!以致于在如今我不得不引用一句在unix初学者口中的话来告戒你们"To vi or not to vi,that is a question"!
Vi的模式:
Vi有两种基本模式:命令模式和编辑模式,他们以<ESC>键切换。
OK,咱们启动一下vi,看看这么使用这个工具。
%vi
启动vi,第一件事先按<ESC>,记得你在vi里要经常用它。而后输入"i"。
屏幕上绝对不会出现任何字,由于<esc>后你在命令模式,输入"i"则表示你进入编辑模式,而且如今的状态是insert,就是插入文本。
若是你尚未被搞糊涂,那么继续输入。
I love Unix.
是的,屏幕上出字了,你顺利地输入第一行文字。如今咱们要保存这个文件。再按一次<ESC>,到命令模式,输入":w",表示存盘。你也能够输入
":w Unix.txt",那么就是以Unix.txt为文件名字存盘。
好了基本vi概念就是如此。我把经常使用的一些命令都写在下面,你本身试着输入吧。
i牋 "insert"的缩写 在光标以前插入文字
a牋 "append"的缩写 在光标以后插入文字
o "open"的缩写 在光标所在行的下面开始新一行的输入
O "Open"的缩写 在光标所在行的上面开始新一行的输入
I?/TD> "Insert"的缩写 在本行最前面开始输入文字
A "Append"的缩写 在本行最后开始插入文字
dd?/TD> 删除光标所在的那行
dw 删除光标所在的那个字
dnw? 删除光标所在字和其后的n个字(n为正整数)
x? 删除光标所在的那个字母
:w? 存文件
:r? 读文件
:q? 退出vi
上面都是一些基本的用法,若是还不够,请使用man命令查询。
好了就这样吧。咱们下个星期见。进行unix的Shell概述。
第五讲
本周的Unix教程是最后一讲了。在本讲里咱们将讲一下unix Shell的基本内容。我不许备深刻地讲解Shell编程。由于要是那样的话,足够写上五十个page. Shell是外层,是用户与Unix之间的层,它们节省命令行的长度,对命令参数执行完整的变换,而且定位和解释用户命令。另外一方面,shell也是一个功能强大
的程序语言,提供制做工具的工厂。用Shell能建立用户本身的命令,甚至建立一个完整的新环境。
在程序员里有一个流行称谓“若是你不喜欢Unix界面,就本身写一个”。实际上无需深刻到内核,即可以方便地控制本身的界面。可选的Shell有sh,csh,ksh有强大的功能。
正如其名字,Shell Script是一个文本文件。该文件指挥并控制Shell执行一系列特定的操做。一个批处理文件能含有任何命令(Unix的内部和外部命令),还能够包括过去编写的批处理文件。
第一个Shell处理文件:
这里使用的Shell是BS,若是你是使用CS能够更改一部份内容。
:
#@(#)dw--show data and users--
#
date
who -u
第一个:不是必须的,而是长期的习惯。它告诉系统下面是BShell的内容。
正如你看到的,Unix的Shell文件和Dos的批文件在不少地方是相同的。在写Unix的Shell文件时候,咱们通常使用六个步骤:
1.计划好命令系列,并在键盘上试用
2.为批处理文件挑一个好的,不会发生重复的文件名
3.用你喜欢的编辑工具生成文件(但愿不是VI:-))
4.从冒号开始文件,以增长文件的解释
5.用Chmod命令,将文件的属性设置为可读文件
6.把批处理文件放入适合的目录中。
以上是Unix系统的Shell文件一些基本的内容。这里就很少说了,实际上Shell文件同咱们这些写网页的人关系并不大,但知道一些仍是好的。
持续五周的Unix系统操做教程已经写完了。若是你以为有必要深入了解一下Unix系统,请查找一些书本。