Linux学习知识(二):文件管理

Linux系统文件和目录的命名规则

  1. 区分大小写。
  2. 名称的长度不能超过255个字节。
  3. 文件的绝对路径最大长度为4095字节。
  4. 可以使用除了斜杠和NUL以外的任何字符作为合法的名称,实际运用中应该尽量避免使用特殊字符和空格命名目录和文件。
  5. 以点号开头的文件是隐藏文件,需要使用ls -a命令才能查看相关信息。
  6. 文件的扩展名仅用于区分文件类型,没有特殊的含义。

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学习知识(二):文件管理

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文件中行首的空白字符

  1. 复制profile文件,然后用vim打开

    cp /etc/profile /tmp/
    vim /tmp/profile
  2. 输入“/^[[:blank:]]+”后按回车键可以查看到文件行首的空白字符
    Linux学习知识(二):文件管理
  3. 输入“:%s#^[[:blank:]]+##g”后按回车键可以删除所有行首的空白字符
    Linux学习知识(二):文件管理
    Linux学习知识(二):文件管理

设置vim的tab缩进为4个字符

临时生效:扩展命令模式下输入set tabstop=4,然后按回车键

对当前用户永久生效:echo 'set tabstop=4' >> $HOME/.vimrc

对所有用户永久生效:echo 'set tabstop=4' >> /etc/vimrc

猜你喜欢

转载自blog.51cto.com/14920534/2542419