unix手册.docx
- 文档编号:12053033
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:45
- 大小:439.98KB
unix手册.docx
《unix手册.docx》由会员分享,可在线阅读,更多相关《unix手册.docx(45页珍藏版)》请在冰豆网上搜索。
unix手册
目录
您需要了解的第一件事情是,如何遍历和查看文件系统。
在UNIX中,目录用来以一种层次结构对文件进行组织。
您可以在命令行中使用一系列的命令和列表来查看和遍历UNIX文件系统,而不要单击目录进入其中并且用图标来表示每个文件。
ls
如果您是第一次使用类UNIX操作系统,但是曾经使用过DOS或Windows命令行,那么 ls 基本上相当于 dir。
它是列出目录(ListDirectory) 的缩写。
ls 可以与各种命令行选项一同使用,以便获得详细的列表、显示隐藏的文件、递归列出子目录,等等。
请输入下面的示例:
$ls
$ls-l
$ls-a
$ls-R
如果您正在命令行中考虑下一步应该进行什么操作,那么可以执行 ls,它可以帮助您了解现在所处的位置以及正在进行的操作。
可以把它看作图形用户界面中的屏幕刷新操作,用来让您了解系统的当前状态。
cd
要遍历文件系统,可以使用 cd 来更改目录。
输入 cd,然后输入您希望进入的目录的名称。
如果在开头使用了/,那么这个目录的名称是绝对 目录路径:
它从文件系统的根开始。
如果在开头没有使用/,那么该目录是相对 路径:
从您的当前工作 目录开始。
例如,如果您位于自己的home目录(/home/tuser),并且希望移动到某个子目录,可以在 cd 的后面输入希望进入的目录名称。
例如,如果有一个Documents目录,那么您可以输入下面的命令:
$cdDocuments
因为您开始于/home/tuser/,所以该命令将使您进入/home/tuser/Documents/。
与此相反,您可以使用绝对路径名来指定一个位置。
例如,如下所示,您可以移动到/tmp,然后返回到您的home目录:
$cd/tmp
$cd/home/tuser
特殊目录名称
在UNIX中,使用一些特殊的目录名称可以使得对文件系统的遍历变得简单。
三个最重要的特殊名称分别指向当前目录、当前目录的父目录和用户的home目录。
当前目录可以由点号指定。
例如,如果您输入 $cd.,那么您依然位于当前目录中,即/home/tuser/。
当您运行当前工作目录中的可执行文件时,该字符变得特别重要。
在缺省情况下,许多UNIXShell会在应用程序目录中搜索应用程序,但不会搜索当前工作目录。
通常可以在文件名前面使用./,以显式地引用当前工作目录中的文件和应用程序。
父目录由两个点号来引用。
要遍历到您的当前工作目录的父目录,可以输入下面的命令:
$cd..
如果您以前位于/home/tuser,那么现在就在/home中。
为了演示第三个特殊目录名称,可以使用快捷方法返回您的home目录(波浪符号)。
可以输入下面的命令:
$cd~
pwd
要查看当前目录,您可以使用 pwd,它表示打印工作目录(PrintWorkingDirectory)。
它可以告诉您现在位于文件系统中的何处,这将帮助您在指定相对路径名称时确定应该使用什么样的名称。
请尝试使用这三种特殊目录名称、绝对路径和相对路径,以遍历您的文件系统。
在每一步骤中,可以使用 pwd 查看当前位置。
查看当前目录(如果您执行了前面部分中的操作步骤,那么现在应该位于您的home目录):
$pwd
mkdir、rmdir
mkdir 和 rmdir 分别用来创建和删除目录。
rmdir 仅当该目录为空有效(它并不删除文件)。
尝试使用下面的命令:
$mkdirTUTORIAL
$cdTUTORIAL
$pwd
$ls
您现在位于刚刚创建的TUTORIAL目录,而且该目录为空。
您还可以使用 ~ 波浪号字符到达该目录。
要进入/home/tuser/TUTORIAL,可以输入:
$cd~/TUTORIAL
$pwd
目录布局
您已经了解了如何在目录中移动并获取清单,现在可以开始研究典型的UNIX分发版中的目录布局了。
您可以通过几种不同的方式来组织UNIX文件系统。
本教程讨论了一些在大多数类UNIX分发版中常见的根级目录。
当然还有其他一些重要的根级目录,但下面这些是最常见的:
/home(or/users)
/etc
/bin
/sbin
/usr
/car
/tmp
/home用来存放用户目录。
例如,tuser 用户位于/home/tuser。
/etc是用来存储系统范围设置的目录,包括启动脚本和网络配置文件。
该目录中的大多数文件都需要使用root用户进行编辑。
/bin和/sbin是用来存储系统可执行文件(比如在本教程中学习的命令)的目录。
/sbin用于存放系统命令,如 shutdown,而/bin用于存放用户命令。
应用程序通常安装在/usr中。
/usr/local/中的子目录通常用来包含一些安装的应用程序,而这些应用程序并不属于基本分发版中的一部分。
/var是用来存放类似日志文件这样的内容的目录,需要不断地对其进行更新和存储。
临时文件存储在/tmp中。
系统中所有的用户都可以对该目录进行写入,并且在一些系统中,会周期性地删除其中的旧文件。
文件
既然您已经知道了如何使用命令行在文件系统中移动,那么现在可以开始对文件进行处理了。
本部分内容将介绍如何创建示例文件、复制文件、删除文件,以及查看和更改基本的文件权限。
在像UNIX这样的多用户操作系统中,必须了解所有权和权限的概念。
touch
首先,创建一个空文件,您将在本教程中使用到该文件。
touch 命令可以用来创建一个空文件(对文件使用 touch 命令,通常用来更新文件的修改日期和访问日期)。
返回到用户home目录中的TUTORIAL目录,并输入下面的命令创建一个文件:
$cd~/TUTORIAL
$touchexample.txt
cp
cp 命令用来复制文件。
输入 cp 加上需要复制的文件的名称,再加上需要将该文件复制到的目录(您还可以使用相应的选项来指定新文件的名称)。
例如,尝试将example.txt文件复制到/tmp/:
$cpexample.txt/tmp/
$ls/tmp/
您应该可以在/tmp/中看到example.txt。
现在,将/tmp/中的文件复制回您的当前目录,但是为它取一个新的名称:
$cp/tmp/example.txt./example2.txt
$ls
请注意,这里使用一个点号来指定需要将这个新文件放到您的当前目录。
在本示例中,不需要包括./(因为复制操作的缺省路径就是您的当前工作目录),但是它可以清楚地说明您要完成的任务。
后面的 ls 命令则显示了在当前工作目录中有两个示例文件。
mv
移动(move)文件可以使用 mv 命令来完成。
对于移动和复制操作来说,大多数语法和命令行选项都是相同的。
如果您希望将新文件example2.txt移出当前目录并放入到/tmp/,那么可以输入下面的命令:
$mvexample2.txt/tmp/.
请注意,这里再次使用了点号显式地说明您正在进行的操作。
rm
要对系统进行清理,可以删除在/tmp/中创建的文件。
rm 命令用来从文件系统中删除文件。
这与将文件移动到回收站或垃圾箱不同,该命令删除了文件指针,所以在使用 rm 命令时应当格外小心。
输入以下命令:
$rm/tmp/example.txt
$rm/tmp/example2.txt
$ls/tmp/
/tmp/中的那两个示例文件都应该消失了。
根据您所使用的类UNIX操作系统的不同,您还可以使用其他的删除命令,如 srm 或 can。
尝试输入 mansrm 和 mancan 以查看是否存在这些命令。
srm 用作安全版本的 rm,它对删除的文件使用随机数据进行覆盖,以防止对其进行恢复。
can 在一些方法上与 srm 相反,can 可以保留文件,而将其移动到一个特殊的垃圾箱目录,类似于Windows的回收站。
所有权和权限
在类UNIX操作系统中,文件所有权和权限是非常重要的概念。
UNIX从一开始就是多用户的操作系统。
尽管现在新版本的Windows也可以用作多用户系统,但如果追溯到早期的个人计算机和DOS时期,Windows的祖先是单用户的。
即使在今天,有些Windows用户也很少考虑多用户系统中关于多个帐户和文件权限的问题。
对于UNIX用户来说,理解文件所有权和权限是至关重要的。
chown、chgrp
可以使用 ls-l 查看UNIX中的文件所有权,可以使用 chown 和 chgrp 对其进行更改。
输入下面的命令:
$ls-l
使用 -l 指定需要查看长格式的文件清单。
长格式包括关于权限、所有权、修改日期和文件大小等信息。
您应该看到与下面所示类似的内容:
tsystem:
~/TUTORIALtuser$ls-l
total0
-rw-r--r--1tuseradmin0Aug1315:
35example.txt
当详细显示目录清单时,您可以分别在第3和第4列中看到文件的用户所有权和组所有权。
该文件由 tuser 用户和 admin 组所有。
现在,暂时不管这个文件,输入下面的命令可以得到更多的信息:
$manchown
$manchgrp
该命令的基本语法是使用用户名或组名作为第1个输入,后面是需要进行操作的文件或文件列表。
例如:
$chowntuserexample.txt
$chgrpadminexample.txt
chmod
在UNIX中,使用与每个文件相关联的一组9个标志来处理基本文件权限。
这些标志分别对应于不同用户类别(用户、组和其他用户)和三种文件操作(读取、写入和执行)。
输入下面的命令:
$ls-l
您应该看到与下面所示类似的内容:
-rw-r--r--1tuseradmin0Aug1315:
35example.txt
当您阅读目录的长格式清单时,其中的第1列显示了文件权限。
请注意,该列中有10个字符(而不是9个)。
第1个字符表示您正在处理的文件的类型。
例如,短横线 -,告诉您这是一个常规文件。
d 表示目录,而不是普通文件。
现在,我们重点关注于其他的9个字符,每个字符可以为下列几种情况其中之一:
-、r、w 或 x。
如果关闭了某个文件所有的权限,那么它应该与下面所示类似:
----------1tuseradmin0Aug1315:
35example.txt
如果打开了某个文件所有的权限,那么它应该与下面所示类似:
-rwxrwxrwx1tuseradmin0Aug1315:
35example.txt
您可以看到3组 rwx。
如前所述,有3种不同的用户类别(用户、组和其他用户)。
每一组 rwx 对应于其中的一个类别:
∙第1组 rwx 表示 user 的权限。
换句话说,这可以告诉您,该文件的拥有者可以对其进行哪些操作。
∙第2组对应于 group。
这可以告诉您,组成员可以对该文件进行哪些操作。
∙第3组对应于 other。
这可以告诉您,系统中所有的用户可以对该文件进行哪些操作,无论该文件属于谁。
让我们更仔细地研究一下example.txt文件当前的权限:
-rw-r--r--1tuseradmin0Aug1315:
35example.txt
第1组三个标志表示该文件的所有者可以对其进行读取、写入操作,但是不能执行它(其中有 r 和 w,但没有 x)。
从第2组三个标志中您可以看出,拥有该文件的组可以对其进行读取,但不能写入或执行(其中有 r,但没有 w 或 x)。
第3组三个标志显示了,所有其他的用户可以读取该文件,但不能对其进行写入或执行操作(其中有 r,但没有 w 或 x)。
这里给出了一个很好的示例,说明了详细的 man 页面非常重要。
您可以停下来,并输入下面的命令:
$manchmod
现在,可以考虑一下这样的可能性,即该文件中保存了私有的信息,而您不希望任何其他的用户进行读取。
您可能希望删除其他组和所有其他用户的读取权限。
可以使用 chmod 更改这些权限。
与UNIX中的许多操作一样,使用 chmod 的方法很多,本部分内容重点关注其中之一。
使用三个字母(u、g和o)来表示三种类别(用户、组和其他用户)。
使用三个字母(r、w和x)来表示三种权限(读取、写入和执行)。
要更改这些权限,可以使用 chmod,加上需要更改的类别的字母,再加上一个加号或减号(分别表示打开或关闭),然后使用相应的字母给出需要更改的权限。
最后,加上需要进行更改的文件的名称。
最好通过一个示例来进行说明:
$chmodog-rexample.txt
$ls-l
您应该看到下面的结果:
-rw-------1tuseradmin0Aug1315:
35example.txt
在这个示例中,您指定了其他用户和组(o和g),并使用减号表示希望对这些类别关闭某些权限。
然后,使用(r)表示需要关闭读取访问权限。
现在,文件的所有者tuser仍然可以对该文件进行读取和写入操作,但系统中所有其他的用户(除了超级用户之外)都不能访问该文件。
注意:
超级用户(root)可以重写所有的文件权限。
使用方式:
chmod
[-cfvR][--help][--version]mode file...
说明:
Linux/Unix的档案存取权限分为三级:
档案拥有者、群组、其他。
利用chmod可以藉以控制档案如何被他人所存取。
把计:
mode:
权限设定字串,格式如下:
[ugoa...][[+-=][rwxX]...][,...],其中u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
+表示增加权限、-表示取消权限、=表示唯一设定权限。
r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c:
若该档案权限确实已经更改,才显示其更改动作
-f:
若该档案权限无法被更改也不要显示错误讯息
-v:
显示权限变更的详细资料
-R:
对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help:
显示辅助说明
--version:
显示版本
范例:
将档案file1.txt设为所有人皆可读取:
chmodugo+rfile1.txt
将档案file1.txt设为所有人皆可读取:
chmoda+rfile1.txt
将档案file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmodug+w,o-wfile1.txtfile2.txt
将 ex1.py设定为只有该档案拥有者可以执行:
chmodu+xex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取:
chmod-Ra+r*
此外chmod也可以用数字来表示权限如chmod777file
语法为:
chmodabcfile
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmoda=rwxfile
和
chmod777file
效果相同
chmodug=rwx,o=xfile
和
chmod771file
效果相同
若用chmod4755filename可使此程式具有root的权限
指令名称:
chown
使用权限:
root
使用方式:
chmod[-cfhvR][--help][--version]user[:
group]file...
说明:
Linux/Unix是多人多工作业系统,所有的档案皆有拥有者。
利用chown可以将档案的拥有者加以改变。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。
只有系统管理者(root)才有这样的权限。
把计:
user:
新的档案拥有者的使用者IDgroup:
新的档案拥有者的使用者群体(group)-c:
若该档案拥有者确实已经更改,才显示其更改动作-f:
若该档案拥有者无法被更改也不要显示错误讯息-h:
只对于连结(link)进行变更,而非该link真正指向的档案-v:
显示拥有者变更的详细资料-R:
对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help:
显示辅助说明--version:
显示版本
范例:
将档案file1.txt的拥有者设为users群体的使用者jessie:
chownjessie:
usersfile1.txt
将目前目录下的所有档案与子目录的拥有者皆设为users群体的使用者lamport:
chmod-Rlamport:
users*
-rw-------(600)--只有属主有读写权限。
-rw-r--r--(644)--只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------(700)--只有属主有读、写、执行权限。
-rwxr-xr-x(755)--属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x(711)--属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw-(666)--所有用户都有文件读、写权限。
这种做法不可取。
-rwxrwxrwx(777)--所有用户都有读、写、执行权限。
更不可取的做法。
以下是对目录的两个普通设定:
drwx------(700)-只有属主可在目录中读、写。
drwxr-xr-x(755)-所有用户可读该目录,但只有属主才能改变目录中的内容
suid的代表数字是4,比如4755的结果是-rwsr-xr-x
sgid的代表数字是2,比如6755的结果是-rwsr-sr-x
sticky位代表数字是1,比如7755的结果是-rwsr-sr-t
处理多个文件
现在,您已经了解了如何遍历目录和处理单个文件。
本教程中的下一个内容是,了解如何处理一组文件。
几乎所有的UNIX命令除了可以处理单个文件外,还可以处理文件列表。
通过显式地输入需要使用的每个文件的名称,或使用通配符表示需要使用的、具有共同名称特征的所有文件,您可以输入文件的列表。
通配符
对于处理多个文件,最常用的方法就是使用 * 通配符。
通过使用 * 来表示任何字符或任何数量的字符,您可以选择文件列表。
为了创建更多的文件以进行演示,可以输入下列命令:
$cpexample.txtexample2.txt
$cpexample.txtscript.sh
现在,输入下面的命令:
$ls*.txt
您应该仅看到扩展名为.txt的文件。
接下来,输入:
$lsexa*
这次,您应该看到两个示例文件,但不应该看到script.sh。
任何能够处理多个文件的命令行应用程序都可以使用通配符。
递归存档和压缩
许多日常的文件操作都可以使用单个文件、目录和通配符来完成,但对于那些对备份、将文件集传输给其他用户、或仅为了节省空间感兴趣的用户来说,了解如何使用存档和压缩是非常重要的。
UNIX操作系统中有许多用于存档和压缩数据的实用程序。
tar
要将多个文件聚集成单个文件(存档),最常用的方法是使用 tar 命令。
tar 是磁盘存档程序(TapeArchiver) 的缩写,这是因为它开始时使用备份磁带进行存档,但现在通常用来执行磁盘到磁盘的操作。
尝试对TUTORIAL目录中的内容进行存档:
$cd~
$tarcvf/tmp/tutorial.tarTUTORIAL
$ls/tmp/
现在,您应该可以在/tmp/中看到一个名为tutorial.tar的文件。
该文件包含了目录TUTORIAL以及这个目录中所包含的文件。
这个示例中使用了命令行选项 cvf:
∙c 表示创建(create),它用来告诉 tar 创建一个新的存档。
∙v 表示详细(verbose),它用来告诉 tar 显示加入到存档的每个文件的清单。
∙f 表示文件(file),它用来告诉 tar 将存档写入到文件而不是设备。
然后,进入/tmp并提取该存档的内容:
$cd/tmp/
$ls
$tarcvftutorial
$ls
请注意,第1个 ls 命令显示了tutorial.tar,但它并没有显示TUTORIAL目录。
第2个 ls 命令(在 tar 命令之后),它显示出在/tmp/中有一个TUTORIAL目录。
删除/tmp/TUTORIAL目录,以便对系统进行清理:
$rm-R/tmp/TUTORIAL
许多用来处理文件的命令行应用程序都具有一个 -R 选项。
当使用了 -R 时,该应用程序将递归地进入一个目录及其所有的子目录,并且针对其中的每个文件执行所需的命令。
例如,您可以返回您的home目录,然后复制整个TUTORIAL目录:
$cd~
$cp-RTUTORIAL/tmp/.
$ls/tmp/TUTORIAL/
现在,可以删除该目录,以便对系统进行清理:
$rm-R/tmp/TUTORIAL/
$ls/tmp/
这就删除了整个目录,包括其中包含的所有文件。
请注意:
您可能会比原计划删除更多的数据,尤其是当通配符和 -R 一同使用时。
gzip
在有了tar文件之后,您可能希望对其进行压缩。
在大多数UNIX分发版中,有大量的压缩选项可供使用,但本教程重点关注于使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- unix 手册