目录
1. Linux目录结构
1.1. Linux目录结构
在Linux底下,目录结构为树状结构,所有的文件与目录都是由根目录 /开始的。那是所有目录与文件的源头,其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/work目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/work 要到 /usr/share/man 底下时,可以写成: cd ../man 。
. 表示当前目录
.. 表示上级目录
1.2. 根目录下文件
切换到根目录下:cd /
执行 命令: ls
显示根目录下文件列表:
/ | 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。 |
/bin | bin是Binary的缩写, 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 |
/boot | 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 |
/dev | dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 |
/etc | 存放系统管理和配置文件。 |
/home | 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。比如用户user的主目录就是/home/user,可以用~user表示。~表示当前用户的家目录。 |
/lib | 存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 |
/media | linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
/opt | 主机额外安装软件所摆放的目录。比如安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 |
/proc | 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录。 |
/root | 系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。 |
/sbin | s就是Super User的意思,存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
/srv | 服务启动之后需要访问的数据目录。 |
/sys | 内核设备树的一个直观反映。 |
/tmp | 存放一些临时文件的。 |
/usr | Unix Software Resource的缩写,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 |
/var | 存放着在不断扩充着的东西,将那些经常被修改的目录放在这个目录下。包括各种日志文件。 |
更多目录结构介绍,参考:https://blog.csdn.net/m0_38044196/article/details/72844025
2. 文件基本属性介绍
2.1. 查看文件
使用ls -l或者ll命令:
上面文件属性说明:
2.2. 文件类型
文件的第一个属性(上面实例test的第一个属性d):文件类型,常见类型有:
- | 普通文件 |
d | 目录文件 |
l | 链接文件 |
b | 装置文件里面的可供储存的接口设备(可随机存取装置) |
c | 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) |
s | socket文件 |
p | 管道类型文件 |
2.3. 文件权限
第一个属性后面9个字符代表文件的权限,均为【rwx-】的组合,每三个为一组,共分为三组:
r:read,可读,对应数字4;
w:write,可写,对应数字2;
x:execute,可执行,对应数字1,
-:没有对应权限,可用0表示;
第一组:1-3位,用户(创建改文件的用户,user,用u表示)权限;
第二组:4-6位,用户组(文件拥有组,和user同组,group,用g表示)权限;
第三组:7-9位,其他人(others,用o表示)权限;
此外, a 则代表 all 亦即全部的身份。
实例中test的权限rwxr-xr-x:u=rwx,g=r-x,o=r-x,用数字表示为 :755(7=4+2+1,5=4+0+1,5=4+0+1)
3. 修改文件属性
3.1. 文件默认权限
普通文件,默认最大权限为开放读写(rw-rw-rw-),即“666”;目录默认最大权限是“777”;
创建普通文件或者目录,用上述默认最大权限减去遮罩码:
root用户默认遮罩码是0022,普通用户是0002(第一位是特殊权限)
因此用root用户创建普通文件和目录,其权限为:
普通文件:666 - 022 = 644,即 rw-r--r--,
目录文件:777 - 022 = 755,即rwxr-xr-x。
umask命令可显示和修改遮罩码,修改只在当前shell生效,若要永久生效,可修改/etc/bashrc各用户的默认遮罩码。
3.2. 修改权限
root和文件属主可用 chmod修改文件权限:
方式一:使用数字修改
chmod [-R] xyz 文件或者目录名
xyz : 数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更。
eg:chmod 777 a.txt ,将普通文件a.txt的权限设置为:rwxrwxrwx
方式二:使用符号修改
chmod [-R] u/g/o/a +/-/= rwx 文件或者目录名
u/g/o/a 分别是上述属主用户user,属组用户group,其他用户others,和所有用户all。
+/-/= 分别是加入,除去,设定。
eg:chmod u=rwx,g+x,o-w a.txt,将普通文件a.txt的属主权限设置为rwx,属组加入x权限,其他用户除去w权限。
3.3. 更改文件属主和属组
更改文件属组:chgrp
chgrp [-R] 属组名 文件名
更改文件属主,也可同时更改文件属组:chown
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
修改的属主和属组必须在/etc/password、/etc/group中存在。
更多文件属性介绍参考:https://blog.csdn.net/wangzhenyu177/article/details/52080031