论坛: UNIX系统 标题: LINUX目录系统和命令 复制本贴地址    
作者: yangze [yangze]    版主   登录
1. 文件名 
要求:A.长度:最大256个字符,与UNIX兼容建议14个字符以下。 
B.组成:通常由字母,数字,点号,下划线,减号等。 
区分大小写:LINUX命令都用小写。 
[注]为了便于管理和识别,用户可以把扩展名作为文件名的一部分。圆点用于区分 文件名和扩展名。扩展名对于将文件分类是十分有用的。用户可能对某些大众 已接纳的标准扩展名比较熟悉,例如,C语言编写的源代码文件总是具有C的扩 展名。用户可以根据自己的需要,随意加入自己的文件扩展名。以下例子都是 有效的Linux文件名。 


2. 路径名 
A.绝对路径:以根目录开始。 
B.相对路径:以当前目录开始。 
C.。和。。 :。当前目录 。。上级目录。 
[注]的。用户在对文件进行访问时,要给出文件所在的路 径。路径又分相对路径和绝对路径。绝对路径是指从“根”开始的路径,也称 为完全路径;相对路径是从用户工作目录开始的路径。 
应该注意到,在树型目录结构中到某一确定文件的绝对路径和相对路径均只有 一条。绝对路径是确定不变的,而相对路径则随着用户工作目录的变化而不断 变化。用户要访问一个文件时,可以通过路径名来引用。并且可以根据要访问的文件 与用户工作目录的相对位置来引用它,而不需要列出这个文件的完整的路径名。 
例如,用户 WANG 有一个名为 class 的目录,该目录中有两个文件∶ software 和 hardware。 若用户 WANG 想显示出其 class 目录中的名为 software 的文件, 可以使用下列命令∶ 
/home/WANG$ cat /home/WANG/class/software_1 
用户也可以根据文件softwarei_1与当前工作目录的相对位置来引用该文件。这 时命令为∶ 
/home/WANG$ cat class/software_1 

3.树型目录结构 
在计算机系统中存有大量的文件,如何有效的组织与管理它们,并为用户提供 一个使用方便的接口是文件系统的一大任务。Linux系统以文件目录的方式来 组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用 树型结构组织起来,即我们常说的目录。也就是说,整个文件系统有一个“根” (root),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈 ,杈上也可以长出“叶子”。“根”和“杈”在Linux中被称为是“目录”或 "文件夹”。而“叶子”则是一个个的文件。实践证明,此种结构的文件系统 效率比较高。 
如前所述,目录也是一种类型的文件。Linux系统通过目录将系统中所有的文件 分级、分层组织在一起,形成了Linux文件系统的树型层次结构。以根目录为起 点,所有其他的目录都由根目录派生而来。一个Linux系统的树型目录主要的部分,结 构如下所示。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访 问那里的文件。 
/----------lib 
|--------dev 
|--------etc 
|--------home------larry 
| `----sam 
|--------proc 
|--------tmp 
`--------usr---------X11R6 
|-------bin 
|-------etc 
|-------include 
|-------lib 
|-------local-------bin 
| |-----etc 
| `-----lib 
|-------man 
|-------src---------linux 
`-------tmp 

上图中,我们只给出了目录结点名称,而没有给出各个目录“之下”的每一个 文件。实际上,各个目录结点“之下”都会有一些文件和子目录。并且,系统 在建立每一个目录时,都会自动为它设定两个目录文件,一个是“.",代表 该目录自己,另一个是“..",代表该目录的父目录,对于根目录,“."和 ".."都代表其自己。 
进入:KDE�D�DNAVIGATOR�D�DROOT�D�DOPENFOLDER 
root超级用户目录 包括桌面管理等 
home用户目录 包括用户信息等 
bin 执行目录 存放可执行文件 包括常用命令 
sbin执行目录 存放不提供给用户使用的命令 
boot引导目录 存放引导系统时使用的各种文件 
etc配置目录 系统配置时使用 
dev设备目录 通过它访问外设 
mnt安装目录 管理员设备临时安装点 
opt安装目录 管理员软件包放置点 
lib库目录 命令执行时使用 
usr共享目录 存放系统中所有用户的共享文件 
var数据目录 系统运行时要修改数据 
tmp 临时目录 
proc虚拟目录 虚构文件系统内存产生不存硬盘 
lost+fount空目录 

