Linux 文件相关
看着鸟哥的课程一步一步的学习,记录一些自己的笔记,侵删。
第一次登录服务器的时候就感觉linux的文件特别复杂,趁现在有空,看鸟哥的书来系统的学习一下。
文件类型以及属性
文件属性
由上图可知
列 | 描述 |
---|---|
1 | 文件种类和权限 |
2 | 硬链接个数 |
3 | 文件所属者 |
4 | 文件所属组 |
5 | 文件或目录的大小 |
6 | 最后访问或修改时间 |
7 | 文件名或目录名 |
文件类型
前缀 | 描述 |
---|---|
- | 普通文件。如文本文件、二进制可执行文件、源代码等。 |
b | 块设备文件。硬盘可以使用块设备文件。 |
c | 字符设备文件。硬盘也可以使用字符设备文件。 |
d | 目录文件。目录可以包含文件和其他目录。 |
l | 符号链接(软链接)。可以链接任何普通文件,类似于 Windows 中的快捷方式。 |
p | 具名管道。管道是进程间的一种通信机制。 |
s | 用于进程间通信的套接字。 |
属性、类型小结
注:
- 第一位字符代表了文件类型。后面三个字符为一组,r为可读read,w为可写write,x为可执行execute。三个权限的位置不会变,如果没有权限则会用-来替代。
- 文件权限设置好处:保护系统、利于团队开发软件或数据共享。
改变文件属性与权限
chgrp
change group的缩写,注意:被改变的组名必须要在/etc/group文件内存在才行。
chown
change owner的缩写,同样的,改变的用户必须是存在系统中的账号,/etc/passwd。
chmod
改变文件的权限,一共有两种方法对文件权限进行修改
数字类型改变文件权限
Linux文件基本权限为9个,分别为owner、group、others三个身份各自read、write、execute权限。
对应每个权限的权值为:r为4,w为2,x为1(二进制)。所以770则代表owner和group拥有所有权限,而orther则没有任何权限。
chmod xyz [filename]
chomd 644 .bashrc
其中xyz为上述权限属性。
符号类型改变文件权限
三种身份 user、group、others分别用字符u、g、o来表示,用a来表示all,读写权限用rwx来表示,同时用+、-、=来表示加入、除去、设置。
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc
chmod a-w .bashrc
目录配置
Linux目录配置标准:FHS
主要目的为:让用户可以了解到已安装的软件通常防止在哪个目录。
FHS将目录定义为4种交互作用的形态,如下图:
可分享的 | 不可分享的 | |
---|---|---|
不可变的 | /usr(软件放置处) | /etc (配置文件) |
/opt (第三方软件) | /boot (开机与内核文件) | |
可变动的 | /var/mail (用户邮件信箱) | /var/run (程序相关) |
/var/spool/news (新闻组) | /var/lock(程序相关) |
- 可分享的:可以分享给其他系统挂载使用的目录,例如可执行文件和用户的邮件,可分享给网络上其他主机挂载用的目录。
- 不可分享的:仅与自身的机器有关,所以不适合分享给其他的主机了。
- 不变的:部分数据不会经常变动。例如函数库、文件说明文件、系统管理员所管理的主机服务配置文件。
- 可变动的:经常改变的数据,例如登录文件、新闻组等。
根目录(/)
FHS标准建议,根目录所在的分区应该越小越好,应用程序所安装的软件最好不要和根目录放在一个分区
下面列出根目录的子目录(部分)
目录 | 应放置文件目录 |
---|---|
/bin | 放置的是单用户维护模式下还能被操作的命令,可以被root和一般的账号所使用。 |
/boot | 开机用到的文件,包括Linux内核文件以及开机菜单与开机所配置文件等。 |
/dev | 设备文件(可以看笔记1) |
/etc | 系统主要的配置文件,例如人员的账号密码文件、各种服务的其实文件等。一般来说,该目录下个文件属性是可以让普通用户查看的,但只有root有权利修改。FHS建议不要放置可执行文件。 |
/home | 系统默认的用户主文件夹。 |
/lib | 开机时会用到的函数库,以及在/bin或者/sbin下面的命令会调用的函数。 |
/media | 媒体的英文,放置的是可删除的设备,例如软盘、光盘、DVD。 |
/mnt | 暂时挂载某些额外的设备,用途与/media相同,只是暂时挂载。 |
/opt | 第三方软件安装的目录。 |
/root | 系统管理员的主文件夹。 |
/sbin | 包含开机过程中所需要的命令,比如开机、修复、还原系统所需要的命令。 |
/srv | 可视为service的缩写,与网络服务有关。 |
/tmp | 一般用户或正在执行的程序暂时存放文件的地方,任何人都能访问,所以要定时清理。不建议存放重要数据。FHS会建议将/tmp下的数据都删除。 |
/usr | Unix Software Resource的缩写(Unix操作系统软件资源所放置的目录,非用户数据)。 |
绝对路径和相对路径
- 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
- 相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 …/…/home/dmtsai/ 等等。反正开头不是 / 就属于相对路径的写法。
例如: