【学神】Linux基本文件管理

内容:

Linux系统目录构成

绝对/相对路径的概念

文件、目录操作命令

恢复被误删除的文件

实验环境:rhel6.5 x86_64

一、 linux系统目录的构成

linux操作系统,一般都包含以下目录:

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

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

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

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

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

---/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。

二、绝对/相对路径的概念

在日常的文件管理中,经常会用到绝对路径和相对路径,那么什么是绝对路径和相对路径呢?

绝对路径:我们知道linux系统中,所有的文件和目录都是以/目录开始,简单的讲,绝对路径就是由根目录开始,一步一步的写到实际文件存放的位置,例如:我需要访问passwd文件,绝对路径的写法就是/etc/passwd。

相对路径:不是由根开始,一步一步的写到实际文件存放的位置,而是由现在所处目录开始到目标目录的写法。例如:现在所处目录为/boot,目标目录为/boot/grub/,绝对路径的写法为cd /boot/grub/,而相对路径可以这些写cd grub/

三. 文件、目录操作命令

在介绍操作命令之前,我们需要了解几个特殊的目录

.      代表本层目录

..      代表上层目录

- 代表上一次工作的目录

~      代表目前用户的家目录

这些特殊目录配合相对路径使用,极大的提高了目录切换的速度

以上目录可以通过cd命令切换

例如:

切换至上层目录  cd ..

切换至上一次工作的目录 cd –

切换至家目录 cd ~ 或者直接cd

文件和文件夹常用操作命令

touch 

作用:创建空文件

语法: touch 文件名

例:

[[email protected] ~]# touch dajuan  ###创建一个名字为dajuan的空文件

mkdir

作用:创建目录

语法:mkdir 目录名  (加上-p参数可以递归创建)

例如:

[[email protected] ~]# mkdir harley    ###创建名字为harley的文件夹
[[email protected] ~]# mkdir -p  harley/xunbin/ylyq  ###在harley文件夹下创建xunbin文件夹,然后在xunbin文件夹下再创建ylyp的文件夹

查看文件方法:

cat

作用:查看文件内容

语法:cat 文件名

例:

[[email protected] ~]# cat /etc/passwd  ###查看passwd文件内容,直接全部打印到终端

more 

作用:分页查看文件内容(一般用于查看文件内容比较多的文件)

语法:more 文件名

使用方法: 按下回车刷新一行,按下空格刷新一屏  按q 退出 (不可向上翻页)

less

作用:分页查看文件内容(一般用于查看文件内容比较多的文件)

语法:less 文件名

使用方法:使用光标键可以向上翻页

linux中more与less的区别

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

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

head 

作用:从第一行开始,查看文件

语法:head 【-n】文件名

参数:-n 数字    显示多少行 (如果不加-n参数,则默认显示前10行)

例:

[[email protected] ~]# head -5  /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
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

tail

作用:从第后一行开始,查看文件

语法:tail 【-n|-f】 文件名

参数:-n  显示多少行 -f  动态显示数据(不关闭)  常用来查看日志(如果不加-n参数,则默认显示后10行)

例:

[[email protected] ~]# tail -f /var/log/messages

Head和tail配合使用

例:

显示文件的第五行

[[email protected] ~]# head -5   /etc/passwd  |  tail -1
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

cp

作用:复制文件

语法:cp 【-r】 源文件  目标文件

参数:-r 包含子目录和文件

例:

[[email protected] ~]# cp /etc/passwd  /root/
[[email protected] ~]# cp  -r /boot/grub/   /opt/

作用:删除文件或目录

语法: rm 【-r|-f】  文件或目录名

参数:-r  递归删除(可以删除目录和目录里面的东西)-f  强行删除

例:

[[email protected] ~]# rm -rf passwd

mv

作用:移动或重命名文件(如果用作重命名文件,则更新文件的时间戳)

语法:mv 源:文件或目录名    目标:文件或目录名(如果源和目标为同一目录则为重命名操作)

[[email protected] ~]# mv passwd  qn

四、 恢复被误删除的文件

在生产环境下,建议大家尽量不用或者少用rm命令,如果确定不用的文件可以暂时放入一个定期清除内容的文件夹,但是如果不小心误删除了文件该怎么操作呢?

下面以rhel6,5操作系统为例,演示恢复误删除文件的恢复方法:

1、 准备测试分区和文件

 [[email protected] ~]# fdisk /dev/sda                                     #准备测试分区
 
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                                                                            #创建主分区
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     #新建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 on cylinder 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 been altered!
 