LINUX常用命令 
LINUX的命令很多,也许这里面我会忘掉些,大家想知道什么命令,下面没有的话就提出。我会补上。 


显示文件内容命令 
用户需要查看一个文件的内容时,可以根据显示要求的不同选用以下的命令。 

cat命令 


功能1∶在标准输出上显示文件。 
语法∶cat [ 选项 ] 文件 
说明∶该命令功能之一是用来显示文件。它依次读取其后所指文件的内容并将 
其输出到标准输出。 
cat命令中各个选项的含义为∶ 

v 用一种特殊形式显示控制字符, LFD 与 TAB 除外。 加了 v 选项后, T 和 E 选项将起作用。其中∶ 
T 将 TAB 显示为“ I "。该选项需要与 v 选项一起使用。即如果 没有使用 v 选项,则这个选项将被忽略。 
E 在每行的末尾显示一个$符。该选项需要与 v 选项一起使用。 
u 输出不经过缓冲区。 
A 等于vET。 
t 等于vT。 
e 等于vE。 
例1∶$ cat example.txt 
则在屏幕上显示出example.txt 文件的内容。 

例2∶$ cat -A exam2.txt 
则在屏幕上显示出exam2.txt 文件的内容,而且如果文件中含有特殊字符的话,一 并显示。 

功能2∶连接两个或多个文件 
说明∶该命令功能之二是用来将两个或多个文件连接起来。 

例3∶$ cat file1 file2 > file3 

这样就把文件filel和文件file2的内容合并起来,放入文件file3中。(此时在 屏幕上并不能直接看到该命令执行后的结果。若想看到连接后的文件内容,可 以再使用 "cat file3"。) 

需要说明的是,当文件内容过多时,就带来一个问题,因为文本在屏幕上迅速 地闪过,用户来不及看清其内容。因此,当文件内容较大时,一般可用more等 命令分屏显示,以免因屏幕滚动太快而无法看清。 

more命令 

功能∶在终端屏幕按屏显示文本文件。 语法∶ more [ 选项 ] 文件 说明∶ 该命令一次显示一屏文本,显示满之后,停下来,并在终端 
底部打印出More,系统还将同时显示出已显示文本占全部文本的百 
分比,若要继续显示,按回车或空格键即可。 

more命令中各个选项的含义为∶ 

p 显示下一屏之前先清屏。 
c 作用同p基本一样。 
d 在每屏的底部显示更友好的提示信息∶ 
More(XX%)[Press space to c ontiune ,'q' to quit . ] 
而且若用户输入了―个错误命令则显示出错信息,而不是简单地鸣响终端。 


l 不处理Ctrl+l(换页符)。如果没有给出这个选项,则more命 令在显示了一个包含有Ctrl+l字符的行后将暂停显示,并等待接收命令。 
s 文件中连续的空白行压缩成一个空白行显示。 
执行中的命令 

在more命令的执行过程中,用户可以使用more自己的一系列命令动态 地根据需要来选择显示的部分。more在显示完一屏内容之后,将停下来等待用 户输入某个命令。下表列出了more指令在执行中用到的一些常用命令,而有关 这些命令的完整内容,可以在more执行时按h查看。这些命令的执行方法是先输 入i(行数)的值,再打所要的命令,不然它会以预设值来执行命令。 


i空格 若指定i,显示下面的i行;否则,显示下一整屏。 
i回车 若指定i,显示下面的i行;否则,显示下一行。 
iD 按Ctrl+D,若指定i,显示下面的i行;否则,往下显示半屏(一般为 11 行)。 
id 同iD 。 
iz 同“i空格”类似,只是i将成为以下每个满屏的缺省行数。 
is 跳过下面的i行再显示一个整屏。预设值为1。 
if 跳过下面的i屏再显示一个整屏。预设值为1。 
iB 按Ctrl+B,往回跳过(即向文件首回跳)i屏,再显示一个满 屏。预设值为1。 
b 与iB相同。 
’ 回到上次搜索的地方  
q或Q 退出more。 
= 显示当前行号。 
v 在当前行启动/usr/bin/vi对之进行编辑修改。 
h 显示各命令的帮助信息。 
i/pattern 查找匹配该模式的第i行。预设值为1。 
in 查找符合表达式的倒数i行。预设值为1。 
!cmd或 ∶!cmd在子shell中执行cmd命令。 
i∶n 在命令行中指定了多个文件名的情况下,可用此命令使之显示第i个文件,若i过大(出界),则显示文件名列表中的最后一个文件。 
i∶p 在命令行中指定了多个文件名的情况下,可用此命令使之显示倒数第i个文件。若i过大(出界),则显示第一个文件。 
i∶f 显示当前文件的文件名和行数。 
例1∶用分页的方式显示一个文件的内容。 


