1.文件的相关内容
我在用root执行 与普通用户执行后发现发现显示的文件不同,它可以通过一些折腾来使用(一开始,它很困惑,到处搜索,但没有找到所以我冷静下来,想起它可以使用 检查当前路径后才发现使用情况 切换用户后,相应的路径也发生了变化,尽管都是 ~ ,普通用户(以自己为例)~ 默认 ,root用户为
drwxr-xr-x 20 root root 4096 6月 11 01:17 ..
第一个字符代表文件的类型: d 为目录; - 为文件; | 链接文件; b 可存储在设备文件中的周边设备; c 键盘鼠标等是设备文件中的串行端口设备
后面的面的字符,分别是 文件所有者读写执行,加入用户组账户读写执行,非本人,未加入用户组其他账户读写执行
20节点有20个文件名链接
第一个 root 表示该目录的所有者;第二个 root 表示该目录的用户组
4096为这个目录的容量大小,默认单位 Bytes (通过帮助了解可以使用 将大小改为 human-readable ,即单位自动切换成 K、M 等等
后面是创建日期或修改日期,太长时间不会详细显示
2.修改文件属性
更改用户组
-R 作用为递归
更改文件所有者
同时修改两个名称
也可以同时修改两个名称 . 考虑到可能存在用户名或组名 . 所以用 : 间隔
想知道电脑里有哪些用户名和组名,可以去。查看用户名,查看用户组名
更改文件权限1 使用数字修改
更改文件权限2 用符号修改
1 root@zjw-Lenovo-Legion-Y7000P-2020H:~# ls -l 2 2 ---xrw-rw- 1 root root 0 6月 23 15:36 2
若想将文件 2 权限改为 -rwxrwxrwx 即执行或者分开 同理
相比之下,个人更倾向于使用数字变化
利用 命令将文件复制到文件或将多个文件复制到目录中
虽然 命令将执行人的属性和权限复制给目标,但经过测试,我发现只有用户所有权、用户组和其他人的阅读和执行权限将复制给目标。换句话说,如果源文件的权限是 777 ,目标文件的权限为 755
3.目录与文件的权限
文件的 r 读取,即读取实际内容
文件能否 x 执行,与 x 与文件名无关
文件中的 w 权限只能有写入、编辑、添加、修改文件内容的权限,没有删除文件本身的权限,删除文件本身的权限和文件目录 w 权限有关
目录的 r 读取,即可查询目录中的文件名数据
目录的 w 可写入权限是操作目录中的文件(非文件内部数据)
目录的 x 可执行,即能否进入目录 !注意:能否查看目录内容?决定能否进入目录的原因 决定
这里的进入是指进入工作目录。如果用鼠标点击进入目录,目录只有r,鼠标点击进入
目录只有x,鼠标无法点击,与下面的工作目录切换相反
1 drwxr-x--x 2 root root 4096 6月 23 20:04 1 2 drwxr-xr-- 2 root root 4096 6月 23 20:04 2
建立两个目录,给其他用户一个 r ,另一个 x
1 zjw@zjw-Lenovo-Legion-Y7000P-2020H:~$ cd ./1 2 zjw@zjw-Lenovo-Legion-Y7000P-2020H:~/1$ ls 3 ls: cannot open directory '.': Permission denied
只能进入执行权限的1目录,但不能查询目录的内容
zjw@zjw-Lenovo-Legion-Y7000P-2020H:~$ cd ./2 bash: cd: ./2: Permission denied zjw@zjw-Lenovo-Legion-Y7000P-2020H:~$ ls -l ./2 ls: cannot access './2/file': Permission denied total 0 -?????????? ? ? ? ? ? file
只有读取权限的2目录无法进入,目录中的文件中的文件列表
!若目录仅有 在此目录中使用权限 不能自动补齐
4.文件种类
纯文本常规文件、二进制常规文件、数据文件
目录
链接文件
块设备文件、字符设备文件
数据接口文件
数据输送文件
能否执行文件只与文件属性有关,与文件名无关
5.FHS标准
代表性目录:
可分享 | 不可分享 | |
不变 | /usr(软件存储处) | /etc(配置文件) |
/opt(第三方辅助软件) | /boot(启动和内核文件) | |
可变动 | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
可共享,即可与网络上其他主机或其他系统共享的目录
不可分享
也就是说,数据不会随着发行版本而频繁变化
经常修改的可变数据
FHS对目录树架构仅给出的三个目录的定义
/(根目录):与启动系统有关 注意:是根目录,是的 root 的意思,而这意味着系统管理员的身份
/usr:与软件安装/执行有关
/var:与系统运行过程有关
下的目录
FHS目录必须存在 | |
/bin | 可以在单人维护模式下使用的命令可以放置,其中可以使用的命令 root 使用一般账户,如:cat、chmod... |
/boot | 启动时使用的文件主要放置,包括Linux内核文件、启动选项等。Linux内核常用文件名为:vmlinuz |
/dev | 任何设备和接口设备都以文件的形式存在于此目录中,只要读写文件,于读写某个设备 |
/etc | 系统主要的配置文件几乎都在这个目录中,FHS建议不要放置可执行文件 /etc/opt(必要):这个目录放置第三方辅助软件 /opt 的相关配置文件 /etc/X11(建议):与 X Window 有关的各种配置文件都在这 /etc/sgml(建议):与SGML格式有关的各项配置文件 /etc/xml(建议):与XML格式有关的各项配置文件 |
/lib | 放置在启动时会用到的函数库,以及在 /bin 或 /sbin 下面的命令会调用的函数库 /lib/modules(必要):这个目录放置可抽换式的内核相关模块(驱动程序) |
/media | 放置可删除设备如软盘、光盘、DVD等设备 |
/mnt | 暂时用于挂载某些额外的设备 |
/opt | 放置第三方辅助软件(非原本发行版提供的独立软件) |
/run | 放置启动后所产生的各项信息 |
/sbin | 放置只有 root 才能够使用的启动过程中所需要的命令 |
/srv | 放置网络服务启动后所需要的数据目录 |
/tmp | 暂时放置文件的地方,任何人都能够存取,重启后清空,重要目录不要放置在这 |
/usr | |
/var | |
FHS建议可以存在的目录 | |
/home | 系统默认的用户家目录 |
/lib<qual> | 存放与/lib 不同格式的二进制函数库 |
/root | 系统管理员家目录 |
下的目录
FHS要求必须存在的目录 | |
/usr/bin/ | 所有一般用户能够使用的命令存放于此 |
/usr/lib/ | 基本上与/lib功能相同,/lib链接于此 |
/usr/local/ | 系统管理员在本机安装自己下载的新版软件,建议安装到此处 |
/usr/sbin/ | 非系统正常运行所需要的系统命令,功能与/sbin差不多,/sbin链接于此 |
/usr/share/ | 主要放置只读数据文件,包括共享文件 |
FHS建议可以存在的目录 | |
/usr/games/ | 与游戏相关的数据放置处 |
/usr/include/ | c/c++等程序语言的头文件与包含文件放置处 |
/usr/libexec/ | 某些不被一般用户常用的执行文件或脚本等 |
/usr/lib<qual> | 与 /lib<qual>/ 功能相同 |
/usr/src/ | 一般源代码建议放置于此,内核源码建议放置在 /usr/src/Linux/ 目录下 |
下的目录
FHS要求必须要存在的目录 | |
/var/cache/ | 应用程序本身运行过程中会产生的一些缓存 |
/var/lib/ | 程序本身执行的过程中,需要使用到的数据文件放置的目录,各自的软件有各自的目录 |
/var/lock/ | 某些设备或是文件资源一次只能被一个应用程序所使用,因此就得将该设备上锁,以确保该设备只会给单一软件使用 |
/var/log/ | 非常重要,放置日志文件的目录 |
/var/mail/ | 放置个人电子邮箱的目录 |
/var/run/ | 某些程序或服务启动后,会将它们的PID放置在这个目录下,与/run相同 |
/var/spool/ | 通常放置队列数据,如 收到的新邮件会放置在 /var/spool/mail 中,用户收下后该封信原则上会被删除 |
以上目录信息会在后续逐渐理解
第五章总结:文件的属性及权限一定要熟记,如何修改权限;FHS标准中定义的目录占了比较大的篇幅,但是暂作了解;根路径与相对路径。
6.目录树的相关介绍
特性:目录树的起始点为根目录
每个目录不止能使用本地分区的文件系统,也能使用网络上的文件系统,如用服务器挂载某目录
每个文件在此目录树中的文件名(包含完整路径)是独一无二的