Calling ioctl() to re-read partition table.
 
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[[email protected] ~]# mkfs.ext4  /dev/sda4#格式化分区
[[email protected] ~]# mkdir /sda4#创建挂载点
[[email protected] ~]# mount /dev/sda4 /sda4/         #挂载分区
[[email protected] ~]# df –h#查看挂载状况
Filesystem      Size  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

准备测试文件

[[email protected] sda4]# cp  /etc/passwd  /sda4/
[[email protected] sda4]# cp /etc/hosts  /sda4/
[[email protected] sda4]# mkdir -p  a/b/c
[[email protected] sda4]# cp /etc/passwd  a/
[[email protected] sda4]# touch  a/b/kong.txt

删除文件

[[email protected] sda4]# rm -rf a a.txt hosts passwd 
[[email protected] sda4]# ls
lost+found

2、 卸载或以只读方式挂载误删除的分区

[[email protected] ~]# umount /dev/sda4    ###卸载分区
或
[[email protected] ~]# mount  -o  ro,remount /dev/sda4 /sda4/ 以只读方式重新挂载sda4分区
避免写入的新文件覆盖误删除文件的物理磁盘空间

3、在其他分区安装extundelete软件包(此软件可以恢复ext3和ext4文件系统)

[[email protected] ~]# tar jxvf extundelete-0.2.4.tar.bz2#解压软件包
[[email protected] ~]# cd extundelete-0.2.4                                    #进入软件目录
[[email protected] extundelete-0.2.4]# ./configure                             #配置
Configuring extundelete 0.2.4
configure: error: Can‘t find ext2fs library                                       #配置报错

解决办法

[[email protected] extundelete-0.2.4]# uname –r                               #查看内核版本
2.6.32-431.el6.x86_64
[[email protected] extundelete-0.2.4]# rpm –ihv
/mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm                      #安装ext2fs库
 
[[email protected] extundelete-0.2.4]# ./configure  #重新配置
[[email protected] extundelete-0.2.4]# make   #编译
make -s all-recursive
Making all in src
extundelete.cc:571: warning: unused parameter ‘flags’
[[email protected] extundelete-0.2.4]# make install   #安装
Making install in src
  /usr/bin/install -c extundelete ‘/usr/local/bin‘

4、 extundelete命令用法

extundelete [options] [action] device-file

其中,参数(options)有:

--version, -[vV],显示软件版本号。

--help,显示软件帮助信息。

--superblock,显示超级块信息。

--journal,显示日志信息。

--after dtime,时间参数,表示在某段时间之后被删的文件或目录。

--before dtime,时间参数,表示在某段时间之前被删的文件或目录。

动作(action)有:

--inode ino,显示节点“ino”的信息。

--block blk,显示数据块“blk”的信息。

--restore-inode ino[,ino,...],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。

--restore-file ‘path‘,恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中。

--restore-files ‘path‘,恢复命令参数,表示将恢复在路径中已列出的所有文件。

--restore-all,恢复命令参数,表示将尝试恢复所有目录和文件。

-j journal,表示从已经命名的文件中读取扩展日志。

-b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。

-B blocksize,通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件。

在文件恢复成功后,extundelete命令默认会在执行命令的当前目录下创建一个RECOVERED_FILES目录,此目录用于存放恢复出来的文件,所以执行extundelete命令的当前目录必须是可写的。

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

5、恢复文件

[[email protected] ~]# extundelete /dev/sda4 --inode 2     #显示/dev/sda4分区的文件信息(2为根分区inode值)
………………
File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
lost+found                                        11
passwd                                            12             Deleted
hosts                                             13             Deleted
a                                                 7313           Deleted
a.txt                                             17             Deleted

方法一:通过inode进行恢复

[[email protected] test]# extundelete /dev/sda4  --restore-inode 12   ##恢复inode为12的文件
[[email protected] test]# ls RECOVERED_FILES/
file.12
[[email protected] test]# diff /etc/passwd RECOVERED_FILES/file.12    ##比较两个文件的差异如没有输出则表示两个文件相同

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

[[email protected] test]# extundelete /dev/sda4  --restore-file  passwd

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

[[email protected] test]# extundelete /dev/sda4  --restore-directory   a

方法四:恢复所有文件

[[email protected] test]# extundelete /dev/sda4  --restore-all

学神-IT-教育51cto技术交流群:468845589  快来上我们公开课吧!

学神MK老师:1273815479

学神ZY老师:3054384936

学神教育1508班VIP学员立伟编译提供

时间: 2024-10-02 00:29:32

【学神】Linux基本文件管理的相关文章

Linux基础文件管理命令之ls,cd

