Linux中文件、目录的默认权限umask命令、查找命令、压缩命令

主要内容:

1.文件和目录的权限

2.文件和目录的默认权限和umask

3.Linux查找及压缩

 

1.文件和目录的权限

权限对于文件:

r(read):可以获取文件的内容

w(write):可以编辑、新增或修改文件的内容(不包括删除该文件)

x(excute):该文件具有被系统执行的权限。

 

权限对于目录:

r(read contents in directory):表示具有读取目录结构列表的权限,即可使用ls命令将该目录的内容列表显示出来

w(modify contents of directory):

也就是在当前目录下,可以有如下权限:

新建新的文件或目录;

删除已有目录或文件;

将已有目录或文件重命名;

转移该目录内的文件或目录的位置;

x(access directory):目录的可执行权限代表用户是否能够进入该目录,也就是cd进入该目录的权限。

 

总结一下:

x cd

rx cd ls

wx cd touch rm vi mv

 

 

2.文件和目录的默认权限和umask

[root@qin-1 ~]# umask           //root用户的umask值uma

0022                                         //与一般权限有关的是后边3个数字

[dmtsai@qin-1 ~]$ umask       //dmtsai用户的umask值

0002                   

解释:

若用户创建“文件”则默认没有可执行(x)权限,即只有r、w这两个权限,也就是说最大为666,默认权限为如:-rw-rw-rw-

若用户创建“目录”,则由于x与是否进入此目录有关,因此默认为权限均开放,极为777,默认权限为:drwxrwxrwxuma

umask的分数是指“默认值需要减掉的权限”。因为r,w,x分别是4,2,1,也就是说,当要拿掉写的权限,就是输入2,而如果拿掉读的权限,也就是4,那么拿掉读写的权限,也就是6,而要拿掉执行和写入的权限,也就是3。

 

新建文件时(假设umask为022):

(-rw-rw-rw-)-(-----w--w-)===>-rw-r--r—

 

新建文件夹时(假设umask为022):

(drwxrwxrwx)-(d----w--w-)===>drwxr-xr-x

 

[root@qin-1 teach]# umask

0022

[root@qin-1 teach]# touch file

[root@qin-1 teach]# mkdir dir

[root@qin-1 teach]# ll

total 0

drwxr-xr-x 2 root root 6 Nov  8 15:24 dir   //(d rwx rwx rwx)-(d --- -w- -w-)===>d rwx r-x r-x

-rw-r--r-- 1 root root 0 Nov  8 15:24 file     //(- rw- rw- rw-)-(- --- -w- -w-)===>- rw- r-- r--

 

3.Linux查找及压缩

(1)which

(2)whereis

(3)locate

(4)find

(5)grep

(6)gzip

(7)bzip2

(8)tar

 

(1)which [命令名]  查询可执行文件的位置,但是只能查找环境变量下的命令

#只搜索PATH环境变量里规定的目录,查询可执行文件

如:which ls

如:which ifconfig

如:which X

/usr/bin/which: no X in (/usr/lib/jvm/jdk1.8.0_141/bin:/usr/lib/jvm/jdk1.8.0_141/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/var/local/apache-maven-3.2.2/bin:/root/hadoop-2.7.6/bin:/root/hadoop-2.7.6/sbin:/root/bin)

 

(2)whereis [选项] [命令名]

#搜索命令所在路径及帮助文档所在的位置

选项:

-b:只查找可执行文件

-m:只查找帮助文件

如:whereis ls

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz           //man目录下的都是帮助文档

 

(3)locate [选项] [文件名]

#查找文件所在位置

选项:

-i:忽略大小写差异

-r:后边可以接正则表达式

locate命令查找文件是由已创建的数据库/var/lib/mlocate里面的数据查找到的,不用直接去硬盘中访问数据,所以查找速度很快。

centos7中默认没有locate命令,所以需要自行安装:

wget epel url下载 修改yum的repos

yum search locate

yum -y install mlocate

updatedb  更新数据库以后才能查找出来。 只有root用户才可以执行该操作

[root@qin-1 ~]# locate jdk-8u141-linux-x64.tar.gz

/root/jdk-8u141-linux-x64.tar.gz

[root@qin-1 ~]# touch qlf        //新建一个文件,名为qlf

[root@qin-1 ~]# locate qlf              //新建的文件,找不到

[root@qin-1 ~]# updatedb              //需要更新数据库,使用updatedb命令

[root@qin-1 ~]# locate qlf              //更新数据库后能找到文件qlf的位置

/root/qlf

 

(4)find [搜索范围] [搜索条件]

#find的命令搜索速度较慢,因为它是搜索整个硬盘

如:find / -name original-ks.cfg

 

●find命令与时间有关的参数:

如:find /var/log/ -mtime +10 //查找10天前修改的文件

 

-atime   文件访问时间    access

-ctime    改变文件属性    change

-mtime   修改文件内容    modify

-10         10天内修改文件

10          10天当天修改的文件

+10        10天前修改的文件

 

●find命令与用户及用户组的参数:

-user name

-group name等

如:find -user root           //查找所有者为root的文件

 

●find命令其它可进行的操作。

对查找出来的文件可以进行一些特定的操作:

如:find / -name "*.tar.gz" -exec ls -l {} \;

在/下查找文件名字为.tar.gz的文件 并给这些文件执行命令 ls -l

-rw-r--r-- 1 root root 185516505 Nov  6 10:11 /root/jdk-8u141-linux-x64.tar.gz

-rw-r--r-- 1 root root 216745683 Apr 18  2018 /root/hadoop-2.7.6.tar.gz

