更多linux信息详见:7.3 磁盘的分区、格式化、检验与挂载 | 鸟哥的 Linux 私房菜:基础学习篇 第四版
一、linux常用命令
1.1查询linux系统版本信息
- cat /etc/redhat-release------------只适用于基于RedHat的linux版本)-
- cat /proc/version -----查看linux内核版本命令
- uname -a
1.2 linux基础命令
(1)远程连接命令
使用本地电脑操作远程服务器,-须要在Shell
中才能执行
登录:ssh root@172.55.33.99
退出:exit 或者logout,即可退出当前远程连接的服务器页面,返回本地
(1)cd
(2)mkdir
mkdir -p 可以递归创建目录
(3)ls
ls通配符的使用
(4)touch创建文件
- 如果文件不存在,则创建新的文件;
- 如果文件存在,则修改文件的修改日期
(5)mv / cp / rm
- -i:移动mv覆盖文件前提示
- -r:递归参数,cp文件夹时必须加此参数
- -f:强制删除
千万不要在根目录下使用命令rm -r *,使用rm命令一定要在家目录home下使用。
(6)cat / more / less
1)more:分屏显示文件内容,每次只显示一页内容。查看文件内容较多的文本文件。
2)cat:查看文件内容、创建文件、文件合并、追加文件内容等功能,查看文件内容较少的文本文件。
(7)打包压缩命令
在不同操作系统中,常用的打包压缩方式是不同的。
- windows常用rar
- Mac常用zip
- Linux常用tar.gz
打包压缩包括两步:打包和压缩。
- 打包文件:tar -cvf 打包文件.tar
- 解包文件:tar -xvf 打包文件.tar
linux操作系统下常看的打包压缩命令为:
- 压缩文件:tar -zcvf 打包文件.tar.gz 被打包的文件/路径…
- 解压缩文件:tar -zxvf 打包文件.tar.gz
- 解压到指定路径:tar -zxvf 打包文件.tar.gz -c 目标路径
(8)grep抓取
1)多个字符串:cat /var/log/messages |grep 'failed \|error'(输出含有failed和error的行)
2)同时包含多个字符串:cat /var/log/messages |grep 'failed'.*'error'
cat /var/log/messages |grep 'failed' |grep 'error'
3)忽略大小写:-i
4)带行号:-n
5)不包含此字符串的行:-v
(9)df / du查看磁盘挂载与目录容量
df(disk free):列出文件系统的整体磁盘使用量。通过文件系统来快速获取空间大小,当删除一个文件的时候(不会立即在文件系统中消失),而是当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件,df能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候du与df就一致了。
df [-ahikHTm] [目录或文件名]-a:列出所有的文件系统,包括系统特有的/proc等文件系统
-k:以KB的容量显示各文件系统
-m:以MB的容量显示各文件系统
-h:以人们较易阅读的GB,MB,KB等格式自行显示(常用)
-H:以M=1000K替代M=1024K的进位方式
-T:连同该分区的文件系统名称(例如ext3)也列出
-i:不用硬盘容量,而以inode的数量来显示
du(disk usage):评估文件系统的磁盘使用量。通过搜索文件计算当前存在的每个文件的大小并累加,du只能看到当前存在的,没有被删除的文件。
du [-ahskm] 文件或目录名称-a : 列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已;
-h : 以人们较易读的容量格式(G/M)显示;
-s : 列出总量,而不列出每个个别的目录占用了容量;
-S : 不包括子目录下的总计,与-s有点差别;
-k : 以KB列出容量显示;
-m : 以MB列出容量显示。
1.3 Linux远程管理常用命令
(1)shutdown命令
- #立刻重新启动操作系统: shutdown -r now
- #系统在今天20:25关机: shutdown 20:25
- #系统再过十分钟后自动关机: shutdown +10
- #取消之前确定的关机计划: shutdown -c
(2)ifconfig
1)查看/配置计算机当前的网卡配置信息:ifconfig
2)检测到目标ip地址的连接是否正常:ping ip地址
3)检测本地网卡工作是否正常:ping 127.0.0.1
1.4软件安装/卸载
(1)apt命令
apt全称Advanced Package Tool,是Linux下的一款安装包管理工具。
- 安装软件:sudo apt install 软件包
- 卸载软件:sudo apt remove 软件包
- 更新已安装的软件:sudo apt upgrade
(2)dpkg命令
Debian和Ubuntu使用dpkg管理软件包。这些软件包通常以.deb结尾。
- 安装软件:sudo dpkg -i 软件包
- 卸载软件:sudo dpkg -r 软件包
(3)Ubuntu界面下常用快捷键
1.“ctrl+alt+t”打开终端
2.“ctrl+alt”将鼠标从虚拟机移出
3.“ctrl+G”将鼠标移入虚拟机
3.“ctrl + shift + =” 放大终端窗口字体显示
4.“ctrl + -” 缩小终端窗口字体显示
5.“tab” 自动补全文件名、目录等
6.“↑” 回到曾经使用过的命令
二、磁盘与文件系统管理
2.1磁盘分区、格式化、检验与挂载
目前磁盘分区主要有 MBR 以及 GPT 两种格式,这两种格式所使用的分区工具不太一样!“MBR 分区表请使用 fdisk 分区, GPT 分区表请使用 gdisk 分区!”
(1)lsblk -------查看系统里的所有设备
lsblk [-dfimpt] [device] #列出系统上的所有磁盘列-d :仅列出磁盘本身,并不会列出该磁盘的分区数据
-f :同时列出该磁盘内的文件系统名称
-i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-m :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
-p :列出该设备的完整文件名!而不是仅列出最后的名字而已。
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等
以我的系统为例,由 sr0 、 sda 的设备组成,而 sda 的设备下面又有2个分区(sda1、sda2), 其中 sda2 甚至还有因为 LVM 产生的文件系统。
- NAME:设备的文件名,会省略 /dev 等前导目录!
- MAJ:MIN:主要:次要设备代码,核心认识的设备都是通过这两个代码来熟悉的。
- RM:是否为可卸载设备 (removable device),如光盘、USB 磁盘等(0不可卸)
- SIZE:容量
- RO:是否为只读设备的意思
- TYPE:磁盘 (disk)、分区 (partition)、只读存储器 (rom) 等类型
- MOUTPOINT:挂载点(挂载目录)
(2)blkid -------查看所有文件系统
找出设备的 UUID(等同lsblk -f) 。UUID 是全域单一识别码 (universally unique identifier),Linux 会将系统内所有的设备都给予一个独一无二的识别码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用了。
每一行代表一个文件系统,主要列出设备名称、UUID 名称、类型,观感更佳。
(3)parted--------查看磁盘的分区类型
parted device_name print
(4)fdisk / gdisk--------磁盘分区
“MBR 分区表请使用 fdisk 分区, GPT 分区表请使用 gdisk 分区” ,本系统使用的是MBR分区,故使用 fdisk来分区
1)查看磁盘分区:fdisk -l 或者parted -l 或者 parted /dev/sr0 print
- 若查询到磁盘标签类型为gpt,则对应GPT分区
- 若查询到磁盘标签类型为dos,则对应MBR分区
2)parted命令更改磁盘分区格式
- 转换成mbr格式:parted /dev/sda mklabel msdos -s -----使用免交互加上 -s
- 转化成gpt格式:parted /dev/sda mklabel gpt -s
以/dev/sda为例。parted /dev/sda 把硬盘改为gpt分区,按照如下操作:
- parted /dev/sda
- 更改完之后再次查询fdisk -l,看是否改成功
- 成功后,再格式化分区:mkfs.ext4 /dev/sda
- 挂载到/mnt目录:mount /dev/sda /mnt
- 永久挂载,写入到/etc/fatab文件:/dev/sda /mnt ext4 defaults 0 1--------(设备 挂载点 文件系统类型 defaults 转储标志 fsck顺序)
3)磁盘分区操作fdisk
- 通过 lsblk 或 blkid 先找到磁盘
- 再用 parted /dev/xxx print 来找出内部的分区表类型(MBR/GPT分区)
- 之后才用 gdisk 或 fdisk 来操作系统。
按下 '?' 就能够看到所有的动作!不管进行了什么操作,只要离开 fdisk /gdisk时按下“q”(不保存退出);反之,按下“w”(保存生效)
fdisk/gdisk 只有 root 才能执行,且使用的“设备文件名”不能加上数字(partition 是针对“整个磁盘设备”而不是某个 partition ) !所以执行“fdisk /dev/sda1 ” 会错误
输入p:打印分区表信息如下:
根据图中信息可得:当前已有分区未达到最大,仍可继续分区;新分区通常选用上一个分区的结束扇区号码数加 1 作为起始扇区号码!(即start为130443264)
4)新增分区
- n(新增分区)
- p(查看是否创建好)
- w(保存)
分区通常选用上一个分区的结束扇区号码数加 1 作为起始扇区号码!(即start为130443264,end不许自己计算,只需填入分区大小即可)
注意!!!“ Last 扇区”那一行,不要使用默认值(会将所有的容量用光)+1G 这样即可。每次新增完毕后,请立即“ p ”查看一下结果,红框为新增分区,然后再‘w‘保存即可
若有告警提示保存失败,则根据告警提示按照如下操作:通过 partprobe 这个指令处理
- 执行partprobe -s
- 查看磁盘实际分区状态:lsblk /dev/sda
- 查看核心分区记录:cat /proc/partitions---------均查询到新增分区之后则说明写入成功
5)删除分区
- d
- q
- w
(5)磁盘格式化 mkfs.xfs
磁盘分区完毕后,进行文件系统格式化(make filesystem, mkfs),它会去调用正确的文件系统格式化工具软件。 CentOS 7 使用 xfs 作为默认文件系统。常听到的格式化应该称为创建文件系统 (make filesystem),使用的指令是 mkfs ,创建的是 xfs 文件系统, 使用 mkfs.xfs 命令。
mkfs.xfs /dev/sda4
然后查看是否创建好blkid /dev/sda4,如下则说明成功创建xfs文件系统
2.2 XFS 文件系统性能最优创建--针对RAID
磁盘阵列RAID,可理解为多块磁盘组成一个大磁盘。 利用同步写入到RAID的技术,可以加快读写速度,还具有一定的容错性(在某1个/2个磁盘坏掉时,整个文件系统还是可以持续运行)。文件系统的读写要能够有最优化,最好能够搭配磁盘阵列的参数来设计,这样性能才能够起来
stripe 的数值大多介于 4KB到 1MB之间,与你的磁盘阵列卡支持的项目有关。stripe 与文件数据容量以及性能相关性较高。 当你的系统大多是大型文件时,一般建议 stripe 可以设置大一些,这样磁盘阵列读/写的频率会降低,性能会提升。如果是用于系统小文件比较多的情况下, stripe 建议大约在 64K 左右可能会有较佳的性能。
假设一个环境,来进行最优文件系统创建:
- 有4个线程的 CPU 数量,所以 agcount 最好指定为 4
- 当初设置 RAID 的 stripe 条块为 512K ,因此 su 最好设置为 512k
- 设置的磁盘阵列有10块盘,因为是 RAID6 的设置,所以有2个 parity (备份),因此指定 sw 为 8
- 由上述的数据中,我们可以发现数据宽度条带 (swidth) 应该就是 512K*8 得到 4096K,可以指定 extsize 为 4096k
- 那么文件系统为:mkfs.xfs -f -d agcount=4,su=512k,-r extsize=4096k /dev/sda4
mkfs.xfs -f -d agcount=4,su=512k,sw=8 -r extsize=4096k /dev/sda4