Linux文件系统管理,CentOS目录结构

Linux文件系统管理

文件系统管理:
重新创建文件系统会损坏原有文件

mkfs:make file system
mkfs -t TYPE 指定的分区

mkfs -t ext2 == mkfs.ext2
mkfs -t ext3 == mkfs.ext3

mke2fs
-j:创建ext3类型的文件系统
-b BLOCK_SIZE:指定块大小
-L LABEL:指定分区卷标
-m #:指定预留给超级用户的块数百分比为#%.
-i #:用于指定为多少字节的空间创建一个inode,默认为8192,这里给出的大小为块大小的2^n倍
-N #:指定inode个数
-F:强制创建文件系统
-E:用于指定额外的文件系统属性
blkid:用户显示/定位块设备的属性
UUID:
TYPE:
LABEL:

e2label:用于查看或定义卷标
e2label /dev/sda2 卷标 -->用户设置卷标
e2label /dev/sda2 --> 用于查看卷标

tune2fs:调整文件系统属性
-j:不损坏原有数据,将ext2升级为ext3,不能降级
-L:用于设定或修改卷标
-m #:调整预留给超级用户的百分比
-r #:指定预留块数
-o :设定默认挂在选项
-c #:指定挂在次数达到#数次之后进行自检,0或-1标示关闭次功能
-i #:指定每挂在使用多少天进行自检;0或-1标示关闭此功能;
-l:显示超级块中的信息

dumpe2fs:显示文件系统属性信息
dumpe2fs -h:只显示超级块信息

fsck:检查并修复Linux文件系统
-t TYPE:指定文件系统类型
-a:自动修复

e2fsck:专用修复ext2/ext3文件系统
-p:自动修复或(-a)
-f:强制检查

挂载:将新的文件系统挂载至跟文件系统

mount

mount 设备 挂载点

设备:
设备文件:/dev/sda3
卷标:LABEL=""
UUID:UUID=""
挂载点:目录
要求:

  1. 此目录没有被其它进程使用;
  2. 目录得事先存在;
  3. 目录中的文件会被暂时隐藏

mount [options] [-o options] DEVICE MOUNT_POINT
-a:标示挂在/etc/fstab文件中定义的所有文件系统
-n:默认情况下,mount命令每挂载一个设备,都会把挂在的设备信息保存至/etc/mtab文件,使用-n选项意味着挂在设备时,不把信息写入该文件。
-t TYPE:指定挂载设备上的文件系统的类型:不是用此选项时,mount会调用blkid命令获取对应文件系统的类型。
-r:只读挂载,挂载光盘时常用此选项
-w:读写挂载

-o:指定额外的挂载选项,也即指定文件系统
remount:重新挂载当前文件系统
ro:挂载为只读
rw:读写挂载
loop:挂载本地回环设备

挂在完成后通过挂载点访问对应文件系统上的文件。

卸载:将某文件系统与当前根文件系统的关联关系予以移除
umount:卸载文件系统
umount 设备
umount 挂载点

卸载注意事项:

  1. 挂载的设备没有进程使用

swap分区:
free
-m

fdisk命令中,调整分区类型为82
创建交换分区:
mkswap /dev/sda5
swapon /dev/sda5 挂载swap分区
swapoff /dev/sda8 卸载swap分区
swapon -a启用所有的在/etc/fstab文件中的swap分区

回环设备:
loopback,使用软件来模拟实现硬件

创建一个镜像文件:120G -->格式化为swap分区

dd if=/etc/inittab of=/root/inittab,模拟cp命令
if= :输入文件
of= :输出文件
bs=SIZE:指定复制块大小
count= :复制几次
seek=#:创建数据时跳过的空间大小

dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 // 备份mbr
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1 // 恢复mbr

dd if=/dev/zero of=/dev/swapfile bs=1M count=1024
mkswap /var/swapfile
swapon /var/swapfile

文件系统的配置文件/etc/fstab:
Linux系统在初始化时,会自动挂载此文件下的每个文件系统
要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率(每多少天做一次完全备份) 文件系统检测次序(只有根为1)
/dev/sda3 /mnt/hello ext4 defaults 0 0

fuser:验证进程正在使用的文件或套接字文件
-v FILE:查看某文件上正在运行的进程
-k
-m

fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程

文件系统管理: 重新创建文件系统会损坏原有文件 mkfs:make file system mkfs -t TYPE 指定的分区 mkfs -t ext2 == mkfs.ext2 mkfs -t e...

CentOS目录结构,centos目录

    在Linux底下,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头, 然后再一个一个的分支下来,因此,我们也称这种目录配置方式为:目录树(directory tree), 这个目录树的主要特性有:

  • 目录树的启始点为根目录 (/, root);
  • 每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。
  • 每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

如果我们将整个目录树以图的方法来显示,并且将较为重要的文件数据列出来的话,那么目录树架构就如下图所示:

图片 1

 

CentOS的目录大体上可分为四类:管理类、用户类、应用程序类、信息类文件目录。

管理类目录: 

       /boot linux 的内核及引导系统程序所需要的文件目录
       /bin 存放标准 linux 的工具,在终端里输入ls,系统就系统将会到该目录查看是否存在该命令程序。
       /sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令
       /var 这个目录的内容是经常变动的,用来存储经常被修改的文件,如日志、数据文件、邮箱等
       /etc 主要存放系统配置方面的文件
       /dev 主要存放与设备有关的文件
      /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义