-rw-r--r-- 1 20415 101 391853 Apr 18  2018 /root/hadoop-2.7.6/share/hadoop/kms/tomcat/bin/tomcat-native.tar.gz

 

●find命令与文件权限及文件名有关的参数

如:find /root –name “install.log*”

如:find /root –name “ab[cd]”    //搜索文件名叫abc或者叫abd的文件

Linux的通配符:

  • 匹配任意内容

?     匹配任意一个字符

[]     匹配任意一个中括号内的字符

如:

find . -size 25k    //查找文件大小是25KB的文件

 

-25k       小于25KB的文件

25k 等于25KB的文件

+25k      大于25KB的文件

 

如:find /etc -size +20k -a -size -50k   //查找/etc目录下,大于20KB并且小于50KB的文件

-a and 逻辑与,两个条件都满足

-o or 逻辑或,两个条件满足一个即可

 

(5)grep命令

grep [选项] 字符串 文件名

#在文件中匹配符合条件的字符串  仅仅在文件里面的查找

选项:

-i     忽略大小写

-v    排除制定字符串

如:grep "yes" original-ks.cfg               //在文件中搜索包含yes字符串的行

 

(6)gzip [选项] 文件名

#只能用来压缩文件,不能用来压缩目录 压缩以后源文件消失。强行压缩目录时,只是将目录下面的所有文件压缩,不会对目录进行压缩。

后缀名为gz

选项:

-c:将压缩的数据输出到屏幕上,保留原始文件

-d:解压

-v:显示原文件/压缩文件的压缩比例等信息

-r:将目录下的每个文件都分别压缩

如:gzip -v testfile            //压缩testfile文件

如:gzip -d testfile.gz       //解压testfile.gz

如:gzip -c words > words.gz //压缩words文件后,保留原文件

如:gzip -r teach              //该目录下的所有文件将会被分别压缩,该目录下的子目录不会被压缩

如:gzip -dr teach //该目录下的所有文件将会被解压。

 

(7)bzip2命令和gzip命令用法几乎相同,bzip2的压缩比更佳。请同学们自行学习。后缀名为bz2

 

(8)tar

#打包命令

-c:新建打包文件

-v:在解压/解压缩的处理的过程中,将正在处理的文件名显示出来

-f filename:-f后边要跟一个被处理的文件名

-x:解打包或解压缩的功能,可与-C(大写)在特定目录中解开

-z:通过对gzip的支持进行压缩/解压缩,此时文件名为最好为*.tar.gz

如:tar -cvf data.tar ./data/      //在当前目录下新建一个包名为data.tar,将data目录进行打包

如:tar -xvf data.tar -C ./teach/      //将data.tar解压到./teach目录中去

如:tar -zcvf data.tar.gz data          //将data目录打包并压缩成.tar.gz文件

如:tar -zxvf data.tar.gz

 

小提示:

cvf   xvf    常作为组合使用。若再压缩为gz包,则再分别加上z参数。

 

(9)zip入门

如:zip a.zip /etc/passwd /etc/shadow         //将/etc/passwd和/etc/shadow文件添加到a.zip压缩包中

如:unzip a.zip

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

练习:

 

练习1:使用root用户在/tmp目录下新建目录testing和文件testing/file,给testing目录赋权限为744(chmod 744 testing),给testing/file文件赋权限为600(chmod 600 testing/file)。编辑file内容为:content,保存退出,新建一个用户为shrek,查看shrek用户是否能够打开testing目录。若不能,让shrek用户拥有testing目录(chown shrek /tmp/testing),再次查看shrek用户是否能够进入目录且编辑、删除文件file。

cd /tmp

mkdir testing

chmod 744 testing

touch testing/file

vi file

chmod 600 testing/file

ls -ald testing testing/file

 

练习2:假设你的umask为003,请问该umask情况下,新建的文件和文件夹权限是什么?

 

练习3:练习使用gzip对文件进行压缩、解压缩。

 

练习4:练习使用tar命令对目录进行打包并压缩和解包、解压缩。

 

参考答案:

练习1:

[root@qin-1 tmp]# mkdir testing

[root@qin-1 tmp]# chmod 744 testing

[root@qin-1 tmp]# touch testing/file

[root@qin-1 tmp]# ls -ald testing testing/file

drwxr--r-- 2 root root 18 Nov  8 16:00 testing

-rw-r--r-- 1 root root  0 Nov  8 16:00 testing/file

[root@qin-1 tmp]# cd testing/

[root@qin-1 testing]# vi file

[root@qin-1 testing]# cd ..

 

[root@qin-1 tmp]# su - shrek                //切换用户

[shrek]@qin-1 tmp]$ cd testing/

-bash: cd: testing/: Permission denied          //不能打开,因为shrek不在root组内,且shrek只有r权限,没有x权限,所以不能打开

[shrek@qin-1 tmp]$ exit

logout

 

[root@qin-1 tmp]# chown dmtsai testing/    //shrek为文件的拥有者后对testing文件夹的权限是rwx

 

[root@qin-1 tmp]# su - shrek

Last login: Thu Nov  8 14:18:12 CST 2018 on pts/1

[shrek@qin-1 ~]$ cd /tmp

[shrek@qin-1 tmp]$ cd testing/

[shrek@qin-1 testing]$ ls

file

[shrek@qin-1 testing]$ rm -rf file

 

练习2:

umask为003,所以去掉的权限为(- --- --- -wx)

文件:(- rw- rw- rw-)-(- --- --- -wx)===>- rw- rw- r--

目录:(d rwx rwx rwx)-(- --- --- -wx)===>d rwx rwx r--

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值