Linux文件和目录管理常用命令(中)

ln 命令

描述:ln命令用来为文件创建连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。

语法:ln(选项)(参数)

常用选项:

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

-d或-F或――directory     建立目录的硬连接;

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

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

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

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

-S或--suffix=<字尾备份字符串>   用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;

-v或――verbose           显示指令执行过程;

-V或--version-control=<备份方式>      使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;

--help                    在线帮助;

--version                 显示版本信息。

用法举例:

将目录/usr/new/a1下的文件a2.c链接到目录/usr/old下的文件b2.c

cd /usr/new   

ln /a1/a2.c /usr/old/b2.c

说明:在执行ln命令之前,目录/usr/old中不存在b2.c文件。执行ln之后,在/usr/old目录中才有b2.c这一项,表明a2.c和b2.c链接起来(注意,二者在物理上是同一文件),利用ls -l命令可以看到链接数的变化。

在目录/usr/old下建立一个符号链接文件abc,使它指向目录/usr/new/a1

ln -s /usr/new/a1 /usr/old/abc

说明:执行该命令后,/usr/new/a1代表的路径将存放在名为/usr/old/abc的文件中。


updatedb 命令

描述:updatedb命令用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中。

说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

语法:updatedb(选项)

常用选项:

-o<文件>       忽略默认的数据库文件,使用指定的slocate数据库文件;

-U<目录>       更新指定目录的slocate数据库;

-v             显示执行的详细过程。

用法举例:

更新指定命令的slocate数据库     updatedb -U /usr/local/


dirname 命令

描述:dirname命令用来去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个“/”及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个“/”后无字符,dirname 命令使用倒数第二个“/”,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。

语法:dirname(选项)(参数)

常用选项:

--help       显示帮助

--version    显示版本号

用法举例:

dirname //       结果为 /

dirname /a/b/    结果为:/a

dirname a        结果为 .

dirname a/b      结果为路径名a


more 命令

描述:more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答: 按Space键:显示文本的下一屏内容。 按Enier键:只显示文本的下一行内容。按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。 按H键:显示帮助屏,该屏上有相关的帮助信息。按B键:显示上一屏内容。 按Q键:退出rnore命令。

语法:more(选项)(参数)

常用选项:

-<数字>:指定每屏显示的行数;

+<数字>:从指定数字的行开始显示。

-d     显示“[pressspace to continue,'q' to quit.]”和“[Press 'h' forinstructions]”;

-c     不进行滚屏操作。每次刷新这个屏幕;

-s     将多个空行压缩成一行显示;

-u     禁止下划线;

用法举例:

显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比。
more -dc file
显示文件file的内容,每10行显示一次,而且在显示之前先清屏。
more -c -10 file


less 命令

描述:less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

语法:less(选项)(参数)

常用选项:

-e       文件内容显示完毕后,自动退出;

-f       强制显示文件;

-g       不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;

-l       搜索时忽略大小写的差异;

-N        每一行行首显示行号;

-s        将连续多个空行压缩成一行显示;

-S        在单行显示较长的内容,而不换行显示;

-x<数字>  将TAB字符显示为指定个数的空格字符。


head 命令

描述:head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。

语法:head(选项)(参数)

常用选项:

-n<数字>    指定显示头部内容的行数;

-c<字符数>  指定显示头部内容的字符数;

-v          总是显示文件名的头信息;

-q          不显示文件名的头信息。

 

tail 命令

描述:tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。 注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。

语法:tail(选项)(参数)

常用选项:

--retry              即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“――follow=name”连用;

-c或――bytes=       输出文件尾部的N(N为整数)个字节内容;

-f或--follow       显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;

-F                   与选项“-follow=name”和“--retry"连用时功能相同;

-n或――line=        输出文件的尾部N(N位数字)行内容。

--pid=<进程号>      与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;

-q或――quiet或――silent           当有多个文件参数时,不输出各个文件名;

-s<秒数>或――sleep-interal=<秒数>  与“-f”选项连用,指定监视文件变化时间隔的秒数;

-v或――verbose      当有多个文件参数时,总是输出各个文件名;

--help               显示指令的帮助信息;

--version            显示指令的版本信息。

用法举例:

显示文件file的最后10行                    tail file  

显示文件file的内容,从第20行至文件末尾    tail +20 file

