Linux文件与目录管理

一.常用命令

1.cd :切换目录
2.pwd :显示当前目录 pwp -P 显示当前路径(如果时连接文件则显示正确的完整路径,不显示链接文件路径)
3.mkdir

mkdir -p test1/test2/test3  一次性创建多层目录
mkdir -m 711 test2   创建文件的同时设置权限

4.rm -r test 递归的删除test下的目录
5.echo $PATH 打印环境变量
6.PATH=”$PATH”: /root 添加环境变量
7.mv

 mv -i resource des   (inquiry)若目标文件已存在会先询问
 mv -r resource des   (fource)不会询问直接覆盖
 mv -u resource des   (update)目标文件已存在且resource比较新
 mv test1 test2       重命名

8.文件内容查阅
(1)cat:由第一行开始显示文件内容
(2)tac:从最后一行开始显示
(3)nl:显示的时候,顺便输出行号
(4)more:翻页查看(空格)
(5)head -n 20 :显示前20行(默认显示10行)
(6)tail -n 20 :显示后20行(默认显示10行)
9.脚本文件名查询
(1)which -a commond 列出PATH下的所有同名命令
10.文件名查找
(1)whereis 文件名或目录
(2)locate -i 关键组 (可实现模糊查询,-i忽略大小写)
(3)find

 find / -mtime 2 :两天前24小时内被修改过的文件
 find / -mtime -2 :两天内的文件名(包含前两天本身)
 find / -time +2:两天前被修改过的文件名
                 <——————>4      
                        —————————————————————————>-4  
+4 <—————————————                          
 <————————————————————————————————————————————————
       7    6    5     4     3       2     1     现在
       
find /home -user gyc  查找home下gyc的所有文件
find / -nouser       查找不属于任何人的文件
find / -name testing  查找文件名为testing的文件  
find /etc -name '*httpd*'  通过通配符实现模糊查询

(4)三者之间的区别

查找位置不同,whereis和locate查找linux的数据库文件中的内容,所以速度会快
find查找硬盘,速度会慢
但是数据库文件默认是每天更新一次,这样一天内创建的文件就不会被whereis和locate查到
(除非使用updatedb强制更新)

11.查看文件类型(file)

file ~/.bashrc   

二.文件默认权限:umask

目前用户在新建目录或文件的时候权限的默认值(umask为该默认值需要减掉的权限)
若用户创建文件,默认权限—>-rw-rw-rw- (文件默认没有可执行权限)
若用户创建目录,默认权限—>drwxrwxrwx

三.文件的隐藏属性

1.chattr(只能在ext2,ext3文件系统上生效)

chattr [+ - =] i test  文件不能被删除,改名,只有root才能修改这个属性
chattr [+ - =] a test  文件不能删除数据,只能添加数据,只有root才能修改这个属性(比如登录文件)

2.lsattr(显示文件隐藏属性)

四.文件特殊权限

1.SUID

(1)举栗:我们知道/etc/shadow存储的是所有账号的密码, 文件权限:———- 1 root root ,意思是只有root可以强制写入,但我们一般用户不是也可以通过passwd修改密码吗?这里就用到了SUID(set uid)
(2)通过ls -l usr/bin/passwd 结果:-rwsr-xr-x. 1 root root,这里的文件所有者权限中的S即为suid,其它用户在执行这条命令的时候会“暂时”获得root的权限,进行写操作

2.SGID

举栗子:执行ll /usr/bin/locate /var/lib/mlocate/mlocate.db

-rwx--s--x 1 root slocate   40512 Nov  5  2016 /usr/bin/locate
-rw-r----- 1 root slocate 4449860 May  4 03:09 /var/lib/mlocate/mlocate.db

可以看出mlocate对于其它用户来说没有读权限,但由于locate中由SGID的特殊权限,如果执行者对locate有执行权限,执行者在执行过程中将会获得该程序用户组的支持

3.SBID

目前SBID只对目录有效,当用户对此目录有WX权限,用户在此目录下创建文件后,该文件只有root和自己才有权利删除(tmp就是这样一个文件夹)

drwxrwxrwt.  14 root root      4096 May  4 09:03 tmp

4.SUID/SGID/SBIT设置

SUID—–>4
SGID—–>2
SBIT—–>1
所以要设置SUID权限:

chmod 4755 filename 


 
    原文作者:kaka
    原文地址: https://segmentfault.com/a/1190000014717796
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