您现在的位置: 主页 > 嵌入式操作系统 > Linux > Linux运维--磁盘&shell编程基础
本文所属标签:
为本文创立个标签吧:

Linux运维--磁盘&shell编程基础

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-08-08 

目录

1 磁盘知识体系结构... 4

1.1 第一层... 4

1.1.1 磁盘结构... 4

1.1.1.1 硬盘的分类... 5

1.1.1.2 磁盘接口的特点... 6

1.1.1.2.1 磁盘接口的外部特点... 6

1.1.1.2.2 磁盘接口的特点:... 6

1.1.1.2.3 磁盘如何选择... 7

1.1.1.3 磁盘内部结构... 7

1.1.1.3.1 计算磁盘大小... 8

1.1.1.3.2 磁盘分区... 9

1.1.1.3.2.1 硬盘分区命名规则... 10

1.1.1.3.2.2 创建分区... 10

1.1.1.3.2.2.1 fdisk方法一... 10

1.1.1.3.2.2.2 parted方法二... 12

1.1.1.3.2.2.2.1 非交互式... 12

1.1.1.3.2.2.2.2 交互式:... 12

1.1.1.3.3 格式化(创建文件系统make filesystem)... 12

1.1.1.3.4 关闭磁盘分区自动检查功能... 13

1.1.1.3.5 挂载... 13

1.1.1.3.6 永久挂载... 13

1.2 raid 磁盘冗余阵列... 14

1.2.1 磁盘冗余阵列的作用... 14

1.2.2 Raid特点... 14

1.2.2.1 Raid0. 15

1.2.2.2 Raid1. 15

1.2.2.3 Raid 5. 15

1.2.2.4 Raid10. 16

1.3 增加swap. 16

1.3.1 增加swap. 17

1.3.2 临时激活swap文件... 17

1.3.3 查看swap由什么组成... 17

1.3.4 取消文件的swap功能... 17

1.3.5 永久增加swap,重启服务器后生效... 18

1.4 查看系统性能的命令... 18

1.4.1 查看CPU性能... 18

1.4.2 查看内存信息... 21

1.4.3 查看负载... 21

2 Shell 22

2.1 变量的分类... 22

2.1.1 全局变量... 22

2.1.2 局部变量... 22

2.1.3 特殊变量... 22

1 磁盘知识体系结构

1.1 第一层

1.1.1 磁盘结构

1.1.1.1 硬盘的分类

参考:https://jingyan.baidu.com/article/d5c4b52b9aaf55da560dc5ad.html

硬盘三大种类(SSD;HHD;HDD)

