LINUX SHELL编程从初学到精通(第二章 Linux文件系统和文本编辑器)(下)

来源:互联网 发布:北京网络医生招聘 编辑:程序博客网 时间:2024/05/21 10:52

2.2文件和目录操作

2.2.1文件操作常用命令

1.文件清单命令--ls

-c 按文件的修改时间排序

-d 如果参数是目录,只显示其名称,而不显示其下的各文件。往往与l选项一起使用,以得到目录的详细信息。

2.文件复制命令--cp

cp [option] [source] [destination]

为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令复制文件后,这个文件就会被新源文件覆盖。因此建议在使用cp时,最好使用-i选项,在覆盖文件时最后确认。

3.文件移动命令--mv

mv [option] [source] [destination]

1.如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。

2.使用mv命令将文件file1.txt可以重命名为file2.txt。

4.删除文件命令--rm

-f 忽略不存在的文件,从不给出提示

-r 指示rm将参数中列出的全部目录和子目录均递归的删除

-i 进行交互式删除

2.2.2目录操作常用命令

1.创建目录命令--mkdir

-m 对新建目录设置存取权限

mkdir -m 777 newfolder

-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建多个目录

2.删除目录命令--rmdir

由于rmdir仅仅能删除父目录中包含空子目录的情况,如果目录中存在文件,需要使用 rm -rf [directoryName]命令代替rmdir。删除目录时,同样要求该用户拥有对父目录的写权限。

2.2.3文件和目录权限管理

1.更改文件(目录)权限--chmod

drwxr-xr--   d:文件类型 rwx:U权限 r-x:G权限 r--:O权限

 

chmod也支持以数组方式修改权限,三个权限分别由三个数字表示:
-r =4(2^2)
-w =2(2^1)
-x =1(2^0)
使用数组表示权限时,每组权限分别为对应数字之和:
rw =4+2=6
rwx=4+2+1=7
r-x=4+1=5

所以使用数字表示ugo权限使用如下表示:
chmod 660 linuxcast.net == rw-rw----

2.更改文件(目录)属主命令--chown

chown命令可以改变文件或目录的所属用户,这个命令只由系统管理者(root)使用,一般使用者没有权限改变别人的文件或目录所属用户。需要注意的是,当用户要改变一个文件的属主时,所使用的用户除了是root用户外,还可以是目标属组的成员。

chown -R wyq file.txt

-R 参数递归的修改目录下的所有文件的所属用户

3.特殊权限命令--SUID与SGID

除了上面提到的基本权限操作外,还有特殊权限存在。有时却需要没有被授权的用户完成某项任务,例如passwd程序,它允许用户改变口令,这就要求改变/etc/shadow文件口令域。然而系统管理员不允许普通用户拥有直接改变这个文件的权利,SUID/SGID便应运而生。

1.SUID:当设置了SUID位的可执行文件被执行时,该文件以所有者的身份运行,也就是说,无论谁来执行这个文件,它都拥有文件所有者的特权,可以任意使用该文件拥有者能使用的全部系统资源。如果所有者是root,那么执行人就有超级用户的特权了。

2.SGID:当设置了SGID位的可执行文件被执行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源。若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p选项,才能保留原来所属组设置。

SUID和SGID占据了ls -l清单中x位相同的空间,如果开始设置了可执行权限x位,则其相应的位置用小写的s表示,如果没有设置可执行权限x位,则其相应位置表示为大写的S。

chmod u+s [filename]

chmod u-s [filename]

chmod g+s [filename]

chmod g-s [filename]

2.2.4查找文件命令--find

find [路径] [选项] [操作]

find . -name *linuxcast* (. -name表示在当前目录下按文件名查找,*代表0个或者多个字符,所有在文件中包含Linuxcast)
find / -name *.conf
find / -perm  777 (-perm是按权限查找,后面只能跟数字)
find / -type d (按照类型查找,d是文件夹 查找根目录下面的所有文件夹)
find . -name "*linuxcast*" -exec ls -l {} \;(找到以linuxcast通配的文件,然后执行ls -l命令显示这些详细信息 -exec 和{} \都是固定格式,注意后面的分号)

 

0 0
原创粉丝点击