Linux基本文件管理

本节所讲内容:

Linux系统目录结构

相对/绝对路径

创建/复制/删除文件

rm -rf / 意外事故

查看文件内容

xfs文件系统的备份和恢复

extundelete恢复ext4文件系统中误删的文件

 

Linux系统目录结构

/   通常称为根分区。所有的文件和目录皆由此开始。只有root用户对此目录拥有写权限。

---/etc  配置文件  包含所有应用程序的配置文件,也包含启动、关闭某个特定程序的脚本,例如,

/etc/passwd,/etc/init.d/network等。

---/boot存放Linux系统启动时需要加载的文件。 (一般在另外一个磁盘分区里面保存) Kernel、grub等文件都存放在此。

---/var  是一个可增长的目录,包含很经常变的文件。例如,/var/log(系统日志)、/var/lib (包文件) 、

---/root  管理员所有数据。  root用户的家目录

---/tmp  临时文件存储位置

---/usr  usr表示的是unix software source    

---/bin  命令  此目录包含二进制可执行文件。

---/sbin  系统命令 ,此目录中的命令主要供系统管理员使用,以进行系统维护。例如,iptables、reboot、fdisk等。

/mnt- 挂载目录  挂载点,系统管理员可用于临时挂载文件系统。     /media

---/dev  包含设备文件。在Linux中,一切都被看做文件。终端设备、USB、磁盘等等都被看做文件,如/dev/sda。

---/home  普通用户所有数据存放在这个目录下 

---/proc
  这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

---/lib
  这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

绝对路径/相对路径:

[root@xuegod163etc]# cd /boot/

[root@xuegod163boot]# cd grub/

  表示当前目录

创建/查看/复制/删除 文件和文件夹

 

创建文件和文件夹

touch 

作用:常用来创建空文件

语法: touch 文件名

[root@xuegod163 ~]# touch momo

 

mkdir

作用:创建目录

语法:mkdir 目录名

[root@xuegod163~]# mkdir sljz

[root@xuegod163~]# mkdir -p  sljz/syex/xbk

-p连同父目录一起创建

 

[root@xuegod163 ~]# touch a

[root@xuegod163 ~]# mkdir a

