Linux命令(find、tar、umask)
umask
- umask可以查询出默认权限。若用户创建文件,默认是没有执行权限的,默认是-rw-rw-rw-。若用户创建目录,则由于执行权限和是否能进入目录有关,因此,具有执行权限,默认为所有权限均开放的,即为drwxrwxrwx。例如,在当前用户umask一下,得到值为0022(当前2015年1月只能理解后三位),或者unmask –s 可得到 u=rwx,g=rx,o=rx 。即把你的默认权限拿掉022的权限值。那么,当前用户创建的文件权限就是-rw-r--r--。创建的目录权限为drwxr-xr-x。
系统时间
- 三个时间的理解:mtime、ctime、atime。modification time 当该文件的内容数据发生变化时,就会更新这个时间。重点是文件的内容更新,而不是文件的属性或者权限。status time(ctime) 当该文件状态发生改变时,会更新该文件的ctime,比如文件的权限或者属性更改了。access time(atime) 当该文件被访问时,会更新这个读取时间,比如我们用cat file ,file的atime即被更新。查询该文件的atime或者ctime时,用ls –l --time=atime file(即ll file),而不是用ls file。
权限
- 4为SUID,2为SGID,1为SBIT,当s在owner上面时权限值就是4,s在group上面时权限值就是2,t在others上面时权限值就是1。当然SUID、SGID、SBIT都是在执行权限上面加的。例如
- -rwsr-xr-x 表示加入了具有SUID的权限,权限值为4755。
- -rwsr-sr-x 表示加入了具有SUID和SGID的权限,权限值是6755。
- -rwxr-xr-t 表示加入了具有SBIT的权限,权限值为1755。
- -rwSrwSrwT 表示具有空的SUID/SGID权限。User,group和others都没有x的执行权限(因为666),所以这个S、T代表是空的。SUID是表示该文件在执行时具有文件拥有者的权限,但是文件拥有者都没有执行权限,所有就没有执行权限给其他人使用,当然就是空的。
find
1)可以查找mtime、ctime、atime的相关参数。
find –mtime 4 表示现在往前4×24 到5×24小时之间的文件。
find –mtime -4 表示现在往前0×24 到 4×24 小时之间的文件。
find –mtime +4 表示现在往前5×24 之前的文件。
find -newer filename 表示比filename还要新的文件。
2)与用户和用户组有关的参数。
find –user name 查找属于用户名为name的文件。
find –group name 查找属于用户组名为name的文件。
find –nouser 查找不属于/etc/passwd的用户名的文件。
find –nogroup 查找不属于/etc/group的用户组的文件。
find –uid num 查找属于用户名的uid为num的文件。
find –gid num 查找属于用户名的gid为num的文件。
3)与文件权限及名称相关的参数。
find –name filename 查找名称为filename的文件。
find –size [+|-]SIZE 查找比SIZE大或者小的文件。SIZE的单位有c(byte)和k(1024bytes),例如查找大于8000KB的文件:
find –size +8000k
find –type TYPE 查找类型为TYPE的文件。TYPE包括文件(f)、设备文件(b,c)、目录(d)、连接文件(l)、套接字(s)、FIFO(p)。例如查找根目录下所有的套接字文件:
find / -type s
find –perm mode 表示该文件的权限等于mode。
例如:find –perm 4755 列出来的文件权限应该就是-rwsr-xr-x。
find –perm –mode 表示列出来的文件必须包括mode的权限。
比如 find –perm -0744 (权限-rwxr—r---),-rwsr-xr-x也能被查出来,因为后者包含了前者。
find –perm +mode 表示包含任一mode的权限的文件都会被列出来。
4) 其他操作:-exec command,-exec后面可以直接接命令。
find –size +300k –exec ls –l {} \;(反斜杠是用来转义分号的。)
当然find还可以通过通配符(*)来查找。例如,用通配符查找名中含’lsj’的文件:
find /u01/soft/callout/temp –name ‘*lsj*’
当然还有一些可以用到“且”或者“或”的关系,“且”用-a表示(and的缩写吧),“或”用-o表示(or的缩写吧)。比如查大于50KB小于60KB的文件:
find –size +50k –a –size -60k 或者
find –size +50k –size -60k
比如查找大于50K并且不属于root的文件:
find –size +50k –a –not –user root
比如查找大于1500KB或者等于0KB的文件:
find \(–size +1500k –o –size 0 \) –exec ls –l {} \;
- 系统目前已加载到内存中支持的文件系统则有: cat /proc/filesystems
tar
-j 是通过biz2 程序进行压缩的,通常给这个文件取名为*.tar.bz2。
-z 是通过gzip程序进行压缩的,通常给这个文件取名为*.tar.gz。
-c 新建打包文件,可搭配-v来查看打包过程中的文件名。
-t 是用来查看打包文件中有哪些文件名。
-x 是解包或解压缩的功能,可以搭配-C在特定目录中揭开。-x、-t、-c绝对不可同时出现在一个命令中。-c是新建打包的,-t是查看打完包的,-x是解包的,所以三者出现在一个命令中,不就搞基了吗?
-p 保留备份属于的原本权限与属性,常用于备份重要的配置文件。
-P 这个是保留根目录存在的意思。(tar打包都会去掉根目录,为什么呢?主要是为了安全。如果我们没有去掉根目录,解压的时候,就会把你之前备份的那些文件给覆盖,因为解压后带了绝对路径,所以不安全。去掉这个/,它就有点像相对路径了,你在哪个目录解开的话,里面的文件就会放到当前目录,就不会覆盖到你之前的目录里面去。所以这里就诞生了这个-P的参数)
-C 指定解压到哪个目录。
- 压缩:tar –jcv –f filename.tar.bz2 [-|d] 这个压缩比更小,更爽。
tar –zcv –f filename.tar.gz [-|d] 这个压缩比没有上面那个好。
- 查看:
tar –jtv –f filename.tar.bz2 –j压缩的就只有-j去查看
tar –ztv –f filename.tar.gz -z 压缩的就只有-z去查看
- 解压:
tar –jxv –f filename.tar.bz2
tar –zxv –f filename.tar.gz
- 解压到指定目录:
tar –jxv –f filename.tar.bz2 –C [d]
- 解压单一文件:
tar –jxv –f filename.tar.bz2 文件路径/文件名 –C [d] 这里必须加上文件路径,否则会报错“归档中找不到”。