$ more example1.c 
/*-------------------------------------------*/ 
/* example1.c */ 
/*-------------------------------------------*/ 
#define _MAIN_C_ 
#inc1ude < BBS. h > 
jmp_buf byebye; 
int talkrequest=NA; 
static uschar Enter_uflag i 
#ifdef SHOW_IDLE_TIME 
--More- (3%) 

例2∶显示一个文件的内容,但显示之前先清屏,并且在显示器的最下方显示完整的百分比。 


$ more dc example1.c 
执行该命令后,先清屏,然后显示文件example.c的内容。 
/*-------------------------------------------*/ 
/* example1.c */ 
/*-------------------------------------------*/ 
/* author f opus.BBS@BBS.cs.nthu.edu.tw */ 
/* target f BBS main/login/top-menu routines */ 
/* create f 99/10/23 */ 
/* update f 99/12/15 */ 
/*-------------------------------------------*/ 
#define _MAIN_C_ 
#inc1ude < BBS. h > 
jmp_buf byebye; 
int talkrequest=NA; 
static uschar Enter_uflag i 
#ifdef SHOW_IDLE_TIME 
char fromhost( ); 
--More- (3%)[Press space to c ontinue , 'q' to quit .] 

例3∶显示一个文件的内容,要求每十行显示一次,且显示之前先清屏。 


$ more c 10 example1.c 
执行该命令后,先清屏,然后将以每十行每十行的方式 
显示文件example.c的内容。 
/*-----------------------------------*/ 
/* example1.c */ 
/*-----------------------------------*/ 
/* create f 99/10/23 */ 
/* update f 99/12/15 */ 
/*-----------------------------------*/ 
#define _MAIN_C_ 
inc1ude < BBS. h > 
--More- (3%) 

less命令 

less命令的功能几乎和more命令一样,也是用来按页显示文件,不同 之处在于less命令在显示文件时允许用户既可以向前又可以向后翻阅文件。 less命令的使用与more命令类似,在此就不赘述了,用户如有不清楚的地方可 直接查看联机帮助。用less命令显示文件时,若需要在文件中往前移动, 按b键;要移动到用文件的百分比表示的某位置,则指定一个0到100之间 的数,并按p即可。 

例如,需要按页显示test文件 

$ less test 

head命令 

如果用户希望查看一个文件究竟保存的是什么内容,可以只查看文件的头几 行,而不必浏览整个文件。用 head 命令只显示文件或标准输入的头几行。 

语法∶head [n ] 文件 

功能∶显示指定文件的前若干行。 

说明∶该命令显示每个指定文件的前面 n 行。如果没有给出 n 值,缺省设置为 10。如果没有指定文件,head 就从标准输人读取。例如显示文件 example.c 的前3行。 


$ head 3 example.c 
/*-------------------------------------------*/ 
/* example1.c */ 
/*-------------------------------------------*/ 

tail命令 

同样,如果用户想查看文件的尾部,可以使用tail命令。 


语法∶tail [+ / num ] [参数] 文件 
说明∶该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内 容显示在标准输出上。如果没有给定文件名,则使用标准输入文件。 
tail命令中各个选项的含义为∶ 
+num 从第num行以后开始显示。 
num 从距文件尾num行处开始显示。如果省略num参数,系统默认值为10。 
l 以文本行为num的计数单位。与参数选项+num或num选项同时使用时, num 表示要显示的文本行行数。 
c 以字节为num的计数单位。与参数选项+num或num选项同时使用时, num 表示要显示的字符数。(l、c选项可以省略,系统默认值为l,即按行计数)。 
例如∶ 

$ tail -4 example 

将显示文件example的最后4行。 od命令 

用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不 同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。 


