linux命令从入门到精通Word文档下载推荐.docx

上传人:b****5 文档编号:16200609 上传时间:2022-11-21 格式:DOCX 页数:47 大小:45.75KB
下载 相关 举报
linux命令从入门到精通Word文档下载推荐.docx_第1页
第1页 / 共47页
linux命令从入门到精通Word文档下载推荐.docx_第2页
第2页 / 共47页
linux命令从入门到精通Word文档下载推荐.docx_第3页
第3页 / 共47页
linux命令从入门到精通Word文档下载推荐.docx_第4页
第4页 / 共47页
linux命令从入门到精通Word文档下载推荐.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

linux命令从入门到精通Word文档下载推荐.docx

《linux命令从入门到精通Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《linux命令从入门到精通Word文档下载推荐.docx(47页珍藏版)》请在冰豆网上搜索。

linux命令从入门到精通Word文档下载推荐.docx

*在列文件或目录时,有时会遇到“t”位。

“t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主

同等的权限。

不过有的系统在这一规则上并不十分严格。

还可以通过使用-R选项连同子目录下的文件一起设置:

chmod-R664/usr/local/home/dave/*

这样就可以一次将/usr/local/home/dave目录下的所有文件连同各个子目录下的文件的权限

全部设置为文件属主和同组用户可读和写,其他用户只读。

使用-R选项一定要谨慎,只有在

需要改变目录树下全部文件权限时才可以使用。

目录的读权限位意味着可以列出其中的内容。

写权限位意味着可以在该目录中创

建文件,如果不希望其他用户在你的目录中创建文件,可以取消相应的写权限位。

执行权限

位则意味着搜索和访问该目录

chmod-R-hownerfile

-R选项意味着对所有子目录下的文件也都进行同样的操作。

-h选项意味着在改变符号链

接文件的属主时不影响该链接所指向的目标文件

如果你希望知道自己属于哪些用户组,可以用如下的命令:

group或者用id命令

为了找出其他用户所属于的组,可以用如下的命令:

groupJacky

当最初登录到系统中时,umask命令确定了你创建文件的缺省模式。

这一命令实际上和

chmod命令正好相反。

你的系统管理员必须要为你设置一个合理的umask值,以确保你创建的

文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。

在已经登录之后,可以按照个人的偏好使用umask命令来改变文件创建的缺省权限。

相应

的改变直到退出该shell或使用另外的umask命令之前一直有效。

一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文

件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。

如果希望永久性

地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、

其他用户)存在一个相应的umask值中的数字。

对于文件来说,这一数字的最大值分别是6。

统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一

权限。

目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。

该命令的一般形式为:

umasknnn

其中nnn为umask置000-777。

例如,umask值002所对应的文件和目录创建缺省权限分别为664和775

umask值与权限

umask文件目录

067

166

245

344

423

522

601

700

对于umask值002,相应的文件和目录缺省创建权限是什么呢?

第一步,我们首先写下具有全部权限的模式,即777(所有用户都具有读、写和执行权限)。

第二步,在下面一行按照umask值写下相应的位,在本例中是002。

第三步,在接下来的一行中记下上面两行中没有匹配的位。

这就是目录的缺省创建权限。

稍加练习就能够记住这种方法。

第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即

可。

这就是上面的例子,其中umask值为002:

1)文件的最大权限rwxrwxrwx(777)

2)umask值为002-------w-

3)目录权限这就是目录创建缺省权限

rwxrwxr-x(775)

4)文件权限这就是文件创建缺省权限

rw-rw-r--(664)

下面是另外一个例子,假设这次umask值为022:

2)umask值为022----w--w-

rwxr-xr-x(755)

rw-r--r--(644)

如果想知道当前的umask值,可以使用umask命令:

wangjian@wangjian-laptop:

~$umask

0022

存在两种不同类型的链接,软链接和硬链接,这里我们只讨论软链接。

软链接实际上就

是一个指向文件的指针。

你将会发现这种软链接使用起来非常方便。

下面我们就解释一下符号链接是怎么回事。

比方说在/usr/local/admin/sales目录下有一个

含有销售信息的文件,销售部门的每一个人都想看这份文件。

你可以在每一位用户的$HOME

目录下建立一个指向该文件的链接,而不是在每个目录下拷贝一份。

这样当需要更改这一文

件时,只需改变一个源文件即可。

每个销售$HOME目录中的链接可以起任何名字,不必和源

文件一致。

如果有很多子目录,而进入这些目录很费时间,在这种情况下链接也非常有用。

可以针

对$HOME目录下的一个很深的子目录创建一个链接。

还有,比如在安装一个应用程序时,它

的日志被保存到/usr/opt/app/log目录下,如果想把它保存在另外一个你认为更方便目录下,可

以建立一个指向该目录的链接。

ln[-s]source_pathtarget_path

其中的路径可以是目录也可以是文件。

假如系统中有40个销售和管理用户,销售用户使用一个销售应用程序,而管理用户使用

一个管理应用程序。

我作为系统管理员该怎么做呢?

首先删除它们各自$HOME目录下的所

有.profile文件。

然后在/usr/local/menus/目录下创建两个profile文件,一个是sales.profile,一

个是admin.profile,它们分别为销售和管理人员提供了所需的环境,并引导他们进入相应的应

用程序。

现在我在所有销售人员的$HOME目录下分别创建一个指向sales.profile的链接,在所

有管理人员的$HOME目录下分别创建一个指向admin.profile文件的链接。

注意,不必在上面

命令格式中的target_path端创建相应文件,如果不存在这样一个文件,ln命令会自动创建该文件。

下面就是我对销售人员matty所做的操作。

下面是另外一个例子。

我所管理的系统中有一个网络监视器,它将日志写在/usr/opt/

monitor/regstar目录下,但其他所有的日志都保存在/var/adm/logs目录下,这样只需在该目录

下建立一个指向原有文件的链接就可以在一个地方看所有的日志了,而不必花费很多时间分

别进入各个相应的目录。

下面就是所用的链接命令:

$ln-s/usr/opt/monitor/regstar/reg.log/var/adm/logs/monitor.log

在创建链接的时候,不要忘记在原有

目录设置执行权限。

链接一旦创建,链接目录将具有权限777或rwxrwxrwx,但是实际的原

有文件的权限并未改变。

在新安装的系统上,通常要进行这样的操作,在/var目录中创建一个指向/tmp目录的链接,

因为有些应用程序认为存在/var/tmp目录(然而它实际上并不存在),有些应用程序在该目录中

保存一些临时文件。

为了使所有的临时文件都放在一个地方,可以使用ln命令在/var目录下建

立一个指向/tmp目录的链接。

ln-s/tmp/var/tmp

002

Find命令的一般形式为:

findpathname-options[-print-exec-ok]

让我们来看看该命令的参数:

pathnamefind命令所查找的目录路径。

例如用.来表示当前目录,用/来表示系统根目录。

-printfind命令将匹配的文件输出到标准输出。

-execfind命令对匹配的文件执行该参数所给出的shell命令。

相应命令的形式为'

comm-

and'

{}\;

注意{}和\;

之间的空格。

-ok和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,

在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

find命令有很多选项或表达式,每一个选项前面跟随一个横杠-。

让我们先来看一下该命

令的主要选项,然后再给出一些例子。

-name按照文件名查找文件。

-perm按照文件权限来查找文件。

-prune使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了-depth

选项,那么-prune选项将被find命令忽略。

-user按照文件属主来查找文件。

-group按照文件所属的组来查找文件。

-mtime-n+n按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n

表示文件更改时间距现在n天以前。

Find命令还有-atime和-ctime选项,但它们都和-mtime选项相似,所以我们在这里只介绍-mtime选项。

-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

-newerfile1!

file2查找更改时间比文件file1新但比文件file2旧的文件。

-type查找某一类型的文件,诸如:

b-块设备文件。

d-目录。

c-字符设备文件。

p-管道文件。

l-符号链接文件。

f-普通文件。

-sizen[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-depth在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件

-fstype

/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount在查找文件时不跨越文件系统mount点。

-follow如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件,

使用~作为'

pathname参数,波浪号~代表了你的$HOME目录。

$find~-name"

*.txt"

-print

想要在当前目录及子目录中查找所有的‘*.txt’文件,可以用:

$find.-name"

想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

[A-Z]*"

想要在/etc目录中查找文件名以host开头的文件,可以用:

$find/etc-name"

host*"

想要查找$HOME目录中的文件,可以用:

$find~-name"

*"

-pri或find.-print

nt

要想让系统高负荷运行,就从根目录开始查找所有的文件。

如果希望在系统管理员那里

保留一个好印象的话,最好在这么做之前考虑清楚!

$find/-name"

*"

如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是*.txt的文

件,下面的命令就能够返回名为ax37.txt的文件:

$find.-name"

[a-z][a-z][0--9][0--9].txt"

如果希望按照文件权限模式来查找文件的话,可以采用-perm选项。

你可能需要找到所有

用户都具有执行权限的文件,或是希望查看某个用户目录下的文件权限类型。

在使用这一选

项的时候,最好使用八进制的权限表示法。

为了在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用

户可以读、执行的文件,可以用:

$find.-perm755-print

如果希望在当前目录下查找所有用户都可读、写、执行的文件(要小心这种情况),我们

可以使用find命令的-perm选项。

在八进制数字前面要加一个横杠-。

在下面的命令中-perm代

表按照文件权限查找,而‘007’和你在chmod命令的绝对模式中所采用的表示法完全相同。

$find.-perm-007-print

2.1.3忽略某个目录

如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,

那么可以使用-prune选项来指出需要忽略的目录。

在使用-prune选项时要当心,因为如果你同

时使用了-depth选项,那么-prune选项就会被find命令忽略。

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:

$find/apps-name"

/apps/bin"

-prune-o-print

2.1.4使用user和nouser选项

如果希望按照文件属主查找文件,可以给出相应的用户名。

例如,在$HOME目录中查找

文件属主为dave的文件,可以用:

$find~-userdave-print

在/etc目录下查找文件属主为uucp的文件:

$find/etc-useruucp-print

为了查找属主帐户已经被删除的文件,可以使用-nouser选项。

这样就能够找到那些属主

在/etc/passwd文件中没有有效帐户的文件。

在使用-nouser选项时,不必给出用户名;

find命令

能够为你完成相应的工作。

例如,希望在/home目录下查找所有的这类文件,可以用:

$find/home-nouser-print

2.1.5使用group和nogroup选项

就像user和nouser选项一样,针对文件所属于的用户组,find命令也具有同样的选项,为

了在/apps目录下查找属于accts用户组的文件,可以用:

$find/apps-groupaccts-print

要查找没有有效所属用户组的所有文件,可以使用nogroup选项。

下面的find命令从文件

系统的根目录处查找这样的文件

$fine/-nogroup-print

2.1.6按照更改时间查找文件

如果希望按照更改时间来查找文件,可以使用mtime选项。

如果系统突然没有可用空间了,

很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的

文件。

希望在系统根目录下查找更改时间在5日以内的文件,可以用:

$find/-mtime-5-print

为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:

$find/var/adm-mtime+3-print

2.1.7查找比某个文件新或旧的文件

如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选

项。

它的一般形式为:

newest_file_name!

oldest_file_name

其中,!

是逻辑非符号。

这里有两个文件,它们的更改时间大约相差两天。

age.awk4/18belts.awk4/20

下面给出的find命令能够查找更改时间比文件age.awk新但比文件belts.awk旧的文件:

find.-newerage.awk!

-newerbelts.awk-execls-l{}\;

如果想使用find命令的这一选项来查找更改时间在两个小时以内的文件,除非有一个现成

的文件其更改时间恰好在两个小时以前,否则就没有可用来比较更改时间的文件。

为了解决

这一问题,可以首先创建一个文件并将其日期和时间戳设置为所需要的时间。

这可以用touch

命令来实现。

假设现在的时间是23:

40,希望查找更改时间在两个小时以内的文件,可以首先创建这样

一个文件:

一个符合要求的文件已经被创建;

这里我们假设今天是五月四日,而该文件的更改时间

是21:

40,比现在刚好早两个小时。

现在我们就可以使用find命令的-newer选项在当前目录下查找所有更改时间在两个小时以

内的文件:

$find.-newerdstamp-print

2.1.8使用type选项

UNIX或LINUX系统中有若干种不同的文件类型,这部分内容我们在前面的章节已经做了

介绍,这里就不再赘述。

如果要在/etc目录下查找所有的目录,可以用:

$find/etc-typed-print

为了在当前目录下查找除目录以外的所有类型的文件,可以用:

$find.!

-typed-print

为了在/etc目录下查找所有的符号链接文件,可以用:

$find/etc-typel-print

2.1.9使用size选项

可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可

以用字节来计量。

以字节计量文件长度的表达形式为Nc;

以块计量文件长度只用数字表示即

就我个人而言,我总是使用以字节计的方式,在按照文件长度查找文件时,大多数人都

喜欢使用这种以字节表示的文件长度,而不用块的数目来表示,除非是在查看文件系统的大

小,因为这时使用块来计量更容易转换。

为了在当前目录下查找文件长度大于1M字节的文件,可以用:

$find.-size+1000000c-print

为了在/home/apache目录下查找文件长度恰好为100字节的文件,可以用:

$find/home/apache-size100c-print

为了在当前目录下查找长度超过10块的文件(一块等于512字节),可以用:

$find.-size+10-print

2.1.10使用depth选项

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。

使用depth选项就

可以使find命令这样做。

这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,

希望首先备份所有的文件,其次再备份子目录中的文件。

在下面的例子中,find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

它将首先匹配所有的文件然后再进入子目录中查找。

CON.FILE"

-depth-print

2.1.11使用mount选项

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

在下面的例子中,我们从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:

*.XC"

-mount-print

2.1.13使用exec或ok来执行shell命令

当匹配到一些文件以后,可能希望对其进行某些操作,这时就可以使用-exec选项。

一旦

find命令匹配到了相应的文件,就可以用-exec选项中的命令对其进行操作(在有些操作系统

中只允许-exec选项执行诸如ls或ls-l这样的命令)。

大多数用户使用这一选项是为了查找旧文

件并删除它们。

这里我强烈地建议你在真正执行rm命令删除文件之前,最好先用ls命令看一

下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令,然后是一对儿{},一个空格和一个\,最后是一个

分号。

为了使用exec选项,必须要同时使用print选项。

如果验证一下find命令,会发现该命令只

输出从当前路径起的相对路径及文件名。

为了用ls-l命令列出所匹配到的文件,可以把ls-l命令放在find命令的-exec选项中,例如:

~$find.-namefile2-execls-l{}\;

-rw-rw-r--1wangjianwangjian02009-08-1409:

08./file2

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls-l

命令

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1