1、描述Linux发行版的系统目录名称命名规则以及用途
文件系统结构
/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
/var:variable data files
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux:security enhanced linux,selinux相关的安全策略等信息的存储位置
文件名规则
-
长度限制
文件名最长255个字节
包括路径在内文件名称最长4095个字节
-
特殊字符限制
除了斜杠和NULL,所有字符都有效,但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
-
大小写敏感
标准Linux文件系统(如ext4),文件名称区分大小写
-
隐藏文件
以.开头
2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?
文件元数据
access time:查看文件的时间
modity time:修改文件的时间
change time:修改元数据的时间
links:链接数
access:文件的访问权限
size:文件的大小
inode:文件的索引节点编号
blocks:文件所占用的块数
IO blocks:硬盘上每个块的大小
修改文件的时间戳信息
见第4点的touch命令
3、总结软链接和硬链接的区别,并用实例操作说明
软链接和硬链接的区别
-
硬链接同一文件多个名字体现在链接数增加,inode号不增加;软链接不同文件,体现在链接数不增加,inode号增加
-
硬链接不能跨分区创建;软链接可以跨分区创建
-
硬链接不能对目录创建;软链接可以对目录创建
-
删除一个硬链接,其他硬链接不受影响;删除目标文件,软链接失效
-
文件类型不同
示例
在CentOS 7中,/root/目录下有lesson文件
1. 查看/root/lesson文件信息
ll
ls -i lesson
可以看到文件lesson本身的相关信息:普通文件,链接数为1,inode为50337224
2. 创建/root/lesson的硬链接存放在/etc/下
ln lesson /etc/lesson_hard
ll /etc/lesson_hard
ls -i /etc/lesson_hard
可以看到硬链接lesson_hard的相关信息:普通文件,链接数为2,inode为50337224
3. 创建/root/anaconda-ks.cfg的软链接存放在/etc/下
ln -s ../../root/lesson /etc/lesson_soft
ll /etc/lesson_soft
ls -i /etc/lesson_soft
可以看到软链接lesson_soft的相关信息:软链接文件,链接数为1,inode为34255327
4. 将源文件删除,观察硬链接和软链接的变化
rm lesson
可以看到硬链接的链接数减1,其他信息未变,软链接失效
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
touch
用途:创建空文件和刷新时间戳,默认刷新三个时间
语法:
touch [OPTION]... FILE...
-a 改变atime和ctime
-m 改变mtime和ctime
-t [[CC]yy]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
示例:
刷新文件的atime,mtime,ctime
touch /etc/issue
将文件的atime和mtime指定为2010-08-20 12:30:20
touch -t 201008201230.20 f1
cp
用途:复制文件和目录
语法:
cp [OPTION]... [-T] SOURCE DEST 一个源
cp [OPTION]... SOURCE...DIRECTORY 多个源
cp [OPTION]... -t DIRECTORY SOURCE...
-i 覆盖前提示
-n 不覆盖
-in 无提示
-ni 有提示
-r,-R 递归复制目录及内部的所有内容
-d 不复制原文件,只复制链接名,相当于--no-dereference --preserv=links
-a 归档,相当于-dR --preserv=all
--preserv[=ATTR_LIST]
[=ATTR_LIST]
mode 权限
ownership 属主属组
timestamp 时间戳
links
xattr
ontext
all
-p 等同--preserv=mode,ownership,timestamp
-v,--verbose 显示信息
-f,--force 强制
-u,--update 只复制源比目标更新的文件或目标不存在的文件
--backup=numbered 目标存在,覆盖前先备份加数字后缀
cp SRC DEST
-
SRC是单个文件
- DEST不存在
新建DEST,并将SRC中内容填充至DEST中
- DEST存在且为文件
将SRC中的内容覆盖至DEST中,基于安全,建议为cp命令使用-i选项(y:确认覆盖,Enter:不覆盖)
- DEST存在且为目录
在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
-
SRC是多个文件
- DEST必须存在,且为目录
在DEST下新建与原文件同名的文件,并将原内容复制至新文件中
-
SRC是目录(此时使用选项:-r)
- DEST不存在
创建指定DEST,复制SRC目录中所有文件至DEST下
- DEST存在且为文件
报错
- DEST存在且为目录
在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中
示例:
复制文件时保留时间属性
cp --preserv=timestamp /etc/fstab /data/fstab
目标存在,覆盖前先备份加数字后缀
cp --backup=numbered /etc/motd f1
备份grub2.cfg文件
cp -av grub2.cfg{,.bak}
mv
用途:移动和重命名文件
语法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTOR
mv [OPTION]... -t DIRECTORY SOURCE...
-i 交互式
-f 强制
rm
用途:删除文件或目录
语法:
rm [OPTION]... FILE...
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root
示例:
删除软连接
rm -rf d1.link
删除软链接对应的目录
rm -rf d1.link/
mkdir
用途:创建目录
语法:
mkdir [OPTION]... DIRECTORY...
-p 存在于不报错,且可自动创建所需的各目录
-v 显示详细信息
-m MODE 创建目录时直接指定权限
示例:
自动创建所需的各目录
mkdir -pv d1/d2/d3/d4
5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
cp /etc/profile /tmp/
sed -i.bak '1s/^[[:space:]]//' /tmp/profile
6、在vim中设置tab缩进为4个字符
set ts=4