语法∶od [选项] 文件… 
命令中各选项的含义∶ 


A 指定地址基数,包括∶ 
d 十进制 
o 八进制(系统默认值) 
x 十六进制 
n 不打印位移值 
t 指定数据的显示格式,主要的参数有∶ 
c ASCII字符或反斜杠序列 
d 有符号十进制数 
f 浮点数 
o 八进制(系统默认值为02) 
u 无符号十进制数 
x 十六进制数 
除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显 示值所包含的字节数。说明∶od命令系统默认的显示方式是八进制, 这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方 式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。 

文件内容查询命令 
grep、fgrep和egrep命令 

这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指 定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该 文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指 定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项) ;fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。 这组命令在搜索与定位文件中特定的主题方面非常有用。要搜索的模 式可以被认为是一些关键词,您可以用它们来搜索文件中包含的这些 关键词。编写程序时,可以用它来寻找某一个函数,或是相关的词组。 grep命令的搜索功能比fgrep强大,因为grep命令的搜索模式可以是 正则表达式,而fgrep却不能。 

该组命令中的每一个命令都有一组选项,利用这些选项可以改变其输出方式。 例如,可以在搜索到的文本行上加入行号,或者只输出文本行的行号, 或者输出所有与搜索模式不匹配的文本行,或只简单地输出已搜索到 指定模式的文件名,并且可以指定在查找模式时忽略大小写。 

这组命令在指定的输入文件中查找与模式匹配的行。如果没有指定文件,则从 标准输入中读取。正常情况下,每个匹配的行被显示到标准输出。如果要 查找的文件是多个,则在每一行输出之前加上文件名。 

语法∶ 


grep [选项] [查找模式] [文件名1,文件名2,……] 
egrep [选项] [查找模式] [文件名1,文件名2,……] 
fgrep [选项] [查找模式] [文件名1,文件名2,……] 

这组命令各选项的含义为∶ 


E 每个模式作为一个扩展的正则表达式对待。 
F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式。 
b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。 
c 只显示匹配行的数量。 
i 比较时不区分大小写。 
h 在查找多个文件时,指示grep不要将文件名加入到输出之前。 
l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名。 
n 在输出前加上匹配串所在行的行号(文件首行行号为1)。 
v 只显示不包含匹配串的行。 
x 只显示整行严格匹配的行。 
e expression 指定检索使用的模式。用于防止以“-"开头的模式被解释为命令选项。 
f expfile 从expfile文件中获取要搜索的模式,一个模式占一行。 
对该组命令的使用还需注意以下方面∶ 

在命令后键入搜索的模式,再键入要搜索的文件。其中,文件名列表中也可以 使用特殊字符,如“*"等,用来生成文件名列表。如果想在搜索的模式中包 含有空格的字符串,可以用单引号把要搜索的模式括起来,用来表明搜索的模 式是由包含空格的字符串组成。否则,Shell将把空格认为是命令行参数的定 界符,而grep命令将把搜索模式中的单词解释为文件名列表中的一部分。在下 面的例子中,grep命令在文件example中搜索模式“text file"。 

$ grep 'text file' example 

用户可以在命令行上用Shell特殊字符来生成将要搜索的文件名列表。在下面的 例子中,特殊字符“*"用来生成一个文件名列表,该列表包含当前目录下所有 的文件。该命令将搜索出当前目录下所有文件中与模式匹配的行。 

$ grep data * 

特殊字符在搜索一组指定的文件时非常有用。例如,如果想搜索所有的C程序源 文件中特定的模式,您可以用“*.c"来指定文件名列表。假设用户的 C程序中 包含一些不必要的转向语句(goto语句),想要找到这些语句,可以用如下的 命令来搜索并显示所有包含goto语句的代码行∶ 

$ grep goto *.c 

用户可以在命令行上键入搜索模式,也可以使用-f选项从指定文件中读取要搜 索的模式。在文件中,每个搜索模式占一行。如果经常要搜索一组常见字符串 时,这个功能非常有用。在下面的例子中,用户要在文件exam中搜索字符串 "editor"和 "create",就把要搜索的模式放置在文件mypats中,然后, grep命令从文件mypats中读取要搜索的模式。 

$ cat mypats 
editor 
create 
$ grep -f mypats exam 
文件查找命令 
find命令 


