linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包
一.磁盘与文件系统管理
1.分区与文件系统
分区:记录每一个分区的开始柱面和结束柱面
主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息
分区划分好后,要将分区格式化为系统可以识别的文件系统
磁盘的最小物理存储单位是:扇区
分区时格式化文件系统的最小存储单位:逻辑块,以扇区为基础,大小为2的n次方,但是一个块只能容纳一个文件
linux的ext2文件系统每个文件内容分为两部分:存储文件的属性(放在inode中),文件的内容(放在块中)
例:

读取文件系统的信息: dumpe2fs /dev/sda1
数据读取:日志+元数据+数据存放区记录。CPU>主存储器(RAM)>硬盘,为加快速度,linux采用异步处理的方式,先从硬盘中读取文件时,会将块数据存到内存即主存储器的缓冲区中,若被修改,则变为脏数据,必须写回到硬盘中。
载入点:必须为目录,即进入文件系统的入口
linux支持的文件系统:
(1)传统文件系统:ext2,MS-DOS,FAT
(2)日志式文件系统:ext3,NTFS
(3)网络文件系统:NFS
2.文件系统的操作
(1)查看当前磁盘容量:(一般用 df -h )
df (disk free) -a 则多出/proc, 大小为0,放在内存中的 / -i 查看inode /df -h 文件名 查看文件使用情况
(2)查看各个文件容量(du -k/m/a/)
(3)创建连接文件 ln -s /bin/huhu /huhu ,则进入/huhu后实际读取的是/bin/huhu 下的内容
(4)分区: fdisk -l 设备名称(不要加数字,分区针对整个硬盘设备,而不是某个分区)
删除分区:d 选择分区号 p 查看分区信息
(5)磁盘格式化:mke2fs 设备名称
3.创建虚拟内存swap(/dev/zero,是一个输入设备,你可你用它来初始化文件.)
(1)使用dd命令,在/tmp目录下创建一个64M的文件
dd if=/tmp/zero of=/tmp/swap bs=4k count=16382
[yuanyuan@localhost /]$ dd if=/dev/zero of=/tmp/swap bs=4k count=16382
16382+0 records in
16382+0 records out
67100672 bytes (67 MB) copied, 9.66832 s, 6.9 MB/s
dd:转换命令并且复制
if:要转换的输入文件格式
of:输出的文件
bs:一个分区的大小
count:有多少个分区,即bs
(2)使用mkswap将/tmp/swap的文件格式转化为虚拟内存的格式
mkswap /tmp/swap
[yuanyuan@localhost /]$ mkswap /tmp/swap
mkswap: /tmp/swap: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 65524 KiB
no label, UUID=ce0a57a9-de6e-4714-bbd6-c4e81f8264de
(3)使用swapon启动/tmp/swap (可以用free查看内存使用情况)
swapon /tmp/swap
(4)swapoff /tmp/swap 关闭swap文件
二. 文件的压缩与打包(注意:当使用gzip或者bzip2不加参数压缩时,源文件都消失,但是tar时源文件和目的文件都存在)
常见的压缩文件的名字:(tar主要是为了备份重要的文件,dd可以备份整个磁盘和分区)
(1)*.bz2:bz2程序文件压缩的文件
(2)*.gz:gzip程序压缩的文件
(3)*.tar:tar程序打包的数据,并没有压缩过 (tar程序可以将多个文件打包成一个文件(或目录))
(4)*.tar.gz:tar程序打包的数据而且用gzip压缩过。
(5)*.Z:使用compress程序压缩的文件
1. gzip/zcat
gzip a(文件名) :将文件 a打包为a.gz,原来的不存在
zcat a.gz:查看压缩文件的内容
gzip -d a.gz (解压缩):将a.gz解压为a ,原来的压缩文件不存在
gzip -c a(文件名)>新的压缩文件名 : 将文件 a打包为a.gz,原来的仍存在,以数据流重导向进行处理
也可以用gzip -d a.gz >b 此时出现a和b两个文件
gzip -(1-9) 文件名:压缩等级,9最好但慢,一般为6
2. bzip2/bzcat/bunzip2
(1)bzip2 文件名 > 新文件名 压缩并重命名
(2)bzcat *.bz2 查看压缩文件内容
[yuanyuan@localhost Desktop]$ bzcat d.txt.bz2
i miss you ~
(3)bzip2 -d *.bz2 解压缩 或者用 bunzip2 压缩文件 也可以
3. tar (参数必须用f结尾,前三个参数不能同时存在,一般为 cvf,xvf,tvf)
(1)-c 压缩
(2)-x 解压
(3)-t 查看tar的文件
(4)-v 压缩的过程中显示文件名如下所示
[root@localhost Desktop]# tar -cvf fee.txt.tar fee.txt
fee.txt
[root@localhost Desktop]# tar -cvf yy.tar yy
yy/
yy/d.txt
(5)-f 使用文件名,一般后面直接加文件名
(6)-z 用gzip方式压缩
(7)-j 用bzip2的方式压缩
(8)-p 使用源文件的原来属性
(9)-P 使用绝对路径来压缩
(10)-N '2016/02/14' 比时间新的才会打包
(11)--exclude file 打包时不打包这个文件 --exclude 文件名 -gcvf
例子:
(1)把yy文件夹打包成yy.tar
[yuanyuan@localhost Desktop]$ tar -cvf yy.tar yy
yy/
yy/fee.txt
yy/y/
yy/d.txt
(2)查看已打包文件的内容
[yuanyuan@localhost Desktop]$ tar tvf yy.tar
drwxrwxr-x yuanyuan/yuanyuan 0 2016-01-26 17:49 yy/
-rw-rw-r-- yuanyuan/yuanyuan 10240 2016-01-26 02:11 yy/fee.txt
drwxrwxr-x yuanyuan/yuanyuan 0 2016-01-26 17:49 yy/y/
-rwxrwxr-x yuanyuan/yuanyuan 47 2016-01-26 00:39 yy/d.txt
(3)解压打包文件
[yuanyuan@localhost Desktop]$ tar xvf yy.tar
yy/
yy/fee.txt
yy/y/
yy/d.txt
(4)用gzip工具对yy进行打包
[yuanyuan@localhost Desktop]$ tar -zcvf yy.tar.gz yy
yy/
yy/fee.txt
yy/y/
yy/d.txt
(5)对gzip打包备份的文件解压
[yuanyuan@localhost Desktop]$ tar -zxvf yy.tar.gz
yy/
yy/fee.txt
yy/y/
yy/d.txt
(6)用bzip2工具对 yy 进行打包为 y1y.tar.gz
[yuanyuan@localhost Desktop]$ tar -jcvf y1y.tar.gz yy
yy/
yy/fee.txt
yy/y/
yy/d.txt
(7) 打包yy后直接解压,不产生中间文件
tar -cvf - yy | tar -xvf -
4.dd (除了复制,最大的用处是备份)
dd if=输入文件 of =输出文件 bs=(块大小,默认为 512字节) count=bs数
(1)备份/dev/hda的MBR
dd if=/dev/hda of=/tmp/mbr.back bs=512 count=1
(2)备份/dev/hda1整个分区
dd if=/dev/hda1 of=/some/path/文件名
of路径不能在if的目录中,要不然一直循环!!!
linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包的更多相关文章
- linux 文件系统管理三部曲之三:挂载文件系统
linux 文件系统管理三部曲之一:磁盘分区 linux 文件系统管理三部曲之二:创建文件系统 上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系 ...
- Linux入门:常用命令:查看硬盘、分区、CPU、内存信息
查看硬盘信息 $df -lh #查看所有硬盘的使用状 $du -sh /etc #查看etc目录大小 #获得文件大小很方便,主要是目录 外部系统挂载 $mount ...
- python 查看文件夹权限组和用OS模块操作文件夹
@建议操作server服务器文件夹时可以映射网络驱动盘 import win32securityimport ntsecuritycon as con FILENAME = r'D:\tmp\acc_ ...
- python 中文件输入输出及os模块对文件系统的操作
整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...
- [linux] LVM磁盘管理(针对xfs和ext4不同文件系统)
简单来说就是:PV:是物理的磁盘分区VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘LV:也就是从VG中划分的逻辑分区如下图所示PV.VG.LV三者 ...
- ca77a_c++__一个打开并检查文件输入的程序_流对象_操作文件
/*ca77a_c++__一个打开并检查文件输入的程序 习题:8.13 8.14*/ /*ca77a_c++__一个打开并检查文件输入的程序 习题:8.13 8.14 */ #include < ...
- Linux学习笔记之Linux磁盘及文件系统管理笔记
Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...
- 别人的Linux私房菜(8)Linux磁盘与文件系统管理
虚拟机的磁盘通常为:/dev/vd[a-p] LVM和软件磁盘阵列 software RAID可以将一个分区格式化为多个文件系统或者多个分区格式化为一个文件系统. 索引式文件系统中:如ext2.ext ...
- 磁盘及文件系统管理(以及btrfs)
Linux系统管理 磁盘分区及文件系统管理 raid lvm 网络属性管理 程序包管理 sed及awk 进程查看和管理 内核管理(内核的编译和安装) 系统启动流程 定制,编译内核,busybox 系统 ...
随机推荐
- APP跨进程数据通信-访问手机联系人
1. 简述 在实际开发中,常常需要进行不同应用程序之间的数据通信,例如读取联系人列表等等,ContentProvider就是Android提供的用于实现不同进程之间进行数据通信的类. ContentP ...
- Class类 获取Class对象
阅读API的Class类得知,Class 没有公共构造方法.Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的 获取Class对象的三种方 ...
- Sublime Text前端开发工具介绍
Sublime Text前端开发工具介绍.. Sublime Text这款前端开发工具中的非常优秀的特性进行介绍 ------------ sublime text 3 3114 注册码 —– BEG ...
- ThreadLocal类分析
首先试想一个场景: 多个线程都要访问数据库,先要获得一个Connection,然后执行一些操作.为了线程安全,如果用synchronized锁定一个Connection对象,那么任何时候,都只有一个线 ...
- Jquery Mobile笔记之一
jQuery Mobile 在你的网页中添加 jQuery Mobile 你可以通过以下几种方式将jQuery Mobile添加到你的网页中: 从 CDN 中加载 jQuery Mobile (推荐) ...
- [读书笔记] 一、Spring boot项目搭建与配置文件
读书笔记:[JavaEE开发的颠覆者 Spring Boot实战] 作者:汪云飞 从今天开始坚持读书,并记录下此读书笔记. 一,初接触 Spring boot 项目Hello world搭建 1.po ...
- 微信小程序实例--仿豆瓣电影
最近不想写论文,就想捣鼓点新东西吧,就边看官方文档,花了3天时间写了一个简单的仿豆瓣电影的微信小程序,给大家分享一下教程吧. 源码&效果图 源码点击这里,欢迎star 运行方法: 下载微信we ...
- POI处理Excel中的日期数据类型
在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理. 正确的处理方法是先判断单元格 的类型是否则NUMERIC类型, 然后再判断单元格是 ...
- mapreduce运行机制
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt243 谈mapreduce运行机制,可以从很多不同的角度来描述,比如说从ma ...
- 很全面的Android面试题
Activity 什么是Activity 四大组件之一,一个和用户交的互界面就是一个activity,是所有 View 的容器 我开发常用的的有FragmentActivitiy,ListActivi ...