固态硬盘(SolidState Drive:
用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。

优点:读写速度快;防震抗摔性;低功耗;无噪音;工作温度范围大;轻便
缺点:容量小;寿命有限;售价高

混合硬盘(hybrid harddriveHHD: 是既包含传统硬盘又有闪存(flashmemory)模块的大容量存储设备。闪存处理存储中写入或恢复最频繁的数据。很多公司开始提供这项技术的变体,他们期望它会在高端系统中受到追捧,尤其是在笔记本电脑和个人数字助理中。

相比传统硬盘,混合硬盘(hybridhard drive,HHD)有很多优点,包括:
应用中的数据存储与恢复更快,如文字处理机
系统启动时间减少
功耗降低
生成热量减少
硬盘寿命延长
笔记本和PAD的电池寿命延长
工作噪声级别降低

混合硬盘(hybrid harddrive,HHD)的不足包括:
硬盘中数据的寻道时间更长
硬盘的自旋变化更频繁
闪存模块处理失败,不可能进行其中的数据恢复
系统的硬件总成本更高

传统硬盘(HDDHard DiskDrive的缩写):
即硬盘驱动器的英文名。最基本的电脑存储器,我们电脑中常说的电脑硬盘
C盘、D盘为磁盘分区都属于硬盘驱动器。目前硬盘一般常见的磁盘容量为80G、128G、160G、256G、320G、500G、750G、1TB、2TB等等。硬盘按体积大小可分为3.5寸、2.5寸、1.8寸等;按转数可分为5400rpm/7200rpm/10000rpm等;

SSD和HDD的比较

在过去10年中,CPU的性能提升了150倍以上,而传统硬盘才提升了1.5倍不到,这种不均衡的发展,极大的影响了整体性能的提升,尤其在I/O方面,而且SSD(固态硬盘)相比起传统硬盘,它没有磁头,马达,磁盘等一系列的零件,搭载NAND Flash芯片作为存储介质,在运行速度,功耗,轻便等方面是传统硬盘所无法比拟的。

目前传统硬盘因为成本低廉等因素依然占据着硬盘市场的主要份额,然而随着SSD的成本不断的降低,技术不断提升与系统更好的支持等因素,而且目前主流的笔记本电脑也都均配置SATA和mSATA
接口,包括目前的超极本(Ultrabook)也只有搭载SSD才可能实现“更轻,更快,更低功耗,未来取代传统硬盘也是大势所趋

1.1.1.2磁盘接口的特点

1.1.1.2.1磁盘接口的外部特点

1.1.1.2.2磁盘接口的特点:

参考:https://jingyan.baidu.com/article/636f38bb7a8dced6b84610bc.html

SCSI硬盘主要应用于中、高端服务器和高档工作站中。其特点为:传输速率高、读写性能好、可连接多个设备、可支持热插拔,但是价格相对来说比较贵。

SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。

SAS是sata和SCSI的结合

1.1.1.2.3磁盘如何选择

1.1.1.3磁盘内部结构

如下图所示,是磁头、磁道、扇区、柱面

扇区是硬盘最小的单位

系统最小的单位是block

1.1.1.3.1计算磁盘大小

磁盘大小=柱面大小*柱面数量

柱面大小=磁道大小*磁头数量

磁盘大小=扇区大小512*扇区数量

[root@localhost ~]# fdisk -l /dev/sda

255 heads, 63 sectors/track, 2610 cylinders

------>512*63*255*2610

[root@localhost ~]# echo 512*63*255*2610|bc

21467980800

[root@localhost ~]# awk 'BEGIN{print 512*63*255*2610/1024^3"GB"}'

19.9936GB

[root@oldboyedu-48-lnb~]#echo"scale=5;512*63*255*2610/1024^3"|bc

19.99361

[root@oldboyedu-48-lnb~]#echo$((103/2))$[3**30]

51205891132094649

[root@oldboyedu-48-lnb~]#expr1+2

3

1.1.1.3.2磁盘分区

MBR,全称为MasterBoot Record,即硬盘的主引导记录

  为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。

  硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(DiskPartitiontable)和硬盘有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(bootloader占446个字节,第二部分是Partitiontable区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magicnumber,占2个字节,固定为55AA。

1.1.1.3.2.1 硬盘分区命名规则

第1块sas硬盘的第一个主分区 /dev/sda1

第2块sata硬盘的第2个主分区 /dev/sdb2

第3块sata硬盘的第1个逻辑分区/dev/sdc5

1.1.1.3.2.2创建分区

1.1.1.3.2.2.1fdisk方法一

[root@localhost~]# fdisk -cu /dev/sdb

-u:按照扇区进行分区

-c:取消dos兼容模式

p:print 显示分区信息

n :new 创建分区

d:delete 删除分区

w:write 保存退出

q:quit 退出不保存

题:

创建1个10M主分区创建一个使用剩余所有容量的扩展分区创建一个20M的逻辑分区

[root@localhost~]# fdisk -cu /dev/sdb

Command (mfor help): n

Commandaction

eextended

p primary partition (1-4)

p

Partitionnumber (1-4): 1

Firstsector (2048-417791, default 2048):

Usingdefault value 2048

Lastsector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10

Command (mfor help): n

Commandaction

eextended

p primary partition (1-4)

e

Partitionnumber (1-4): 2

Firstsector (2059-417791, default 2059):

Usingdefault value 2059

Lastsector, +sectors or +size{K,M,G} (2059-417791, default 417791):

Usingdefault value 417791

Command (mfor help): n

Commandaction

llogical (5 or over)

pprimary partition (1-4)

l

Firstsector (4107-417791, default 4107):

Usingdefault value 4107

Lastsector, +sectors or +size{K,M,G} (4107-417791, default 417791): +20M

Command (mfor help): p

Device Boot Start End BlocksId System

/dev/sdb1 2048 2058 5+83 Linux

/dev/sdb2 2059 417791 207866+5 Extended

/dev/sdb5 4107 45066 2048083 Linux

Command (mfor help): w

通知系统磁盘分区表磁盘分区表变化了

[root@localhost ~]# partprobe/dev/sdb

1.1.1.3.2.2.2parted方法二

将磁盘格式变成gpt的格式(因为parted只能针对gpt格式的磁盘进行操作)

转换:

(parted) mklabel gpt

分区:

(parted) mkpart primary 1 500 (分第一个主分区500MB,primary是分区名)

分区:

(parted) mkpart primary 501 1000 (分第二个主分区500MB)

分区:

(parted) mkpart logical 1001 2000 (分第三个逻辑分区1000MB) (parted的逻辑分区不用先分扩展分区,直接一步到位)

查看:

(parted) p

退出:

(parted)quit ( parted分区自动保存,不用手动保存 )

1.1.1.3.2.2.2.1 非交互式

[root@localhost ~]# parted/dev/sdb mktable gpt

[root@localhost ~]# parted/dev/sdb mkpart primary 0 10

1.1.1.3.2.2.2.2 交互式:

1.1.1.3.3格式化(创建文件系统make filesystem)

文件系统就是管理这块文件的机制

[root@localhost ~]# mkfs.ext4 /dev/sdb1

1.1.1.3.4关闭磁盘分区自动检查功能

root@localhost ~]# tune2fs -c 0-i 0 /dev/sdb1

-c:count

-i:interval

1.1.1.3.5挂载

[root@localhost ~]# mount/dev/sdb1 /mnt/

[root@localhost ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root

18G 4.4G12G 28% /

tmpfs 491M 72K491M 1% /dev/shm

/dev/sda1 477M 36M417M 8% /boot

/dev/sr0 3.7G 3.7G0 100% /media

/dev/sdb1 9.7M 100K9.0M 2% /mnt

1.1.1.3.6永久挂载

法一:/etc/rc.local

法二:/etc/fstab开机自动挂载

[root@localhost ~]# tail/etc/fstab |column -t

proc

/proc

proc

defaults

0

0

设备名称(磁盘分区名称 光盘)

挂载点

文件系统类型

挂载参数,默认default

备份

检查

/dev/cdrom

/mnt

Iso9660

Defaults

0

0

1.2raid 磁盘冗余阵列

1.2.1 磁盘冗余阵列的作用

得到更高的容量

得到更高的冗余

得到更高的性能

RAID是“Redundant Array of Independent Disk”的缩写

RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将RAID分为不同的级别。 其中提高传输速率和提供容错功能是最大的优点。其特色是N台硬盘同时读取速度加快及提供容错性FaultTolerant,所以RAID主要是解决访问数据的存储速度问题(Storage)不是备份问题(Backup Solution)。

1.2.2 Raid特点

1.2.2.1Raid0

同时访问多个磁盘这样访问读取速度加快。在系统眼中,raid0这几块盘是一块盘。

1.2.2.2Raid1

又叫镜像盘,只能有两块硬盘,另一块作为备份使用。

1.2.2.3 Raid 5

每写3个信息,下面就有一个校验信息,作用就是当一块硬盘坏了,通过奇偶校验恢复

如上图显示raid5的存储数据的特点,,我们一般做raid5的时候加一块热备盘。

1.2.2.4 Raid10

Raid10的写入数据原理如上图一样,但并不是先做成raid1后做成raid0而是直接做成raid10.

注意raid10是两块两块扩展。

1.3增加swap

内存不足,使用swap,swap不足增加swap

1.3.1 增加swap

查看内存:

[root@localhost ~]# free -h

total used free shared bufferscached

Mem: 980M 403M 577M1.1M 59M 147M

-( buffer+cache) +(buffer+cache)

-/+ buffers/cache: 196M 784M

Swap: 1.9G 0B 1.9G

-------->linux把用过的文件 数据临时缓存起来

[root@localhost ~]# dd if=/dev/zero of=/tmp/100m bs=1Mcount=100

[root@localhost ~]#

[root@localhost ~]# mkswap /tmp/100m转成swap

1.3.2 临时激活swap文件

[root@localhost ~]# swapon/tmp/100m

[root@localhost ~]# free -h

total used freeshared buffers cached

Mem: 980M 507M 473M 1.1M 59M 247M

-/+ buffers/cache: 199M 781M

Swap: 2.0G 0B 2.0G

1.3.3 查看swap由什么组成

[root@localhost ~]# swapon-s

1.3.4 取消文件的swap功能

[root@localhost ~]# swapoff/tmp/100m

1.3.5 永久增加swap,重启服务器后生效

[root@localhost ~]# vim/etc/fstab

/tmp/100m swap swap defaults0 0

1.4查看系统性能的命令

1.4.1 查看CPU性能

Cpu的路、颗、核、线程的理解

路就是颗,相当于房子,核相当于房间里的人,“核”是在一物理CPU内部封装的CPU核心数量,线程相当于人同时做的事情。

[root@localhost ~]# lscpu 查看cpu信息

Architecture:i686#架构686
CPU(s):2#逻辑cpu颗数是2
Thread(s) per core:1 #每个核心线程数是1
Core(s) per socket:2#每个cpu插槽核数/每颗物理cpu核数是2
CPU socket(s):1#cpu插槽数是1
VendorID:GenuineIntel #cpu厂商ID是GenuineIntel
CPUfamily:6#cpu系列是6
Model:23#型号23
Stepping:10#步进是10
CPUMHz:800.000#cpu主频是800MHz
Virtualization:VT-x#cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item/5d8e0488def3a998a5c272c0.html)
L1dcache:32K#一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1icache:32K#一级缓存32K(具体为L1指令缓存为32K)
L2cache:3072K#二级缓存3072K

socket就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数。

core就是我们平时说的“核“,每个物理CPU可以双核,四核等等。

thread就是每个core的硬件线程数,即超线程

[root@localhost~]# cat /proc/cpuinfo

physical id : 0

processor : 0 (应该是逻辑CPU)

siblings : 1

core id : 0

cpu cores : 1

  1. 拥有相同 physical id的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。

2.Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。
3. 每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理CPU有几个逻辑 CPU,”cpu cores“指的是一个物理CPU有几个核。
4. 如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
5. 如果有两个或两个以上的逻辑处理器拥有相同的physical id,但是 core id不同,则说明这是一个多内核处理器。cpu cores条目也可以表示是否支持多内核。

[root@localhost ~]# top

top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92
Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie
Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers
Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached

解释:

  • top - 09:44:56[当前系统时间],
  • 16 days[系统已经运行了16天],
  • 1 user[个用户当前登录],
  • load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
  • Tasks: 145 total[总进程数],
  • 2 running[正在运行的进程数],
  • 143 sleeping[睡眠的进程数],
  • 0 stopped[停止的进程数],
  • 0 zombie[冻结进程数],
  • Cpu(s): 99.8%us[用户空间占用CPU百分比],
  • 0.1%sy[内核空间占用CPU百分比],
  • 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
  • 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
  • 0.0%hi[],
  • 0.0%st[],
  • Mem: 4147888k total[物理内存总量],
  • 2493092k used[使用的物理内存总量],
  • 1654796k free[空闲内存总量],
  • 158188k buffers[用作内核缓存的内存量]
  • Swap: 5144568k total[交换区总量],
  • 56k used[使用的交换区总量],
  • 5144512k free[空闲交换区总量],
  • 2013180k cached[缓冲的交换区总量],

[root@localhost ~]# htop

vmstat

1.4.2 查看内存信息

1)、cat /proc/meminfo
2)、free 命令
totalused freeshared buffers cached
Mem: 65973912 32496232334776800 906932 6452984
-/+ buffers/cache: 25136316 40837596
Swap: 4194303213204 41929828

top

1.4.3 查看负载

W

Top

Uptime

2Shell

2.1变量的分类

2.1.1 全局变量

又称环境变量

2.1.2 局部变量

由数字、字母、下划线组成,以字母、下划线开头

2.1.3 特殊变量

$0

脚本名

$数字

脚本的第几个参数

$#

参数的个数

$?

上一个命令是否执行成功,0成功,非0失败

[root@localhost test]# read -p "input num :" num1

input num :oldboyedu

[root@localhost test]# echo$num1

oldboyedu

#书写脚本计算10和3的加减乘除

[root@localhost test]# sh +xtest.sh 10 3

13 7 30 3.33333

[root@localhost test]# cattest.sh

#!/bin/bash

awk -va=$1 -vb=$2 'BEGIN {printa+b,a-b,a*b,a/b}'



              查看评论 回复



嵌入式交流网主页 > 嵌入式操作系统 > Linux > Linux运维--磁盘&shell编程基础
 磁盘 分区 硬盘

"Linux运维--磁盘&shell编程基础"的相关文章

网站地图

围观()