一、描述Linux发行版的系统目录名称命名规则以及用途。

1、目录名称命名规则
(1)标准Linux文件系统(如ext4),文件名大小写敏感;大小写敏感和文件系统类型有关,目前来讲,ext4、xfs等文件系统大小写敏感;NTFS、FAT分区的文件系统大小写不敏感。
(2)目录也是文件,在同一路径下,两个文件不能同名;
(3)除“/” 和“NUL”所有字符都有效,但如果一个文件名中包含了特殊字符,那么在访问这个文件时就需要使用引号将文件名括起来,所以不推荐目录名和文件名使用特殊字符;
(4)目录名的长度不能超过255个字符。
(5)遵循FHS(文件系统分层标准);

2、系统目录用途
目录名称 用途
/boot 系统启动引导文件、内核文件(vmlinuxz)及引导加载器(bootloader)都存放在此目录下。
/bin 存放所有用户使用的基本命令,OS启动时会使用到该目录下的文件。
/sbin 存放管理类的基本命令,OS启动时会使用到该目录下的文件。
/lib 存放系统启动时程序依赖的基本共享库文件及内核模块文件 (/lib/modules).
/lib64 专用于x86_64系统上的辅助共享库文件存放的位置。
/etc 存放配置文件的目录。
/home 普通用户的家目录。
/root 管理员用户的家目录。
/media 便携式移动设备挂载点。
/mnt 临时文件系统挂载点。
/dev 设备文件及特殊文件存储位置。
/opt 第三方应用程序的安装位置。
/srv 系统上运行的服务用到的数据。
/tmp 存放临时文件的目录。
/proc 用于输出内核与进程信息相关的虚拟文件系统。
/run 存放当前运行程序库的目录。
/usr 存储全局共享的只读数据,如:系统帮助文档以及源码包安装位置。
/var 存储常发生变化的数据的目录,如缓存数据,日志文件等。
/sys 用于输出当前系统上硬件设备相关信息的虚拟文件系统。
/selinux 存储selinux相关的安全策略等信息的目录。

============================================================

二、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

1、描述文件的元数据信息及含义

(1)File: 文件名称
(2)Size: 文件大小(字节)
(3)Blocks: 占用的数据块数
(4)IO Block: IO块大小
(5)regular empty file:这里显示的是文件类型,这是一个普通文件
(6)Device:设备编号
(7)Inode: Inode节点号
(8)Links: 被链接的次数
(9)Access(第一个):访问权限
(10)Uid: ( uid/属主 )
(11)Gid: (gid/属组 )
(12)Access(第二个): 文件最近一次的访问时间。
(13)Modify: 文件内容最后一次被修改的时间。
(14)Change: 文件的状态被修改的时间。

2、查看数据的元信息

stat [文件或目录]

3、修改文件的时间戳的命令:touch

命令格式:touch [OPTION]... FILE...
命令参数:
-a 或 --time=atime 或 --time=access 或 --time=use :只修改access time;
-c 或 --no-create :如果文件不存在,则不建立任何文档;
例如:touch -c c.txt
-d:使用指定的日期时间,而非现在的时间;
-m或 --time=mtime 或 --time=modify :只修改modify time;
-r:把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同;
例如:touch -r a.txt b.txt
-t :使用指定的日期时间,而非现在的时间。
例如:touch -t 201912032007.30 a.txt #指定文件a.txt的atime和mtime的时间戳
touch -mt 202001011010.00 a.txt #修改文件a.txt的mtime时间为2020年1月1日10:10:00
touch -at 203001011010.00 a.txt #修改文件a.txt的atime时间为2030年1月1日10:10:00

文件的三个时间戳介绍如下:

atime:读一次文件的内容,这个时间就会更新。比如more、cat等命令;ls、stat命令不会修改atime。
mtime:文件内容最后一次被修改的时间。比如:vim操作后保存文件;ls -l列出的就是这个时间;mtime的改变一定会引起ctime的改变。
ctime:文件的inode节点最后一次被修改的时间。比如:修改文件所有者(chown),修改权限(chmod),重命名文件,移动文件,修改文件内容,这个时间就会更新;

============================================================

三、总结软连接和硬连接区别,并用实例操作说明。

硬链接:本质是对同一个文件起多个文件名,但它们的inode号相同。
软链接:软链接文件用户数据块中存放的内容是另一个文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的inode号以及用户数据块。

硬链接的特性
1、文件有相同的inode及data block
2、只能对已存在的文件进行创建
3、不能跨分区创建硬链接
4、只能对文件创建,不能对目录进行创建
5、删除一个硬链接文件并不影响其他有相同inode号的文件

