第二周作业
1、描述Linux发行版的系统目录名称命名规则以及用途
Linux系统基础目录的命名法则:
1、遵循FHS(Filesystem Hierarchy Standard)标准
2、严格区分大小写
3、目录也是文件,在同一路径下,两个文件不能同名
4、支持使用除 / 以外的任意字符
5、最长字符不能超过255个字符
Linux发行版基本目录架构及用途描述:
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
文件系统中的数据有两类, 一类是数据,另一类是元数据。
文件的属性信息即文件的元数据:文件的类型、大小、节点号、权限、所有者、所属组、时间等等,这些内容存放在磁盘中的节点空间(inode block)中。
stat
命令的作用为显示文件的属性信息,输出的信息比ls命令输出的信息更加详细:
显示test.txt文件的详细属性:
File: ‘test.txt’ ——表示文件的完整名称
Size: 77 ——表示文件的数据大小
Blocks: 8 ——占用磁盘的块数
IO Block: 4096 ——IO 块的大小
regular file ——规则为文件
Device: 802h/2050d ——所在设备
Inode: 203026286 ——文件节点
Links: 1 ——文件链接数
Access: (0644/-rw-r–r--) ——访问权限
Uid: ( 1000/ iii) ——所有者的Uid号,类型身份证号具有唯一性
Gid: ( 0/ root) ——所有组,也为组号
Access: 2020-10-22 13:03:47.431151531 +0800 ——文件最近访问时间
Modify: 2020-10-12 22:04:28.045960465 +0800 ——文件修改时间
Change: 2020-10-17 14:52:35.519999280 +0800 ——文件的改变时间
Birth: - ——文件类型,“-”表示普通文件
file
命令用来识别文件类型,也可用来辨别一些文件的编码格式:
每一个文件的时间属性有三种:atime、ctime、mtime
atime:access time,记录最后一次的访问时间,查看文件内容,即会改变文件atime,通过cat/vi/vim/more/less…
mtime:modify time,记录最后一次文件数据部分的修改时间,只有修改文件内容才会改变mtime时间,修改文件内容的同时,也会改变ctime
ctime:change time,记录最后一次文件元数据的修改时间,只有修改文件内容才会改变mtime时间,修改文件内容的同时,也会改变ctime
💡!!!mtime和ctime的区别
–>只有修改了文件的内容,才会更新文件的mtime;
–>对文件更名,修改文件的属性等操作,只会更新ctime;
–>只要修改文件内容,mtime和ctime都会改变。
ls -l
默认显示文件的mtime:
ls -l --time=atime
显示文件atime:
ls -l --time=ctime
显示文件ctime:
touch
命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性:
(以上图为对照)touch -a
修改atime:
同理,touch -m
修改mtime(注:mtime的改变一定会引起ctime的改变):
touch -a -t 202011111111.11 f1.log
修改f1.log的atime为2020-11-11 11:11:11(注:ctime会被更新为当前时间):
同理,touch -m -t 202011111111.11 f1.log
修改f1.log的atime为2020-11-11 11:11:11(注:ctime会被更新为当前时间):
①文件的atime时间超过一天以上
②文件的mtime比atime更晚
此选项可以有效避免atime的频繁修改,优化服务器性能。
3、总结软连接和硬连接区别,并用实例操作说明
硬链接的特点:
1、文件有相同的inode及data block
2、只能对已存在的文件进行创建
3、不能跨分区创建硬链接
4、不能对目录进行创建
5、删除一个硬链接文件并不影响其他有相同inode号的文件
软链接的特点:
1、软链接有自己的文件属性及权限等
2、可对不存在的文件或目录创建软链接
3、软链接可跨分区创建
4、软链接可对文件或目录创建
5、创建软链接时,链接计数i_nlink不会增加
6、删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死链接,若被指向路径文件被重新创建,死链接可恢复为正常的软链接
硬链接与软链接区别:
1、本质:硬链接本质是同一个文件多个不同名字(以副本形式存在,不占用空间);软链接则为不同文件(以路径形式存在,类似快捷方式)
2、跨分区:硬链接不支持跨分区创建;软链接支持(原文件必须为绝对路径,否则为死链接)
3、目录:硬链接不支持对目录创建;软链接支持(不存在的目录文件则为死链接)
4、相互关系:删除被指向的原文件,不影响硬链接访问其相同inode文件;软链接则会变成死链接,重新创建可恢复正常
5、路径:软链接原始文件路径相对的是需要建立的软链接路径,而非当前工作目录;硬链接则是相对于当前工作目录
⚠(无法验证软链接原始文件路径相对的是需要建立的软链接路径,Too many levels of symbolic links问题无法解决)
6、链接数:创建新链接时,硬链接增加链接数;软链接不增加
7、inode编号:硬链接inode编号相同;软链接不相同
8、文件类型:软链接的文件类型开头为“l”;硬链接跟随原文件类型
9、软链接的创建需参数“-s”
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
目录管理类:cd,ls,mkdir,rmdir,tree
cd:该命令的功能是从当前目录切换到指定目录
语法:cd [参数] [目录名]
参数:—,返回上一次所在目录
-~,切换到当前用户目录
-…,切换到上一级目录
…
ls:列出指定目录下的内容及其相关属性信息
语法:ls [选项] [文件]
参数:-a,显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l,使用长格式列出文件及目录信息
-t,根据最后修改时间排序
-i,显示inode号
…
mkdir:创建目录
语法:mkdir [参数] [目录]
参数:-p,递归创建多级目录
-v,显示创建目录的过程
…
rmdir:删除空目录
语法:rmdir [参数] [目录名称]
参数:-p,用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
-v,显示命令执行过程
…
tree:以树状图形式列出目录的内容
语法:tree [参数]
参数:-a,显示所有文件和目录
-d,显示目录名称而非内容
-s,列出文件或目录大小
-L,层级显示
…
文件管理类:stat,file,touch,cp,mv,rm
stat:显示文件或文件系统的详细信息
语法:stat [参数]
参数:-f,显示文件系统的信息
-t,以简洁方式输出
…
file:识别文件类型
语法:file [参数] [文件]
参数:-b,简要模式
-f,指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-z,尝试去解读压缩文件的内容
…
touch:该命令一可以创建新的空文件,二可以改变已有文件的时间戳属性
语法:touch [参数] [文件]
参数:-a,改变档案的读取时间记录
-m,改变档案的修改时间记录
-d,设定时间与日期,可以使用各种不同的格式
-t,以date命令格式设置档案的时间记录
…
cp:复制文件或目录
语法:cp [参数] [文件]
参数:-f,若目标文件已存在,则会直接覆盖原文件
-i,覆盖前会询问
-p,保留源文件或目录的所有属性
-r,递归复制文件和目录
-l,对源文件建立硬连接,而非复制文件
-s,对源文件建立软链接,而非复制文件
-b,覆盖已存在的文件目标前将目标文件备份
-v,显示详细操作过程
…
mv:移动文件或对其改名
语法:mv [参数]
参数:-i,若存在同名文件,则向用户询问是否覆盖
-f,覆盖已有文件时,不进行任何提示
…
rm:删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除
语法:rm [参数] [文件]
参数:-f,不询问直接删除
-i,删除前会询问
-r/R,递归删除
-v,显示详细执行过程
…
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
cp /etc/profile /tmp
tr -d ' ' < /tmp/profile
6、在vim中设置tab缩进为4个字符
#vim vimrc
set tabstop=4