目录
二、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
四、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
五、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
一、描述Linux发行版的系统目录名称命名规则以及用途。
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin: lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub) 都存放于此目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位
二、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
stat命令查看文件元数据信息,touch命令修改文件的时间戳信息,介绍如下:
stat命令
stat – display file or file system status(用于展示文件或文件系统的状态)
-
创建空文件和刷新时间 touch
用法:stat [OPTION]… FILE… - 示例:
- 解释说明:利用stat命令,可以显示文件的元数据(13)
-
- File:文件名
-
- Size:文件大小(单位:B)
-
- Blocks:文件所占扇区个数,为8的倍数(通常的 Linux 的扇区大小为 512 B,连续八个扇区组成一个block)
-
- IO Block:每个数据块的大小(单位:B)
-
- regular file:普通文件(此处显示文件的类型)
-
- Inode:文件的Inode号《参考链接:理解inode》
-
- Links:硬链接次数
-
- Access:权限
-
- Uid:(属主id/属主名)
-
- Gid:(属组id/属组名)
-
- Access:最近访问时间
-
- Modify:数据改动时间
-
- Change:元数据改动时间
以上的参数均属于文件的元数据,元数据即用来描述数据的数据
时间戳
此处着重说明一下文件的时间戳:
- Access:Access time(atime),是指取用文件的时间,所谓取用,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容;使用cp命令把该文件(即来源文件)复制成其他文件;或者在这个文件上运用grep、sed、more、less、tail、head等命令,凡是读取文件的操作,均改变文件的Access time
- Modify:Modify time(mtime),是指修改文件内容的时间,只要文件内容有改动(如使用转向输出或转向附加的方式)或存盘的操作,就会改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time
- Change:Change time(ctime),是指文件属性或文件位置改动的时间,如:使用chmod、chown、mv指令集;使用ln做文件的硬是连接,都会改变文件的Change time
touch命令
为了更形象地描述时间戳,下面将引入touch命令,通过具体的例子来进行区分:
touch – change file timestamps(修改文件的时间戳)
- 用法:touch [OPTION]… FILE…
- 常用参数:
-c:指定的文件路径不存在时不予创建
-a: 仅修改access time和change time
-m:仅修改modify time和change time
注意:Change time不能手动指定
-t:修改Access time和Modify time为指定时间,格式为:[[CC]YY]MMDDhhmm[.ss](年月日时分.秒) - 示例:
- 首先使用touch命令创建一个空文件(touch + 文件名,当文件不存在时,可以用于创建空文件)
- 使用touch -a f1.txt,修改f1.txt的Access时间为当前系统时间
这时我们发现文件的Change time一同被改变了,因为Access time属于文件元数据中的一项,当Access time被修改时,文件的属性也被改动 - 使用touch -m f1.txt,将f1.txt的Modify时间改为当前系统时间
这时我们发现文件的Change time一同被改变了,原因和上面相同,当Modify time被修改时,文件的属性也被改动 - 使用touch -t 1801120000.00 f1.txt,将文件的访问和修改时间改为2018年1月12日0点0分0秒
三、总结软连接和硬连接区别,并用实例操作说明。
如下图:hard link(硬链) 和file 都指向同一个 inode,inode对应了一个实际物理存储的文件。soft link(软链) 对应一个新的inode, 新的inode对应一个新的物理存储文件,物理存储文件又指向了目标文件 file。
①软链接相当于建立了一个新的快捷方式文件,该文件有自己的名称和inode以及物理存储的文件数据,文件数据里记录着如何跳转的设置数据,访问该快捷文件会被重新定向到原始文件,删除原始文件,软链文件失效,再次创建同名的文件后,链接指向新的同名文件;
硬链接相当于为当前文件名对应的文件再建立了一个文件别名,别名对应的inode以及物理数据都是一样的,删除文件的其中一个名称,文件不会丢失,除非把所有的名称都删除。
②软链接可以为文件和目录(哪怕是不存在的)创建链接
硬链接只能为文件创建链接。
③软链接可以跨文件系统 (示例/tmp与/data不在一个分区)
硬链接必须是同一个文件系统(示例/tmp与/data不在一个分区)
④硬链接因为只是文件的一个别名,所以不重复占用内存,软链接因为只是一个访问文件的快捷方式文件,文件内只包含快捷指向信息,所以占用很小的内存。
⑤软链接的文件权限和源文件可以不一样,创建时链接数不增长
硬链接文件权限肯定是一样的,创建时链接数递增
四、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
创建空文件和刷新时间 touch
touch命令
格式:touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
复制文件和目录 cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中
基于安全,建议为cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容 填充至新文件中
cp SRC... DEST
SRC... 多个文件
DEST 必须存在,且为目录,其它情形均会出错
cp SRC DEST
SRC是目录:此时使用选项:-r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:
cp常用选项
-i 覆盖前提示
-n 不覆盖,注意两者顺序
-r, -R 递归复制目录及内部的所有内容
-a 归档,相当于-dR --preserv=all
-d --no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
-p 等同--preserv=mode,ownership,timestamp
-v --verbose
-f --force
-u --update 只复制源比目标更新文件或目标不存在的文件
-b 目标存在,覆盖前先备份,形式为 filename~
--backup=numbered 目标存在,覆盖前先备份加数字后缀
移动和重命名文件 mv
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
删除 rm
rm [OPTION]... FILE...
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
示例: rm -rf /*
目录操作
tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
rm -r 递归删除目录树
五、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
复制并编辑profile文件
扩展命令模式下输入进行替换
%s/^\s*//
六、在vim中设置tab缩进为4个字符
编辑文件,进入之后依次输入 [esc] --> [ : ] --> [ set tabstop=4 ]
或者tabstop可以简写为ts。