LINUX-文件系统

1.LINUX发行版的系统目录名称命名规则以及用途
LINUX-文件系统
tips:还有软链接没有画上

1.1 命名规则
标准的linux文件系统:(ext4)--文件名称大小写敏感
以.开头的文件为隐藏文件
路径分隔的/
文件名最长255B
包括路径在内文件名称最长4095B
每个文件都有两类相关数据: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 N
/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 文件类型

- - 普通文件
- d 目录文件  directory
- b 块设备 block
- c 字符设备 character
- p管道文件 pipe
- l 符号链接文件 link
- s套接字文件 socket

2.描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息

2.1 使用命令stat 查看文件状态

lime@ubuntu1804:~$ stat /etc/passwd
  File: /etc/passwd
  Size: 1645      	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 656867      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-03-03 21:40:16.090016532 +0800
Modify: 2021-03-03 21:40:15.982005208 +0800
Change: 2021-03-03 21:40:15.990006053 +0800
 Birth: -

file:文件名 Size:文件大小 Blocks:占用的磁盘块数 IO Block: IO块大小
Inode:inode链接号 Links: 被link链接数 Access:第一个访问访问权限
Uid:用户id/所属的组 Gid: 组id/所属的组
Access: 上一次访问该文件的时间
Modify: 修改该文件的时间
Change:上一次文件改变的时间

2.2 使用touch 命令修改文件时间戳信息
touch 的命令参数:

$ touch
$ touch -a /仅改变atime和ctime
$ touch -m /仅改变mtime和ctime
$ touch -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
$ touch -c 如果文件不存在,则不予创建例如:touch -a 修改 文件访问时间
lime@ubuntu1804:~$ sudo touch -a /etc/passwd
lime@ubuntu1804:~$ stat /etc/passwd
  File: /etc/passwd
  Size: 1645      	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 656867      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-03-04 15:34:24.330732057 +0800
Modify: 2021-03-03 21:40:15.982005208 +0800
Change: 2021-03-04 15:34:24.330732057 +0800
 Birth: -

3.总结软链接和硬链接的区别,并用实例操作说明
区别:
硬链接:
同一个文件
不支持跨设备
inode相同
创建新的硬链接,链接数会增加,删除会减少
不支持对文件夹/目录创建硬链接
原始文件相对路径是相对于当前工作目录
若删除源文件,链接数-1
文件类型与源文件相同

lime@ubuntu1804:/data$ sudo ln file3.conf dir1/file333.conf  
lime@ubuntu1804:/data$ ls -l !*
ls -l ln file3.conf dir1/file333.conf
ls: cannot access ‘ln‘: No such file or directory
-rwxrwxrwx 3 root root 9 Mar  4 15:59 dir1/file333.conf
-rwxrwxrwx 3 root root 9 Mar  4 15:59 file3.conf
lime@ubuntu1804:/data$ stat file3.conf 
  File: file3.conf
  Size: 9         	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 15          Links: 3
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-03-04 15:59:10.230430632 +0800
Modify: 2021-03-04 15:59:06.350421279 +0800
Change: 2021-03-04 16:04:49.737601493 +0800
 Birth: -
lime@ubuntu1804:/data$ stat dir1/file333.conf 
  File: dir1/file333.conf
  Size: 9         	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 15          Links: 3
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-03-04 15:59:10.230430632 +0800
Modify: 2021-03-04 15:59:06.350421279 +0800
Change: 2021-03-04 16:04:49.737601493 +0800
 Birth: -
lime@ubuntu1804:/data$ rm -f ABC.conf 
rm: cannot remove ‘ABC.conf‘: Permission denied
lime@ubuntu1804:/data$ sudo rm -f ABC.conf 
lime@ubuntu1804:/data$ stat file3.conf 
  File: file3.conf
  Size: 9         	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 15          Links: 2
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2021-03-04 15:59:10.230430632 +0800
Modify: 2021-03-04 15:59:06.350421279 +0800
Change: 2021-03-04 16:06:10.838305668 +0800
 Birth: -
lime@ubuntu1804:/data$ sudo ln file3.conf  /tmp/123.conf
ln: failed to create hard link ‘/tmp/123.conf‘ => ‘file3.conf‘: Invalid cross-device link
lime@ubuntu1804:/data$ echo testtest >>file3.conf 
lime@ubuntu1804:/data$ cat file3.conf dir1/file333.conf 
12334535
testtest
12334535
testtest
lime@ubuntu1804:/data$ sudo ln dir1 fileasdasd.log
ln: dir1: hard link not allowed for directory

软链接:
不是同一个文件
支持跨设备
inode不同
创建或删除,链接数都不会变化
支持文件夹
原始文件的相对路径是相对于链接文件的相对路径
若删除源文件,链接文件无法访问
链接文件与源文件无关

lime@ubuntu1804:/data$ sudo ln -s dir3 /tmp/dir4    //跨分区
lime@ubuntu1804:/data$ ls -l dir3/
total 0
-rw-r--r-- 1 root root 0 Mar  4 16:17 123.txt
lime@ubuntu1804:/data$ ls -l /tmp/dir4 
lrwxrwxrwx 1 root root 4 Mar  4 16:17 /tmp/dir4 -> dir3
lime@ubuntu1804:/data$ sudo ln -s test.log /tmp/test
lime@ubuntu1804:/data$ ls -il
  25 -rw-r--r-- 1 root root     7 Feb 24 23:04 test.log
lime@ubuntu1804:/tmp$ ls -il
131090 lrwxrwxrwx 1 root root    8 Mar  4 16:21 test -> test.log
lime@ubuntu1804:/data$ sudo ln -s bc.log bc.log.link
lime@ubuntu1804:/data$ ls -il !*
ls -il ln -s bc.log bc.log.link
ls: cannot access ‘ln‘: No such file or directory
24 4 -rw-r--r-- 1 root root 210 Mar  4 16:34 bc.log
25 0 lrwxrwxrwx 1 root root   6 Mar  4 16:35 bc.log.link -> bc.log
lime@ubuntu1804:/data$ cat bc.log.link 
127.0.0.1	localhost
127.0.1.1	ubuntu1804.lime.org	ubuntu1804

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
lime@ubuntu1804:/data$ sudo rm -rf bc.log
lime@ubuntu1804:/data$ cat bc.log.link 
cat: bc.log.link: No such file or directory

4.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
5.复制/etc/profile到/tmp/目录,用查找替换命令删除/tmp/profile 文件中的行首空白字符
6.在vim中设置tab缩进为4个字符

LINUX-文件系统

上一篇:阿里云刘伟光:真正的数据中台是什么?


下一篇:OD 剥离进程