Linux系统文件和目录的命名规则
- 区分大小写。
- 名称的长度不能超过255个字节。
- 文件的绝对路径最大长度为4095字节。
- 可以使用除了斜杠和NUL以外的任何字符作为合法的名称,实际运用中应该尽量避免使用特殊字符和空格命名目录和文件。
- 以点号开头的文件是隐藏文件,需要使用
ls -a
命令才能查看相关信息。 - 文件的扩展名仅用于区分文件类型,没有特殊的含义。
Linux系统目录的用途
1. bin:存放Linux系统的引导文件,包括内核文件、GRUB引导加载器
2. boot:存放所有用户可以使用的Linux命令
3. dev:存放各种设备文件和特殊的文件
4. etc:存放Linux系统和各种软件的配置文件
5. home:普通用户的家目录,存放普通用户相关的文件
6. lib:存放各种程序运行时需要使用的库文件和内核模块文件
7. lib64:存放64位程序运行时需要使用的库文件
8. media:挂载U盘、移动硬盘等移动存储设备
9. mnt:挂载文件系统,如NFS、ISO文件
10. opt:存放用户安装的第三方软件
11. proc:存放内核与进程
12. root:root用户的目录,存放root用户相关的文件
13. run:存放系Linux统启动以后的信息
14. sbin:存放拥有管理员权限的用户才可以使用的Linux命令
15. srv:存放各种服务相关的文件
16. sys:保存硬件设备的相关信息
17. tmp:保存临时文件
18. usr:保存用户安装的软件、共享库文件
19. var:保存系统和应用程序的日志文件
Linxu系统文件的元数据
在Linux系统中,文件的元数据是指文件属性信息,使用ls -l
命令可以查看,主要包括以下几点:
1. 文件类型
2. 权限
3. inode数
4. 所有者
5. 所属组
6. 大小
7. 创建时间
8. 文件名
修改文件的时间戳信息
Linux系统中的文件有三个时间戳:
1. access time 访问时间,atime,读取文件内容后改变
2. modify time 修改时间,mtime,改变文件内容(数据)后改变
3. change time 改变时间,ctime,元数据发生改变后改变
由三个时间戳的定义可知,使用cat命令查看文件会修改atime,使用vim修改文件内容后会修改3个时间戳。 除此之外,使用touch命令可以自定义文件的atime和mtime。
# 自定义文件的atime
touch -a -d "2019-10-10 20:00" anaconda-ks.cfg
# 自定义文件的mtime
touch -m -d "2019-10-20 20:00" anaconda-ks.cfg
# 自定义文件的atime和mtime
touch -d "2019-10-30 20:00" anaconda-ks.cfg
软链接和硬链接的区别
对比 | 硬链接 | 软链接 |
---|---|---|
同一文件 | 是 | 否 |
支持跨分区 | 否 | 是 |
支持链接目录 | 否 | 是 |
inode | 相同 | 不同 |
创建链接文件后原文件的链接数 | 增加 | 不变 |
原文件的相对路径 | 相对于当前工作目录 | 相对于软链接文件的相对路径 |
删除原文件 | 链接数减一,可以访问硬链接文件 | 无法访问软链接文件 |
文件类型 | 和原文件相同 | 链接文件 |
实际的演示如下图:
Linux文件管理类命名总结
(1)ls命令可以查看当前目录或者指定目录的内容
# 查看当前目录下的所有文件
ls -a
# 查看/boot目录下文件的详细信息
ls -l /boot
(2)stat命令可以查看文件状态信息
# 查看anaconda-ks.cfg文件的状态信息
stat anaconda-ks.cfg
(3.)file命令用于查看指定文件的文件类型
# 查看/dev/sda的文件类型
file /dev/sda
(4.)touch命令用于创建空文件和修改文件的时间戳
# 创建空文件
touch file1
# 修改文件的时间戳
touch anaconda-ks.cfg
touch -d "2019-10-30 20:00" anaconda-ks.cfg
(5)cp命令用于复制文件
# 复制anaconda-ks.cfg到/tmp目录
cp anaconda-ks.cfg /tmp
# 复制/etc目录到/tmp目录
cp -r /etc/ /tmp
(6)命令用于移动文件或者重命名文件
# 将anaconda-ks.cfg重命名为test.txt
mv anaconda-ks.cfg test.txt
# 将test.txt移动到/tmp目录
mv test.txt /tmp
(8)rm命令用于删除文件
# 删除anaconda-ks.cfg文件
rm anaconda-ks.cfg
# 删除/opt目录
rm -rf /opt
删除文本行首的空白字符
要求:复制/etc/profile到/tmp/目录,用查找替换命令删除/tmp/profile文件中行首的空白字符
- 复制profile文件,然后用vim打开
cp /etc/profile /tmp/
vim /tmp/profile
- 输入“/^[[:blank:]]+”后按回车键可以查看到文件行首的空白字符
- 输入“:%s#^[[:blank:]]+##g”后按回车键可以删除所有行首的空白字符
设置vim的tab缩进为4个字符
临时生效:扩展命令模式下输入set tabstop=4,然后按回车键
对当前用户永久生效:echo 'set tabstop=4' >> $HOME/.vimrc
对所有用户永久生效:echo 'set tabstop=4' >> /etc/vimrc