显示文件file的最后10个字符                tail -c 10 file


umask 命令

描述:umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。

语法:umask(选项)(参数)

常用选项:

-p:输出的权限掩码可直接作为指令来执行;

-S:以符号方式输出权限掩码。

用法举例:

利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,使得组用户的写权限,其他用户的读、写和执行权限都被取消: umask u=, g=w, o=rwx
执行该命令以后,对于下面创建的新文件,其文件主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消。

应注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中,利用它来设置指定的权限,而其余权限则被删除;但是在umask命令中,它将在原有权限的基础上删除指定的权限。
不能直接利用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令umask u=, g=w, o=rwx,虽然在命令行中,没有删去文件主和组用户的执行权限,但默认的文件权限还是640(即 rw-r-----),而不是750(rwxr-x---)。但是,如果创建的是目录或者通过编译程序创建的一个可执行文件,将不受此限制。在这种情况下,会设置文件的执行权限。 也可以使用八进制数值来设置mode。由于在umask中所指定的权限是要从文件中删除的,所以,如果该文件原来的初始化权限是777,那么执行命令umask 022以后,该文件的权限将变为755:如果该文件原来的初始化权限是666,那么该文件的权限将变为644。
可以使用下面的命令检查新创建文件的默认权限: umask -s

选项-s表示以字符形式显示当前的掩码。如果直接输入umask命令,不带任何参数,那么将以八进制形式显示当前的掩码。系统默认的掩码是0022。


chattr 命令

描述:chattr命令用来改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途;

b:不更新文件或目录的最后存取时间;

c:将文件或目录压缩后存放;

d:将文件或目录排除在倾倒操作之外;

i:不得任意更动文件或目录;

s:保密性删除文件或目录;

S:即时更新文件或目录;

u:预防意外删除。

语法:chattr(选项)(参数)

常用选项:

-R           递归处理,将指令目录下的所有文件及子目录一并处理;

-v<版本编号> 设置文件或目录版本;

-V           显示指令执行过程;

+<属性>      开启文件或目录的该项属性;

-<属性>      关闭文件或目录的该项属性;

=<属性>      指定文件或目录的该项属性。

用法举例:

用chattr命令防止系统中某个关键文件被修改:      chattr +i /etc/fstab

然后试一下rm、mv、rename等命令操作于该文件,都是得到Operation not permitted的结果。让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:

chattr +a /data1/user_act.log


lsattr 命令

描述:lsattr命令用于查看文件的第二扩展文件系统属性。

语法:lsattr(选项)(参数)

常用选项:

-E    可显示设备属性的当前值,但这个当前值是从用户设备数据库中获得的,而不是从设备直接获得的。 -D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志。

-R    递归的操作方式;

-V    显示指令的版本信息;

-a    列出目录中的所有文件,包括隐藏文件。

lsattr经常使用的几个选项-D,-E,-R这三个选项不可以一起使用,它们是互斥的,经常使用的还有-l,-H,使用lsattr时,必须指出具体的设备名,用-l选项指出要显示设备的逻辑名称,否则要用-c,-s,-t等选项唯一的确定某个已存在的设备。


chgrp 命令

描述:chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。

在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。

语法:chgrp(选项)(参数)

常用选项:

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

-f或--quiet或――silent 不显示错误信息;

-h或--no-dereference    只对符号连接的文件作修改,而不是该其他任何相关文件;

-R或――recursive       递归处理,将指令目录下的所有文件及子目录一并处理;

-v或――verbose         显示指令执行过程;

--reference=<参考文件或目录>   把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;

用法举例:

将/usr/new及其子目录下的所有文件的用户组改为user1

chgrp -R user1 /usr/new

 

chown 命令

描述:chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。只有文件主和超级用户才可以便用该命令。

语法:chown(选项)(参数)

常用选项:

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

-f或--quite或――silent  不显示错误信息;

-h或--no-dereference     只对符号连接的文件作修改,而不更改其他任何相关文件;

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

-v或――version         显示指令执行过程;

--dereference           效果和“-h”参数相同;

--help                  在线帮助;

--reference=<参考文件或目录>  把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;

--version               显示版本信息。

用法举例:

将目录/usr/new及其下面的所有文件、子目录的文件主改成 grp1:

chown -R grp1 /usr/new

 

mkdir 命令

