前言
身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。
常用命令汇总
根目录
Linux 系统中的一切文件都是从“根(/)”目录开始
常见目录解析
绝对路径:从根目录开始到当前目录下的路径
相对路径:当前目录下对应的路径
物理设备命名规则
在 Linux 系统中一切都是文件,硬件设备也是文件,系统内核中的udev 设备管理器会自动规范硬件名称
一般的硬盘设备都会是以“/dev/sd”开头(sda、sdb),字母顺序是由系统内核的识别顺序来决定
/dev/目录中保存的应当是硬件设备文件
sd 表示是存储设备
a 表示系统中同类接口中第一个被识别到的设备
5 表示这个设备是一个逻辑分区
每个扇区的容量为512 字节
主引导记录需要占用446 字节,分区表为64 字节,结束符占用2 字节
每记录一个分区信息需要16 字节
3 个主分区加1 个扩展分区
扩展分区是指向另外一个分区的指针
主分区、扩展分区、逻辑分区
文件系统数据资料
Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并
能自动修复数据的不一致与错误。
Ext4:Ext3 的改进版本,作为RHEL 6 系统中的默认文件管理系统,它支持的存储容
量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。Ext4 文件系统能够批量分配block 块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,RHEL 7 中默认的文件管理系统,在发生意外宕机后,快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。最大可支持的存储容量为18EB
文件的访问权限(read、write、execute)
文件的所有者与所属组(owner、group)
文件的大小(size)
文件的创建或内容修改时间(ctime)
文件的最后一次访问时间(atime)
文件的修改时间(mtime)
文件的特殊权限(SUID、SGID、SBIT)
文件的真实数据地址(point)
挂载硬件设备
mount 命令
mount 命令用于挂载文件系统,格式为“mount 文件系统挂载目录”
[root@linux ~]# mount /dev/sdb2 /backup
永久挂载
/etc/fstab 文件设备文件挂载目录 格式类型权限选项自检 优先级
[root@linux ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper /rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/sdb2 /backup ext4 defaults 0 0
umount 命令
umount 命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”
[root@linux ~]# umount /dev/sdb2
添加硬盘设备
虚拟机挂载硬盘操作如下
虚拟机关机(一定要关机)选择编辑虚拟机设置
选择硬盘,点击添加硬盘
下一步,接下来的操作都按照推荐的安装
至此硬盘就已经添加到服务器上了,但是还要进行磁盘的管理(见下),以及资源挂载(见上)
fdisk 命令
fdisk 命令用于管理磁盘分区,格式为“fdisk [磁盘名称]”
fdisk 命令来尝试管理/dev/sdb 硬盘设备,输入参数p 查看硬盘设备内已有的分区信息,输入参数 n 尝试添加新的分区,系统会要选择继续输入参数p 来创建主分区,还是输入参数e 来创建扩展分区。输入参数p 来创建一个主分区,在确认创建一个主分区后,系统要求先输入主分区的编号,主分区的编号范围是1~4,输入默认的1,输入+2G 即可创建出一个容量为2GB 的硬盘分区,再次使用参数p,查看硬盘设备中的分区信息,输入参数w 后回车,完成分区,输入partprobe 命令手动将分区信息同步到内核,如果没反应重启
[root@linux ~]# 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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x47d24a34.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x47d24a34
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): 1
First sector (2048-41943039, default 2048):此处敲击回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x47d24a34
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
mkfs 命令
mkfs 命令用于格式分区类型,格式为“mkfs.文件类型名称 /[待格式化文件名称]”
[root@linux ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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
完成上述工作后差最后一步挂载文件
[root@linux ~]# mkdir /newFS
[root@linux ~]# mount /dev/sdb1 /newFS/
[root@linux ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.5G 15G 20% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.8M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/sdb1 2.0G 33M 2.0G 2% /newFS
永久挂载
[root@linux ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper /rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/sdb1 /newFS xfs defaults 0 0
du 命令
du -sh /*命令查看在Linux 系统根目录下所有一级目录分别占用的空间大小
du -h -x --max-depth=1 命令展示文件深度一层,显示大小 -h进行排序 -x以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过
添加交换分区
SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常
用的数据临时存放到硬盘中,添加swap分区和上述添加分区的唯一区别在于使用 SWAP 分区专用的格式化命令mkswap
[root@linux ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 5242876 KiB
no label, UUID=2972f9cb-17f0-4113-84c6-c64b97c40c75
磁盘容量配额
使用quota命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作
xfs_quota 命令
xfs_quota 命令针对XFS 文件系统管理quota 磁盘容量配额服务 格式为“quota [参数] 配额文件系统”
-c 参数用于以参数的形式设置要执行的命令
-x参数是专家模式
使用xfs_quota命令来设置用户tom 对/boot 目录的quota 磁盘容量配额,软
限制和硬限制分别为3MB 和6MB,创建文件数量的软限制和硬限制分别为3个和6个
[root@linux ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6
tom' /boot
[root@linux ~]# xfs_quota -x -c report /boot
User quota on /boot (/dev/sda1) Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 95084 0 0 00 [--------]
tom 0 3072 6144 00 [--------]
检测
[root@linux~]# su - tom
[tom@linux~]$ dd if=/dev/zero of=/boot/tom bs=5M count=1
1+0 records in
1+0 records out
5242880 bytes (5.2 MB) copied, 0.123966 s, 42.3 MB/s
[tom@linux~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
dd: error writing ‘/boot/tom’: Disk quota exceeded
1+0 records in
0+0 records out
6291456 bytes (6.3 MB) copied, 0.0201593 s, 312 MB/s
edquota 命令
edquota 命令用于编辑用户的quota 配额限制,格式为“edquota [参数] [用户] ”
-u 参数表示要针对哪个用户进行设置
-g 参数表示要针对哪个用户组进行设置
用户tom 的硬盘使用量的硬限额从5MB 提升到8MB
[root@linux~]# edquota -u tom
Disk quotas for user tom (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda 6144 3072 8192 1 3 6
[root@linux~]# su - tom
Last login: Mon Sep 7 16:43:12 CST 2017 on pts/0
[tom@linux~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
1+0 records in
1+0 records out
8388608 bytes (8.4 MB) copied, 0.0268044 s, 313 MB/s
[tom@linux~]$ dd if=/dev/zero of=/boot/tom bs=10M count=1
dd: error writing ‘/boot/tom’: Disk quota exceeded
1+0 records in
0+0 records out
8388608 bytes (8.4 MB) copied, 0.167529 s, 50.1 MB/s
软硬方式链接
硬链接(hard link):“指向原始文件inode 的指针”,每添加一个硬链接,该文件的inode 连接数就会增加1,硬链接文件与原始文件其实是同一个文件,只是名字不同,不能跨分区做硬链接
软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,跨越文件系统进行链接,类似快捷方式
ln 命令
ln 命令用于创建链接文件,格式为“ln [选项] 目标”
硬链接1个
[root@localhost ~]# echo "test" > readme.txt
[root@localhost ~]# ln -s readme.txt readme2.txt
[root@localhost ~]# cat readme.txt
test
[root@localhost ~]# cat readme2.txt
test
[root@localhost ~]# ls -l readme.txt
-rw-r--r--. 1 root root 5 Oct 18 17:33 readme.txt
[root@localhost ~]# rm -f readme.txt
[root@localhost ~]# cat readme2.txt
cat: readme2.txt: No such file or directory
硬连接2个
[root@localhost ~]# echo "test" > readme.txt
[root@localhost ~]# ln readme.txt readme3.txt
[root@localhost ~]# cat readme.txt
test
[root@localhost ~]# cat readme3.txt
test
[root@localhost ~]# ls -l readme.txt
-rw-r--r--. 2 root root 5 Oct 18 17:35 readme.txt
[root@localhost ~]# rm -f readme.txt
[root@localhost ~]# cat readme3.txt
test
结语
简问简答
/dev/sda5 是主分区还是逻辑分区?
答:逻辑分区
哪个服务决定了设备在/dev 目录中的名称?
答:udev 设备管理器服务
硬盘中需要5 个分区,至少需要几个逻辑分区?
答:可以选用创建3 个主分区+1 个扩展分区的方法,然后把扩展分区再分成2 个逻辑分
区,有5 个分区