1、描述Linux发行版的系统目录名称命名规则以及用途。
Linux的目录结构是有一定规范的,即特定的目录应该存放特定的文件。此规范由文件系统层次结构标准(Filesystem Hierarchy Standard)实现。文件系统标准旨在供Linux分发开发人员,程序包开发人员和系统实现者使用。但是它主要用于参考,而不是如何管理Linux文件系统或目录层次结构的强制标准。
Linux的文件系统特点如下:
文件和目录被组织成一个单根倒置的树形结构;文件系统从根目录下开始,用“/”表示;根文件系统为rootfs,即root filesystem;以“.”开头的文件为隐藏文件;路径中上级和下级目录之间分割使用单斜线“/”。
Linux文件系统中各目录文件的作用简介:
目录名称 | 作用 |
---|---|
/boot | 系统启动引导文件存放目录。内核文件(vmlinuxz)以及引导加载器(bootloader)都存放在此目录下 |
/bin | 存放所有用户使用的基本命令,该目录不能独立分区,OS在启动时会使用到该目录下的文件 |
/sbin | 存放管理类的基本命令,该目录不能独立分区,OS在启动时会使用到该目录下的文件 |
/lib | 存放系统启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules);还有个目录叫/lib64,他是专用于X86_64系统上的辅助共享文件存放的位置 |
/etc | 配置文件目录 |
/home | 普通用户家目录 |
/root | 管理员用户家目录 |
/media | 便携式移动设备挂载点 |
/mnt | 临时文件挂载点 |
/dev | 设备文件及特殊文件存储位置 |
/opt | 第三方引用程序的安装位置 |
/srv | 系统上运行的服务用到的数据 |
/tmp | 临时文件存储位置 |
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
在Linux系统中,可以使用stat命令查看文件的元数据信息,如下:
[root@centos7 ~]# stat initial-setup-ks.cfg
File: ‘initial-setup-ks.cfg’
Size: 1979 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 201326660 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2008-08-08 08:08:08.000000000 +0800
Modify: 2008-08-08 08:08:08.000000000 +0800
Change: 2020-04-20 11:07:24.054950778 +0800
Birth: -
各信息含义:
名称 | 含义 |
---|---|
File | 文件名 |
Size | 文件大小(字节) |
Blocks | 文件使用的数据块总数 |
IO Block | 数据块大小 |
regular file | 文件类型(这里是指常规文件) |
Device | 设备编号 |
Inode | 文件所在的Inode |
Links | 硬连接次数 |
Access | 权限 |
Uid | 属主id/用户 |
Gid | 属组id/组名 |
Access(atime) | 表示文件访问时间;当文件被访问时,更新这个时间 |
Modify(mtime) | 表示文件内容的修改时间;当文件数据内容被修改时,更新这个时间 |
Change(ctime) | 表示文件的状态时间;当文件状态被修改时,更新这个时间;例如:文件的链接数,大小,权限,Blocks数 |
我们可以通过命令 touch -t [timestamps] [filename]来修改文件的时间戳,如下:
[root@centos7 ~]# touch -t 200808080808.08 initial-setup-ks.cfg
[root@centos7 ~]# stat initial-setup-ks.cfg
File: ‘initial-setup-ks.cfg’
Size: 1979 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 201326660 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2008-08-08 08:08:08.000000000 +0800
Modify: 2008-08-08 08:08:08.000000000 +0800
Change: 2020-04-20 12:03:35.085793734 +0800
Birth: -
3、总结软连接和硬连接区别,并用实例操作说明。
硬连接本质是对同一个文件起多个文件名,所以表现为一个inode号可以对应多个文件名。换而言之就是一个文件使用了多个别名,但他们的inode号相同。硬连接可使用ln命令创建。
硬连接的特性:
1.文件有相同的inode及data block
2.只能对已存在的文件进行创建
3.不能跨分区创建硬连接
4.不能对目录进行创建,只可对文件创建
5.删除一个硬连接文件并不影响其它有相同inode号的文件
[root@centos7 data]# touch 1.txt
[root@centos7 data]# echo hard > 1.txt
[root@centos7 data]# ln 1.txt 2.txt
[root@centos7 data]# ls -li
total 8
67 -rw-r--r-- 2 root root 5 Apr 20 12:04 1.txt
67 -rw-r--r-- 2 root root 5 Apr 20 12:04 2.txt
[root@centos7 data]# cat 2.txt
hard
[root@centos7 data]# rm -f 1.txt
[root@centos7 data]# cat 2.txt
hard
软连接与硬连接不同,若文件用户数据块中存放的内容是另一文件的路径名指向,则该文件就是软连接。软连接就是一个普通文件,只是数据块内容有点特殊。软连接有自己的inode号以及用户数据块,因此软连接的创建与使用没有类似硬连接的诸多限制。软连接的创建方式与硬连接相似,也使用ln命令,但是需要加上“-s”选项。软连接的特性如下:
1.软连接有自己的文件属性及权限等
2.可对不存在的文件或目录创建软连接
3.软连接可跨分区创建
4.软连接可对文件或目录创建
5.创建软连接时,连接计数不会增加
6.删除软连接并不影响被指向的文件,但若被指向的源文件被删除,则相关的软连接被称为死连接,若被指向路径文件重新创建,死连接可恢复为正常的软连接
[root@centos7 data]# touch 1.txt
[root@centos7 data]# echo soft > 1.txt
[root@centos7 data]# cd ./test/
[root@centos7 test]# ln -s /data/1.txt 2.txt
[root@centos7 test]# ls -li
total 0
33554561 lrwxrwxrwx 1 root root 11 Apr 20 12:08 2.txt -> /data/1.txt
[root@centos7 test]# cat 2.txt
soft
[root@centos7 test]# rm -f /data/1.txt
[root@centos7 test]# ls -li
total 0
33554561 lrwxrwxrwx 1 root root 11 Apr 20 12:08 2.txt -> /data/1.txt
[root@centos7 test]# touch /data/1.txt
[root@centos7 test]# ls -li
total 0
33554561 lrwxrwxrwx 1 root root 11 Apr 20 12:08 2.txt -> /data/1.txt
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
Linux文件管理类命令大致可分为两大类:管理目录类文件命令和管理文件的相关命令。
管理目录类文件相关命令:
tree:可以查看目录的树状结构
tree
.
├── 2.txt -> /data/1.txt
├── anaconda-ks.cfg
├── Desktop
├── Documents
├── Downloads
├── initial-setup-ks.cfg
├── Music
├── Pictures
├── Public
├── Templates
└── Videos
8 directories, 3 files
mkdir:创建目录
选项 | 说明 |
---|---|
-m | 指定创建的目录的权限 |
-p | 递归创建,如父目录不存在则自动创建 |
-v | 创建目录时给出详细说明,并在创建目录时列出它们 |
[root@centos7 data]# mkdir -m 777 /data/d1
[root@centos7 data]# ll
total 0
drwxrwxrwx 2 root root 6 Apr 20 11:53 d1
[root@centos7 data]# mkdir -pv /data/d1/d2/d3/d4/d5
mkdir: created directory ‘/data/d1/d2’
mkdir: created directory ‘/data/d1/d2/d3’
mkdir: created directory ‘/data/d1/d2/d3/d4’
mkdir: created directory ‘/data/d1/d2/d3/d4/d5’
[root@centos7 data]# tree /data/
/data/
└── d1
└── d2
└── d3
└── d4
└── d5
5 directories, 0 files
rmdir:删除目录
选项 | 说明 |
---|---|
-p | 递归删除目录及其空的父目录 |
-v | 输出每个目录的处理信息 |
[root@centos7 data]# rmdir -pv /data/d1/d2/d3/d4/d5/
rmdir: removing directory, ‘/data/d1/d2/d3/d4/d5/’
rmdir: removing directory, ‘/data/d1/d2/d3/d4’
rmdir: removing directory, ‘/data/d1/d2/d3’
rmdir: removing directory, ‘/data/d1/d2’
rmdir: removing directory, ‘/data/d1’
rmdir: removing directory, ‘/data’
管理文件的相关命令:
ls:查看文件列表
选项 | 说明 |
---|---|
-A | 显示除隐藏文件”.“和”…“以为的所有文件 |
-a | 显示以“.”开头的所有文件 |
-b | 将文件中不可输出字符以反斜线“”加字符编码的方式输出 |
-C | 多列显示输出结果,此项默认 |
-c | 与-lt选项连用时,按照文件状态时间排序输出目录内容,根据文件的索引节点中的ctime字段排序。与-l选项连用时,则排序的依据是文件的状态改变时间 |
-d | 仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表 |
-F | 在每个输出项后追加类型标识符 |
-i | 显示文件索引节点号(inode) |
-l | 以唱歌时显示目录下的内容列表 |
-1 | 与-C选项相反,单列输出所有内容 |
-m | 用“,”分割每个文件或目录名称 |
-n | 以用户识别码uid和群组识别码gid代替其名称 |
-R | 递归处理 |
-r | 以文件名反序排列并输出目录内容列表 |
-s | 显示文件和目录大小,以区块为单位 |
-t | 用文件的更改时间排序 |
stat:查看文件详细属性
选项 | 说明 |
---|---|
-b | 列出辨识结果时,不显示文件名称 |
-c | 详细显示指令执行过程,便于排错或分析程序执行的情形 |
-f FILE | 指定名称文件,其内容有一个或多个文件名称时,依序辨识这些文件类型 |
-L | 直接显示符号链接所指向的文件的类别 |
-i | 输出文件对应的MIME的类型 |
-v | 显示版本信息 |
-z | 尝试取解读压缩文件的内容 |
touch:创建文件,修改文件时间属性
选项 | 说明 |
---|---|
-a | 表示只更改访问时间atime |
-c | 不新建任何文件 |
-m | 只更改mtime |
-r | 把指定文件时间设成和参考文件的日期时间相同,而非当前时间 |
-t STAMP | 使用指定的时间戳,格式为CCYYMMDDhhmm.ss |
cp:复制文件
选项 | 说明 |
---|---|
-a | 此参数的效果和同时指定-dpR参数相同 |
-b | 覆盖已存在的目标文件前先对之做备份 |
-f | 如果目标文件不能打开,先删除后打开 |
-i | 覆盖文件前先询问用户 |
-l | 对源文件建立硬连接,而非复制文件 |
-p | 保留源文件或目录的属性 ,包括所有者,所属组,权限与时间 |
-P | 复制软连接本身,而非复制软连接指向的源文件 |
-R,-r | 递归处理,将指定目录下的文件与子目录一并处理 |
-s | 对源文件建立符号连接,而非复制文件 |
mv:移动,重命名文件
选项 | 说明 |
---|---|
-b | 当文件存在时,覆盖前为其创建一个备份 |
-f | 直接覆盖不提示 |
-i | 覆盖前先询问 |
-u | 当源文件比目标文件新或者目标文件不存在时才执行 |
rm:删除文件
选项 | 说明 |
---|---|
-f | 强制删除文件,不提示确认,并自动忽略不存在文件 |
-i | 删除前询问 |
-d | 删除空目录,非空无法删除 |
-r | 递归删除 |
-v | 显示删除过程 |
ln:创建软、硬连接
选项 | 说明 |
---|---|
-b | 覆盖前先备份 |
-d | 允许超级用户制作目录的硬连接,因系统限制可能出错 |
-f | 强制执行 |
-i | 交互模式 |
-n | 把符号链接视为一般目录 |
-s | 软连接(符号连接) |
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
[root@centos7 ~]# cp /etc/profile /tmp/
[root@centos7 ~]# sed -nr '/^[[:space:]]/s@^[[:space:]]+*@@p' /tmp/profile
6、在vim中设置tab缩进为4个字符
临时生效
打开vim编辑器,命令模式下直接输入:set tabstop=4即可。
永久生效
在用户家目录中,编辑配置文件
vim .vimrc
添加一行set tabstop=4保存退出即可