1.Diff

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

语法:diff [选项] file1 file2

说明:该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用“-

”表示file1或fiie2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。

例如: diff /usr/xu mine

把目录/usr/xu 中名为mine的文件与当前目录中的mine文件进行

差异重定向:

例:diff a.c b.c > d.txt

将a.c和b.c的不同之处显示到d.txt文件当中去.

2. find

查找一个文件:find命令:

例:find / -name hello.c //从根目录开始,以名字查找

语法: find 路径 –name 文件名

3. ln

功能说明:连接文件或目录

该命令的使用语法如下:

硬链接:

ln [参数] 目标 [链接名]

ln [参数] 目标 目录

软连接:

ln [参数] –s目标 [链接名]

ln [参数] –s 目标 目录

参  数:

-b或–backup  删除,覆盖目标文件之前的备份。

-d或-F或–directory  建立目录的硬连接。

-f或–force  强行建立文件或目录的连接,不论文件或目录是否存在。

-i或–interactive  覆盖既有文件之前先询问用户。

-n或–no-dereference  把符号连接的目的目录视为一般文件。

-s或–symbolic  对源文件建立符号连接,而非硬连接。

-S或–suffix=

用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的字尾备份字符串是符号”~”,您可通过”-S”参数来改变它。

-v或–verbose  显示指令执行过程。

-V或–version-control=

用”-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用”-S”参数变更,当使用”-V”参数指定不同备份方式时,也会产生不同字尾的备份字符串。

–help  在线帮助。

–version  显示版本信息。

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic

Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

ln 命令

用途

链接文件。

语法

将某个文件链接到一个文件上

ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]

将一个或多个文件链接到一个目录上

ln [ -f | -n] [ -s ] SourceFile … TargetDirectory

描述

ln 命令将在 SourceFile 参数中指定的文件链接到在 TargetFile 参数中指定的文件,或将其链接到在

TargetDirectory 参数中指定的另一个目录中的文件。在缺省情况下,ln 命令会创建硬链接。如果需要使用 ln

命令来创建符号链接,请指明 -s 标志。

符号链接是指向文件的一个间接指针;它的目录项中包含了它所链接的文件名。符号链接可能会跨越文件系统,可能指向目录。

如果正在将某个文件链接到新的名字,那么只能列出一个文件。如果链接到一个目录,那么可以列出多个文件。

TargetFile 参数是可选的。如果不指定目标文件,ln 命令会在当前的目录中创建一个新的文件。新的文件继承了指定在

SourceFile 参数中的文件名。请参阅示例 5。

注意:

如果不使用 -s 标志,就不能在文件系统之间链接文件。

如果 TargetDirectory 已经是链接到目录上的一个符号链接,那么 ln 命令将现有的目标视为文件。这意味着,类似于 ln

-fs somepath/lname symdir 的命令不会遵循现有的 symdir 符号链接,作为代替,它会创建一个从

somepath/lname 到 symdir 的新的符号链接。

标志

-f 促使 ln 命令替换掉任何已经存在的目的路径。如果目的路径已经存在,而没有指定 -f 标志,ln

命令不会创建新的链接,而是向标准错误写一条诊断消息并继续链接剩下的 SourceFiles。

-n 指定,如果链接是一个现有的文件,那么不要覆盖文件的内容。 -f 标志重设了这个标志。这是缺省的行为。

-s 促使 ln 命令创建符号链接。符号链接中包含了它所链接的文件的名字。当对链接执行打开操作的时候,会使用到引用文件。对符号链接的

stat 调用会返回链接的目标文件;必须完成lstat 调用来获取链接的信息。可以使用 readlink

调用来读取符号链接的内容。符号链接可能跨越文件系统,指向目录。

注意:当为 -s 标志指定 SourceFile 参数的时候,必须使用绝对路径。如果没有指明绝对路径,那么当 SourceFile 和

TargetFile 参数位于不同的目录中的时候,可能会发生意外的结果。在创建符号链接之前,不需要存在源文件。

退出状态

此命令返回以下的退出值:

0 所有指定的文件都成功链接上了。

>0 出现一次错误。

示例

零、为了创建到一个文件的另一个链接(别名),请输入:

ln -f chap1 intro

这会将 chap1 链接到新的名称, intro。如果 intro 不存在,那么会创建该文件名。如果 intro

已经存在了,那么这个文件会被替换为指向 chap1的一个链接。然后 chap1 和 intro

文件名会指向同一个文件。对其中任何一个的更改都会出现在另一个中。如果一个文件名被 rm

命令删除,那么该文件并没有完全被删除,因为它仍然以其它的名字存在。

一、为了将文件链接为另一个目录中的相同名字,请输入:

ln index manual

这会将 index 链接到新的名称,manual/index。

注意:在示例 1 中的 intro 是一个文件的名称;在示例 2 中的 manual 是一个已经存在的目录。

二、为了将几个文件链接为另一个目录中的名称,请输入:

