Linux的目录结构与磁盘分区

一 Linux目录结构与磁盘分区1 Linux文件大纲在Linux中,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头, 然后再一个一个的分支下来,因此,我们

一 Linux目录结构与磁盘分区

1 Linux文件大纲

在Linux中,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头, 然后再一个一个的分支下来,因此,我们也称这种目录配置方式为:目录树(directory tree), 这个目录树的主要特性有:目录树的启始点为根目录 (/);每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/wzh/test.txt;

相对路径:相对于目前路径的文件名写法,只要不是 / 就属于相对路径的写法,. 代表当前的目录,也可以使用 ./ 来表示;… 代表上一层目录,也可以 …/ 来代表;

./注意点:如果想运行当前路径下的某个可执行文件(.sh文件),且当前路径不在系统环境变量path中,就要这样运行,比如 ./zk.sh,因为运行当前路径下的某个可执行文件时linux会默认去系统环境变量path中寻找,找不到就执行失败,所以我们必须通过‘./’来强调:要在当前路径下执行;

/bin: 系统执行档的目录,存放着最为常见的命令,比如ls,cd等

/boot Linux启动时,需要的文件,包括一些连接文件和镜像文件,里面被破坏那么linux系统就无法被启动了

/dev 设备文件,类似于WIndows的设备文件管理器,linux习惯将一个个硬件映射成文件来管理,万物皆文件

  • /dev/cpu:共0,1,2,3四个文件,因为我们在虚拟机设置中为该虚拟机分配了四核cpu
  • /dev/(sda1,sda2,sda3,sdb1,sdb2…),每个都代表这某块的磁盘的一个分区映射文件

/etc ①保存系统配置信息(用户名&密码&邮箱…)和环境变量例如java环境变量的配置,只有root才有权力修改 ②存储应用程序的配置文件,如mysql的my.conf

  • /etc/passwd:用户的配置文件,每行的信息是 username:token:uid:gid:description:homedir:loginShell,可查看系统有哪些用户
  • /etc/shadow:用户的配置文件
  • /etc/group:用户组的配置文件,每行的信息是groupname:token:gid:userlist,可以查看系统有几个组
  • /etc/inittab:指定系统开机的运行级别,运行级别有6个,0,1,2,3,4,5
  • /etc/fstab:配置磁盘分区信息的文件
  • /etc/profile:有关Linux环境变量的东西,最典型的就是java环境变量的配置

/home 普通用户的家目录: ~ 代表当前使用者的家目录,而 ~guest则代表用户名为guest的家目录,每新增一个帐号时会在此生成相应的家目录(文件名默认就是用户名),删除用户时也会连带被删除,linux每个用户必有一个家目录

/media 媒体文件,linux将我们插入的U盘/光驱等移动存储设备识别并挂载到该目录下

/mnt 挂载文件,允许用户临时挂载别的文件夹的,会自动生成相应文件夹来挂载外部文件系统,如hgfs,可以挂载额外的磁盘文件或者是和Windows共享的磁盘文件夹

  • /mnt/hgfs/myshare:这是共享文件夹路径,myshare是指定的共享文件夹

/opt 主机额外提供的,用于临时存放安装包的目录

/proc 虚拟化文件,是系统内存的映射,通过访问这个目录来获取系统信息,千万不要动这个文件

/root 管理员的家目录,即根目录,详情如下

/run 进程文件

/srv service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录,千万不要动

/sys 系统文件

/lib 类似于Windows的动态链接库DDL文件,几乎所有应用程序都需要这些共享库

/var 通过日志文件及系统运行产生的临时数据(常发生变动的文件放在这里)

  • var/run 某些程序或者是服务启动后,会将他们的PID放置在这个目录下
  • var/lib 程序本身执行的过程中,需要使用到的数据文件放置的目录
  • var/log 系统日志存储文件夹

/tmp 临时文件

/usr(unix system resource):类似于Windows的和program files,用户的应用程序和文件基本上都会安装到这个目录下

  • /usr/bin 系统预装的可执行程序,会随着系统升级而改变,普通用户可以使用的命令,该路径默认被配置到了/etc/profile中,代表该路径作为系统环境变量;比如,这里面有一个zk.sh命令(启动zookeeper进程的命令),那么任意文件执行命令
/usr/bin/zk.sh

等价于

