程序员必知必会----linux常用命令之九【文件系统管理】

一.文件系统构成

/usr/bin 、/bin:存放所有用户都可以执行的命令

/usr/sbin 、/sbin:存放只有root用户可以执行的命令

/home:用户缺省宿主目录

/proc:虚拟文件目录,存放当前进程信息

/dev:设备文件

/lib:系统运行所需的共享库

/lost+found:存放系统出错的检查结果

/tmp:临时文件

/etc:系统配置文件

/var:经常变动的文件,如邮件,日志,计划任务

/usr:库,手册,第三方程序一般安装在/usr/local下

/boot:内核文件

/mnt:临时挂载点

二.常用命令

1.查看硬盘分区情况及其挂载点

df -h:显示硬盘大小,自动使用最大的单位

df -Th:同时显示分区类型

df -m:单位M

2.查看文件、目录大小

du -h file

du -sh dir

3.判断文件类型

file file/dir

4.查看文件、目录详细时间参数

stat file/dir:列出访问时间,最后修改时间,等等

5.文件校验

md5sum file

sha256sum file

sha512sum file

6.挂载与卸载光驱

挂载:mount /dev/cdrom /mnt/cdrom

卸载:umount /mnt/cdrom

弹出:eject

7.查看内存使用情况

free -m:单位M

-g:单位G

8.挂载U盘和移动硬盘

fdisk -l:查看新增加的磁盘名称和其类型
FAT16:
mount -t msdos  /dev/sdb1 /mnt/usb
FAT16和FAT32:
mount -t vfat -o iocharset=cp936,codepage=936 /dev/sdb1 /mnt/usb
NTFS:HPFS/NTFS
mount -t ntfs -o iocharset=cp936 /dev/sdb1 /mnt/usb -r
mount -t ntfs -o iocharset=cp936,rw /dev/sdb1 /mnt/usb :只能只读,不能写。
注意:cp936是指简体中文,cp950是指繁体中文。但实际使用中并不好使。
安装ntfs-3g读写ntfs硬盘
可以支持中文显示。ntfs-3g安装包见附件
yum --enablerepo base install gcc.x86_64 -y
yum --enablerepo base install make.x86_64 -y
tar -xzf ntfs-3g_ntfsprogs-2013.1.13.tgz
cd ntfs-3g_ntfsprogs-2013.1.13
./configure
make
make install
mount -t ntfs-3g /dev/sdb1 /mnt/usb

三.文件类型

-:二进制文件

d:目录

l:软连接

b:块设备 block,如硬盘,光驱等等

c:字符设备 charset,如打印机等

四.添加新的硬盘

1.在机器上安装新的硬盘后重启系统

2.dmesg | grep sdb:查看是否有关于第二块硬盘的信息

3.ls /dev | grep sdb:查看系统是否识别出第二块硬盘

  fdisk -l :查看硬盘是否能够识别(sdb)

4.分区

linux分区分另种类型:MBR分区(一个分区必须小于2.2T,且最多3个主分区),GPT分区(分区大小没有限制,主分区个数也没有限制)

MBR分区:

fdisk /dev/sdb 回车

  m:帮助

  p:显示分区表

  n:添加新分区

      e:扩展分区

      p:主分区

n 回车 :新分区,假设分两个区

p 回车 :添加主分区

1 回车 回车 :添加第一个主分区

+10240M 回车 :设置10G

n 回车 :新分区

p 回车

2 回车 回车 回车:添加第二个主分区,并将剩余空间都分配

w:保存退出

q :不保存退出

d :删除分区

fdisk -l /dev/sdb :查看分区信息

GPT分区:

yum --enablerepo base search parted
yum --enablerepo base install parted.x86_64 -y 
fdisk /dev/sdb
 d :先删除原来的分区
 
reboot:重启后再进行磁盘分区
以下红色字体为敲击的命令
parted /dev/sdb  #对/dev/sdb进行分区
GNU Parted 1.8.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt            # 将sdb磁盘改成大分区格式   ,改回MBR模式: mklabel msdos
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
parted: invalid token: gpt
Yes/No? yes                                                               
New disk label type?  [gpt]?                                         
(parted) print         #打印信息,看到分区类型已经修改为gpt:Partition Table: gpt                                           
 
Model: DELL PERC H700 (scsi)
Disk /dev/sdb: 4045GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
 
Number  Start  End  Size  File system  Name  Flags
 
(parted) mkpart primary 0 100gb            #第一块分区分配100G空间  start end
(parted) mkpart primary 100gb 200gb            #第二块分区分配100G空间 start end
(parted) mkpart primary 200gb 4045gb  #第三块分区分配剩余空间 start end
(parted) print     #打印信息                                                       
 
Model: DELL PERC H700 (scsi)
Disk /dev/sdb: 4045GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
 
Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  100GB   100GB                primary       
 2      100GB   200GB   100GB                primary       
 3      200GB   4045GB  3845GB               primary       
 