ln chap2 jim/chap3 /home/manual

这会将 chap2 链接到新的名称 /home/manual/chap2;将 jim/chap3 链接到新的名称

/home/manual/chap3。

三、如果想要在 ln 命令中使用模式匹配字符,请输入:

n manual/* .

这会将 manual 目录中的所有文件链接到当前目录中, . (点),给他们在 manual 目录中同样的名称。

注意: 必须在星号和句点之间输入一个空格。

四、为了创建一个符号链接,输入:

ln -s /tmp/toc toc

这会在当前的目录中创建符号链接 toc。 toc 文件指向 /tmp/toc 文件。如果 /tmp/toc 文件已经存在了,那么

cat toc 命令可以列出其内容。

五、如果想要在不指明 TargetFile 参数的情况下得到相同的结果,请输入:

、ln -s /tmp/toc

4 locate

功能说明:查找文件

用法: locate filename

5. mv

功能说明:移动或更名现有的文件或目录

在Linux系统中,移动文件可使用mv命令。mv命令还可改文件改名,即把源文件以一个新文件名移动到另一个新的目录中去。该命令所使用语法形式有:

mv [-f] [-i] 文件1 文件2

mv [-f] [-i] 目录1 目录2

mv [-f] [-i] 文件列表 目录

6. rm

功能说明:删除文件或目录

rm命令可从文件系统中删除文件及整个目录。rm命令所使用的命令格式如下:

rm [选项] 文件列表

-r 删除文件列表中指定的目录,若不用此标志则不删除目录

-i 指定交互模式。在执行删除前提示确认。任何以Y开始的响应都表示肯定;其他则表示否定。

-f 指定强行删除模式。通常,在删除文件权限可满足时rm提示。本标志强迫删除,不用提示。

语法格式:rm –rf 目录

Rm –f 文件

7 which

功能说明:查找文件。

语  法:which [文件...]

补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

8 cat

功能说明:显示文件内容。

语  法:cat [文件]

9 chmod

功能说明:变更文件或目录的权限

chmod [选项] 文件和目录列表

语法:

chmod

[-cfRv][--help][--version][+/-/=][文件或目录...]

或chmod [-cfRv][--help][--version][数字代号][文件或目录...]

或chmod

[-cfRv][--help][--reference=][--version][文件或目录...]

使用方式:

chmod [-cfvR] [--help] [--version] mode file…

在Linux/Unix系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。

Linux/Unix的档案存取权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所存取。

您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。

权限范围的表示法如下:

u:User,即文件或目录的拥有者。

g:Group,即文件或目录的所属群组。

o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

有关权限代号的部分,列表于下:

r:读取权限,数字代号为”4″。

w:写入权限,数字代号为”2″。

x:执行或切换权限,数字代号为”1″。

-:不具任何权限,数字代号为”0″。

s:特殊?b>功能说明:变更文件或目录的权限。

-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

参数:

-c或–changes 效果类似”-v”参数,但仅回报更改的部分。

-f或–quiet或–silent 不显示错误信息。

-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。

-v或–verbose 显示指令执行过程。

–help 在线帮助。

–reference= 把指定文件或目录的权限全部设成和参考文件或目录的权限相同

–version 显示版本信息。

+ 开启权限范围的文件或目录的该项权限设置。

- 关闭权限范围的文件或目录的该项权限设置。

= 指定权限范围的文件或目录的该项权限设置。

+表示增加权限、-表示取消权限、=表示唯一设定权限。

r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

-c :若该档案权限确实已经更改,才显示其更改动作

-f :若该档案权限无法被更改也不要显示错误讯息

-v :显示权限变更的详细资料

-R :对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

–help :显示辅助说明

–version :显示版本

范例1:

将档案file1.txt设为所有人皆可读取:

chmod ugo+r file1.txt

将档案file1.txt设为所有人皆可读取:

chmod a+r file1.txt

将档案file1.txt与file2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:

chmod ug+w,o-w file1.txt file2.txt

将ex1.py设定为只有该档案拥有者可以执行:

chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取:

chmod -R a+r *

此外chmod也可以用数字来表示权限如chmod 777 file

语法为:chmod abc file

其中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=5。

范例2:

chmod a=rwx file和chmod 777 file效果相同

chmod ug=rwx,o=x file和chmod 771 file效果相同

若用chmod 4755 filename可使此程式具有root的权限

10 cp

功能说明:复制文件或目录

Linux下的cp命令用于复制文件或目录,该命令是最重要的文件操作命令,其命令格式如下:

cp [选项]  源文件 目标文件

cp [选项]  源文件组  目标目录

-a 在备份中保持尽可能多的源文件结构和属。

-b 作将要覆盖或删除文件的备份。

-f 删除已存在的目标文件。

-i 提示是否覆盖已存在的目标文件。

-p 保持原先文件的所有者,组权限和时间标志

-r 递归拷贝目录,把所有非目录文件当普通文件拷贝。

-R 递归拷贝目录。