软链接的特性
1、软链接有自己的文件属性及权限
2、可对不存在的文件或目录创建软链接
3、软链接可跨分区创建
4、软链接可对文件或目录创建
5、创建软链接时,链接计数不会增加
6、删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则输掉了请问链接被称为死链接,若被指向路径文件被重新创建,死链接可恢复 为正常的软链接。

硬链接实例
[root@centos7 data]# touch a.txt
[root@centos7 data]# ls -il
total 0
67 -rw-r--r-- 1 root root 0 Dec 8 09:44 a.txt
[root@centos7 data]# ln a.txt a.txt.link
[root@centos7 data]# ls -li
total 0
67 -rw-r--r-- 2 root root 0 Dec 8 09:44 a.txt
67 -rw-r--r-- 2 root root 0 Dec 8 09:44 a.txt.link
[root@centos7 data]# echo abcdefg > a.txt
[root@centos7 data]# cat a.txt.link
abcdefg

软链接实例

[root@centos7 data]# ln -s a.txt a.txt.slink #对文件创建软链接
[root@centos7 data]# ls -li
total 12
67 -rw-r--r-- 2 root root 8 Dec 8 09:45 a.txt
67 -rw-r--r-- 2 root root 8 Dec 8 09:45 a.txt.link
73 lrwxrwxrwx 1 root root 5 Dec 8 09:51 a.txt.slink -> a.txt
68 drwxr-xr-x 3 root root 43 Dec 7 22:40 d1
33554562 drwxr-xr-x 4 root root 24 Dec 7 22:53 y

[root@centos7 data]# ll
total 8
-rw-r--r-- 2 root root 8 Dec 8 09:45 a.txt
-rw-r--r-- 2 root root 8 Dec 8 09:45 a.txt.link
lrwxrwxrwx 1 root root 5 Dec 8 09:51 a.txt.slink -> a.txt
drwxr-xr-x 3 root root 43 Dec 7 22:40 d1
[root@centos7 data]# ln -s d1 d1.slink #对目录创建软链接
[root@centos7 data]# ls -li
total 8
67 -rw-r--r-- 2 root root 8 Dec 8 09:45 a.txt
67 -rw-r--r-- 2 root root 8 Dec 8 09:45 a.txt.link
73 lrwxrwxrwx 1 root root 5 Dec 8 09:51 a.txt.slink -> a.txt
68 drwxr-xr-x 3 root root 43 Dec 7 22:40 d1
69 lrwxrwxrwx 1 root root 2 Dec 8 09:54 d1.slink -> d1

============================================================

四、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
文件管理类命令有:ls、touch、cp、mv、rename、rm

常用使用方法及相关示例:

1.ls查看文件列表
-a :显示包括以“.”开始的所有文件;
[root@centos7 data]# ls -a
. .. a.txt a.txt.link b.txt d1

-d :仅显示目录名,而不显示目录下的内容列表;显示符号链接文件本身,而不显示期所指向的目录列表;
[root@centos7 data]# ls -ld /data
drwxr-xr-x. 3 root root 60 Dec 7 20:16 /data

-i :显示文件索引节点号;
[root@centos7 data]# ll -i
total 12
67 -rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt
67 -rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt.link
71 -rw-r--r-- 1 root root 15 Dec 7 20:09 b.txt
68 drwxr-xr-x 3 root root 16 Dec 7 14:21 d1

-l :长格式显示目录下的内容列表;
-lh :以易读的方式显示文件或目录的大小;
[root@centos7 data]# ls -lh
total 12K
-rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt
-rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt.link
-rw-r--r-- 1 root root 15 Dec 7 20:09 b.txt
drwxr-xr-x 3 root root 16 Dec 7 14:21 d1

-R :递归显示目录文件;
[root@centos7 data]# ls -R /data
/data:
a.txt a.txt.link b.txt d1
/data/d1:
d2
/data/d1/d2:
d3
/data/d1/d2/d3:

-s :以区块为单位,显示文件大小;
[root@centos7 data]# ll -s
total 12
4 -rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt
4 -rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt.link
4 -rw-r--r-- 1 root root 15 Dec 7 20:09 b.txt
0 drwxr-xr-x 3 root root 16 Dec 7 14:21 d1