功能∶在目录结构中搜索文件,并执行指定的操作。此命令提供了相 
当多的查找条件,功能很强大。 
语法∶find 起始目录 寻找条件 操作 
说明∶find命令从指定的起始目录开始,递归地搜索其各个子目录, 
查找满足寻找条件的文件并对之采取相关的操作。 

该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条 件。逻辑运算符and、or、not的含义为∶ 


1. 
and∶逻辑与,在命令中用“-a"表示,是系统缺省的选项,表示只有当所给的条件都满足时,寻找条件才算满足。例如∶ 
$ find -name 'tmp' -xtype c -user 'inin' 

该命令寻找三个给定条件都满足的所有文件。 

2. 
or∶逻辑或,在命令中用“-o"表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就算满足。例如∶ 
$ find -name 'tmp' -o -name 'mina*' 

该命令查询文件名为’tmp'或是匹配’mina*'的所有文件。 

3. 
not∶逻辑非,在命令中用“!”表示。该运算符表示查找不满足所给条件的文件。例如∶ 
$ find ! -name 'tmp' 

该命令查询文件名不是’tmp'的所有文件。需要说明的是∶当使用很多的逻辑 选项时,可以用括号把这些选项括起来。为了避免Shell本身对括号引起误解, 在括号前需要加转义字符“\"来去除括号的意义。 


例∶\$ find \(-name 'tmp' -xtype c -user 'inin'i\) 

寻找条件有以下选项∶ 


首先,下列各个选项中的n值可以有三种输入方式, 
假设n为20,则∶ 
+20 表示20以后(21,22,23等) 
-20 表示20以前(19,18,17等) 
20 表示正好是20 


1. 
以名称和文件属性查找。 
name '字串’查找文件名匹配所给字串的所有文件,字串内可用通 配符*、?、 




。lname '字串’查找文件名匹配所给字串的所有 符号链接文件,字串内可用通配符*、?、 





。 
-gid n查找属于ID号为n的用户组的所有文件。 
-uid n查找属于ID号为n的用户的所有文件。 
-group '字串’查找属于用户组名为所给字串的所有的文件。 
-user '字串’查找属于用户名为所给字串的所有的文件。 
-empty查找大小为0的目录或文件。 
-path '字串’查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。 
-perm 权限查找具有指定权限的文件和目录,权限的表示可以如 711, 644。 
-size n[bckw]查找指定文件大小的文件,n后面的字符表示单位,缺省为b,代表512字节的块。 
-type x查找类型为x的文件,x为下列字符之一∶ 
b 块设备文件 
c 字符设备文件 
d 目录文件 
p 命名管道(FIFO) 
f 普通文件 
l 符号链接文件(symbolic links) 
s socket文件 
-xtype x与-type基本相同,但只查找符号链接文件。 

2. 
以时间为条件查找 
amin n 查找n分钟以前被访问过的所有文件。 
atime n 查找n天以前被访问过的所有文件。 
cmin n 查找n分钟以前文件状态被修改过的所有文件。 
ctime n 查找n天以前文件状态被修改过的所有文件。 
mmin n 查找n分钟以前文件内容被修改过的所有文件。 
mtime n 查找n天以前文件内容被修改过的所有文件。 

3. 
可执行的操作 

exec 命令名称 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。表示命令的参 数即为所找到的文件;命令的末尾必须以“ ;”结束。 
ok 命令名称 对符合条件的文件执行所给的Linux 命令,与exec不同的是,它会询问用户是否需要执行该命令。 
ls 详细列出所找到的所有文件。 
fprintf 文件名将找到的文件名写入指定文件。 
print 在标准输出设备上显示查找出的文件名。 
printf 格式格式的写法请参考有关C语言的书。 
例1∶查找当前目录中所有以main开头的文件,并显示这些文件的内容。 


$ find . name 'main*' exec more {} \; 

例2∶删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。 


$ find . \(name a.out o name '*.o'\)\ 
> atime +7 exec rm {} \; 

locate命令 locate命令用于查找文件,它比find命令的搜索速度快,它需要一个 数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我 们建立好这个数据库后,就可以方便地来搜寻所需文件了。 

该命令的一般形式为∶ 

locate 相关字 
文本处理命令 
Sort命令 

sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实 用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序 操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具, 用来管理内容类似数据库记录的文件。 

Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该 命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。 

语法∶ 

sort [选项] 文件 

说明∶sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出 上。如不指定输入文件或使用“”,则表示排序内容来自标准输入。 sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关 键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按 ASCII字符顺序进行排序。 

改变缺省设置的选项主要有∶ 


m 若给定文件已排好序,合并文件。 
c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。 
u 对排序后认为相同的行只留其中一行。 
o 输出文件将排序输出写到输出文件中而不是标准输出,如果输 出文件是输入文件之一,sort先将该文件的内容写入一个临时文件, 然后再排序和写输出结果。 
改变缺省排序规则的选项主要有∶ 

d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。 
f 将小写字母与大写字母同等对待。 
I 忽略非打印字符。 
M 作为月份比较∶“JAN""FEB""DEC"。 
r 按逆序输出排序结果。 
+posl pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。 
b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。 
t separator指定字符separator作为字段分隔符。 
uniq命令 

文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用 cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重 复行。这时可以用uniq命令将这些重复行从输出文件中删除,只留下 每条记录的唯一样本。 

语法∶uniq [选项] 文件 

说明∶这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以 后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。 该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。 如果输入文件用“”表示,则从标准输入读取。 该命令各选项含义如下∶ 


c 显示输出中,在每行行首加上本行在文件中出现的次数。它可 取代u和d选项。 
d 只显示重复行。 
u 只显示文件中不重复的各行。 
n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个 非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。 
+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。 
f n与n相同,这里n是字段数。 
s n与+n相同,这里n是字符数。 
统计文件大小命令 
wc命令 

wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结 果显示输出。 

语法∶wc [选项] 文件… 

说明∶该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名, 则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字 符区分开的最大字符串。 

该命令各选项含义如下∶ 


c 统计字节数。 
l 统计行数。 
w 统计字数。 
这些选项可以组合使用。 
文件比较命令 
这组命令可以用来比较两个文件内容的差别。 

Diff命令 该命令的功能为逐行比较两个文本文件,列出其不同之处。它比comm 命令完成更复杂的检查。它对给出的文件进行系统的检查,并显示出两 个文件中所有不同的行,不要求事先对文件进行排序。 

语法∶diff [选项] file1 file2 

说明∶该命令告诉用户,为了使两个文件 file1 和 file2 一致,需要修改它们的 哪些行。如果用“”表示 file1 或 fiie2, 则表示标准输入。如果 file1 或 file2 是目录,那么 diff 将使用该目录中的同名文件进行比较。例如∶ 

diff /usr/xu mine 

diff各选项的含义如下∶ 


b 忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。 如How are you与How are you被视为相同的字符串。 
c 采用上下文输出格式(提供三行上下文)。 
C n采用上下文输出格式(提供n行上下文)。 
e 产生一个合法的ed脚本作为输出。 
r 当file1和file2是目录时,递归作用到各文件和目录上。 
文件的复制、删除和移动命令 
cp命令 

该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如 同DOS下的copy命令一样,功能非常强大。 

语法∶ cp [选项] 源文件或目录 目标文件或目录 

说明∶该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。 

该命令的各选项含义如下∶ 


a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷 贝目录,其作用等于dpR选项的组合。 
d 拷贝时保留链接。 
f 删除已经存在的目标文件而不提示。 
i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y 时目标文件将被覆盖,是交互式拷贝。 
p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制 到新文件中。 
r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子 目录和文件。此时目标文件必须为一个目录名。 
l 不作拷贝,只是链接文件。 
mv命令 
用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另 一个目录中。该命令如同DOS下的ren和move的组合。 

语法∶mv [选项] 源文件或目录 目标文件或目录 

说明∶视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命 令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名), 它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在 的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件 均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除 ,而链至该文件的链接也将丢失。命令中各选项的含义为∶ 


I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时 系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。 
f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示, 指定此选项后,i选项将不再起作用。 
需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增 加,而cp对文件进行复制,文件个数增加了。 

rm命令 

在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用 处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个 或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。 对于链接文件,只是删除了链接,原有文件均保持不变。 

rm命令的一般形式为∶ 

rm [选项] 文件… 

如果没有使用r选项,则rm不会删除目录。 该命令的各选项含义如下∶ 