(parted) quit            #退出,以上操作都是执行完成后就生效了                                                    
Information: Don't forget to update /etc/fstab, if necessary.
此时通过fdisk -l查看的话是看不到具体的具体分区的,只会看到一个被标示为GPT的分区:
Disk /dev/sdb: 4045.4 GB, 4045456539648 bytes
255 heads, 63 sectors/track, 491832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      267350  2147483647+  ee  EFI GPT
 
 
补充:
1)删除分区:
parted /dev/sdb
(parted) rm 1  #要删除那个分区直接输入Number即可,通过print命令查看Number,这里表示删除第一块分区
(parted) quit   

5.格式化

mkfs 或者 mkfs.ext4(最新)

mkfs.ext4 /dev/sdb1 :格式化第一个分区

mkfs.ext4 /dev/sdb2 :格式化第二个分区

6.挂载分区

mkdir /dir1 /dir2

mount /dev/sdb1 /dir1

mount /dev/sdb2 /dir2

重启系统就失效了

7.系统启动时自动加载

vi /etc/fstab

格式:

物理分区名/卷标  挂载点  文件系统  缺省设置  是否检测(0否,1是) 检测顺序(0否,1优先,2后)

/dev/sdb1        /dir1   ext4      defaults   1                    2

/dev/sdb2        /dir2   ext4      defaults   1                    2

或者(永久生效):
echo '/dev/sdb1  /dir1 ext4    defaults    0  0' >> /etc/fstab
echo '/dev/sdb2  /dir2 ext4    defaults    0  0' >> /etc/fstab

注:测试是否修改正确,以免影响下一次系统启动

mount -a 

五.硬盘对拷备份

dd if=/dev/sda of=/dev/sdb:sda===>sdb

六.伪设备

1./dev/zero:不断的写0

例子:

创建固定大小文件:64M

dd if=/dev/zero of=file bs=1024 count=65536

bs=>block size,默认单位byte

count=>个数

linux下可以这样:

dd if=/dev/zero of=file bs=1024k count=64

2./dev/null:黑洞,丢进去内容都会不见

cat file > /dev/null

七.swap扩容

 懂得Linux的都知道,标准的Linux安装,SWAP分区是内存的两倍大小,如果增加了内存条,那SWAP分区也要增加
如果增加1G内存,SWAP分区就要增加2G 
一、决定修改swap大小,首先在空间合适处创建用于分区的swap文件:如/swap1 
    #dd if=/dev/zero of=/swap1 bs=1M count=2048 
if 表示 infile,of 表示outfile,bs=1M代表增加的模块大小,count=2048代表2048个模块,也就是2G空间
二、将目的文件设置为swap分区文件:
    #mkswap /swap1
三、激活swap,立即启用交换分区文件: 
    #swapon /swap1
以上操作在重启系统后swap空间将会失去/swap1,将/swap1加入到/etc/fstab 条目将可以使得系统在init进程中调用swapon -a 来自动挂载/swap1,这样每次机器重启后/swap1都处于有效的swap空间。 
四、在/etc/fstab文件中加入下面这样一行: 
/swap1                  swap                    swap    defaults        0 0
完成!使用free查看swap大小!
 
八.LVM硬盘扩容
有时候系统盘的硬盘不足了,可以通过mount来挂载一块新的硬盘,如何才能对现有的硬盘进行扩容呢?
[root@centos6_source ~]# df -h
Filesystem                                      Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root                     37G   15G   20G  43% /
tmpfs                                           935M     0  935M   0% /dev/shm
/dev/xvda1                                      485M   33M  427M   8% /boot
 
新挂载一块10G的硬盘
[root@centos6_source ~]# fdisk -l

Disk /dev/xvdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

…………………………
 

 挂载硬盘

[root@centos6_source ~]# fdisk /dev/xvdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x83f5d9fd.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
Using default value 1305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

 扩容处理

[root@centos6_source ~]# pvcreate /dev/xvdb1
  Physical volume "/dev/xvdb1" successfully created
[root@centos6_source ~]# vgextend /dev/mapper/VolGroup  /dev/xvdb1
  Volume group "VolGroup" successfully extended
[root@centos6_source ~]# lvextend -L +10G /dev/mapper/VolGroup-lv_root
  Extending logical volume lv_root to 46.71 GiB
  Logical volume lv_root successfully resized
[root@centos6_source ~]# resize2fs /dev/mapper/VolGroup-lv_root 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 3, new_desc_blocks = 3
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 12244992 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 12244992 blocks long.

查看结果

[root@centos6_source ~]# df -h
Filesystem                                      Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root                     46G   15G   30G  34% /
tmpfs                                           935M     0  935M   0% /dev/shm
/dev/xvda1                                      485M   33M  427M   8% /boot

相关推荐