目录
linux系统常见重要文件目录
Filesystem Hierarchy Standard(文件系统层次化标准)
计算机开机时发生了什么?
文件系统命令:
df:
mount——关于挂载
du:查看某个文件或目录所占用磁盘空间的大小
du –sh ./和 du 的区别
ls:列出目录下的文件(英文list)
第一列,文件类型:1位
第二列,文件权限:9位
第三列,文件硬链接的次数
第四列,文件的属主(owner)
第五列,文件的属组(group)
第六列,文件大小(size),单位是字节
第七列,时间戳(timestamp):最近一次被修改的时间
cd:切换目录
pwd:显示当前工作目录
mkdir:创建目录
rm:删除文件或目录
cp:copy
mv:移动
ln:用来为文件创建连接******
1.硬链接
2 软链接
stat:主要用于显示文件或文件系统的详细信息(元数据信息)
什么是元数据
touch:主要就是用来修改文件的访问时间和修改时间。
1 刷新已存在的文件的访问时间
2 创建一个不存在的文件出来
/boot:系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev:设备文件
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录
/lib:库文件
/media:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件,/var/tmp
/var:可变后的文件
/bin:可执行文件,用户命令
/sbin:管理命令
当计算机开机的时候,如果是机械硬盘,会在第一个分区中有一个小的应用加载程序(很小,会又512G),进到内存里会有一个小的程序,里面有一个分区表,来寻找第一个活动分区,我们刚刚的分区,会将boot单独创建一个分区,在boot活动分区之前会放一个小程序,通过BIOS,必然会启动这个小程序,它会识别我们boot分区的格式化的类型,那个小程序就是为了能读懂文件格式化的格式类型的。它先把boot的第一个分区挂载成根,来读取我们的内核
把我们内核展开,然后让我们的内核接管整个操作系统的控制权,它会根据用户的配置,重新加载目录树,给出根目录,它会将三分区挂载成根,然后在第三个分区的sbin目录下找到一个叫做Init的程序,来初始化操作系统,重新将一号分区挂载到boot目录下。
检查linux服务器的文件系统的磁盘空间占用情况。
df -a:显示所有文件系统的磁盘使用情况。
df -h:以人类易读的格式输出
df -h 磁盘名:显示某个磁盘的使用情况。
将某个文件挂载到另一个文件夹中,则会出现下面情况
进入到/mnt下面,可以看到这里面的东西就是我光盘里面的东西
解除挂载,mnt目录中就空了
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件
ls -l 查看目录下所有文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
后面跟/就会把根目录下面所有目录打印出来,如果跟/etc就会把etc下面的所有目录都打印出来。
还可以同时显示多个目录:ls –l /etc /root
/root上面就是/etc下面的目录显示
那么,ls –l之后显示信息都代表什么意思呢?????
在Linux系统中一切皆文件,在某种情况下,你不能使用字节流,你一定使用的是字符流
-:普通文件 (f)
(Regular File)指普通意义上的文件,如数据文件、可执行文件等
d: (Device File)目录文件(文件夹)
b: 块设备文件 (block) 字节设备文件,可以理解为字节文件
c: 字符设备文件 (character),
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
每3位一组,3组 权限(User,GroupUser,OtherUser)每一组:rwx(读,写,执行), r—
更改权限用chmod
ls -s 在每个文件的前面打印出文件的大小。 size(大小)
ls -S 以文件的大小进行排序
ls -lt 按时间进行文件的排序 Time(时间)
ls -A 列出含有"."和".."的文件。
ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
ls -L 列出文件的链接名。Link(链接)
ls- / /etc 显示多个目录
cd进入用户主目录
cd ~ 进入用户主目录(家)
cd - 返回刚才切换之前的那个目录
cd ~abc 用户abc的家(只有root用户有权进入其他用户的家)
cd .. 切换到上一级目录
cd ~/god /home/god切换到home目录下面的god目录
cd ~god切换到用户god的家目录(另外一种表示方式为cd /home/god)
直接创建一个目录abc mkdir abc
创建目录又两种创建方式:
a/b/c/d创建多层级目录,要加修饰-p表示递归创建
mkdir –p ./a/b/c/d
sxt/dir{1,2,3} 在sxt下创建三个目录--à使用花括号扩展
rm -r 同时删除该目录下的所有目录层(删除目录和文件都可以)à递归删除
rm -f 强制删除,没有提示(删除文件)
rm -rf 递归强制删除目录
rm -i 进行任何删除操作前必须先确认(删除文件)
cp -r 复制当前目录及子文件或目录à递归复制。
同样支持花括号扩展
支持数组{}:复制/etc目录下的profile,hosts 目录或文件到./目录下
也可以以空格隔开同时移动好几个文件
也可以交叉使用
可以一次移动多个文件,用空格隔开。
可以移动目录
如果移动到当前目录一个不存在的文件,就是重命名
连接类型分为硬连接和符号连接(又叫软链接soft)两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。
-s 创建软连接
这里old指的就是我们的硬链接,news指的就是软连接
将old链接硬链接到new链接---------链接之后硬链接的数量变成了2
删除new的硬链接,链接数变为1.任何一方丢失,不会影响另外一方。
将old硬链接软链接到new链接后,发现软硬链接的数量都是1
如果删除硬链接,那么软链接就会丢失指向。
我们再想打开软链接就是不可能的事了。
软连接和硬链接的区别:
硬链接,news指向了old指向的地址。两个指针指向物理磁盘的同一地址。
删除ln.txt文件,ln01.txt文件仍然存在,并且数据不改变
硬链接就相当于我们Windows操作系统中在软件安装路径中的显示我们应用程序的那个.exe的文件,我们可以复制这个文件到别的地方,双击也可以打开文件,也可以给这个文件重命名,存在两个不同的硬链接,但是只要有一个文件内容修改了,另外一个也被修改,但是删除一个,另外一个不受影响,照样可以把程序跑起来。
软连接,news指向了old,间接指向old指向的地址。两个磁盘地址号不同
软链接就相当于我们Windows操作系统中的快捷方式,快捷方式删除,并不会影响软件安装路径中的应用程序启动所需的.exe文件,而且快捷方式也可以修改名字,无论何时单击软链接都是去调用软件安装路径中的硬链接
所以硬链接删除old,news不会受到影响,而软连接删除old,news指向为一个空,会一闪一闪报红。
硬连接:删除一个,另一个存在,并且内容也存在
软连接:删除一个,另一个存在,但内容不存在
日志文件系统可以放置系统崩溃时导致的数据不一致问题。对文件系统元数据的更改都被保存在一份单独的日志里,当发生系统崩溃时可以根据日志正确的恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。 所以说,元数据就是数据的数据。 任何文件系统中的数据都分为数据和元数据。 数据是指普通文件中的实际数据。而元数据是指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者、以及文件数据块的分布信息等等。在集群系统中,分布信息包括文件在磁盘上的位置以及文件在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。 元数据的管理方式: 元数据的管理有两种方式。集中式管理和分布式管理。 集中式管理是指在系统中专门有一个节点司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件请求前,都要向该数据管理器请求元数据。 分布式管理是指将元数据存放在系统的任意节点并且能够动态的迁移。对元数据的职责也分布到各个不同的节点上。 大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。缺点是单一失效点问题,若该服务器失效,整个系统将无法工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的瓶颈。 分布式元数据管理的好处是,解决了集中式管理的单一失效问题,而且性能不会随着操作频繁而出现瓶颈。其缺点是,实现复杂,一致性维护复杂,对性能有一定影响。 |
做大数据的时候,我们关心的就是数据,那么这个数据描述信息,我们就叫做元数据。
简单的介绍一下stat命令显示出来的文件其他信息:
- File:显示文件名
- Size:显示文件大小
- Blocks:文件使用的数据块总数
- IO Block:IO块大小
- regular file:文件类型(常规文件)
- Device:设备编号
- Inode:Inode号
- Links:链接数
- Access:文件的权限
- Gid、Uid:文件所有权的Gid(group id)和Uid(user id)。
stat:用于显示文件的元数据信息
cat:显示文件的数据信息
linux下的三个时间:
如果修改了文件数据,则下面三个时间都会改变,
如果修改了文件权限chmod +w filename(元数据),则Change Time会改变
1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
2. Modify Time:简写为mtime,表示文件的内容修改时间,当文件的数据内容被修改时,更新这个时间。
3. Change Time:简写为ctime,表示文件的状态修改时间,当文件的状态(元数据)被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
两个功能:
touch install.log 修改三个时间为触发命令的时间
touch sxt.txt 如果sxt.txt文件不存在,则会创建这个文件
-a 只更新访问时间,不改变修改时间
-m 只更新修改时间,不改变访问时间
-c 不创建不存在的文件