Unix基础教程

  这篇东西是关于Unix系统操作的教程。也是Unix的入门教程。如果你有兴趣学,请看下去,保证你可以学到许多有用的东西。如果你满足于dos,windows的操作,不想对网络服务器,有任何了解的话,可以不看。因为你并不想成为计算机高手。本教程仅仅讲授Unix系统的常用命令,不涉及Unix的历史、安装和编程。如果你想得到更多的知识, 请查找其他的教材。本教程参考了《精通Unix》、《Unix基础》、《Unix系统使用指南 》等书,你可以在那里找到更多的知识。 准备知识: 

Unix是一个多任务多用户的操作系统。多任务是指可以同时运行几个不同的程序,或命令。在操作系统的术语里叫“进程”,就象在运行Windows95的时候我们可以一边听CD 一边打字,同时打印机还在工作。多用户是指一台运行Unix系统的机器可以同时具有几个不同的输入输出设备,给几个,几十个用户同时使用。不同的输入输出设备我们称为终端。 Unix给每个终端设置不同的序号以协调工作,这个序号被称为终端序号。 Unix是一个根本不同于Dos的系统,无论其命令格式,用途都和Dos有很大区别。比如: 目录分割符是"/",而不是""。具体的不同请参考其他书籍。

开始练习之前: 

在开始教授Unix命令之前,请先记下这个地址: ::URL:: http://www.cyberspace.org。它是一台在美国的,连上Internet的Unix主机。之所以告诉大家这个地址是因为它提供免费的帐号供大家使用。是免费的。就是说你可以先去那里申请一个帐号,然后在那里练习 你所学到的Unix命令。因为我相信不是每个朋友都可以轻松地得到Unix帐号的。 在你成功的申请好帐号之后,请在你Windows95的dos窗口里输入"telnet cyberspace.org" 等待连上主机。接下来就是输入你的用户名和密码,不要告诉我这些你都不会,如果你 不会的话,你是怎么连到这个网页的? 现在假定你连上了主机,系统的提示符应该是"cyberscpae.org%",对这个就是提示符 就象dos里的"c:>"。接下去我将开始命令篇。

[ls]

你记不记得你学会的第一个Dos命令?反正我学会的第一个命令是dir:列目录和文件的 命令。你学会的第一个Unix的命令也是列目录和文件的命令ls. 功能列出当前目录下的募湍柯肌?nbsp;同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操作的核心。在本周我们着重谈谈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编辑器。从功能上说它是一个同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概念就是如此。我把常用的一些命令都写在下面,你自己试着输入吧。
 
第1章 UNIX操作系统概述 7 1.1 UNIX操作系统简介 7 1.2 UNIX系统组成 7 1.3 UNIX启动过程 8 1.4 UNIX用户登录过程 8 1.5 与UNIX有关的几个名词 9 第2章 UNIX基本常识 11 2.1 启动终端 11 2.2 登录 11 2.3 初始化文件 11 2.4 注销(退出UNIX系统) 12 第3章 UNIX文件系统 13 3.1 文件系统分类 13 3.2 文件类型 13 3.2.1 正规文件 13 3.2.2 目录文件 14 3.2.3 字符和块设备文件 15 3.2.4 套接字文件 15 3.2.5 命名管道文件 16 3.2.6 链接文件 16 3.3 树型目录结构 16 3.4 文件和目录的命名 18 3.5 UNIX文件存取权限 18 3.6 重定向与管道 21 3.6.1 UNIX重定向 21 3.6.2 UNIX管道 22 3.7 常用配置文件 22 3.7.1 /etc/passwd文件 22 3.7.2 /etc/group文件 22 3.7.3 /etc/hosts 23 3.7.4 /etc/services 23 3.8 文件系统管理 23 3.8.1 mount 23 3.8.2 umount 24 3.8.3 加载配置文件 24 3.8.4 fsck 25 第4章 UNX系统常用命令 27 4.1 UNIX命令基础 27 4.1.1 UNIX命令的一般格式 27 4.1.2 特殊功能键和字符 28 4.1.3 查看帮助信息 30 4.1.4 在后台运行程序 31 4.1.5 在指定时间执行指定程序 31 4.2 vi编辑器的最基本用法 32 4.2.1 vi简介 32 4.2.2 vi的启动和退出 33 4.2.3 vi的两种模式 33 4.2.4 vi的基本操作 34 4.2.5 vi的高级操作 36 4.3 目录操作命令 38 4.3.1 pwd 38 4.3.2 mkdir 38 4.3.3 cd 38 4.3.4 rmdir 39 4.4 文件操作命令 39 4.4.1 ls 39 4.4.2 cat 40 4.4.3 head 41 4.4.4 tail 41 4.4.5 more 41 4.4.6 cp 43 4.4.7 mv 44 4.4.8 rm 44 4.4.9 chmod 44 4.4.10 chown 46 4.4.11 chgrp 46 4.4.12 cmp 46 4.4.13 diff 47 4.4.14 wc 47 4.4.15 split 47 4.4.16 touch 48 4.4.17 file 48 4.4.18 pack 48 4.4.19 pcat 49 4.4.20 unpack 49 4.4.21 find 49 4.4.22 grep 51 4.4.23 pg 52 4.4.24 ln 52 4.4.25 sort 53 4.4.26 compress 53 4.4.27 uncompress 54 4.4.28 gzip 54 4.4.29 gunzip 54 4.4.30 tar 54 4.4.31 cpio 55 4.4.32 tee 56 4.5 状态信息命令 57 4.5.1 w 57 4.5.2 who 57 4.5.3 whodo 57 4.5.4 logname 58 4.5.5 whoami 58 4.5.6 whereis 58 4.5.7 which 58 4.5.8 date 58 4.5.9 cal 59 4.5.10 time 59 4.5.11 id 59 4.5.12 hostid 60 4.5.13 hostname 60 4.5.14 df 60 4.5.15 du 60 4.5.16 stty 61 4.5.17 tty 61 4.5.18 history 61 4.5.19 alias 61 4.5.20 echo 62 4.5.21 uname 62 4.5.22 clear 62 4.6 网络命令 62 4.6.1 arp 62 4.6.2 finger 63 4.6.3 wall 63 4.6.4 mesg 63 4.6.5 write 63 4.6.6 ping 63 4.6.7 netstat 64 4.6.8 telnet 64 4.6.9 ftp 64 4.7 进程管理命令 65 4.7.1 kill 65 4.7.2 ps 66 4.7.3 sleep 68 4.7.4 nice 68 4.7.5 shutdown 68 4.7.6 halt 69 4.7.7 poweroff 69 4.7.8 reboot 69 4.8 用户管理命令 69 4.8.1 su 69 4.8.2 groupadd 69 4.8.3 groupdel 70 4.8.4 useradd 70 4.8.5 userdel 70 4.8.6 passwd 71 第5章 shell的基础知识 72 5.1 什么是shell 72 5.2 别名化 73 5.3 shell变量 74 5.3.1 shell变量的存储机制 74 5.3.2 变量替换 74 5.3.3 命令替换 76 5.4 用户环境 76 5.5 两个重要的环境变量 77 5.6 shell启动文件 78 5.7 监控进程 78 第6章 附录 79 6.1 ftp命令参考 79 6.2 vi命令参考 80 6.3 find命令详解 85 6.3.1 Find命令形式 85 6.3.2 Find命令参数 85 6.3.3 Find命令举例 87 6.4 grep命令详解 99
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值