Linux中提供了大量的命令,使用他们可以简化我们的工作,也许在图形化界面中要点击鼠标十几下操作,而在linux系统中一条命令就可以轻松解决.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起. linux系统中的命令格式一般如下: 命令格式:   命令  选项  参数     选项:       短选项: -       多个选项可以组合:-a -b = -ab       长选项: -- 参数:命令的作用对象 下面主要介绍ls和cd命

linux 基本文件管理命令

Linux基本文件管理命令 一..cp [OPTION]... [-T] 1>.SOURCE   DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 2>.cp  SRC  DEST 2.1>SRC 是文件 如果目标文件不存在:新建DEST,并将src中内容填充至DEST中: 如果目录文件存在: 如果DEST是文件,SRC中的内容覆盖至DEST: 此时建议cp命令使用-i选项: 如果D

转 Linux命令-文件管理命令

http://jingyan.baidu.com/article/9113f81bc1c7a72b3214c7d3.html Linux命令-文件管理命令 浏览:4118 | 更新:2012-11-12 15:26 | 标签:linux linux系统因其优秀的稳定性和安全性,被越来越多的企业服务器应用.随之而来的越来越多的人学习使用linux,而做为linux系统的基础linux命令更是必学无疑的,小编今天跟大家分享一篇小编精心编辑的文章“linux命令-文件管理命令”,希望能帮到大部分的li

Linux基础文件管理命令之rm,mv,cp,touch

在linux系统下,一切皆文件,就连光盘也看作文件,要使用光盘首先要先建立一个目录,然后通过挂载来操作这个光盘,就连鼠标,键盘都是被看作文件.所以学习文件的相关操作命令是很重要的. rm命令 rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件保持不变. 注:rm是一个危险的命令,使用的时候要特别小心,尤其对于新手,否则整个系统就会毁在这个命令,比如以root身份在根目录下执行rm * rf

小猿圈解析Linux常用文件管理命令都有哪些?

对于刚开始学习linux的同学,很多都是比较陌生的,打开文件的速度过慢影响很多,针对这个情况,小猿圈Linux讲师整理了一份linux常用文件管理命令,希望对你正在自学linux的你有所帮助. 一.文件管理基本命令 1.pwd pwd显示当前的工作目录(显示当前shell CWD的绝对路径) 用法:pwd [option] 选项: -P显示真实物理路径 -L显示链接路径(默认) 拓展: ?每个shell和系统进程都有一个当前的工作目录 ?绝对路径:以正斜杠开始 完整的文件的位置路径 可用于任何想

Linux基础文件管理命令

Linux上的文件管理类命令有哪些,其常用的使用方法及其相关的示例演示. 1.ls:显示目录文件 -a:显示所有文件,包括隐藏文件 -A:显示所有文件,包括隐藏文件,但是不包含当前目录和父级目录 -l:列出长数据串,包含文件的属性.权限.所有者.所属组.大小等等 -d:配合-l一起使用,查看目录自身属性(不是目录内部的文件列表) 2.cd:切换目录 cd / #切换到根目录 cd(cd ~) #切换到当前用户的家目录 cd - #切换到上一次所在的目录 cd .. #切换到父级目录 3.pwd:

Linux学习-文件管理(1)

文件管理--当你使用Linux时,大部分时间都会和文件打交道,我们需要了解基本的文件操作,如创建文件.删除文件.复制文件.重命名文件以及为文件创建链接等. 目录 文件的组成 目录结构 文件类型 pwd命令 更改目录 cd 查看文件状态 stat  --时间戳 文件通配符 复制文件和目录 cp 未完待续 详细内容 一.文件的组成 ①元数据 -- 元数据就是数据的数据,用来描述一个文件的特征的系统数据,诸如访问权限.文件拥有者以及文件数据块的分布信息等: 对文件系统元数据的更改都被保存到一份单独的日

Linux系统文件管理

文件管理挂载光盘 :/misc/cd systemctl status autofs如果运行: yum -y installs autofs systemctl start autofs systemctl enable autofs systemctl enable --now autofs (前两个命令同时进行) 文件系统目录结构:文件系统从根目录下开始,用“/”表示文件或目录被组织成一个单根倒置树结构以.开头为隐藏文件路径分隔/文件名最长255字节路径在内文件名称最长4095字节蓝色-->

linux常用文件管理命令(1)

一. 目录/文件的相关操作: 1. 创建目录: mkdir 选项 目录 参数: -p 递归创建目录 例如: 在根目录/下创建uzz目录 [[email protected] /]# mkdir uzz [[email protected] /]# ls / 12   bin   data1  home   lost+found  opt   sbin     sys  uzz 123  boot  dev    lib    media       proc  selinux  tmp  var