linux目录
linux 中一些文件都是从根目录(/)开始,并按照文件系统目录标准FHS树形结构,来存放文件并定义每个区域用途。
目录名字严格区分大小写 root ROot rOOt 是三个不同的目录。
绝对路径:从根目录开始的路径 /root 准确 但是繁琐
相对路径:从当前路径开始的路径 ./tmp 简单但是不具有普遍性
linux常用路径说明如下:
物理设备的命名规则
硬盘分区
计算机使用硬盘来存储数据,硬盘由大量扇区组成,其中第一个扇区存储着引导记录和分区表信息。单个扇区容量512bytes.主引导记录占用446bytes,分区表信息占用64bytes。记录一个分区信息需要16bytes,因此一个硬盘最多能记录4个(主)分区信息。因此一般运维人员,会采用3个主分区一个和一个扩展分区,扩展分区可以扩展无限个逻辑分区。这样来满足多分区的需求。
硬件设备
linux 中一切皆文件,硬件也是文件。系统内核设备管理器(Udev)会自动将硬件名称规范起来。因此我们可以通过硬件名称就可以判断出设备大致的属性和分区信息。
常见命名规则如下:
硬盘采用 a-p标识16块不同的硬盘(默认从a开始),硬盘主分区编号从1开始4 结束(默认按照顺序分配也可手动指定)。逻辑分区从编号5 开始,(默认按顺序分配,也可以指定)
示例: /dev/sda5 代表什么设备?
/dev 下的都是硬件 sd 代表 存储设备 scsi/sata/U盘。 a 代表第一个被识别到的 5 代表是逻辑分区
综合表述:这是第一块硬盘中编号为5的逻辑分区。
文件系统与数据资料
文件系统作用是将硬盘合理规划使用户可以正常读写文件。linux中超过数十种文件管理系统,常见的如下
Ext3:它会将整个磁盘的写入动作预先记录下来,异常停机后可以回溯追踪被中断的部分。这样可以在异常停机中避免文件系统资料不一致的情况,自动修复数据与不一致错误。但是一般重整文件系统相当耗时,也不能保证资料100%不流失。
Ext4:是Ext3的后续版本,作为RHEL6的默认文件管理系统,支持更大的文件系统到1Eb。且能够有无限多的子目录。可以批量分配block块极大的提高了读写效率
XFS:作为RHEL7默认的文件管理系统,它的日志型文件管理系统的优势在意外关机后可以快速修复别破坏的文件。对磁盘影响特别小,同时支持18Eb的存储空间,满足了几乎所有的需求。
数据存储:
super block 保存文件的基本信息
blocks:保存文件的实际数据
挂载硬件设备
挂载操作指的是当用户需要使用硬盘设备或分区数据时,需要先将其与一个已存在的目录文件做关联,通过mount命令来实现。格式:mount 文件系统 挂载目录 ,如挂载光盘到 media/cdrom:
mount /dev/cdrom /media/cdrom
使用mount命令挂载操作后立即就可以使用该文件系统了,但是重启后就会失效,如果想重启后仍然有效,我们必须将挂载信息写入到 /etc/fstab文件中。因为这个文件中包含着文件系统和挂载信息,只有root用户可以操作。
填写格式如下:设备文件 挂载目录 格式类型 权限选项 自检 优先级
设备文件:设备路径+名称 也可以写UUID值
挂载目录:指定要挂载到的目录,需提前创建好
格式类型:指定文件系统格式 如:ext3、ext4、xfs、swap
权限选项:默认为defaults,可指定acl 或 quota等
自检:为1 则开机后自动进行磁盘自检 0 为不自检
优先级:若自检为1,可对多块硬盘进行优先级设置
当挂载光盘镜像的时候需要将文件类型设置为iso9660.其余设备类型需要结合实际情况灵活使用。
umount 命令用于撤销已经挂载的文件。 格式:umount[ 挂载点/设备文件]
取消对 /dev/cdrom 设备文件的挂载
umount /dev/cdrom
操作示例:
[root@bogon dev]# ll cdrom
lrwxrwxrwx 1 root root 3 Nov 19 03:15 cdrom -> sr0
[root@bogon dev]# cd cdrom
-bash: cd: cdrom: Not a directory
[root@bogon dev]# mount /dev/cdrom /media/mycdrom
mount: /dev/sr0 is write-protected, mounting read-only
[root@bogon dev]# cd /media/mycdrom/
[root@bogon mycdrom]# ll
total 110
-rw-rw-r-- 2 root root 14 Apr 20 2020 CentOS_BuildTag
drwxr-xr-x 3 root root 2048 Apr 20 2020 EFI
[root@bogon media]# umount /dev/cdrom
[root@bogon media]# ll /media/mycdrom/
total 0
添加硬盘设备
安装了新的硬盘设备后,为了更充分、安全的利用空间首先需要进行磁盘的分区、格式化,然后挂载使用
通过虚拟机设置添加一个2G的虚拟硬盘,这里省略添加过程。
1、添加硬盘
2、磁盘分区
fdisk 命令用于管理磁盘分区 格式:fdisk [磁盘名称]
[root@bogon ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m //查看帮助信息
Command action
a toggle a bootable flag
b edit bsd disklabel
Command (m for help): d //删除磁盘
Selected partition 1
Partition 1 is deleted
Command (m for help): p //显示当前分区信息
Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x2305b98a
Device Boot Start End Blocks Id System
Command (m for help): n //添加分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p //选择主分区
Partition number (1-4, default 1): //选择分区号码
First sector (2048-4194303, default 2048): //选择起始扇区
Using default value 2048
Last sector, +sectors or +size{
K,M,G} (2048-4194303, default 4194303): 5000 //选择结束扇区
Partition 1 of type Linux and of size 1.5 MiB is set
Command (m for help): n //再次 添加分区
......
Command (m for help): w //保存分区信息
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@bogon ~]#
3、格式化硬盘
命令mkfs ,支持的文件类型有 :cramfs、ext2、ext3、ext4、fat、msdos、xfs、vfat 等
格式:mkfs.文件类型 分区 如:mkfs.xfs /dev/sdb3
操作示例:
[root@bogon newFS]# mkfs.xfs /dev/sdb3
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=130112 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=520448, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
4、挂载硬盘
查看dev 目录下多了刚才创建的分区
挂载sdb3到目录里newFS
[root@bogon media]# mkdir /newFS
[root@bogon media]# mount /dev/sdb3 /newFS
mount: /dev/sdb3 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
[root@bogon media]# cd /newFS
[root@bogon newFS]# touch as -> test.txt
[root@bogon newFS]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 19 21:47 as
-rw-r--r-- 1 root root 0 Nov 19 21:47 test.txt
[root@bogon newFS]# vi /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=6bea6f4d-2e7b-4e96-bbb3-eaa6c16a51dd /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb3 /newFS xfs defaults 0 0
5、查看文件系统使用情况
df 命令用于查看挂载点信息和磁盘使用量 格式: df [选项] [文件]
du命令用于查看磁盘使用量 格式:du [选项] [文件]
操作示例:
[root@bogon newFS]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 3.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 17G 415M 98% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/sdb3 2.0G 33M 2.0G 2% /newFS
[root@bogon newFS]# df -h /dev/sdb3
Filesystem Size Used Avail Use% Mounted on
/dev/sdb3 2.0G 33M 2.0G 2% /newFS
[root@bogon newFS]# du -sh /newFS
8.0K /newFS
[root@bogon newFS]#
5、添加交换分区
swap交换分区类似于windows系统的虚拟内存,内存不足时将硬盘虚拟成内存进行使用。
将sdb2格式化为swap类型
[root@bogon newFS]# mkswap /dev/sdb2 --将sdb2格式化为swap类型
Setting up swapspace version 1, size = 11924 KiB
no label, UUID=ae5c6700-f75f-44e7-9acd-ce7b4a3c3295
[root@bogon newFS]# free -m --查看内存用量
total used free shared buff/cache available
Mem: 3770 212 3346 3 212 3344
Swap: 2047 0 2047
[root@bogon newFS]# swapon /dev/sdb2
[root@bogon newFS]# free -m
total used free shared buff/cache available
Mem: 3770 212 3346
软硬方式链接
Linux中的ln 命令能够让用户创建出两种不同类型文件快捷方式,
硬链接
一个指向原始文件inode的指针,系统不为他分配独立的inode与文件,所以实际上来讲硬链接文件与原始文件其实是同一个文件,只是名字不同。增加一个硬链接,该文件的inode连接数就会增加1,直到该文件inode链接数归0,才是彻底删除。
因为硬链接实际就是指向原文件inode的指针,即便原文件删除,也仍然可以通过硬链接访问,但是不能跨越文件系统,也不能链接目录。
软连接
也成为符号链接, 仅仅包含要连接文件的路径名,因此可以做目录链接,也可以跨越文件系统,但是原始文件删除后连接就是失效。同windows中的快捷方式。
创建硬链接方式:ln 文件名 链接名
创建软链接方式:ln -s 文件名 链接名
操作示例:
创建 目录 test 的 软链接
[root@localhost ~]# mkdir test
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1260 Jun 10 05:26 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 Nov 20 06:01 test
[root@localhost ~]# ln test testhlink
ln: ‘test’: hard link not allowed for directory
[root@localhost ~]# ln -s test testhlink
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1260 Jun 10 05:26 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 Nov 20 06:01 test
lrwxrwxrwx 1 root root 4 Nov 20 06:02 testhlink -> test