描述:mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 

注意:在创建文件时,不要把所有的文件都存放在主目录中,可以创建子目录,通过它们来更有效地组织文件。最好采用前后一致的命名方式来区分文件和目录。例如,目录名可以以大写字母开头,这样,在目录列表中目录名就出现在前面。

在一个子目录中应包含类型相似或用途相近的文件。例如,应建立一个子目录,它包含所有的数据库文件,另有一个子目录应包含电子表格文件,还有一个子目录应包含文字处理文档,等等。目录也是文件,它们和普通文件一样遵循相同的命名规则,并且利用全路径可以唯一地指定一个目录。

语法:mkdir(选项)(参数)

常用选项:

-Z   设置安全上下文,当使用SELinux时有效;

-m<目标属性>或--mode<目标属性>   建立目录的同时设置目录的权限;

-p或--parents    若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

--version    显示版本信息。

用法举例:

在目录/usr/meng下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问

mkdir -m 700 /usr/meng/test

在当前目录中建立bin和bin下的os_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问       mkdir -p-m 750 bin/os_1

 

chmod 命令

描述:chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

权限范围的表示法如下:

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

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

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

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

r 读取权限,数字代号为“4”;

w 写入权限,数字代号为“2”;

x 执行或切换权限,数字代号为“1”;

- 不具任何权限,数字代号为“0”;

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

语法:chmod(选项)(参数)

常用选项:

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

-f或--quiet或――silent   不显示错误信息;

-R或――recursive         递归处理,将指令目录下的所有文件及子目录一并处理;

-v或――verbose           显示指令执行过程;

--reference= <参考文件或目录>  把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;

<权限范围>+<权限设置>     开启权限范围的文件或目录的该选项权限设置;

<权限范围>-<权限设置>     关闭权限范围的文件或目录的该选项权限设置;

<权限范围>=<权限设置>     指定权限范围的文件或目录的该选项权限设置;

用法举例:

为文件f01设置自己可以执行,组员可以写入的权限   

chmod u+x,g+w f01    chmod u=rwx,g=rw,o=r f01      chmod 764 f01

对文件f01的u,g,o都设置可执行属性     chmod a+x f01

把文件f01给uesr,添加到grp1组      chown user:grp1 f01

 

rmdir 命令

描述:rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。

注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。

虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

语法:rmdir(选项)(参数)

常用选项:

-p或--parents       删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

--ignore-fail-on-non-empty  此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;

-v或-verboes        显示命令的详细执行过程;

--help              显示命令的帮助信息;

--version           显示命令的版本信息。

用法举例:

删除子目录dir1和其父目录dir

cd /usr/new/test

rmdir -p dir/a1


locate/slocate 命令

描述:locate命令和slocate命令都用来查找文件或目录。 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

语法:locate/slocate(选项)(参数)

常用选项:

-d<目录>或--database=<目录>   指定数据库所在的目录;

-u         更新slocate数据库;

--help     显示帮助;

--version  显示版本信息。

用法举例:

搜索etc目录下所有以sh开头的文件:        locate /etc/sh

搜索用户主目录下,所有以m开头的文件:   locate ~/m

搜索用户主目录下,所有以m开头的文件,并且忽略大小写:    locate -i ~/m


tree 命令

描述:tree命令以树状图列出目录的内容。

语法:tree(选项)(参数)

常用选项:

-a   显示所有文件和目录;

-A   使用ASNI绘图字符显示树状图而非以ASCII字符组合;

-C   在文件和目录清单加上色彩,便于区分各种类型;

-d   先是目录名称而非内容;

-D   列出文件或目录的更改时间;

-f   在每个文件或目录之前,显示完整的相对路径名称;

-F   在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号;

-g   列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;

-i   不以阶梯状列出文件和目录名称;

-l   <范本样式> 不显示符号范本样式的文件或目录名称;

-l   如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;

-n   不在文件和目录清单加上色彩;

-N   直接列出文件和目录名称,包括控制字符;

-p   列出权限标示;

-P   <范本样式> 只显示符合范本样式的文件和目录名称;

-q   用“?”号取代控制字符,列出文件和目录名称;

-s   列出文件和目录大小;

-t   用文件和目录的更改时间排序;

-u   列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;

-x   将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。





你可能感兴趣的:(linux,字符串,源文件)