-t :按文件修改时间(mtime)从新到旧排序;
[root@centos7 data]# ll -t
total 12
-rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt
-rwxr-xr-x. 2 root root 39 Dec 7 20:16 a.txt.link
-rw-r--r-- 1 root root 15 Dec 7 20:09 b.txt
drwxr-xr-x 3 root root 16 Dec 7 14:21 d1

-u :配合-t选项,按文件访问时间(atime)从新到旧排序
[root@centos7 data]# ll -ut
total 12
-rw-r--r-- 1 root root 15 Dec 7 21:08 b.txt
-rwxr-xr-x. 2 root root 39 Dec 7 21:08 a.txt
-rwxr-xr-x. 2 root root 39 Dec 7 21:08 a.txt.link
drwxr-xr-x 3 root root 16 Dec 7 14:22 d1

2.touch:设置文件的修改时间和访问时间,如果指定文件不存在,则创建默认权限的文件。
-a :只更改atime时间;
[root@centos7 data]# touch -a a.txt
[root@centos7 data]# stat a.txt
File: ‘a.txt’
Size: 39 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67 Links: 2
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-12-07 21:27:05.834592121 +0800
Modify: 2019-12-07 21:20:26.673583013 +0800
Change: 2019-12-07 21:27:05.834592121 +0800

-m :只更改mtime时间;
[root@centos7 data]# touch -m a.txt
[root@centos7 data]# stat a.txt
File: ‘a.txt’
Size: 39 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67 Links: 2
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-12-07 21:27:05.834592121 +0800
Modify: 2019-12-07 21:27:58.737593328 +0800
Change: 2019-12-07 21:27:58.737593328 +0800

-t :使用指定的时间,格式为[[CC]YY]MMDDhhmm[.ss]
[root@centos7 data]# touch -t 202001011010.00 a.txt
[root@centos7 data]# stat a.txt
File: ‘a.txt’
Size: 39 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67 Links: 2
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-01-01 10:10:00.000000000 +0800
Modify: 2020-01-01 10:10:00.000000000 +0800
Change: 2019-12-07 21:29:18.445595147 +0800

[root@centos7 data]# touch c.txt #创建新文件c.txt

3.cp:复制文件
-a :归档,保留所有属性,充当备份效果,可以备份文件夹(自带-r功能)

[root@centos7 data]# cp -a /etc/fstab /data/fstab.bak
cp: overwrite ‘/data/fstab.bak’? y
[root@centos7 data]# ll
-rw-r--r--. 1 root root 595 Nov 26 20:18 fstab.bak
[root@centos7 data]# ll /etc/fstab
-rw-r--r--. 1 root root 595 Nov 26 20:18 /etc/fstab

-b :在进行复制的时候,先做个备份,但是只能保留最近的一个版本
[root@centos7 data]# cp -b /etc/passwd passwd
cp: overwrite ‘passwd’? y
[root@centos7 data]# ll
-rw-r--r-- 1 root root 2301 Dec 7 22:11 passwd
-rw-r--r-- 1 root root 2301 Dec 7 22:10 passwd~

--backup=numbered :在进行复制的时候,先做个备份,所有备份都能保留,并有序号
[root@centos7 data]# cp --backup=number /etc/passwd passwd
cp: overwrite ‘passwd’? y
[root@centos7 data]# cp --backup=number /etc/passwd passwd
cp: overwrite ‘passwd’? y
[root@centos7 data]# ll
-rw-r--r-- 1 root root 2301 Dec 7 22:12 passwd
-rw-r--r-- 1 root root 2301 Dec 7 22:10 passwd~
-rw-r--r-- 1 root root 2301 Dec 7 22:11 passwd.~1~
-rw-r--r-- 1 root root 2301 Dec 7 22:12 passwd.~2~

-d :只复制链接文件
[root@centos7 data]# ln -s a.txt a.txt.link
[root@centos7 data]# ll
-rwxr-xr-x. 1 root root 39 Jan 1 2020 a.txt
lrwxrwxrwx 1 root root 5 Dec 7 22:20 a.txt.link -> a.txt

[root@centos7 data]# cp -d a.txt.link aa.txt.link
[root@centos7 data]# ll
lrwxrwxrwx 1 root root 5 Dec 7 22:20 aa.txt.link -> a.txt
-rwxr-xr-x. 1 root root 39 Jan 1 2020 a.txt
lrwxrwxrwx 1 root root 5 Dec 7 22:20 a.txt.link -> a.txt

-i :覆盖文件前先询问用户
[root@centos7 data]# cp /etc/fstab /data
cp: overwrite ‘/data/fstab’? y

