`
hanqunfeng
  • 浏览: 1543308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

程序员必知必会----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

 

0
2
分享到:
评论

相关推荐

    程序员必会的Linux命令

    ### 程序员必会的 Linux 命令 #### 一、查找文件 - **Find**: `find` 命令用于在文件系统中查找文件或目录。 - **基本格式**:`find [搜索起点] [选项]` - **示例**: - `find / -name filename.txt`:在根目录...

    程序员必知必会linux基础知识

    用户必知必会的Linux常用命令之【基础命令】包括了对文件和目录的创建、删除、移动、复制等操作的命令。这些是进行Linux系统日常维护和操作时,使用频率最高的命令。 【vim】作为程序员的编辑器,是Linux系统中必不...

    超强版linux程序员手册

    2. **Linux命令行工具**:书中详细列举并解释了数百个常用的Linux命令,包括文件和目录管理、文本处理、系统监控、网络通信等,这些都是日常开发和系统维护中的必备技能。 3. **C/C++编程**:作为Linux系统编程的...

    Linux常用命令全集

    在IT领域,Linux操作系统是开发者、系统管理员和程序员的重要工具。了解并熟练使用Linux命令行是成为高效Linux用户的关键。本篇文章将详细讲解Linux入门...希望这份Linux常用命令全集能为你的学习之路提供宝贵的指引。

    面试系统linux 常用的20种必会的命令.docx

    ### Linux常用命令详解 #### 1. `cd` - 切换工作目录 用于改变当前的工作目录。例如: ``` cd /home/user ``` #### 2. `ls` - 显示目录内容 列出指定目录下的文件和子目录列表。例如: ``` ls -l ``` #### 3. `...

    linux常用命令大全eb-mas开发笔记

    本篇将详细介绍Linux常用命令及其应用,帮助你提升工作效率。 1. **ls** 命令:用于列出目录中的文件和子目录。通过添加选项如 `-l`(长格式)可显示详细信息,`-a`(显示所有文件,包括隐藏文件)可以查看通常不...

    Linux常用命令Linux常用命令

    这篇内容将深入讲解一些常用的Linux命令,帮助初学者更好地理解和操作Linux系统。 1. **ls**:用于列出目录中的文件和子目录。例如,`ls -l`可以显示详细信息,包括权限、所有者、大小和修改日期。 2. **cd**:...

    迅雷java高级程序员-面试归来-2010-05-21

    - 虽然题目只提到“写6个Linux命令”,但实际上面试官可能会更关注应聘者对Linux环境的理解以及常用命令的应用能力。 4. **SQL相关** - SQL是数据库操作的基础,熟练掌握SQL对于任何一名Java程序员来说都是必不可...

    Linux GCC常用命令.pdf

    Linux GCC常用命令涵盖了GCC(GNU Compiler Collection)编译器的使用方法,它是编写和运行C、C++等语言程序的重要工具。GCC最初仅支持C语言编译,但随着发展,它已演化为一个强大的编译器集合,支持多种编程语言,...

    Linux系统中Vi常用命令及高级应用

    在Linux系统中,Vi(Visual Editor)是一个强大的文本编辑器,对于系统管理员和程序员来说是必不可少的工具。Vi分为两种模式:命令模式和插入模式。在命令模式下,用户可以通过键盘输入各种命令来操作文本,而在插入...

    Linux命令集合

    Linux命令集合提供了常用的操作指令,帮助程序员高效地进行系统管理、文件操作、网络通信等任务。以下是一些核心的Linux命令及其应用场景的详细解释: 1. **ls**:用于列出目录中的文件和子目录。通过添加参数,如`...

    鸟哥的私房菜-linux学习必备

    同时,Linux系统中的权限管理也非常关键,需要通过chmod、chown等命令来设置文件和目录的权限,以保障系统安全。 在Linux系统中,进程管理也是一个重要的知识点。通过使用如ps、top、kill等命令可以监控和控制系统...

    jdk-14.0.1_linux-x64_bin.tar.zip

    JDK(Java Development Kit)是Oracle公司发布的Java开发工具包,对于Java程序员来说,它是必不可少的工具。JDK 14.0.1是Java的一个重要版本,它包含了许多新特性和改进。在Linux环境下,正确安装和配置JDK对于Java...

    Shell从入门到精通、ARM嵌入式Linux系统开发详解、Linux驱动开发入门与实战、Linux网络编程、Linux系统移植......

    在IT行业中,Linux系统因其开源、...通过这些资源的学习,无论是想成为Linux系统管理员、网络程序员、设备驱动开发者还是嵌入式系统工程师,都能找到相应的指导和实践案例。持续学习和实践,是掌握Linux技术的关键。

    java初学者的第一天,畅游于Linux

    在这一天,初学者通常会接触到Linux的基本概念、文件系统结构和一些常用的命令行操作。这份学习笔记中提到了很多基础知识点,这些知识点对于Java初学者来说也是相当有用的,因为Java程序运行在各种操作系统上,掌握...

    Linux操作系统-C语言编程入门 PDF.rar

    Linux是一种开源的操作系统,以其稳定、高效和灵活性著称,是开发人员和程序员的常用平台。读者将了解到Linux的主要特点、发行版的区别以及如何安装和使用Linux开发环境。这一部分还将涉及命令行界面(CLI)的使用,...

    韩老师Linux2021系列教程

    命令行是Linux的核心部分,教程会详细讲解各种常用命令,如ls、cd、mkdir、rm、cp、mv等,这些命令是日常操作Linux系统的基础。此外,还将涉及文件权限和所有权的概念,如chmod和chown命令,以及如何使用find、grep...

    linux gdb调试命令.pdf

    当程序异常终止时,系统会生成一个core文件,GDB可用于调试这种core文件。 - 首先使用“gdb 程序名 core文件名”启动调试。 - 然后可以使用各种GDB命令查看程序终止前的状态,比如打印调用栈、变量值等。 5. 多...

    linux 网络变成 和c的编程

    "Linux系统命令及其使用详解.pdf"会提供Linux系统的常用命令详解,这对于日常的系统管理和问题排查非常实用。 总的来说,这些文件资料为深入理解Linux环境下的C编程和网络编程提供了丰富的资源。通过学习,你可以...

    操作系统 dos命令 操作系统论文

    操作系统论文通常会探讨DOS与现代操作系统如Windows、Linux、Mac OS之间的异同,分析它们的内存管理、进程调度、文件系统以及设备驱动等核心概念。对于初学者来说,理解DOS可以帮助构建对操作系统的基础知识框架,为...

Global site tag (gtag.js) - Google Analytics