Unix命令.docx
《Unix命令.docx》由会员分享,可在线阅读,更多相关《Unix命令.docx(11页珍藏版)》请在冰豆网上搜索。
![Unix命令.docx](https://file1.bdocx.com/fileroot1/2023-2/1/b540516c-d686-4140-b0da-62de77b30ed2/b540516c-d686-4140-b0da-62de77b30ed21.gif)
Unix命令
这篇东西是关于Unix系统操作的教程。
也是Unix的入门教程。
如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。
如果你满足于dos,windows的操作,不想对网络服务器,有任何了解的话,可以不看。
因为你并不想成为计算机高手。
本教程仅仅讲授Unix系统的常用命令,不涉及Unix的历史、安装和编程。
如果你想得到更多的知识,请查找其他的教材。
本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南》等书,你可以在那里找到更多的知识。
准备知识:
Unix是一个多任务多用户的操作系统。
多任务是指可以同时运行几个不同的程序,或命令。
在操作系统的术语里叫“进程”,就象在运行Windows95的时候我们可以一边听CD一边打字,同时打印机还在工作。
多用户是指一台运行Unix系统的机器可以同时具有几个不同的输入输出设备,给几个,几十个用户同时使用。
不同的输入输出设备我们称为终端。
Unix给每个终端设置不同的序号以协调工作,这个序号被称为终端序号。
Unix是一个根本不同于Dos的系统,无论其命令格式,用途都和Dos有很大区别。
比如:
目录分割符是"/",而不是""。
具体的不同请参考其他书籍。
回页首
开始练习之前:
在开始教授Unix命令之前,请先记下这个地址:
http:
//www.cyberspace.org。
它是一台在美国的,连上Internet的Unix主机。
之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。
是免费的。
就是说你可以先去那里申请一个帐号,然后在那里练习你所学到的Unix命令。
因为我相信不是每个朋友都可以轻松地得到Unix帐号的。
在你成功的申请好帐号之后,请在你Windows95的dos窗口里输入"telnetcyberspace.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命令有一个比较有趣的用法,"whoamI"如其字面上的意思,让Unix显示你的用户名和终端类型
回页首
more
more命令有点象Dos里的Type命令,就是显示文本文件的内容。
比如你要显示文件file1的内容,可以用:
morefile1当要看的文件超过屏幕可以容纳的行数,就会在屏幕的左下角出现一个"--More--"并告诉你已经看过了整个文件的百分之几。
如果要继续看下去,就敲"SpaceBar",可以看下一页,或用"Enter",就会读入下一行。
more命令还可以由你指定开始的行数。
比如file1文件有1000行,你已经看过100行,那么可以用"more+100file1"则直接从第100行开始看起。
还有可以在命令里指定关键字。
ore+/key_word这样写,more就会从含有"key_word"字样的那一行的前两行开始显示。
也许你已经注意到,Unix里对文本文件的操作要比Dos强大的多,实际上的确如此。
回页首
cp
cp命令同dos里的copy命令是一样的,复制文件。
比如:
cpfile1file2
注意,如果你当前目录里已经含有file2这个文件,这个操作将会覆盖原来的file2。
也许在Dos里不会这样,它会要你确认。
但你现在在用Unix,在你没有叫它确认之前,它不会那么做。
cp-ifile1file2
当你使用了-i这个选项,再遇到重名的情况系统将要你确认是否继续。
cp命令还有两个比较重要的选项:
-r-p
cp-r/dir1/dir_temp这条命令是将目录dir1完全地复制到目录/dir_temp里,在Dos里着条命令叫xcopy
cp-pfile1file2
Unix的系统和dos有一个不同的地方,在dos里copy一个文件是不会改变它的文件修改时间的,除非你确实那样做了。
在Unix里不同,它要改你的时间,或许它认为cp也是一种修改吧。
当你加上-p以后就不会改时间了。
用惯Dos的人或许会对下面的一行命令大惑不解:
cpfile1file2file3dir_dest这条命令把file1,file2,file3三个文件一起复制到/dir_dest里去。
好了今天就讲到这里,最后留一个思考题,请说明一下下面一行命令的作用,请不要用Dos的思考方式。
我们下个星期再见。
思考问题,请说出以下命令的作用:
cpfile1+file2file3
cp上个星期我提出的问题你能解吗?
实际上以下命令的意义是这样的:
cpfile1+file2file3
表示将一个名字为file1+file2的文件拷贝成file3。
而不是在dos里
的将file1和file2加在一起拷贝成文件file3。
在unix的文件系统里,
文件名字可以到255或254个字符,具体要看你到底使用那种类型的
Unix。
回页首
cat
这个命令可不是“猫”的意思,而是catenate的缩写。
顾名思义,是
把东西串起来。
比如:
catfile1file2
就是把文件file1和file2连在一起,然后输出到屏幕上。
注意,输出
到屏幕上是cat的自定义目的。
如果要改变它的输出方向,就必须使用
Unix系统的输出重定向符“>”
回页首
>
输出重定向符。
稍微高级一点的dos用户都知道这个符号。
在Unix里的
用法同Dos的区别不是很大。
但比较不同的地方是,Unix系统将任何的
一个外设都认同为一个文件。
所以如果你要将输出重定向到打印机之
类的地方,只要写上代表打印机的设备文件名。
前一将里我们曾讲过
终端机器名,它也是一个文件。
比方我的设备机器是ttya,而小李的
设备机器是ttyb,他想让我把当前目录的内容给他看。
那么用这条命
令就可以了
ls-a-u-F>ttyb
这充分利用了Unix系统多用户的设计思想。
同样的使用ls-a-u-F>file1就是将当前目录列表输出到file1中。
又比如:
catfile1file2>file3
就是将文件file1和file2的内容输出到file3中。
在Dos里这条命令被
写成copyfile1+file2file3
当你用'>'来输出重定向的时候,系统马上打开一个空文件来准备存放
'>'之前那个文件命令的输出结果。
比如:
catfile1file2>file3
系统先将file3的内容清空。
所以:
catfile1file2>file1这条命令将产生一个错误提示。
也许这条命令
的本意是增加file1里的内容,但在系统初始这条命令的时候就把file1
里的内容清空了。
所以你得到一个错误提示。
如果要追加文件内容请
使用以下命令:
catfile2>>file1
">>"表示追加,而不是先清空file1中的内容。
上面讲的是输出重定向,还有输入重定向。
这个留在以后讲。
回页首
man
是英语"manual"的缩写。
这是一条使用频率很高的命令,用来得到系统
对一个特定命令的帮助信息。
请各位读者一定要掌握这条命令。
格式为:
man-k命令关键字
回页首
mv
这个命令是move的缩写,就是把一个目录或文件搬来搬去。
实际上我常
把它当成改文件名字的命令来用。
比如:
mvfile1ABC就是把文件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-1unixfreeproject1128Apr412:
19dir
-rw-r--r--1unixfreeproject1545Apr412:
19file1
lrwxrwxrwx1unixfreeproject1124Jan1309:
01file2-->file3
-rw-------1unixfreeproject1212Jul2214:
23file3
在文件列表最前边的就是文件的属性。
一般来说,它有十个小项目,也就是十个
符号。
它们以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是changmode的缩写,用来改变文件的权限。
用以下的文件为例:
-rw-r--r--1unixfreeproject1545Apr412:
19file1
第一个"-"表示本文件是一个普通的文件。
"rw-"表示文件拥有者对此文件的权限
为可读可写不可执行。
其他的你自己看了。
要改变次文件的权限,比如我怕将此文件改坏掉,所以希望自己不可写此文件
chmodu-wfile1
符号"u"表示文件的拥有者,"g"表示同组者,"o"表示其他用户,"a"表示全体用
户,就是前面讲的所有的人。
"-"表示去掉某个属性,"+"表示加上某个属性。
又比如我要讲file1改成全体用户都可读可写可执行的文件:
chmoda+rwxfile1
然后去掉其他用户执行的权利:
chmodo-xfile1
你懂了吗?
如果你有兴趣,快去试试吧。
我们下周开始讲令人厌烦的vi。
Bye!
各位细心学习的朋友,非常感谢你能继续看这个教程。
这个星期我们开始学习VI编辑器。
从功能上说它是一个同EDIT基本一样的工具,但是它非常难学!
以至于在现在我不得不引用一句在unix初学者口中的话来告戒大家"Toviornottovi,thatisaquestion"!
Vi的模式:
Vi有两种基本模式:
命令模式和编辑模式,他们以键切换。
OK,我们启动一下vi,看看这么使用这个工具。
%vi
启动vi,第一件事先按,记得你在vi里要常常用它。
然后输入"i"。
屏幕上绝对不会出现任何字,因为后你在命令模式,输入"i"则表示你进入编辑模式,并且现在的状态是insert,就是插入文本。
如果你还没有被搞糊涂,那么继续输入。
IloveUnix.
是的,屏幕上出字了,你顺利地输入第一行文字。
现在我们要保存这个文件。
再按一次,到命令模式,输入":
w",表示存盘。
你也可以输入
":
wUnix.txt",那么就是以Unix.txt为文件名字存盘。
好了基本vi概念就是如此。
我把常用的一些命令都写在下面,你自己试着输入吧。
i牋
"insert"的缩写
在光标之前插入文字
a牋
"append"的缩写
在光标之后插入文字
o
"open"的缩写
在光标所在行的下面开始新一行的输入
O
"Open"的缩写
在光标所在行的上面开始新一行的输入
I?
br>
"Insert"的缩写
在本行最前面开始输入文字
A
"Append"的缩写
在本行最后开始插入文字
dd?
br>
删除光标所在的那行
dw
删除光标所在的那个字
dnw?
删除光标所在字和其后的n个字(n为正整数)
x?
删除光标所在的那个字母
:
w?
存文件
:
r?
读文件
:
q?
退出vi
上面都是一些基本的用法,如果还不够,请使用man命令查询。
好了就这样吧。
我们下个星期见。
进行unix的Shell概述。
本周的Unix教程是最后一讲了。
在本讲里我们将讲一下unixShell的基本内容。
我不准备深入地讲解Shell编程。
因为要是那样的话,足够写上五十个page.Shell是外层,是用户与Unix之间的层,它们节省命令行的长度,对命令参数执
行完整的变换,并且定位和解释用户命令。
另一方面,shell也是一个功能强大
的程序语言,提供制作工具的工厂。
用Shell能创建用户自己的命令,甚至创建
一个完整的新环境。
在程序员里有一个流行称谓“如果你不喜欢Unix界面,就自己写一个”。
实际上
无需深入到内核,便可以方便地控制自己的界面。
可选的Shell有sh,csh,ksh有
强大的功能。
正如其名字,ShellScript是一个文本文件。
该文件指挥并控制Shell执行一系
列特定的操作。
一个批处理文件能含有任何命令(Unix的内部和外部命令),还
可以包括过去编写的批处理文件。
第一个Shell处理文件:
这里使用的Shell是BS,如果你是使用CS可以更改一部分内容。
:
#@(#)dw--showdataandusers--
#
date
who-u
第一个:
不是必须的,而是长期的习惯。
它告诉系统下面是BShell的内容。
正如你看到的,Unix的Shell文件和Dos的批文件在很多地方是相同的。
在写Unix
的Shell文件时候,我们一般使用六个步骤:
1.计划好命令系列,并在键盘上试用
2.为批处理文件挑一个好的,不会发生重复的文件名
3.用你喜欢的编辑工具生成文件(希望不是VI:
-))
4.从冒号开始文件,以增加文件的解释
5.用Chmod命令,将文件的属性设置为可读文件
6.把批处理文件放入适合的目录中。
以上是Unix系统的Shell文件一些基本的内容。
这里就不多说了,实际上Shell
文件同我们这些写网页的人关系并不大,但知道一些还是好的。
持续五周的Unix系统操作教程已经写完了。
如果你觉得有必要深刻了解一下Unix
系统,请查找一些书本。
全文结束