1、描述linux发行版的系统目录名称规则及用途
1.1文件系统目录结构
- 文件和目录被组织成一个单根倒置树结构
- 文件系统从根目录下开始,用“/"表示
- 根文件系统(rootfs): root filesystem
- 标准Linux文件系统(如: ext4),文件名称大小写敏感,例如:MAIL,Mail, mail, mAiL
- 以.开头的文件为隐藏文件
- 路径分隔的/
- 文件名最长255个字节
- 包括路径在内文件名称最长4095个字节
- 蓝色-->目录、绿色-->可执行文件、红色-->压缩文件、浅蓝色-->链接文件、灰色-->其他文件*
- 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用
- 每个文件都有两类相关数据:元数据: metadata,即属性,数据: data,即文件内容
1.2文件系统目录功能
- /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: 临时文件存储位置
- /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:保存系统两次重启之间产生的临时数据 - /proc:用于输出内核与进程信息相关的虚拟文件系统
- /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
- /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
1.3应用程序的组成部分
- 二进制程序: /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin,/usr/local/sbin
- 库文件:/lib, /lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
- 配置文件:/etc, /etc/DIRECTORY,/usr/local/etc
- 帮助文件: /usr/share/man, /usr/share/doc,/usr/local/share/man,/usr/local/share/doc
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)。
元数据信息包含:
- File:文件名
- Size:文件大小(单位:B)
- Blocks:文件所占块个数
- IO Block:每个数据块的大小(单位:B)
- regular file:普通文件(此处显示文件的类型)
- Inode:文件的Inode号,文件的索引节点号
- Links:硬链接次数
- Access:权限
- Uid:(属主id/属主名)
- Gid:(属组id/属组名)
- Context:文件所在的环境
- Access:最近访问时间access time (atime)
- Modify:数据改动时间modification time (mtime)
- Change:元数据改动时间status time (ctime)
- Creat/Birth:文件创建时间
查看文件的元数据的方法:
使用命令stat 查看文件的元数据,stat命令:stat – display file or file system status,
使用语法:stat FILE…
范例:
修改文件的时间戳的方法:
touch命令:touch – change file timestamps
使用语法: touch [OPTION]… FILE…
当touch的文件不存在时,会在目标目录下创建空文件
选项:
不跟任何选项时三个时间戳都会被更新为当前时间。
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t :指定改为某一时刻的时间,时间参数格式 [[CC]YY]MMDDhhmm[.ss]
范例:
文件没有修改之前:
修改后
3、总结软连接和硬连接区别,并用实例操作说明
1.本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件
⒉.跨设备
硬链接:不支持
软链接:支持
3.inode
硬链接:相同
软链接:不同
4.链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5.文件夹
硬链接:不支持
软链接:支持
6.相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7.删除源文件
硬链接:只是链接数减─,但链接文件的访问不受影响
软链接:链接文件将无法访问
8.文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关
范例
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
4.1显示当前工作目录
pwd命令: printing working directory
- -P元示真实物理路径
- -L显示链接路径(默认)
范例:
4.2绝对路径和相对路径
- 绝对路径
以正斜杠/即根目录开始完整的文件的位置路径可用于任何想指定一个文件名的时候 - 相对路径名
不以斜线开始,一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置可以作为一个简短的形式指定一个文件名
4.3更改目录
命令cd : change directory改变目录
选项:-P切换至物理路径,而非软链接目录,可以使用绝对或相对路径
- 切换至父目录: cd ..
- 切换至当前用户主目录: cd
- 切换至以前的工作目录: cd -
4.4列出目录内容
ls命令可以列出当前目录的内容或指定目录
常见选项:
- -a包含隐藏文件
- -l显示额外的信息
- -R目录递归
- -l目录和符号链接信息
- -1文件分行显示
- -S按从大到小排序
- -t按mtime排序
- -u配合-t选项,显示并按atime从新到旧排序
- -U按目录存放顺序显示
- -×按文件后缀排序
说明:
ls查看不同后缀文件时的颜色由/etc/DIR_COLORS和@LS_COLORS变量定义
4.5 确定文件内容
文件可以包含多种类型的数据,使用file命令检查文件的类型,然后确定适当的打开命令或应用程序使用
常用选项:
- -b列出文件辨识结果时,不显示文件名称
- -f filelist 列出文件filelist中文件名的文件类型
- -F使用指定分隔符号替换输出文件名后默认的"∵"分隔符
- -L查看对应软链接对应文件的文件类型
- --help 显示命令在线帮助
4.6复制、移动、重命名文件和目录
- cp
- mv
- rm
cp命令:
作用:复制文件(或者目录等)。可以使用这个命令复制一个文件到一个指定的目的地,或者复制任意多个文件到一个目的目录。
格式:
单源复制:cp [OPTION]... [-T] SOURCE DEST # OPTION:选项 SOURCE:源文件 DEST:目标文件或目录
多源复制:cp [OPTION]... SOURCE... DIRECTORY # DIRECTORY:目录
cp [OPTION]... -t DIRECTORY SOURCE...
格式说明:
- 在单源复制中,有两种情况需要说明一下,DEST存在和不存在。
(1)当DEST不存在时,会事先创建此文件,并复制文件的数据流至DEST中;
(2)DEST存在:如果DEST是非目录文件时,则覆盖目标文件;如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流: - 在多源复制中也有两种情况,DEST存在和不存在。
(1)如果DEST不存在:错误;
(2)如果DEST存在:当DEST是非目录文件时,错误;当DEST是目录文件,分别复制每个文件至目标目录中,并保持原名。
常用选项: - -i:交互式复制,在覆盖操作前提醒用户确认;
- -r:递归复制目录及内部的所有内容;
- -a:归档复制,尽可能保持文件的结构和属性;
- -d:复制符号链接作为符号链接而不是复制它指向的文件;
- -p,--preserve[=ATTR_LIST]:保持原有文件的属性信息,其中ATTR_LIST选项包括mode,ownership,timestamp,links,xattr,context,all等;
- -f:强制覆盖,不作覆盖提醒;
- -v:显示命令执行过程;
使用范例:
复制 /etc/fstab文件到 tmp 目录下为f1.txt
复制/etc/issue文件覆盖/tmp/f1.txt
mv命令:
作用:移动文件(目录)或者用于对文件(目录)的重命名。如果将一个文件移动到一个已存在的目标文件中,则会将目标文件的内容覆盖。
注意事项:
移动文件或目录时,可以不止一个
mv与cp命令的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
- -i:交互式操作,覆盖前先询问用户确认。
- -f:强制覆盖重复文件或目录;
- -t,--target-directory=
:指定全部的源文件要移动到的目标目录;
使用范例
文件重命名
移动文件
rm命令:
作用:rm命令可以删除一个目录中的一个或多个文件和目录。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
注意:由于使用rm命令所删除的文件几乎无法恢复,所以建议不用的文件不要直接删除,而是移动至某个专用目录:(模拟回收站)
格式:
rm [OPTION]... FILE...
常用选项:
- -f:强制删除文件或目录;
- -i:交互模式,在删除已有文件或目录前先与用户确认;
- -r:递归,将指定的目录下的所有文件与子目录一并处理;
- -v:显示详细的执行过程;
- -d:删除空目录;
使用范例:
交互式删除文件
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符
vim /tmp/profile
:%s/^[[:space:]]+//
6、vim中设置tab缩进为4个字符
在家目录中编辑.vimrc文件
vim .vimrc 输入 set tabstop=4