1、描述Linux发行版的系统目录名称命名规则以及用途。
* 系统目录名称命名规则
- 文件名最长255个字节
- 包括路径在内文件名称最长4095个字节
- 文件名称大小写敏感
- 除了 / 和 NUL, 其它字符都有效
- 遵循 Filesystem Hierarchy Standard (FHS)
- 颜色区分:蓝色-->目录, 绿色-->可执行文件, 红色-->压缩文件, 浅蓝色-->链接文件, 灰色-->其他文件
* 系统目录用途
/boot: 引导文件存放目录
/bin: 所有用户使用的基本命令(不能关联至独立分区, OS 启动即会用到的程序)
/sbin: 管理类的基本命令(不能关联至独立分区, OS 启动即会用到的程序)
/lib: 启动时程序依赖的基本共享库文件及内核模块文件(/lib/modules)
/etc: 配置文件目录
/home/USERNAME: 普通用户家目录
/root: 管理员家目录
/mnt: 临时文件系统挂载点
/dev: 设备文件及特殊文件储存位置(b: block device, 随机访问. c: character device, 线性访问)
/opt: 第三方应用程序的安装位置
/srv: 系统上运行的服务用到的数据储存位置
/tmp: 临时文件存储位置
/usr: 系统共享的只读数据 (Universal Shared, Read-only data)
/var: 变量数据文件(Variable data files)
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
* 文件元数据信息(metadata), 指的是文件的属性信息, 主要包括:
- File: 文件名
- Size: 文件大小(in bytes 以字节为单位)
- Blocks: 在文件系统上所占用的空间(以512字节的倍数为单位)
- IO Block: 提示应用程序文件系统的最有效访问字节块单位
- 文件类型 (比如 regular)
- Device: 文件所在设备号
- Inode: 文件节点号
- Links: 硬链接数
-Access: 访问权限
- Uid: 所有者ID和名称
- Gid: 所有者用户组ID和名称
- Access: 最后访问时间(atime, 读取文件内容)
- Modify: 最后修改时间(mtime, 改变文件数据内容)
- Change: 最后状态改变时间(ctime, 元数据发生改变)
* 可通过stat命令查看文件元数据信息
* 可通过 touch 命令修改文件的时间戳信息
格式:
touch [OPTION]... FILE...
常用选项:
- a change only the access time (and ctime)
- m change only the modification time (and ctime)
- t use [[CC]YY]MMDDhhmm[.ss] instead of current time
示例
3、总结软连接和硬连接区别,并用实例操作说明。
1)本质区别:硬连接指的是同一个文件有多个名字,软连接和原文件是不同的文件。
由本质区别引申出的以下表现区别:
2)跨分区:硬连接不支持跨分区,软连接可以跨分区。
3)目录:硬连接不支持对目录创建,软连接支持。
4)相互关系:硬连接相互之间是平等独立的关系,删除一个文件并不影响另一个。软连接和原始文件之间是依赖关系,如果原始文件删掉,软连接就失效。
5)inode 节点号:硬连接节点后相同,软连接节点号不同。
6)连接数:硬连接增加或删除,连接数会跟着增加和减少,增加或删除软连接,连接数不变。
7)相对路径:硬连接创建时用的是当前工作目录的相对路径。创建软连接时,原始文件的相对路径是相对于链接文件的路径,而不是当前工作目录。
8)文件类型:硬连接文件类型不变,软连接的文连接文件。
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
* cd 改变目录
切换至父目录: cd ..
切换至当前用户主目录: cd
切换至以前的工作目录: cd -
* ls [options] [files_or_dirs], 列出当前目录的内容或指定目录
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序
* stat [OPTION]... FILE... 查看文件状态
* 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
* mv 移动和重命名文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
* rm [OPTION]... FILE... 删除
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
* tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
* mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
* rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
* ln filename [linkname ] 创建硬连接
* ln -s filename [linkname] 创建软连接
* file [options] <filename>... 确定文件内容
-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-L 查看对应软链接对应文件的文件类型
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
cp /etc/profile /tmp/
vim /tmp/profile
(在扩展命令模式下)
:%s/^[[:space:]]\+//
(然后保存退出)
:wq
6、在vim中设置tab缩进为4个字符
vim ~/.vimrc
(进入插入模式后添加)
set ts=4
(Esc推出插入模式后保存退出)
:wq