1.1 Linux系统目录结构,相对/绝对路径。
1.2 创建/复制/删除文件,rm -rf / 意外事故
1.3查看文件内容
1.4实战-xfs文件系统的备份和恢复
1.1 Linux系统目录结构,相对/绝对路径。
1.1.1 linux系统目录结构
Linux系统中有没有所谓的本地磁盘C D E?
/ 通常称为根分区。 所有的文件和目录的起始点 只有root用户对此目录拥有写权限。
/etc /etc/passwd 账号文件 /etc/init.d/network等。
配置文件 包含所有应用程序的配置文件,也包含启动、关闭某个特定程序的脚本,
/boot 存放Linux系统启动时需要加载的文件。 grub2 kernel
/var 是一个可增长的目录,包含很经常变的文件。 例如,/var/log(系统日志)
/root 管理员所有数据。 root用户的家目录
/tmp 临时文件存储位置 不能存放重要的数据
/usr usr表示的是unix software source
/usr/src 源代码目录
/bin 命令 此目录包含二进制可执行文件。
/sbin 系统命令 ,此目录中的命令主要供系统管理员使用,以进行系统维护
/mnt 挂载目录 挂载点,系统管理员可用于临时挂载文件系统。/media
/dev 包含设备文件。在Linux中,一切都被看做文件。终端设备、磁盘等等都被看做文件.
/home 普通用户所有数据存放在这个目录下
/proc 我们可以通过直接访问这个目录来获取系统信息。
查看咱们的内存信息,CPU信息
cat /proc/meminfo | grep “Mem”
查看cpu
cat /proc/cpuinfo
/lib 存放系统的库文件
lib库包括动态运行库和静态库。
lib***.a是静态库
lib***.so是动态库
静态库在编译时被加载到二进制文件中
动态库在运行时加载到进程的内存空间中
其作用类似于Windows里的.dll文件
这些库就是为了让你的程序能够正常编译运行的。
总结:
本地管理员大多数情况下将额外的软件安装在/usr/local目录下并符号连接在/usr/local/bin下的主执行程序。
·系统的所有设置在/etc目录下。
不要修改根目录(“/”)或/usr目录下的任何内容,
目录最好和LINUX发布时保持一致。
大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin,
所有的文件在单一的目录树下。没有所谓的“驱动符
6 1
1.1.2 绝对路径和相对路径
路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。
绝对路径:
在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从/开始的,它一定是绝对路径
[[email protected] ~]# pwd
注:判断用户当前所处的位置,也就是说他到底位于哪?
/root
注:用户当前位于/root;
[[email protected] ~]# cd /etc/sysconfig/network-scripts
注:我们以绝对路径方式进入/目录下;
[[email protected] doc]# pwd
注:判断用户当前所处的位置
/etc/sysconfig/network-scripts
注:用户位于/etc/sysconfig/network-scripts,看来已经达到我们的目的.
ok!!!
相对路径:
相对路径是以 . 或 .. 开始的,
.表示用户当前操作所处的位置
.. 表示上级目录
实验1 :
[[email protected] ~]# pwd
注:通过pwd来判断当前用户所在的位置;
/root
注:得出目录处于/root目录中;
[[email protected] ~]# cd .
注:我们进入.
[[email protected] ~]# pwd
注:判断当前用户所处的位置;
/root
注:得出在/root 目录中 ;
举例实验: 实验2
确定当前的位置是/root
[[email protected] ~]# cd ..
注:我们切入/root的上级目录
[[email protected] /]# pwd
注:判断当前用户所处的位置。
/
注:用户当前位于/(根目录)中;
1.2. 创建/查看/复制/删除 文件和文件夹
1.2.1-1 创建文件和文件夹
touch
作用:常用来创建空文件
语法: touch 文件名
[[email protected] ~]# touch san.txt
mkdir
作用:创建目录
语法:mkdir 目录名
[[email protected] ~]#mkdir test
[[email protected]~]# mkdir -p test/a/b/c 创建嵌套目录, test下包含a目录,a包含b,b包含c
-p 再创建时连通父目录一起创建
1.3 查看文件
cat
作用:查看文件内容
语法:cat 文件名
more + 文件名 分页
例:
more /etc/passwd
按下回车刷新一行,按下空格刷新一屏
q 退出
less 查看文件名字 分页
q 退出
使用光标键可以向上翻页
linux中more与less的区别
- more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便。
less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。,空格键是向下翻页,Enter键是向下翻一行 只是没有%比
head 前几行
-n 数字 显示多少行
[[email protected]~]# head -3 /etc/passwd
tail
从第后一行开始,查看文件,默认显示最后10行
-n 显示多少行
-f 动态显示数据(不关闭) 常用来查看日志
实验
1.
[email protected]~]# vim aa.txt
[[email protected]~]# vim aa.txt
[[email protected]~]# cat aa.txt
11111111111111111
22222222222222222222
33333333333333333333
44444444444444444444
55555555555555555555
[[email protected]~]# head -3 aa.txt
11111111111111111
22222222222222222222
33333333333333333333
[[email protected]~]# head -3 aa.txt | tail -1
33333333333333333333
[[email protected]~]#:
2. [[email protected] ~]# cataa.txt
11111111111111111
22222222222222222222
33333333333333333333
44444444444444444444
55555555555555555555
[[email protected]~]# grep 3 aa.txt 3 关键字
33333333333333333333
[[email protected]~]#
3
[[email protected]~]# cat aa.txt
11111111111111111
22222222222222222222
33333333333333333333
44444444444444444444
55555555555555555555
[[email protected]~]# tail -3 aa.txt
33333333333333333333
44444444444444444444
55555555555555555555
[[email protected]~]# tail -3 aa.txt | head -1
33333333333333333333
[[email protected]~]#
复制文件:
cp
cp
作用:复制文件
语法:cp 源文件 目标文件
-r 包含子目录和文件 。
[[email protected] ~]# cp-r /boot/grub2/ /root/ 注意:R可以大写
删除文件和文件夹
rm
作用:删除文件或目录
语法: rm -rf 文件或目录名
-r 递归删除(可以删除目录和目录里面的东西)
-f 强行删除
1.4 实战:xfs文件系统的备份和恢复
XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。与传统的UNIX文件系统不同,XFS不需要在dump前被卸载;对使用中的XFS文件系统做dump就可以保证镜像的一致性。这与XFS对快照的实现不同,XFS的dump和restore的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。
准备一个测试分区
添加一块磁盘:
准备一个测试分区
添加一块磁盘:
[[email protected] ~]# fdisk /dev/sdb #指定分区的设备
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n #创建一个新的分区
Partition type:
p primary (2 primary, 0 extended, 2 free) #创建主分区
e extended #创建扩展分区
Select (default p):
Using default response p
Partition number (3,4, default 3): #指定分区号
First sector (25593856-41943039, default 25593856): #指定分区的开始柱面
Using default value 25593856
Last sector, +sectors or +size{K,M,G} (25593856-41943039, default41943039): +1G #指定分区大小
Partition 3 of type Linux and of size 1 GiB is set
Command (m for help): p #打印分区表
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00083333
Device Boot Start End Blocks Id System
/dev/sdb1 25593856 27691007 1048576 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 orresource 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] ~]# ls /dev/sdb*
/dev/sdb
[[email protected] ~]# partprobe /dev/sdb
[[email protected] ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
格式化分区,并进行挂载
[[email protected] ~]# mkfs.xfs /dev/sdb1 #格式化分区
[[email protected] ~]# mkdir /sdb1 #创建挂载点
[[email protected] ~]# mount /dev/sdb1 /sdb1/ #挂载
准备备份测试文件
[[email protected] ~]# cp /etc/passwd /sdb1/
[[email protected] ~]# mkdir /sdb1/test
[[email protected] ~]# ls /sdb1/
passwd test
1)对整个分区进行备份
[[email protected]~]# xfsdump -f /opt/dump_sdb1 /sdb1
注意:备份的设备这里不能写成/sdb1/
xfsdump:using file dump (drive_simple) strategy
xfsdump:version 3.1.4 (dump format 3.0) - type ^C for status and control
============================= dump labeldialog ==============================
pleaseenter label for this dump session (timeout in 300 sec)
-> dump_sdb1
#指定备份标签 备份后文件的名称
sessionlabel entered: "dump_sdb1"
---------------------------------end dialog ---------------------------------
xfsdump:level 0 dump of xuegod60.cn:/sdb1
xfsdump:dump date: Thu Jan 28 22:01:25 2016
xfsdump:session id: 29356f1f-8957-4fe0-ad70-2ae087f27abe
xfsdump:session label: "dump_sdb1"
xfsdump:ino map phase 1: constructing initial dump list
xfsdump:ino map phase 2: skipping (no pruning necessary)
xfsdump:ino map phase 3: skipping (only one dump stream)
xfsdump:ino map construction complete
xfsdump:estimated dump size: 25536 bytes
xfsdump:/var/lib/xfsdump/inventory created
============================= media labeldialog =============================
pleaseenter label for media in drive 0 (timeout in 300 sec)
-> media0
#指定设备标签
medialabel entered: "media0"
--------------------------------- end dialog---------------------------------
xfsdump:creating dump session media file 0 (media 0, file 0)
xfsdump:dumping ino map
xfsdump:dumping directories
xfsdump:dumping non-directory files
xfsdump:ending media file
xfsdump:media file size 24232 bytes
xfsdump:dump size (non-dir files) : 2592 bytes
xfsdump:dump complete: 48 seconds elapsed
xfsdump:Dump Summary:
xfsdump: stream 0 /opt/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS
查看opt目录有 内容OK
删除内容
进行非交互式
非交互式进行备份
针对分区
[[email protected]~]# xfsdump -f /opt/dump_sdb1 /sdb1 -L dump_sdb1 -M media0
查看内容
针对指定文件或目录进行备份
[[email protected]~]# xfsdump -f /opt/dump_sdb1_passwd -s passwd /sdb1 -L dump_sdb1_passwd -Mmedia1
查看内容
文件系统恢复
首先,模拟数据被删除
[[email protected]~]# rm -rf /sdb1/*
恢复
[[email protected]~]# /设备pt/dump_sdb1 /sdb1/
查看 /sdb1
删除passwd
只恢复单个的目录或文件
[[email protected]~]# xfsrestore -f /opt/dump_sdb1_passwd -s passwd /sdb1/
查看/sdb1