用户类目录:

       /root 系统管理员目录
       /home 主要存放个人数据

应用程序类目录:

       /lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库
       /tmp 临时目录,有些linux会定期清理
       /usr 存放一些不适合放在/bin 或 /etc 目录下的额外工具,如个人安装的程序或工具
              /usr/local 主要存放那些手动安装的软件,
              /usr/bin 用于存放程序
              /usr/share 用于存放一些共享数据
              /usr/lib 存放一些不能不能直接运行,但却是许多程序运行所必需的一些函数库文件
       /opt 主要存放可选程序,直接删除程序不影响系统其设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面

信息类目录:

      /lost found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。

       /proc 操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里

*
*其他重要目录:

       /etc/rc.d            放置开机和关机的脚本。
       /etc/rc.d/init.d    放置启动脚本
       /etc/xinetd.d      配置xinetd.conf可以配置启动其他额外服务。
       /usr/include        一些distribution套件的头文件放置目录,安装程序时可能会用到。
       /usr/lib              套件的程序库
       /usr/local           默认的软件安装目录。
       /usr/share/doc   系统说明文件的放置目录
       /usr/share/man  程序说明文件放置目录
       /usr/src             内核源代码目录
       /usr/X11R6       X的存放目录

 

在Linux底下,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头,然后再一个一个的分支下来,因...

makefile中的target到底代表什么?,makefiletarget

  刚开始用make的时候,以为makefile中名字叫做main的target就是make默认执行的target(中文翻译叫做标的(di,四声),下面统一称呼为标的),然后曾经很天真地犯过这样的错误,就一个.c文件(名字叫做main.c),功能是打印helloworld,然后我写了这样的makefile来编译:

main:
    gcc -o main main.c

  结果第一次make命令能编译,后面如果还想再用make命令编译的话,就会出现这样的错误:

  图片 2

  即使更改了main.c中的代码,也会出现这样的错误。当时我一直想不通,为什么第一次能编译,后面编译就会报错呢,后来学习了一下makefile的语法,才知道makefile是这样定义的。

target ...: prerequisites
            command
            command

  target代表的是一个 标的,prerequisites代表的是这个标的所依赖的标的,下面那个command就是生成这个标的的命令。

  那么那个标的代表的是什么呢?其实它就是代表了一个与他同名的文件,编译之后生成的.o文件,编译链接之后生成的可执行文件或者其他任何类型的文件,例如main这个标的代表的就是main这个可执行文件。

 

  可能这样将有点晦涩,就拿我上面那个错误来举例,在上面那个例子中,执行make之后,它做的工作是这样的:

    1.查找makefile,默认执行第一个标的(即main)。

    2.检查main这个文件存不存在或者需不需要更新。

    3.如果main文件不存在,则执行下面那个gcc命令来生成这个文件。

    4.如果main文件已经存在,且它的修改时间要早于依赖文件的修改时间(即这个main文件过期了),那么执行下面的gcc命令来生成这个文件。

  看了上面那个步骤,大家应该就能理解为什么我上面会报错了吧,就是由于我那个main标的所依赖的文件为空,所以那个main文件永远不会过期,所以,每回执行make命令都会提示main is up to date.(意思是这个文件是最新的,不需要更新了)

  那么该怎么做才是对的呢,我们可以改成这种形式:

main: main.c
    gcc -o main main.c

  这里给main这个标的添加了一个依赖,依赖于main.c这个文件,如果main.c这个文件的修改时间晚于main这个文件的修改时间,那么就执行下面的gcc命令来生成main这个文件。

 

  OK,分析完了这个,我们再来分析一下另一个经典的标的,clean,还是上面的栗子,我添加上clean的标的,就是删除生成的main这个可执行文件,如下所示:

main: main.c
    gcc -o main main.c
clean:
    rm main

  此时如果我运行了make clean命令,那么就会删除main这个可执行文件,那么这个标的的原理是什么呢?其实当我们运行了make clean命令之后,它的执行步骤是这样的:

  由于clean标的没有依赖的文件,所以它就是检查clean这个文件是否存在,如果不存在,那么执行clean标的下面的命令来生成clean文件。但是下面的rm命令又不会生成clean文件,所以导致的结果就是每回我们运行make clean命令,都会执行下面的rm命令。如下图所示:

  图片 3

  那么如果我们在当前目录下添加上一个clean文件会怎么样呢,就会出现下面的效果了:

  图片 4

  这次,clean标的下面的命令都不会被执行了。

  

  OK,我想聊的makefile的内容就是这些,最后来总结一下吧。

  1.makefile中的每个标的都代表了一个文件。

  2.如果只运行make命令,那么默认执行第一个标的。

  3.执行一个标的时,会做两件事情:

    3.1.查看与这个标的同名的文件是否存在,如果不存在,那么就运行这个标的下面的命令。

    3.2.如果与这个标的同名的文件已经存在,那么就检查与这个标的同名的文件是否需要更新(即标的文件的修改时间是否早于依赖文件的修改时间),如果需要更新,那么就运行这个标的下面的命令。

 

刚开始用make的时候,以为makefile中名字叫做main的target就是make默认执行的target(中文翻译叫做标...

本文由ca88手机版登录发布于ca88手机版,转载请注明出处:Linux文件系统管理,CentOS目录结构

TAG标签: ca88手机版登录
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。