1、目录结构

linux系统中一切文件都是从根目录(/)开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,并且定义了常见目录的用途。
image.png

  1. /boot 开机所需文件—内核、开机菜单以及所需配置文件等
  2. /dev 以文件形式存放任何设备与接口
  3. /etc 配置文件
  4. /home 用户家目录
  5. /bin 存放单用户模式下还可以操作的命令
  6. /lib 开机时用到的函数库,以及/bin 与/sbin 下面的命令要调用的函数
  7. /sbin 开机过程中需要的命令
  8. /media 用于挂载设备文件的目录
  9. /opt 放置第三方的软件
  10. /root 系统管理员的家目录
  11. /srv 一些网络服务的数据文件目录
  12. /tmp 任何人均可使用的“共享”临时目录
  13. /proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
  14. /usr/local 用户自行安装的软件
  15. /usr/sbin Linux 系统开机时不会使用到的软件/命令/脚本
  16. /usr/share 帮助与说明文件,也可放置共享文件
  17. /var 主要存放经常变化的文件,如日志
  18. /lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

2、物理设备

  1. IDE 设备 /dev/hd[a-d]
  2. SCSI/SATA/U /dev/sd[a-p]
  3. 软驱 /dev/fd[0-1]
  4. 打印机 /dev/lp[0-15]
  5. 光驱 /dev/cdrom
  6. 鼠标 /dev/mouse
  7. 磁带机 /dev/st0 或/dev/ht0
  8. 由于现在的 IDE 设备已经很少见了,所以一般的硬盘设备都会是以“/dev/sd”开头的

