【学神】1-2Linux基本文件管理

内容:

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

作用:删除文件或目录

语法: 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.

分区完成可以使用partprobe或kpartx命令重新读取分区表(经过验证这两个命令在rhel6中不起作用)所以这里reboot重启系统

[[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-08-29 19:10:12

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

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

  Linux基本文件管理 本节所讲内容: Linux系统目录结构 相对/绝对路径 创建/复制/删除文件 rm -rf / 意外事故 查看文件内容 xfs文件系统的备份和恢复 extundelete恢复ext4文件系统中误删的文件   Linux系统目录结构 /   通常称为根分区.所有的文件和目录皆由此开始.只有root用户对此目录拥有写权限. ---/etc  配置文件  包含所有应用程序的配置文件,也包含启动.关闭某个特定程序的脚本,例如, /etc/passwd,/etc/init.d/

【学神】Linux基本文件管理

内容: Linux系统目录构成 绝对/相对路径的概念 文件.目录操作命令 恢复被误删除的文件 实验环境:rhel6.5 x86_64 一. linux系统目录的构成 linux操作系统,一般都包含以下目录: /   通常称为根分区.所有的文件和目录皆由此开始.只有root用户对此目录拥有写权限. ---/etc  配置文件  包含所有应用程序的配置文件,也包含启动.关闭某个特定程序的脚本,例如, /etc/passwd,/etc/init.d/network等. ---/boot 存放Linux

【学神-RHEL7】-1511班12月6号阶段小测试题目

注意事项: 1.本次主要考核内容:文件管理-vim使用方法-用户组管理. 2.考试目的:  强化近期学习内容3.考试时间:30分钟4.考试过程中,禁止删除他人文件,偷看他人内容 5.评分标准: 先比正确率,再比速度.并在任务分发群留言:"我已经做完".没有退出ssh远程,不算你已经做完. 6.评分流程: 交换判卷方式: 以上课YY姓名排名为准.排名第一人判阅第二人的考卷.以此类推,最后一名判阅排名第一人的考卷 当监考老师,宣布判卷开始后,所有人以root身份登录,开始判卷. 做错一处扣

linux系统中的文件管理

Linux系统中文件管理 一.文件系统与目录结构 1.1文件系统概念 文件系统是操作系统最重要的一部分,它定义了磁盘上储存文件的方法及数据结构.文件系统是操作系统组织.存取和保存信息的重要手段,每种操作系统都有自己的文件系统,如Windows所用的文件系统主要有FAT16.FAT32和NTFS,Linux所用的文件系统主要有ext2.ext3.ext4.xfs和btrfs等. 1.2Linux文件系统的特点 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,用"/"表示根文

PHP文件管理—实现网盘以及压缩包的功能操作

代码如下: 1.主页面file_zip.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>文件管理</title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> </head> <style> *{ m

PHP服务器文件管理器开发小结(一):功能规划

为了更好的学习PHP.AJAX和LAMP等,为搭建PHP服务器打下基础,作者尝试开发一款基于PHP的服务器文件管理器,并且在管理过程中使用AJAX而不刷新页面. 文件管理器包含以下基本操作 当前文件夹 回到首文件夹 回到上一级文件夹 刷新文件夹视图 上传文件 新建文件 新建子文件夹 文件操作 查看内容 编辑内容 下载 重命名 移动 删除 文件夹操作 重命名 删除 基本上实现了以上功能后,一个比较完善的服务器文件管理器就形成了. 注意,本示例仅考虑Apache可操作的权限,不考虑提权的情况. 管理

SQL Server 2012笔记分享-54:数据库文件管理1

(一)添加文件 可以在线执行,不影响数据库使用 ,如图. 添加完成后,如图所示. 也可以通过脚本的形式来添加,如图. (二)删除文件 可以在线执行,不影响数据库使用 . 只有当文件中的实际使用空间为空时才能被成功执行 . (三)移动文件到不同的磁盘路径下 必须先将数据库脱机,将导致数据库暂时不可用 详情参考:http://msdn.microsoft.com/zh-cn/library/ms345483.aspx 若要将移动数据或日志文件作为计划的重定位的一部分,请执行下列步骤: 1. 运行以下

【学神-RHEL7】RHEL7.1安装步骤详解

一.安装RHEL7.0 1)成功引导系统后,会出现下面的界面 界面说明: Install Red Hat Enterprise Linux 7.1 安装RHEL7.1 Test this media & install Red HatEnterprise Linux 7.1测试安装文件并安装RHEL 7.1 Troubleshooting 修复故障 注:在Trobleshooting模式下,界面如下: 界面说明: Install Red Hat Enterprise Linux 7.1 in b

linux基础入门之文件管理类命令

文件管理类命令 命令和选项 command [options] [arguments] 命令      选项    参数 选项 短选项-   例(-h -l -a) 短选项可组合 例(-hla) 有些命令短选项可以不带-, 通常称作BSD风格的选项 例(ps aux ,tar xf) 有些选项需要带参数 tail -n 2 /etc/passwd 长选项不能组合 --help --list 如果需要参数 长选项的参数通常需要=号  --size=1G 命令后的参数就是命令的作用对象 例:ls /