zk.sh
  • /usr/sbin 同上,区别是这里的命令超级用户才可以使用

  • /usr/lib 32位库文件(各应用软件的函式库、目标文件(object file),执行档或脚本,类似于Windows的program files(x86)

    • /usr/lib/systemd/system,存储各种着各种系统启动和管理系统服务的相关命令(也包括本地安装应用的启动及管理),比如redis.service,docker.servce,network.service,详细参考systemctl命令
  • /usr/lib64 64位库文件(各应用软件的函式库、目标文件(object file),的执行档或脚本,类似于Windows的program files

  • /usr/local/ 软件的安装包推荐存储在/opt目录下,而软件的安装位置推荐在此处。技巧:随着开发的深入会安装越来越多的应用,推荐进行分类,比如创建一个名为java文件,用于存储jdk、tomcat、idea等和java相关的文件,创建一个名为repository的文件,用于存储elk,redis,mysql…这种数据库文件

    • /usr/local/bin 给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件,/usr/local/bin下的命令优先于/usr/bin,一般应用程序的指令集默认会放到该目录下,比如redis相关指令文件

2 根目录与磁盘空间

  1. “/”它是最高一级目录,是树形结构,我们称"/“为Linux的root,也就是 Linux文件系统的入口就是,所有的目录、文件、设备都在”/“之下,所有的目录都是由根目录衍生出来的,”/"是Linux文件系统的组织者领导者。

  2. linux采用了一种“载入的处理方式”,它的整个文件系统包含了一整套的文件目录结构,将某块磁盘分区与一个目录联系起来,这时要载入的一个分区将使它的存储空间一个目录下获取

/*添加分区步骤
1 在虚拟机设置中添加一块磁盘,重启,通过lsblk -f可以看到sdb,此时还未分区
2 分区:fdisk /dev/sdb 开始分区操作
   1) 第一步输入m,在众多指令中选择n命令,n是新建分区
   2) 第二部是选择该分区是主分区还是扩展分区,选择p(primary)指定该分区是主分区
   3) 选择分区数,指定该硬盘有几个分区,我们选1,只创建一个分区
   4) 最后选w,w是将修改同步到磁盘然后退出,q是直接退出,刚才的修改对磁盘无效
   5) 再次查看分区情况,sdb下面有一个分区sbd1,但此时该分区sdb1没有UUID和MOUNTPOINT
3 我们进行分区格式化:mkfs -t ext4 /dev/sdb1,此时磁盘被分配了UUID(依然没有MOUNTPOINT),初始化成功,称为了ext4类型的磁盘
4 ①磁盘挂载到/dev/newdisk: mount /dev/sdb1 /dev/newdisk(重启失效)
②取消挂载:unmount /dev/sdb1或者unmount /dev/newdisk,但卸载后之前通过/dev/newdesk写入/dev/sdb1的文件不会变化
5修改/etc/fstab,里面的内容如下,我们复制一行修改新增磁盘的的UUID(或者直接用它的名称/dev/sbd1代替UUID)和挂载目录信息*/

/dev/sdb1/                                /newdisk                ext4     defaults       0 0
UUID=38a64ec0-65e6-4ac5-8a84-92fbd758206c /                       xfs     defaults        0 0
UUID=a85088a2-34c9-475e-ae1e-aca24c3958aa /boot                   xfs     defaults        0 0
UUID=6789b952-b26c-4d23-ac65-98377b1a9976 swap                    swap    defaults        0 0

/*
lsblk -f 查看磁盘分区详情(之所以有两块硬盘是因为我们在虚拟机硬件设置中添加了一块硬盘,重启后被识别)
第一列NAME:硬盘分为SCSI(当前主流硬盘,标识为hd*,hda1与hdb3就分别代表第一块SCSI硬盘的第一分区,
hdb3就代表第二块硬盘的第三分区)和IDE硬盘(sd,sda1,sdb3同理)
第二列FSTYPE:swap,即交换分区,存储暂时被踢出内存的进程;ext4是第四代扩展文件系统;xfs是一种非常优秀的
日志文件系统
第三列UUID:分区唯一标识符,刚添加的磁盘是没有的,只有格式化后才能获得
MOUNTPOINT:挂载点,标识该磁盘分区挂载到了那个文件夹上
*/
[root@CentOSWzh-7 ~]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 xfs                     a85088a2-3....                       /boot
├─sda2 swap                    6789b952-b....                       [SWAP]
└─sda3 xfs                     38a64ec0-6....                       /
sdb                                                                 
└─sdb1 ext4                    de527071-e....
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00               /run/media/root/CentOS 7 x86_64

/*
df -h这是查看的磁盘利用情况
1 之所以没有显示/dev/sda2是因为这是swap分区,不是传统的磁盘
2 /dev/sr0是光驱的设备名,代表linux镜像CentOS 7 x86_64
3 vmhgfs-fuse磁盘对应挂载目录是/mnt/hgfs,是我们挂载的linux系统共享文件夹;
4 /dev/sda1 | sda2 | sda3分别挂载的是"/boot","/swap","/"
5 /dev/sdb1是我们新增的磁盘分区,挂载目录是自定义的 /dev/newdisk
6 tmpfs是一种虚拟内存文件系统,而不是块设备,是基于内存的文件系统 
*/    
[root@CentOSWzh-7 dev]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        895M     0  895M   0% /dev
tmpfs           910M     0  910M   0% /dev/shm
tmpfs           910M   35M  876M   4% /run
tmpfs           910M     0  910M   0% /sys/fs/cgroup
/dev/sda3       195G  8.3G  187G   5% /
/dev/sda1      1014M  180M  835M  18% /boot
vmhgfs-fuse     892G  111G  781G  13% /mnt/hgfs
tmpfs           182M   36K  182M   1% /run/user/0
/dev/sr0        4.4G  4.4G     0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1       2.0G  6.0M  1.9G   1% /dev/newdisk 

上述过程如图所示:

3)"/"目录也是root用户的家目录,根目录是整个系统最重要的一个目录,根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会
4) /etc:配置文件,/bin:重要执行档,/dev:所需要的装置文件,/lib:执行档所需的函式库与核心所需的模块,/sbin:重要的系统执行文件这五个目录千万不可与根目录分开在不同的分区;

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754879614a5212177.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信