-p :保留原文件或目录的属性,包括所有者,所属组,权限,时间
[root@centos7 data]# cp -p /etc/fstab /data
[root@centos7 data]# ll
-rw-r--r-- 1 root root 595 Nov 26 20:18 fstab

-v :显示执行过程
[root@centos7 data]# cp -v /etc/fstab /data
cp: overwrite ‘/data/fstab’? y
‘/etc/fstab’ -> ‘/data/fstab’

4.mv:移动及重全名文件。
-b :当文件存在时,覆盖前,为其创建一个备份
[root@centos7 data]# mv -b fstab ./d1/
mv: overwrite ‘./d1/fstab’? y
[root@centos7 data]# cd d1/
[root@centos7 d1]# ll
total 8
drwxr-xr-x 3 root root 16 Dec 7 14:21 d2
-rw-r--r-- 1 root root 595 Dec 7 22:40 fstab
-rw-r--r-- 1 root root 595 Dec 7 22:39 fstab~

[root@centos7 data]# touch test1 test2
[root@centos7 data]# mv test1 test.txt
[root@centos7 data]# ll
-rw-r--r-- 1 root root 0 Dec 7 22:42 test2
-rw-r--r-- 1 root root 0 Dec 7 22:42 test.txt

5.rename:批量修改文件名。
[root@centos7 data]# touch file{0..9}.txt
[root@centos7 data]# ll
total 4
lrwxrwxrwx 1 root root 5 Dec 7 22:20 aa.txt.link -> a.txt
-rwxr-xr-x. 1 root root 39 Jan 1 2020 a.txt
lrwxrwxrwx 1 root root 5 Dec 7 22:20 a.txt.link -> a.txt
drwxr-xr-x 3 root root 43 Dec 7 22:40 d1
-rw-r--r-- 1 root root 0 Dec 7 22:45 file0.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file1.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file2.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file3.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file4.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file5.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file6.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file7.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file8.txt
-rw-r--r-- 1 root root 0 Dec 7 22:45 file9.txt
-rw-r--r-- 1 root root 0 Dec 7 22:42 test2
-rw-r--r-- 1 root root 0 Dec 7 22:42 test.txt

[root@centos7 data]# rename .txt .conf *.txt
[root@centos7 data]# ll
total 4
lrwxrwxrwx 1 root root 5 Dec 7 22:20 aa.txt.link -> a.txt
-rwxr-xr-x. 1 root root 39 Jan 1 2020 a.conf
lrwxrwxrwx 1 root root 5 Dec 7 22:20 a.txt.link -> a.txt
drwxr-xr-x 3 root root 43 Dec 7 22:40 d1
-rw-r--r-- 1 root root 0 Dec 7 22:45 file0.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file1.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file2.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file3.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file4.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file5.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file6.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file7.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file8.conf
-rw-r--r-- 1 root root 0 Dec 7 22:45 file9.conf
-rw-r--r-- 1 root root 0 Dec 7 22:42 test2
-rw-r--r-- 1 root root 0 Dec 7 22:42 test.conf

6.rm:删除文件和目录。
[root@centos7 data]# tree /data
/data
├── d1
│   ├── d2
│   │   └── d3
│   ├── fstab
│   └── fstab~
├── x
│   ├── a
│   └── b
└── y
├── a
└── b

9 directories, 2 files

[root@centos7 data]# rm -i /data/x #rm命令默认只删除文件,删除目录提示错误
rm: cannot remove ‘/data/x’: Is a directory

-d :删除目录文件
-i :删除时提示信息
[root@centos7 data]# rm -id /data/x/a
rm: remove directory ‘/data/x/a’? y
[root@centos7 data]# tree /data
/data
├── d1
│   ├── d2
│   │   └── d3
│   ├── fstab
│   └── fstab~
├── x
│   └── b
└── y
├── a
└── b

8 directories, 2 files

-r :递归删除目标目录;
-v :列出删除的文件
[root@centos7 data]# rm -rv /data/x
rm: descend into directory ‘/data/x’? y
rm: remove directory ‘/data/x/b’? y
removed directory: ‘/data/x/b’
rm: remove directory ‘/data/x’? y
removed directory: ‘/data/x’

============================================================

五、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符br/>[root@centos7 data]# cp /etc/profile /tmp/
[root@centos7 tmp]# vim /tmp/profile
:%s@^[[:space:]]+@@

============================================================

六、在vim中设置tab缩进为4个字符
1、编辑文件: vim ~/.vimrc;
2、添加以下内容,保存退出:
set ts=4
set noexpandtab