内存管理:进程会从磁盘当中读取数据和处理,这个中间交换的过程是在内存当中完成的。
1.内存磁盘使用率
①free 查看总的内存大小
②free -m 以MB的方式显示
③free -g以GB的方式显示 (以g的方式显示内存大小会四舍五入)
想要知道内存到少GB会以-m的方式显示,多少T,会以-g的方式显示。
used:使用了多少内存;buff/cache:(运行程序时会有一定的缓存内容,会用一定的内核程序进行释放);available:buff/cache全部释放掉还有多少内存。
swap:交换分区 内存真的不够用的情况,系统程序会将暂时不需要的内存放到swap中。(win的虚拟内存,内存实际不在内存上,在磁盘上)。如果程序已经开始写swap,证明系统内存不足,为了程序的运行效率,需要增加内存。
如果不用swap,内存一旦被会占满,linux系统包含一种随机杀掉机制。内核会随机杀掉占用内存最大的几个进程(一般都是核心应用),所以需要保留swap。
③top 动态查看内存命令
2.磁盘分区和文件大小的查看
①fdisk 即可以查看磁盘也可以对磁盘进行分区 !!!慎用
②fdisk -l 查看磁盘大小(parted -l效果相同,显示格式不同 df -h可以看作fdisk的补充)
磁盘文件会放到/dev目录中 可插拔的磁盘会当作sd对待
第一块磁盘就是sda,第二块就是sdb磁盘。(每多一块磁盘,sd设备就多个编号)
b:表示块设备,第一个数字:磁盘设备的主设备号,第二个数字:磁盘设备的从设备号,
可以看到以上磁盘有三个分区。主设备号用来表示磁盘有什么驱动程序,从设备好用来确定访问什么样的地址。
sectors:扇区,类似光盘形状的磁盘概念。最小操作单元是扇区,512字节,目前已经没有这种。linux中划分每个分区的大小就是按照扇区划分的。(start和end都是已扇区计算的) type:分区格式。
boot:指当前系统是在这个分区启动的。
df -h:可以看到分区挂载到那个目录
分区里某个文件占用多大空间: ls -l 文件名 文件非常大的情况可以使用ls -lh 文件名(文件带空洞内容)
du 文件名也可以查看;(实际占用空间)
一个文件创建出另一个一摸一样的文件:按字节把a文件中的内容拷贝到b文件。(从a中读取4M写到b文件中,写10次)
创建空洞文件:
①无空洞
②创建空洞文件,seek跳过多少块,一块大小是bs=4MB,跳过20块(seek=20),(相当于有80MB的空洞内容)再往文件中写内容。记录过程中文件是有30块的,但是实际只有10块(count=10)。
用于linux虚拟化磁盘的使用。
2.常见的文件系统
linux支持的文件系统:ext4、xfs、NTFS(需安装额外软件,win的文件系统,是有版权的)
超级块:记录整个分区包含多少个文件,所有文件总数是多少。
i节点:记录每一个文件。文件大小、权限、编号等信息。
ls -i:每一个文件对应的i节点。
除文件名外,所有的信息都被记录在i节点。
3.分区和挂载
有一些设置是保存在内存当中,重启电脑后会消失。
(1)分区:
fdisk -l查看
fdisk 分区对应设备 (fdsik ./dev/sdc硬盘中不能有数据,后去要分区格式化,可能会造成数据丢失)
新建分区:(主分区只能建4个和扩展分区)。
①
②获得帮助;n为新建分区;
③(主分区只能建4个和扩展分区(扩展分区可以创建多个逻辑分区))。
p:创建一个主分区
编号:1(默认是1-4)
第二个p:查看当前分区状态
q:直接退出,不保存当前分区。w:当前分区生效。d:当前分区设置删掉。可以选择分区号。
将分区映射成盘符: mkfs. 文件系统 要格式化的分区名
其他情况:如果硬盘大于2T,不能使用fdisk进行分区。
使用parted ;可以使用help查看帮助。
(2)挂载
没办法直接对设备文件进行操作,需要将他挂载到设备目录上对其进行操作。
挂载后就可以对目录进行操作,所有操作最终会落入到该磁盘设备。(mount -t 文件系统类型,也可以直接用mount自动识别)
mount挂载的配置是放在内存中临时保存的配置,重启就会失效。让参数固化修改fstab文件。