3、挂载

  1. mount 挂载
  2. 参数
  3. -a 挂载所有在/etc/fstab 中定义的文件系统
  4. -t 指定文件系统的类型
  5. [root@linuxprobe ~]# mount /dev/sdb2 /backup #把设备/dev/sdb2 挂载到/backup 目录
  6. 注:这个挂载只是临时的挂载,系统重启后就会失效(类似U盘拔插的操作)。如果需要将设备和目录永久的关联就必须要把挂载的设备信息写入到文件(/etc/fstab)中。
  1. [root@localhost packages]# more /etc/fstab
  2. /dev/mapper/centos-root / xfs defaults 0 0
  3. UUID=41ff41fd-8e69-450d-9ebb-7551b9a76153 /boot xfs defaults 0 0
  4. /dev/mapper/centos-swap swap swap defaults 0 0
  5. 设备文件 一般为设备的路径+设备名称,也可以写唯一识别码(UUIDUniversally Unique Identifier
  6. 挂载目录 指定要挂载到的目录,需在挂载前创建好
  7. 格式类型 指定文件系统的格式,比如 Ext3Ext4XFSSWAPiso9660(此为光盘设备)等
  8. 权限选项 若设置为defaults,则默认权限为:rwsuiddevexecautonouserasync
  9. 自检 若为 1 则开机后进行磁盘自检,为 0 则不自检
  10. 优先级 若“自检”字段为 1,则可对多块硬盘进行自检优先级设置
  1. unmount 撤销挂载
  2. [root@linuxprobe ~]# umount /dev/sdb2

4、分区,挂盘

  1. [root@localhost ~]# lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. sda 8:0 0 20G 0 disk
  4. ├─sda1 8:1 0 1G 0 part /boot
  5. └─sda2 8:2 0 19G 0 part
  6. ├─centos-root 253:0 0 17G 0 lvm /
  7. └─centos-swap 253:1 0 2G 0 lvm [SWAP]
  8. sdb 8:16 0 10G 0 disk
  9. ├─sdb1 8:17 0 2G 0 part
  10. └─sdb2 8:18 0 5G 0 part [SWAP]
  11. sr0 11:0 1 4.4G 0 rom
  1. m 查看全部可用的参数
  2. n 添加新的分区
  3. d 删除某个分区信息
  4. l 列出所有可用的分区类型
  5. t 改变某个分区的类型
  6. p 查看分区信息
  7. w 保存并退出
  8. q 不保存直接退出
  1. 1、创建新的分区
  2. [root@localhost ~]# fdisk -l #显示所有可用分区类型
  3. 磁盘 /dev/sda21.5 GB, 21474836480 字节,41943040 个扇区
  4. Units = 扇区 of 1 * 512 = 512 bytes
  5. 扇区大小(逻辑/物理):512 字节 / 512 字节
  6. I/O 大小(最小/最佳):512 字节 / 512 字节
  7. 磁盘标签类型:dos
  8. 磁盘标识符:0x0000730e
  9. 设备 Boot Start End Blocks Id System
  10. /dev/sda1 * 2048 2099199 1048576 83 Linux
  11. /dev/sda2 2099200 41943039 19921920 8e Linux LVM
  12. 磁盘 /dev/sdb10.7 GB, 10737418240 字节,20971520 个扇区 #这个就是可用分区
  13. Units = 扇区 of 1 * 512 = 512 bytes
  14. 扇区大小(逻辑/物理):512 字节 / 512 字节
  15. I/O 大小(最小/最佳):512 字节 / 512 字节
  16. 磁盘 /dev/mapper/centos-root18.2 GB, 18249416704 字节,35643392 个扇区
  17. Units = 扇区 of 1 * 512 = 512 bytes
  18. 扇区大小(逻辑/物理):512 字节 / 512 字节
  19. I/O 大小(最小/最佳):512 字节 / 512 字节
  20. 磁盘 /dev/mapper/centos-swap2147 MB, 2147483648 字节,4194304 个扇区
  21. Units = 扇区 of 1 * 512 = 512 bytes
  22. 扇区大小(逻辑/物理):512 字节 / 512 字节
  23. I/O 大小(最小/最佳):512 字节 / 512 字节
  24. [root@localhost ~]# fdisk /dev/sdb #对磁盘/dev/sdb操作
  25. 欢迎使用 fdisk (util-linux 2.23.2)。
  26. 更改将停留在内存中,直到您决定将更改写入磁盘。
  27. 使用写入命令前请三思。
  28. Device does not contain a recognized partition table
  29. 使用磁盘标识符 0x9ea0df9c 创建新的 DOS 磁盘标签。
  30. 命令(输入 m 获取帮助):p #参数 p 来查看硬盘设备内已有的分区信息
  31. 磁盘 /dev/sdb10.7 GB, 10737418240 字节,20971520 个扇区
  32. Units = 扇区 of 1 * 512 = 512 bytes
  33. 扇区大小(逻辑/物理):512 字节 / 512 字节
  34. I/O 大小(最小/最佳):512 字节 / 512 字节
  35. 磁盘标签类型:dos
  36. 磁盘标识符:0x9ea0df9c
  37. 设备 Boot Start End Blocks Id System
  38. 命令(输入 m 获取帮助):n #参数 n 尝试添加新的分区
  39. Partition type:
  40. p primary (0 primary, 0 extended, 4 free)
  41. e extended
  42. Select (default p): p #入参数 p 来创建一个主分区
  43. 分区号 (1-4,默认 1):1 #主分区的编号
  44. 起始 扇区 (2048-20971519,默认为 2048):
  45. 将使用默认值 2048
  46. Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
  47. 分区 1 已设置为 Linux 类型,大小设为 2 GiB
  48. 命令(输入 m 获取帮助):p #再次使用参数 p 来查看硬盘设备中的分区信息就能看到一个名称为/dev/sdb1的主分区
  49. 磁盘 /dev/sdb10.7 GB, 10737418240 字节,20971520 个扇区
  50. Units = 扇区 of 1 * 512 = 512 bytes
  51. 扇区大小(逻辑/物理):512 字节 / 512 字节
  52. I/O 大小(最小/最佳):512 字节 / 512 字节
  53. 磁盘标签类型:dos
  54. 磁盘标识符:0x9ea0df9c
  55. 设备 Boot Start End Blocks Id System
  56. /dev/sdb1 2048 4196351 2097152 83 Linux
  57. 命令(输入 m 获取帮助):w #参数写入。保存退出
  58. The partition table has been altered!
  59. Calling ioctl() to re-read partition table.
  60. 正在同步磁盘。
  61. 2、格式化新的分区
  62. 在上述步骤执行完毕之后,Linux 系统会自动把这个硬盘主分区抽象成/dev/sdb1 设备文件。我们可以使用 file 命令查看该文件的属性
  63. [root@linuxprobe ]# file /dev/sdb1
  64. /dev/sdb1: cannot open (No such file or directory)
  65. [root@linuxprobe ]# partprobe
  66. [root@linuxprobe ]# partprobe
  67. [root@linuxprobe ]# file /dev/sdb1
  68. /dev/sdb1: block special
  69. 有以上提示就说明硬件没有格式化
  70. [root@localhost ~]# mkfs.xfs /dev/sdb1
  71. meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks
  72. = sectsz=512 attr=2, projid32bit=1
  73. = crc=1 finobt=0, sparse=0
  74. data = bsize=4096 blocks=524288, imaxpct=25
  75. = sunit=0 swidth=0 blks
  76. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  77. log =internal log bsize=4096 blocks=2560, version=2
  78. = sectsz=512 sunit=0 blks, lazy-count=1
  79. realtime =none extsz=4096 blocks=0, rtextents=0
  80. 3、使用mount指定挂载目录
  81. 完成了存储设备的分区和格式化操作,接下来就是要来挂载并使用存储设备了
  82. [root@localhost ~]# mkdir /newFS
  83. [root@localhost ~]# mount /dev/sdb1 /newFS/
  84. [root@localhost ~]# df -Th
  85. 文件系统 类型 容量 已用 可用 已用% 挂载点
  86. devtmpfs devtmpfs 898M 0 898M 0% /dev
  87. tmpfs tmpfs 910M 0 910M 0% /dev/shm
  88. tmpfs tmpfs 910M 9.7M 901M 2% /run
  89. tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
  90. /dev/mapper/centos-root xfs 17G 1.4G 16G 9% /
  91. /dev/sda1 xfs 1014M 151M 864M 15% /boot
  92. tmpfs tmpfs 182M 0 182M 0% /run/user/0
  93. /dev/sdb1 xfs 2.0G 33M 2.0G 2% /newFS
  94. 4、让这个设备文件的挂载永久有效,否则机器下次重启就看不到这个盘了
  95. [root@localhost ~]# vi /etc/fstab
  96. /dev/mapper/centos-root / xfs defaults 0 0
  97. UUID=41ff41fd-8e69-450d-9ebb-7551b9a76153 /boot xfs defaults 0 0
  98. /dev/mapper/centos-swap swap swap defaults 0 0
  99. /dev/sdb1 /nesFs xfs defaults 0 0

5、添加交换分区

Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率

  1. 1、创建一个新的分区
  2. [root@localhost ~]# fdisk /dev/sdb
  3. 欢迎使用 fdisk (util-linux 2.23.2)。
  4. 更改将停留在内存中,直到您决定将更改写入磁盘。
  5. 使用写入命令前请三思。
  6. 命令(输入 m 获取帮助):n #新建一个分区
  7. Partition type:
  8. p primary (1 primary, 0 extended, 3 free)
  9. e extended
  10. Select (default p): p #新建主分区
  11. 分区号 (2-4,默认 2):
  12. 起始 扇区 (4196352-20971519,默认为 4196352):
  13. 将使用默认值 4196352
  14. Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+5G
  15. 分区 2 已设置为 Linux 类型,大小设为 5 GiB
  16. 命令(输入 m 获取帮助):w
  17. The partition table has been altered!
  18. Calling ioctl() to re-read partition table.
  19. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
  20. The kernel still uses the old table. The new table will be used at
  21. the next reboot or after you run partprobe(8) or kpartx(8)
  22. 正在同步磁盘。
  23. 2、将新分区格式化为swap格式
  24. [root@localhost ~]# mkswap /dev/sdb2
  25. 正在设置交换空间版本 1,大小 = 5242876 KiB
  26. 无标签,UUID=6789a5f2-da7f-46b4-b083-fc97ed113e29
  27. [root@localhost ~]# free -m
  28. total used free shared buff/cache available
  29. Mem: 1819 186 1503 9 129 1490
  30. Swap: 2047 0 2047
  31. 3、使用 swapon 命令把准备好的 SWAP 分区设备正式挂载到系统中
  32. [root@localhost ~]# swapon /dev/sdb2
  33. [root@localhost ~]# free -m #查看交换分区的大小变化(由 2047MB 增加到 7167MB):
  34. total used free shared buff/cache available
  35. Mem: 1819 190 1499 9 129 1486
  36. Swap: 7167 0 7167
  37. 4、让新的交换分区设备在重启后依然生效,将内容写入到配置中
  38. [root@localhost ~]# vi /etc/fstab
  39. /dev/mapper/centos-root / xfs defaults 0 0
  40. UUID=41ff41fd-8e69-450d-9ebb-7551b9a76153 /boot xfs defaults 0 0
  41. /dev/mapper/centos-swap swap swap defaults 0 0
  42. /dev/sdb1 /nesFs xfs defaults 0 0
  43. /dev/sdb2 swap swap defaults 0 0

6、软硬连接

两种连接的区别
1、硬链接:指向与原文件同一个索引inode(节点),进而指向同一个物理文件。只要有一个硬链接存在,物理文件就不会被清除。硬链接和源文件是“平等”的,只删除一个不能使文件真正被删除
2、软链接:指向一个新的索引inode(节点),该节点指向的空间存的是文件的路径,根据路径找到物理文件。如果软链接创建时指定的那个目录被“删除”,则无法访问物理文件。软链接是附属于原文件的,删除、更改原文件路径后软链接将失效。

  1. 格式 格式为 ln [选项] 目标
  2. -s 创建“符号链接”(如果不带-s 参数,则默认创建硬链接)
  3. -f 强制创建文件或目录的链接
  4. -i 覆盖前先询问
  5. -v 显示创建链接的过程
  6. 示例:
  7. [root@localhost ln]# more /study/abc.txt
  8. 链接中的内容
  9. [root@localhost ln]# ln -s /study/abc.txt /study/ln/a #创建软连接
  10. [root@localhost ln]# ln /study/abc.txt /study/ln/b #创建硬连接
  11. [root@localhost ln]# ll
  12. 总用量 4
  13. lrwxrwxrwx. 1 root root 14 4 28 11:36 a -> /study/abc.txt
  14. -rwxr-xr-x. 2 root root 19 4 28 11:35 b
  15. [root@localhost ln]# more /study/ln/a
  16. 链接中的内容
  17. [root@localhost ln]# more /study/ln/b
  18. 链接中的内容