mkdir: cannot create directory`a': File exists

 

查看文件方法:

cat

作用:查看文件内容

语法:cat 文件名

 

more  查看文件名字

例:

more  /etc/passwd

按下回车刷新一行,按下空格刷新一屏

q 退出

 

less  查看文件名字

q 退出

使用光标键可以向上翻页

linux中more与less的区别

more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便。

less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。,空格键是向下翻页,Enter键是向下翻一行

 

 

head 从第一行开始,查看文件,默认显示前10行

-n 数字   显示多少行

[root@xuegod163 ~]# head -3/etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

tail  从第后一行开始,查看文件,默认显示最后10行

-n  显示多少行

-f  动态显示数据(不关闭)  常用来查看日志

[root@xuegod163~]# tail -f /var/log/messages

Nov26 01:59:46 xuegod163 dbus[918]: [system] Activating via systemd: servicename='net.reactivated.Fprint' unit='fprintd.service'

Nov26 01:59:46 xuegod163 systemd: Starting Fingerprint Authentication Daemon...

Nov26 01:59:46 xuegod163 dbus-daemon: dbus[918]: [system] Successfully activatedservice 'net.reactivated.Fprint'

 

显示文件的第五行

[root@xuegod163~]# head -5 /etc/passwd  | tail -1

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

复制文件:

cp

作用:复制文件

语法:cp 源文件 目标文件

[root@xuegod163~]# cp /etc/passwd  /root/

-r 包含子目录和文件  。

[root@xuegod163 ~]# cp  -r /boot/grub/   /opt/

删除文件和文件夹

rm 

作用:删除文件或目录

语法: rm -rf  文件或目录名

-r  递归删除(可以删除目录和目录里面的东西)

-f  强行删除

[root@xuegod163~]# rm -rf passwd

 

重命名:

mv 

语法:mv 源:文件或目录名    目标:文件或目录名

[root@xuegod163 ~]# mvpasswd  xiaochuan

 

 

实战:xfs文件系统的备份和恢复

 

XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。与传统的UNIX文件系统不同,XFS不需要在dump前被卸载;对使用中的XFS文件系统做dump就可以保证镜像的一致性。这与XFS对快照的实现不同,XFS的dump和restore的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。

 

首先准备测试文件

[root@xuegod163 ~]#cp/etc/passwd  /sda3

[root@xuegod163 ~]#mkdir/sda3/test

 

1)对整个分区进行备份

[root@xuegod163 ~]#xfsdump  -f /opt/dump_sda3  /sda3

注意:备份的设备这里不能写成/sda3/

xfsdump: using filedump (drive_simple) strategy

xfsdump: version 3.1.4(dump format 3.0) - type ^C for status and control

 

 ============================= dump labeldialog ==============================

 

please enter label forthis dump session (timeout in 300 sec)

 -> dump_sda3

#指定备份标签

session label entered:"dump_sda3"

 

 --------------------------------- end dialog---------------------------------

 

xfsdump: level 0 dumpof xuegod163.cn:/sda3

xfsdump: dump date: TueNov 10 21:29:47 2015

xfsdump: session id:df2e3d9c-3217-4fba-858c-d22159d5a901

xfsdump: session label:"dump_sda3"

xfsdump: ino map phase1: constructing initial dump list

xfsdump: ino map phase2: skipping (no pruning necessary)

xfsdump: ino map phase3: skipping (only one dump stream)

xfsdump: ino mapconstruction complete

xfsdump: estimated dumpsize: 25536 bytes

xfsdump:/var/lib/xfsdump/inventory created

 

 ============================= media labeldialog =============================

 

please enter label formedia in drive 0 (timeout in 300 sec)

 -> media0

#指定设备标签

media label entered:"media0"

 

 --------------------------------- end dialog---------------------------------

 

xfsdump: creating dumpsession media file 0 (media 0, file 0)

xfsdump: dumping inomap

xfsdump: dumpingdirectories

xfsdump: dumpingnon-directory files

xfsdump: ending mediafile

xfsdump: media filesize 23720 bytes

xfsdump: dump size(non-dir files) : 2080 bytes

xfsdump: dump complete:12 seconds elapsed

xfsdump: Dump Summary:

xfsdump:   stream 0 /opt/dump_sda3 OK (success)

xfsdump: Dump Status:SUCCESS

 

 

非交互式进行备份

[root@xuegod163 ~]#xfsdump -f /opt/dump_sda3 /sda3  -Ldump_sda3 -M media0

 

针对指定文件或目录进行备份

[root@xuegod163~]# xfsdump -f /opt/dump_sda3_a -s  test/sda3  -L dump_sda3_a -M media1

注意:a  /sda3中间有空格,前后都不能加“/”

 

查看备份文件是否生成

[root@xuegod163 ~]# ls/opt/

dump_sda3  dump_sda3_test  rh

 

克隆目录到另外一个目录

[root@xuegod163 ~]#mkdir /data

[root@xuegod163 ~]#xfsdump - /sda3  | xfsrestore  - /data/

克隆指定的目录

[root@xuegod163~]# xfsdump --s test /sda3 |xfsrestore - /data

 

查看备份信息

[root@xuegod163data]# xfsdump -I

file system 0:

       fs id:              4df2c5b9-98c2-48c0-895f-227c9b816f68

       session 0:

              mount point:xuegod163.cn:/sda3

              device:           xuegod163.cn:/dev/sda3

              time:             Tue Nov 10 21:29:47 2015

              session label:"dump_sda3"

              session id:     df2e3d9c-3217-4fba-858c-d22159d5a901

              level:             0

              resumed:       NO

              subtree:  NO

              streams:1

              stream 0:

                     pathname:     /opt/dump_sda3

                     start:             ino 131 offset 0

                     end:        ino 132 offset 0

                     interrupted:   NO

                     media files:   1

                     media file 0:

                            mfile index:   0

                            mfile type:     data

                            mfile size:      23720

                            mfile start:    ino 131 offset 0

                            mfile end:      ino 132 offset 0

                            media label:  "media0"

                            media id:       2f7dd88f-1aca-4605-a14b-14bab8ea799b

 

文件系统恢复

首先,模拟数据被删除

[root@xuegod163~]# rm -rf /sda3/*

恢复

[root@xuegod163~]# xfsrestore -f /opt/dump_sda3 /sda3/

只恢复单个的目录或文件

[root@xuegod163 ~]#xfsrestore -f /opt/dump_sda3_test -s test /sda3

 

恢复之前查看备份文件的内容

[root@xuegod163~]# xfsrestore  -f /opt/dump_sda3 –t

 

 

没有基础的同学了解【redhat6.5】

实战:恢复误删除的文件

exetundelete

首先、上传软件包

用xshell进行上传

[root@xuegod163 ~]# rpm -ihv/mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm

warning: /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm:Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...               ########################################### [100%]

       package lrzsz-0.12.20-27.1.el6.x86_64 is already installed

 

rz上传

sz下载

 

安装extundelete软件包

[root@xuegod163 ~]# tar jxvfextundelete-0.2.4.tar.bz2                     #解压

[root@xuegod163 ~]# cdextundelete-0.2.4

[root@xuegod163extundelete-0.2.4]# ./configure

Configuring extundelete 0.2.4

configure: error: Can't find ext2fslibrary

 

解决办法

[root@xuegod163extundelete-0.2.4]# uname -r

2.6.32-431.el6.x86_64

[root@xuegod163extundelete-0.2.4]# rpm –ihv   

/mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

 

[root@xuegod163extundelete-0.2.4]# ./configure                             #配置

[root@xuegod163extundelete-0.2.4]# make                                     #编译

make -s all-recursive

Making all in src

extundelete.cc:571: warning:unused parameter ‘flags’

[root@xuegod163extundelete-0.2.4]# make install                           #安装

Making install in src

  /usr/bin/install -c extundelete'/usr/local/bin'

 

准备测试分区

[root@xuegod163 ~]# fdisk/dev/sda

 

WARNING: DOS-compatible modeis 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

Selected partition 4

First cylinder (1428-2610,default 1428): 

Using default value 1428

Last cylinder, +cylinders or+size{K,M,G} (1428-2610, default 2610): +1G

 

Command (m for help): p

 

Disk /dev/sda: 21.5 GB,21474836480 bytes

255 heads, 63 sectors/track,2610 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: 0x0000fff2

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sda1   *          1          26      204800  83  Linux

Partition 1 does not end oncylinder boundary.

/dev/sda2              26        1301   10240000   83  Linux

/dev/sda3            1301        1428    1024000   82  Linux swap / Solaris

/dev/sda4            1428        1559    1052843+  83  Linux

 

Command (m for help): w

The partition table has beenaltered!

 

Calling ioctl() to re-readpartition table.

 

WARNING: Re-reading the partitiontable failed with error 16: Device or resource busy.

The kernel still uses the oldtable. The new table will be used at

the next reboot or after yourun partprobe(8) or kpartx(8)

Syncing disks.

 

 

reboot重启系统

[root@xuegod163 ~]#mkfs.ext4  /dev/sda4                              #格式化分区

[root@xuegod163 ~]# mkdir/sda4                                             #创建挂载点

[root@xuegod163 ~]# mount/dev/sda4 /sda4/                         #挂载分区

[root@xuegod163 ~]# df –h                                                       #查看挂载状况

FilesystemSize  Used Avail Use% Mounted on

/dev/sda2       9.7G 3.8G  5.4G  42% /

tmpfs           2.0G 224K  2.0G   1% /dev/shm

/dev/sda1       194M  34M  151M  19% /boot

/dev/sr0        3.6G 3.6G     0 100% /mnt

/dev/sda4      1012M  34M  928M   4% /sda4

 

准备测试文件

[root@xuegod163 ~]# cp/etc/passwd  /sda4/

[root@xuegod163 ~]# cp/etc/hosts   /sda4/

[root@xuegod163 ~]# mkdir -p/sda4/a/b/c

[root@xuegod163 ~]# cp/etc/passwd  /sda4/a/

[root@xuegod163 ~]# touch/sda4/a/b/kong.txt

 

删除文件

[root@xuegod163 ~]# cd  /sda4/

[root@xuegod163 sda4]# ls

a  hostslost+foundpasswd

[root@xuegod163 sda4]# rm -rfa hosts  passwd

 

卸载要恢复的分区或者以只读的方式进行挂载

[root@xuegod163 ~]# umount/dev/sda4

 

恢复文件

查看要恢复分区的文件删除状态信息

[root@xuegod163 ~]#extundelete /dev/sda4 --inode 2

………………

File name                                       | Inodenumber | Deleted status

.                                                 2

..                                               2

lost+found                                        11

passwd                                           12             Deleted

hosts                                             13             Deleted

a                                                7313           Deleted

a.txt                                            17             Deleted

 

方法一:通过inode进行恢复

[root@xuegod163 test]#extundelete /dev/sda4  --restore-inode 12

[root@xuegod163 test]# lsRECOVERED_FILES/

file.12

[root@xuegod163 test]# diff/etc/passwd RECOVERED_FILES/file.12

 

方法二:通过文件名进行恢复

[root@xuegod163 test]#extundelete /dev/sda4 --restore-file  passwd

 

方法三:通过目录进行恢复

[root@xuegod163 test]#extundelete /dev/sda4 --restore-directory  a

 

方法四:恢复所有文件

[root@xuegod163 test]#extundelete /dev/sda4  --restore-all

 

通过extundelete命令不能恢复空文件和空目录

 

学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762
学神IT-戚老师QQ:3341251313
学神IT-旭斌QQ:372469347
学神IT教育RHEL7交流群:468845589

转载于:https://blog.51cto.com/xuegodlinux/1717245

【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件相关推荐

  1. linux testdisk工具恢复误删除的文件

    一.testdisk介绍 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件. 二.安装testdisk 可以使用 apt ins ...

  2. Linux 利用 /proc 目录恢复误删除的文件

    Linux 利用 /proc 目录恢复误删除的文件 在 Linux 系统中删除文件时,无论文件是否在使用中,甚至是还在写入,都可以被 rm 删除.不过,rm 删除文件时并非是被真正地擦除,特别是当文件 ...

  3. 【必看】如何在 Linux 上恢复误删除的文件或目录

    Linux不像windows有那么显眼的回收站,不是简单的还原就可以了.linux删除文件还原可以分为两种情况,一种是删除以后在进程存在删除信息,一种是删除以后进程都找不到,只有借助于工具还原.这里分 ...

  4. 怎样在 Linux 系统中恢复被删除文件

    导读 当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件.不过,幸运的是文件是可以通过一些方法恢复的.当用户删除了一个文件,该文件并没有消失,只是被隐藏了 ...

  5. linux怎么找回误删的文件,Linux恢复误删除的文件或者目录

    2017 年 2 月 1 日 GitLab 数据库被误删引起了广大争议. linux不像windows有个回收站,使用rm -rf *基本上文件是找不回来的. 那么问题来了: 对于linux下误删的文 ...

  6. 如何在Linux上恢复误删除的文件或目录

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 Linux不像windows有那么显眼的回收站,不是简单的还原就可以了.l ...

  7. Linux ext4文件系统下 extundelete 恢复 误删除的文件

    1.文件基本操作 1.1 查看文件 # ls 1.2 创建 1.2.1 创建文件 # touch {file_name} # vim {file_name} 1.2.2 创建目录 # mkdir -p ...

  8. linux删除文件_【Linux实战】Vim编辑器和恢复ext4下误删除的文件

    学神IT教育:XueGod-IT 良心教育 贴心服务 1.  vim主要模式介绍,vim命令模式. 确保系统已经安装了VIM工具 [root@panda ~]# rpm -qf `which vim` ...

  9. linux中rm删除的文件是否可以恢复,Linux下用rm删除的文件的恢复方法

    Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2008-08/14744.htm lin ...

最新文章

  1. 推荐一个分布式JVM监控工具,非常实用!
  2. 【强烈推荐】如何给TortoiseGit 配置密钥?
  3. 共享文件服务器迁移,服务器共享文件夹迁移
  4. C#几种访问修饰符理解
  5. 10_InfluxDB常用函数(三)变换类函数(DERIVATIVE, DIFFERENCE,ELAPSED,MOVING_AVERAGE,NON_NEGATIVE_DERIVATIVE)等
  6. Delphi的System.Str - 将数字格式化为字符串
  7. 我的linux复习之一密码修改
  8. 神州租车:陆正耀辞任公司董事会主席及非执行董事职务
  9. 查看linux上卸载mysql数据库_linux卸载mysql数据库
  10. cookie不正确 请重新登录_小学多陪,初中少陪,高中不陪!小学6年陪孩子写作业的正确方式,请家长收下!...
  11. Linux bash shell递归函数
  12. 基于操作系统编程与裸机编程的区别
  13. 复旦计算机学院软件工程,2019年复旦961软件工程专硕考研初试363+复试经验分享...
  14. idea破解最新版本
  15. 用Scipy中的linprog解决股票融资中的线性规划问题
  16. 通过ktr文件写交换代码
  17. 金丹期前期:1.4、python语言-python的程序的核心数据类型:字符串、列表、元组、字典
  18. 中国身份证号码验证,支持15 18位,可验证成功90 的身份证号
  19. 数字身份的万亿市场之争才刚开始
  20. 【有利可图王】PS教程:将人物设计处理成五彩缤纷的抽象效果!

热门文章

  1. cisco配置静态NAT
  2. 偶然发现的QQ的一个挺讨厌的BUG
  3. python解压zip文件_Python中最快解压zip文件的方法
  4. linux吃鸡游戏下载,沙雕糖豆人吃鸡战场
  5. C语言求数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。
  6. html 图片时钟,教你五步制作精美的HTML时钟
  7. 为什么应该安装使用 Arch Linux
  8. 访问者模式的java语言_Java 设计模式 之 访问者模式
  9. 【JavaSE】双向链表的实现与讲解
  10. 不使用梯度裁剪和使用梯度裁剪的对比(tensorflow)