f 忽略不存在的文件,从不给出提示。 
r 指示rm将参数中列出的全部目录和子目录均递归地删除。 
i 进行交互式删除。 
使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例 如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了 回车键并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此 种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果 用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下 一个例子中,用户要删除文件test和example。然后会被要求对每个文件进行 确认。用户最终决定删除example文件,保留test文件。 

$ rm ii test example 
Remove test ?n 
Remove example ?y 

文件链接命令 
ln命令 

该命令在文件之间创建链接。这种操作实际上是给系统中已有的某个 文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为 之指定不同的访问权限,以控制对信息的共享和安全性的问题。 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一 大堆的路径名。而且,即使我们删除这个链接,也不会破坏原来的目录。 


语法∶ 
ln [选项] 目标 [链接名] 
ln [选项] 目标 目录 
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接 (Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个 文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在 这个问题。默认情况下,ln产生硬链接。 

在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。 

如果给ln命令加上s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。 
目录的创建与删除命令 
mkdir命令 

功能∶创建一个目录(类似DOS下的md命令)。 

语法∶mkdir [选项] dirname 

说明∶该命令创建由 dirname 命名的目录。要求创建目录的用户在当前目录中(dirname的父目录中)具有写权限,并且 dirname 不能是当前目录中已有的目录或文件名称。 

命令中各选项的含义为∶ 


m 对新建目录设置存取权限。也可以用 chmod 命令设置。 
p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加 上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。 
rmdir 命令 

功能∶删除空目录。 

语法∶rmdir [选项] dirname 

说明∶dirname表示目录名。该命令从一个目录中删除一个或多个子目录项。需 要特别注意的是,一个目录被删除之前必须是空的。(注意,rm r dir命令可 代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。 
改变工作目录、显示目录内容命令 
cd 命令 

功能∶改变工作目录。 

语法∶cd [directory] 

说明∶该命令将当前目录改变至 directory 所指定的目录。若没有指定 directory,则回到用户的主目录。为了改变到指定目录,用户必须拥 有对指定目录的执行和读权限。该命令可以使用通配符. 

pwd 命令 

在Linux层次目录结构中,用户可以在被授权的任意目录下利用 mkdir 命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然 而,没有提示符来告知用户目前处于哪一个目录中。要想知道当前所处 的目录,可以使用pwd命令,该命令显示整个路径名。 

语法∶pwd 

说明∶此命令显示出当前工作目录的绝对路径。 

ls 命令 

ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常 用的一个命令之一,因为用户需要不时地查看某个目录的内容。该命 令类似于DOS下的dir命令。 

语法∶ls [选项] [目录或是文件] 

对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。 命令中各选项的含义如下∶ 


a 显示指定目录下所有子目录与文件,包括隐藏文件。 
A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“." 和“.."。 
b 对文件名中的不可显示字符用八进制逃逸字符显示。 
c 按文件的修改时间排序。 
C 分成多列显示各项。 
d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选 项一起使用,以得到目录的详细信息。 
f 不排序。该选项将使lts选项失效,并使aU选项有效。 
F 在目录名后面标记“/",可执行文件后面标记“*",符号链接后 面标记“@",管道(或FIFO)后面标记“|",socket文件后面标记“="。 
i 在输出的第一列显示文件的i节点号。 
l 以长格式来显示文件的详细信息。这个选项最常用。每行列出的信 息依次是∶ 
文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字对于符号链接文件,显示的文件名之后有“”和引用文件路径名。 

对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。目 录中的总块数显示在长格式列表的开头,其中包含间接块。L若指定的名称为 一个符号链接文件,则显示链接所指向的文件。 

m 输出按字符流格式,文件跨页显示,以逗号分开。 
n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的 UID号和GID号来表示,而不是实际的名称。 
o 与l选项相同,只是不显示拥有者信息。 
p 在目录后面加一个“/"。 
q 将文件名中的不可显示字符用“?"代替。 
r 按字母逆序或最早优先的顺序显示输出结果。 
R 递归式地显示指定目录的各个子目录中的文件。 
s 给出每个目录项所用的块数,包括间接块。 
t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间 相同,则按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的 时间标记是最后一次修改时间。 
u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将 -t的时间标记修改为最后一次访问的时间。 
x 按行显示出各排序项的信息。 
改变文件或目录的访问权限命令 
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。有三种不同类型的用户可对文件或目录进行访问∶文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如∶ 

-rw-r-r- 

横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。 

确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。利用 chgrp命令来更改某个文件或目录的用户组。下面分别对这些命令加以介绍。 

chmod 命令 

chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它 控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操 作符表达式的文字设定法;另一种是包含数字的数字设定法。 


1. 
文字设定法 
chmod [who] [+ | | =] [mode] 文件名 

命令中各选项的含义为∶ 操作对象who可是下述字母中的任一个或者它们的组合∶ 

u 表示“用户(user)”,即文件或目录的所有者。 
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。 
o 表示“其他(others)用户”。 
a 表示“所有(all)用户”。它是系统默认值。 
操作符号可以是∶ 

+ 添加某个权限。 
- 取消某个权限。 
= 赋予给定权限并取消其他所有权限(如果有的话)。 
设置mode所表示的权限可用下述字母的任意组合∶ 


r 可读。 
w 可写。 
x 可执行。 
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。 
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。 
t 保存程序的文本到交换设备上。 
u 与文件属主拥有一样的权限。 
g 与和文件属主同组的用户拥有一样的权限。 
o 与其他用户拥有一样的权限。 

2. 
数字设定法 
我们必须首先了解用数字表示的属性的含义∶0表示没有权限,1表示可执行权 限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应 为3个从0到7的八进制数,其顺序是(u)(g)(o)。 

数字设定法的一般形式为∶ 

chmod [mode] 文件名 

chgrp命令 

功能∶改变文件或目录所属的组。 

语法∶chgrp [选项] group filename 

该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是 /etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列 表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件 的组。 

chown 命令 

功能∶更改某个文件或目录的属主和属组。这个命令也很常用。例如 root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。 

语法∶chown [选项] 用户或组 文件 

说明∶chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。该命令的各选项含义如下∶ 
备份与压缩命令 
用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩。下面分别介绍备份与压缩的命令。 

tar命令 

tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar 最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用 tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。 

语法∶tar [主选项+辅选项] 文件或者目录 

使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。 

主选项∶ 

c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。 
t 列出档案文件的内容,查看已经备份了哪些文件。 
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。 
x 从档案文件中释放文件。 
辅助选项∶ 

b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20 (20*512 bytes)。 
f 使用档案文件或设备,这个选项通常是必选的。 
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。 
m 在还原文件时,把所有文件的修改时间设定为现在。 
M 创建多卷的档案文件,以便在几个磁盘中存放。 
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。 
w 每一步都要求确认。 
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。 
gzip命令 

减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。 

语法∶gzip [选项] 压缩(解压缩)的文件名 

各选项的含义∶ 


-c 将输出写到标准输出上,并保留原有文件。 
-d 将压缩文件解压。 
-l 对每个压缩文件,显示下列字段∶ 压缩文件的大小, 未压缩文件的大小, 压缩比, 未压缩文件的名字, 
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 
-t 测试,检查压缩文件是否完整。 
-v 对每一个压缩和解压的文件,显示文件名和压缩比。 
-num 用指定的数字num调整压缩的速度,-1或-fast表示最快压缩方法(低压缩比),-9或-best表示最慢压缩方法(高压缩比)。系统缺省值为6。 
unzip命令 

用 MS Windows 下的压缩软件 winzip 压缩的文件如何在 Linux 系统下展开呢?可以用 unzip 命令,该命令用于解扩展名为 .zip 的压缩文件。 

语法∶unzip [选项] 压缩文件名.zip 

各选项的含义分别为∶ 

-x 文件列表 解压缩文件,但不包括指定的file文件。 
-v 查看压缩文件目录,但不解压。 
-t 测试文件有无损坏,但不解压。 
-d 目录 把压缩文件解到指定目录下。 
-z 只显示压缩文件的注解。 
-n 不覆盖已经存在的文件。 
-o 覆盖已存在的文件且不要求用户确认。 
-j 不重建文档的目录结构,把所有文件解压到同一目录下。 


地主 发表时间: 05/27 21:19

回复: syhg [syhg]   论坛用户   登录
有用!!!!!!!!!!!

B1层 发表时间: 04-08-02 11:31

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号