Linux--基本命令
定义一个别名:
alias name='命令'
like:alias readhost='cat /etc/hosts'
删除别名:
unalias name
like:unalias readhost
设置别名永久生效(当前用户):
修改文件,添加别名命令:vim /root/.bashrc
生效:source /root/.bashrc
全局使用:修改 /etc/bashrc 文件(文件最后插入别名命令)
历史命令history
1.光标上下移
2.ctrl + r + 模糊匹配字 :找到符合的命令后,按下左光标键
3.!数字:执行历史命令中第N条命令
4.!字符串:搜索历史命令中最近以xxxx字符开头的命令
Linux快捷键:
都是用Ctrl + 下面的单词,^表示Ctrl
终止前台运行的程序:^C
退出:^D 等价exit
清屏:^L 与clear功能一样
跳转到命令行的开头:^A
跳到命令行的末尾:^E
将光标处到命令行开头的内容删除:^U
将光标处到命令行末尾的内容删除:^K
搜索历史命令:^R
引用上一个命令的最后一个参数:!$
时间命令:date --help
time命令:一般用来测量一个命令运行的时间(time 在后面加上命令和参数)
帮助命令:
1.man + 命令 (查看手册页或命令描述)
2.命令 + -h或--help
安装软件:
rpm -rih xxxxx.rpm
创建文件:
touch 文件名
vim 文件名
创建目录:
mkdir 文件名
mkdir -p /a/b/c (递归创建)
删除文件和目录 rm:
-f 强制删除,没有提示
-r 删除目录(递归删除)
复制文件:
cp 源文件/目录 目标文件/目录
-r 递归处理,用于复制目录
mv 源文件 目标文件 --移动文件
查看文件:
cat 文件名
more 文件名 :按下回车刷新一行,按空格刷新一屏,q退出
less 文件名 :按下回车刷新一行,按空格刷新一屏,q退出,pageup向上翻页,pagedown向下翻页
head 文件名 :用于显示文件开头的内容
-n + 数字 :显示文件开头的数字行
tail 文件名
-n 显示文件末尾多少行(n为数字)
-f 动态显示数据
常用命令:
第三章 Linux基本命令操作
本节所讲内容:
3.1 Linux终端介绍 Shell提示符 Bash Shell基本语法
3.2 基本命令的使用:ls、pwd、cd、history
3.3 查看系统和BIOS硬件时间
3.4 Linux如何获得帮助
3.5 开关机命令及7个启动级别
3.6 实战:设置服务器来电后自动开机
3.7 实战:设置服务器定时开机
3.1 Linux终端介绍、Shell提示符、Bash基本语法
3.1.1 登录LINUX终端
两种终端仿真器:1、GNOME桌面的GHOME Terminal ; 2、KDE桌面的Konsole Terminal
远程连接终端工具: Xshell , CRT 。后期会教你安装。
例1:通过tty命令看到当前所属的虚拟终端
[root@xuegod63 ~]# tty
/dev/pts/0
注:shift+ctrl+N 快速打开一个终端。 终端字体放大: shift+ctrl+加号。终端字体缩小:ctrl+减号
例2:不同虚拟终端之间通讯
同时打开两终端,第一个终端执行:
[root@xuegod63 ~]# echo xuegod > /dev/pts/1
在第二个终端查看:有xuegod输出
例3:对所有终端广播消息:系统10分钟后关机。
[root@xuegod63 ~]# shutdown +10 #执行此命令后,在其他终端都会收到关机的消息
[root@xuegod63 ~]# shutdown -c #取消关机
或:
[root@xuegod63 ~]# wall " The system will be shut down in 10 minutes " #广播,所有终端都能收到
3.1.2 认识SHELL
Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
内部命令:在系统启动时就调入内存,是常驻内存的,所以执行效率高
外部命令:是系统软件的功能,用户需要时才从硬盘中读入内存
如何区内外部命令?
使用type命令 ,语法 : type 要检测的命令
[root@xuegod63 ~]# type cat
cat 是 /usr/bin/cat
[root@xuegod63 ~]# type pwd
pwd 是 shell 内嵌
总结: 通过SHELL,我们可以对LINUX实现哪些操作或管理:
例如:
对文件的管理(创建、删除、复制、修改)
1、对用户的管理(添加、删除)
2、相关权限的管理(授权用户对相关文件的管理,比如增删改查)
3、对磁盘的管理(分区、raid、lvm)
4、对软件的管理
5、对网络的管理
3.1.3 shell提示符“#”号与“$”号的区别
[root@xuegod63 ~]# #表示是root用户登录,管理员账号登陆
[root@xuegod63 ~]# su - mk #切换到mk普通用户
[mk@xuegod63 ~]$ #表示普通用户登录
上面各位置对应的内容代表的意思如下:
[root @ xuegod63 ~ ]#
用户名---@---主机名---当前所在目录(~表示当前用户的家目录)---(# root/$普通用户)
3.1.4 认识Bash Shell
查看所有shell类型
[root@xuegod63 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
具体你使用的是哪一个,取决于你的用户配置,也就是说你可以看一下/etc/passwd文件的每一行的最后一个字段
[root@xuegod63 ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
3.2 基本命令操作
在LINUX中使用一个命令,命令格式如下:
命令 【选项】 【参数】
命令:具体执行的命令,比如pwd,head
选项:会影响到命令的一些形为操作,通常以- --实现
参数:命令作用的对象
3.2.1 基本命令之--ls
作用:查看当前目录下有哪些文件(list)
语法:ls 目录/文件 ,如果什么也不加,那么查看的是当前目录下的内容
常用选项:
命令后面不加任何选项
[root@xuegod63 ~]# ls
-l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长列表
[root@xuegod63 ~]# ls -l
总用量 8
-rw-------. 1 root root 1680 9月 19 12:16 anaconda-ks.cfg
-rw-r--r--. 1 root root 1728 9月 19 12:55 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 9月 19 13:05 公共
drwxr-xr-x. 2 root root 6 9月 19 13:05 模板
drwxr-xr-x. 2 root root 6 9月 19 13:05 视频
第一个字符文件类型中:
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
为什么有的目录文件有不同的颜色呢?
linux系统中不同的颜色代表了不同的文件类型
颜 色 代表内容 举 例
蓝色 目录 /etc
黑色 文件 /etc/passwd
浅蓝色 链接 /etc/grub2.cfg
红色 压缩包 boot.tar.gz
绿色 可执行文件 /etc/init.d/network
黑底黄字 设备文件 /dev/sda
-a 列出目录下所有的文件,包括以“.“开头的隐藏文件(linux下隐藏文件是以 . 开头的,如果存在2个点代表存在着父目录,1个点表示当前目录)
[root@xuegod63 ~]# ls -a
. .bash_profile .dbus .mozilla 视频 桌面
-d 查看目录(不查看里面的内容)
[root@xuegod63 ~]# ls -ld /root/
dr-xr-x---. 15 root root 4096 11月 15 21:37 /root/
-S 以文件的大小进行排序
[root@xuegod63 ~]# ls -lS /root/
总用量 8
-rw-r--r--. 1 root root 1728 9月 19 12:55 initial-setup-ks.cfg
-rw-------. 1 root root 1680 9月 19 12:16 anaconda-ks.cfg
ls -l 和ll 这两个命令是等价的
[root@xuegod63 ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2053 9月 19 12:57 /etc/passwd
[root@xuegod63 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2053 9月 19 12:57 /etc/passwd
[root@xuegod63 ~]# type ll
ll 是 `ls -l --color=auto' 的别名
3.2.2 别名的使用
定义一个别名:
[root@xuegod63 ~]# alias vimens33='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@xuegod63 ~]# vimens33
删除别名:
[root@xuegod63 ~]# unalias vimens33
设置别名永久生效:
==》当前用户
[root@xuegod63 ~]# vim /root/.bashrc #插入以一下内容:
8 alias vimenss33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
[root@xuegod63 ~]# source /root/.bashrc
[root@xuegod63 ~]# vimenss33
==》全局使用
[root@xuegod63 ~]# vim /etc/bashrc #在文件最后插入
alias vimenss33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
[root@xuegod63 ~]# su - mk
上一次登录:四 11月 16 10:22:03 CST 2017pts/1 上
[mk@xuegod63 ~]$ vimenss33
3.2.3 基本命令之--cd
作用:切换目录(change directory)
语法:cd 目录
说明:直接输入cd表示回到当前用户的宿主(家)目录
[root@xuegod63 ~]# cd /etc/sysconfig/network-scripts/
[root@xuegod63 network-scripts]# cd
[root@xuegod63 ~]# cd ~
cd .. 表示返回到上级目录位置,也就是父目录
cd . 表示进入到当前目录
[root@xuegod63 ~]# pwd
/root
[root@xuegod63 ~]# cd ..
[root@xuegod63 /]# pwd
/
[root@xuegod63 /]# cd .
[root@xuegod63 /]#
cd - #表示返回切换前的目录
[root@xuegod63 /]# cd /etc/sysconfig/network-scripts/
[root@xuegod63 network-scripts]# cd -
/
3.2.4 历史命令之history
命令:history
4个快速查找Linux历史命令的技巧:
方法1: 光标上下键
方法2: ctrl+r -》输入某条命令的关键字-》找出来对应的命令,按右光标键
方法3: !数字 //执行历史命令中第N条命令
方法4:!字符串 //搜索历史命令中最近一个以xxxx字符开头的命令,例如!vim
3.2.5 Linux下快捷键
都是用Ctrl+下面的单词, ^表示Ctrl
^C
终止前台运行的程序 , 如:ping g.cn 后,想停止按下Ctrl+C
^D
退出 等价exit
^L
清屏与clear功能一样
^R
搜索历史命令,可以利用好关键词
!$ 引用上一个命令的最后一个参数
[root@xuegod63 network-scripts]# cat /etc/hosts
[root@xuegod63 network-scripts]# vim !$ #相当于执行: vim /etc/hosts
补全命令使用tab键,Tab只能补全命令和文件
3.3 系统时间管理
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟;系统时钟则是指kernel中 的时钟;所有Linux相关指令与函数都是读取系统时钟的设定
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作
3.3.1 两种时间
查看硬件时间:
[root@xuegod63 etc]# hwclock
查看系统时间:
[root@xuegod63 mnt]# date
时区:
UTC (Universal Time Coordinated):世界标准时间
GMT (Greenwich Mean Time):格林尼治时间
CST (China standard Time):中国标准时间
3.3.2 如何修改时间
date命令相关参数:
date --help
-s, --set=STRING 把时间设为字符串所描述的时间
例: [root@xuegod63 ~]# date -s "2018-11-2 22:30"
2018年 11月 02日 星期五 22:30:00 CST
%F 完整日期格式,等价于 %Y-%m-%d
[root@xuegod63 ~]# date "+%F"
2018-11-02
%y 年份最后两位数位 (00-99)
%Y 年份
%m month (01..12)
%d 按月计的日期(例如:01)
%M minute (00..59)
%H 小时(00-23)
%S 秒(00-60)
[root@xuegod63 ~]# date "+%Y%m%d"
20181102
[root@xuegod63 ~]# date "+%Y-%m-%d %H:%M:%S" #在年月日之前可以添加自己想要的符号
2018-11-02 22:34:27
[root@xuegod63 ~]# date "+%Y/%m/%d %H:%M:%S"
2018/11/02 22:34:38
[root@xuegod63 ~]# date "+%Y%m%d %H:%M:%S"
20181102 22:35:03
-d, --date=STRING #显示由字符串描述的时间,而不是“当前时间”
[root@xuegod63 ~]# date -d "+1 months" +%F
2018-12-02
3.3.3 使用time命令测试一个命令运行的时间
time 作用:一般用来测量一个命令的运行时间
使用方法:time 在后面直接跟上命令和参数
[root@xuegod63 ~]# time ls -l /etc/
real 0m0.056s
user 0m0.016s
sys 0m0.040s
说明:
real:实际使用时间
user:用户状态使用的时间
sys:内核状态使用的时间
3.4 帮助命令使用
遇到命令不知道添加哪个参数,可以使用命令帮助查看相关介绍,常用的查看帮助信息命令有如下几个
3.4.1 man 命令 :查看手册页或命令描述
[root@xuegod63 ~]# man find
man命令查看帮助时,支持它支持上翻下翻,搜索(直接输入斜线),退出用q
3.4.2 使用-h或--help查看命令选项
[root@xuegod63 ~]# find -h #不可以执行
[root@xuegod63 ~]# find --help
3.5 开关机命令及7个启动级别
常用的几个关机,重启命令
shutdown
init
reboot
poweroff
3.5.1 关机命令之--shutdown
作用:关机,重启,定时关机
语法:shutdown [选项]
参数:
-r => 重新启动计算机
-h => 关机
-h 时间 =>定时关机
例如:
[root@xuegod63 ~]# shutdown -h +10 #10分钟之后关机
[root@xuegod63 ~]# shutdown -h 23:30 #指定具体的时间点进行关机
[root@xuegod63 ~]# shutdown -h now #立即关机
[root@xuegod63 ~]#shutdown -r 22:22 #22:22 以后重启
3.5.2 7个启动级别
作用:切换系统运行级别
语法:init 0-6
Linux 7个启动级别:
0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2 多用户模式,没有NFS和网络支持
3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5 图形化模式,登陆后进入图形GUI模式,X Window系
6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
例
[root@localhost ~]# init 0 #关机
[root@localhost ~]# init 3 #进入3级别字符界面
[root@localhost ~]# init 5 #进入5级别图形界面
3.5.3 设置默认的运行界别
centos7不再使用/etc/inittab文件进行默认的启动级别配置,而使用比sysvinit的运行级更为自由的target替代。
第3运行级用multi-user.target替代。
第5运行级用graphical.target替代。
设置默认第三启动级别
[root@xuegod63 ~]# systemctl set-default multi-user.target
设置默认第五启动级别
[root@xuegod63 ~]# systemctl set-default graphical.target
[root@xuegod63 ~]#runlevel
3 5 #表示从3级别切换到了5级别
查看当前默认的启动级别
[root@xuegod63 ~]# systemctl get-default
graphical.target
3.6 实战:设置服务器来电后自动开机
进入bios,一般是在开机后出现主板画面是按Delete这个键,部分品牌机可能按F2,F1
选择Integrated Peripharals(外围设备设置)中的SuperIO Device
Integrated [ˈɪntɪgreɪtɪd] 集成 ; Peripharals [pəˈrɪfərəl] 外围
将其中的Restore On AC Power Loss选项修改:Power On
(若要加电不开机选择Power Off,若要加电之前断电状态选择Last State)
3.7 设置服务器定时开机
Power Management Setup,就进入电源管理设置了
通过回车进入这个设置后,选择Wake Up Event Setup,回车选择Press Enter
找到RTC Alarm([əˈlɑ:m] 报警),将Disabied 更改为Enabled,然后继续回车确定。然后再继续设置时间点和日期
按F10保存,退出。
总结:
3.1 Linux终端介绍 Shell提示符 Bash Shell基本语法
3.2 基本命令的使用:ls、pwd、cd、history
3.3 查看系统和BIOS硬件时间
3.4 Linux如何获得帮助
3.5 开关机命令及7个启动级别
3.6 实战:设置服务器来电后自动开机
3.7 实战:设置服务器定时开机
xfs文件系统管理及备份:
第四章 文件的基本管理和XFS文件系统备份恢复 本节所讲内容: 4.1 Linux系统目录结构和相对/绝对路径。 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 4.4 实战:xfs文件系统的备份和恢复 4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 在WIN中,它是多根 c:\ d:\ e:\ Linux只有一个根目录 使用tree命令查看linux目录结构,这个命令默认是没有安装的,需要手工安装一下 [root@xuegod63 ~]# mount /dev/sr0 /media/ mount: /dev/sr0 写保护,将以只读方式挂载 [root@xuegod63 ~]# rpm -ivh /media/Packages/tree-1.6.0-10.el7.x86_64.rpm 查看/tmp目录结构 [root@xuegod63 ~]# tree /tmp/ 查看根下有哪些文件: 根下的目录作用说明: 目 录 说 明 / 处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件、设备都在 / 之下 /bin bin是Binary的缩写。常用的二进制命令目录。比如 ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级gnu工具 /boot 存放的系统启动相关的文件,例如:kernel.grub(引导装载程序) /dev dev是Device的缩写。设备文件目录,比如声卡、磁盘……在Linux中 一切都被看做文件。终端设备、磁盘等等都被看做文件 设备文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom /etc 常用系统及二进制安装包配置文件默认路径和服务器启动命令目录 passwd 用户信息文件 shadow 用户密码文件 group 存储用户组信息 fstab 系统开机启动自动挂载分区列表 hosts 设定用户自己的IP与主机名对应的信息 /home 普通用户的家目录默认存放目录 /lib 库文件存放目录,函数库目录 /lost+found 只在centos6中有 默认为空,被FSCK(file system check用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查)用来放置零散文件(没有名称的文件) 当系统非法关机后,这里就会存放一些文件。 在centos6版本下,每个分区的挂载点下会有些目录 /mnt /media 一般用来临时挂载存储设备的挂载目录,比如有cdrom、U盘等目录 在CENTOS7中会挂载到/run下面 /opt 表示的是可选择的意思,有些软件包也会被安装在这里 /proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里 查看咱们的CPU信息 cat /proc/cpuinfo /sys 系统目录,存放硬件信息的相关文件 /run 运行目录,存放的是系统运行时的数据,比如进程的PID文件 /srv 服务目录,存放的是我们本地服务的相关文件 /sbin 大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的 /tmp 该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是相似的,不能存放重要数据,它的权限比较特殊 [root@xuegod63 ~]# ls –ld /tmp drwxrwxrwt 10 root root 12288 Oct 3 20:45 /tmp/ 粘滞位(sticky bit)目录的sticky位表示这个目录里的文件只能被owner和root删除 /var 系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如/var下有/var/log目录用来存放系统日志的目录,还有mail、/var/spool/cron /usr 存放应用程序和文件, /usr/bin 普通用户使用的应用程序 /usr/sbin 管理员使用的应用程序 /usr/lib 库文件Glibc(32位) /usr/lib64 库文件Glibc /lib /lib64 都在/usr/目录下 这个目录里存放着系统最基本的动态链接共享库,包含许多被/bin/和/sbin/中的程序使用的库文件,目录/usr/lib/中含有更多用于用户程序的库文件。作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库 注:lib***.a是静态库 lib***.so是动态库 静态库在编译时被加载到二进制文件中 动态库在运行时加载到进程的内存空间中 简单的说:这些库是为了让你的程序能够正常编译运行的 其实类似于WIN中.dll文件,几乎所有的应用程序都需要用到这些共享库 4.1.2 绝对路径和相对路径 路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径 绝对路径:在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从根(/)开始的,它一定是绝对路径. 相对路径:相对路径是以 . 或 .. 开始的, [root@xuegod63 etc]# pwd #判断用户当前所处的位置 绝对路径: 从/开始的路径 /home/mk 相对路径: 相对于当前目录开始,a.txt ./a.txt ../miao/b.txt 当前目录在/etc [root@xuegod63 ~]# cd /etc/ [root@xuegod63 etc]# ll passwd -rw-r--r-- 1 root root 2116 11月 16 14:57 passwd [root@xuegod63 etc]# ll /etc/passwd -rw-r--r-- 1 root root 2116 11月 16 14:57 /etc/passwd 4.2 文件的管理 文件管理方式有多种: 改变目录: cd 创建/修改/移动/删除: touch mkdir mv vi rm cp 4.2.1 创建文件和文件夹 命令之:touch 作用:常用来创建空文件,如果文件存在,则修改这个文件的时间 补充:文件的三种时间 [root@xuegod63 ~]# ll /etc/passwd #查看文件修改的时间 -rw-r--r-- 1 root root 2116 11月 16 14:57 /etc/passwd [root@xuegod63 ~]# stat /etc/passwd #查看文件属性(其中包括文件时间属性) 文件:"/etc/passwd" 大小:2116 块:8 IO 块:4096 普通文件 设备:803h/2051d Inode:9401663 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近访问:2017-11-16 14:57:39.923177258 +0800 最近更改:2017-11-16 14:57:39.397177256 +0800 最近改动:2017-11-16 14:57:39.409177256 +0800 注: 访问时间:atime 查看内容 cat a.txt 修改时间:mtime 修改内容 vim a.txt 改变时间:ctime 文件属性,比如权限 change time。 chmod +x a.sh 语法:touch 文件名 [root@xuegod63 ~]# cd /opt/ [root@xuegod63 opt]# touch a.txt [root@xuegod63 opt]# touch file1 file2 [root@xuegod63 opt]# touch file{6..20} #创建file6到file20的文件 [root@xuegod63 opt]# ls a.txt file10 file12 file14 file16 file18 file2 file6 file8 rh file1 file11 file13 file15 file17 file19 file20 file7 file9 [root@xuegod63 opt]# touch -d "20181019 21:30" xuegod.txt [root@xuegod63 opt]# ll xuegod.txt -rw-r--r-- 1 root root 0 10月 19 2018 xuegod.txt 4.2.2 使用vim和重定向创建一个新文件 用vim命令创建一个新文件 [root@xuegod63 mnt]# vim xuegod-1.txt 用重定向创建一新文件 [root@xuegod63 mnt]#echo aaa > xuegod.txt 4.2.2 命令之:mkdir 作用:创建目录 语法:mkdir (选项) 文件名 例: [root@xuegod63 opt]# mkdir dir1 [root@xuegod63 opt]# mkdir dir2 dir3 /home/dir4 [root@xuegod63 opt]# ls /home/ dir4 mk [root@xuegod63 opt]# mkdir /tmp/a/b/c mkdir: 无法创建目录"/tmp/a/b/c": 没有那个文件或目录 [root@xuegod63 opt]# mkdir -p /tmp/a/b/c #在创建一个目录的时候,如果这个目录的上一级不存在的话,要加参数-p [root@xuegod63 opt]# ls /tmp/a/b/ c 4.2.2 删除文件和目录 用到的命令:rm 作用:可以删除一个目录中的一个或多个文件或目录,对于链接文件,只是删除整个链接文件,而原文件保持不变的 语法:rm (选项) 处理对象 选项: -f 强制删除,没有提示 -r 删除目录 例子: [root@xuegod63 opt]# rm -rf a.txt [root@xuegod63 opt]# rm -rf a.txt dir [root@xuegod63 opt]# rm -rf file* rm -rf (慎用,一定要在删除以前确定一下所在目录,防止误删除重要数据) 4.2.3 复制文件 命令:cp 源文件/目录 目录文件/目录 选项:-R/r:递归处理,将指定目录下的所有文件与子目录一并处理 例子: [root@xuegod63 ~]# cp /etc/passwd /opt/ #复制文件 [root@xuegod63 ~]# cp -r /boot/grub /opt/ #复制目录 4.2.4 移动文件 [root@xuegod63 opt]# mv passwd dir1 [root@xuegod63 opt]# mv xuegod.txt dir1/a.txt #在移动文件的时候支持改名操作 4.3 查看文件 4.3.1 命令之:cat 语法:cat 文件名 作用:查看文件内容,一次显示整个文件的内容 例子: [root@xuegod63 ~]# cat /etc/passwd 4.3.2 命令之:more 作用:以分页形式显示文件内容 语法:more + 文件名 说明: 按下回车刷新一行,按下空格刷新一屏,输入q键退出 4.3.3 命令之:less 作用:和more功能一样 语法:less +文件名 说明:linux中more与less的区别 more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便 less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。,空格键是向下翻页,Enter键是向下翻一行 4.3.4 命令之:head 作用: 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容 语法:head(选项)文件名 参数: -n 显示从文件头开始的行数 [root@xuegod63 opt]# head /etc/passwd [root@xuegod63 opt]# head -n 3 /etc/passwd #显示前3行 4.3.5 命令之:tail 作用: 用于显示文件中的尾部内容。默认在屏幕上显示指定文件的末尾10行 语法:tail (选项)文件名 参数: -n 显示文件尾部多少行的内容(n为数字) -f 动态显示数据(不关闭),常用来查看日志 [root@xuegod63 ~]# tail -n 3 /var/log/secure #查看最后3行记录 [root@xuegod63 ~]# tail -f /var/log/secure #在一个终端执行此命令动态查看文件内容 [root@xuegod63 ~]# ssh root@192.168.1.63 #在另一个终端远程登录Linux,登录成功后 [root@xuegod63 ~]# tail -f /var/log/secure #可以动态查看到登录成功的日志 Nov 17 00:08:32 xuegod63 sshd[2924]: Accepted password for root from 192.168.1.63 port 39904 ssh2 4.4 实战:xfs文件系统的备份和恢复 XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。 centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。 与传统的UNIX文件系统不同,XFS不需要在备份前被卸载;对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地 首先了解一下xfsdump的备份级别有以下两种,默认为0(即完全备份) 0 级别代表: 完全备份 1 到9级别代表: 增量备份 扩展: 完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化; 增量备份:每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份; 差异备份:每次都将第一次完整备份以来有变化的文件进行备份。 4.4.1 环境准备 实验环境: 系统CENTOS7.2 添加一块虚拟硬盘(准备一个测试分区) 正常使用一块磁盘过程如下: 添加磁盘大小:20G 分区格式化挂载 对新添加的硬盘进行格式化: [root@xuegod63 ~]# fdisk /dev/sdb #指定分区的设备 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x06d5a427 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n #创建一个新的分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p #创建一个主分区 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G #指定分区大小 分区 1 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):p #打印分区表 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x06d5a427 设备 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux 命令(输入 m 获取帮助):w #保存 The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@xuegod63 ~]# ls /dev/sdb* /dev/sdb /dev/sdb1 使用新的分区,格式化分区,并进行挂载 [root@xuegod63 ~]# mkfs.xfs /dev/sdb1 [root@xuegod63 ~]# mkdir /sdb1 #创建挂载点 [root@xuegod63 ~]# mount /dev/sdb1 /sdb1 #挂载 准备备份测试文件 [root@xuegod63 ~]# cd /sdb1/ [root@xuegod63 sdb1]# cp /etc/passwd ./ [root@xuegod63 sdb1]# mkdir test [root@xuegod63 sdb1]# touch test/a [root@xuegod63 sdb1]# tree /sdb1/ [root@xuegod63 sdb1]# tree /sdb1/ /sdb1/ ├── passwd └── test └── a 4.4.2 备份 1、备份整个分区。 (这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复) xfsdump -f 备份存放位置 要备份路径或设备文件 注意:备份的路径这里不能写成/sdb1/。 可以是/dev/sdb1 或/sdb1 [root@xuegod63 sdb1]# xfsdump -f /opt/dump_sdb1 /dev/sdb1 xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control ========== dump label dialog ============================== please enter label for this dump session (timeout in 300 sec) -> dump_sdb1 指定备份会话标签 session label entered: "dump_sdb1" --------------------------------- end dialog --------------------------------- xfsdump: level 0 dump of xuegod63.cn:/sdb1 xfsdump: dump date: Fri Nov 17 12:24:53 2017 xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a 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: 25856 bytes ============== media label dialog ============================= please enter label for media in drive 0 (timeout in 300 sec) -> sdb1 指定设备标签,就是对要备份的设备做一个描述 media label entered: "sdb1" --------------------------------- 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 24544 bytes xfsdump: dump size (non-dir files) : 2592 bytes xfsdump: dump complete: 46 seconds elapsed xfsdump: Dump Summary: xfsdump: stream 0 /opt/dump_sdb1 OK (success) xfsdump: Dump Status: SUCCESS 2、 指定备份时免交互操作,方便后期做定时备份 [root@xuegod63 sdb1]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1 -L :xfsdump 纪录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明 -M :xfsdump 可以纪录储存媒体的标头,这里可以填写此媒体的简易说明 3、指定只备份分区中某个目录 参数:-s 文件路径 只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录) [root@xuegod63 sdb1]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1 4、查看备份信息与内容 备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息 [root@xuegod63 opt]# xfsdump -I(字母大写i) 测试恢复:先删除之前创建的内容 [root@xuegod63 sdb1]# ls passwd test [root@xuegod63 sdb1]# pwd /sdb1 [root@xuegod63 sdb1]# rm -rf ./* 4.4.3 文件系统恢复 语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径 [root@xuegod63 opt]# xfsrestore -f /opt/dump_sdb1 /sdb1 查看恢复情况 [root@xuegod63 ~]# ls /sdb1/ 恢复单个文件如下: [root@xuegod63 ~]# mkdir /var/test/ [root@xuegod63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/ [root@xuegod63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/ #恢复目录 注: 使用 xfsdump 时,请注意下面下面的几个限制: 1、xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的! 2、xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系) 3、xfsdump 只能备份 XFS 文件系统 4、xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析 5、xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统 4.4.4 增量备份 概念 增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推。 优缺点 优点:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。 缺点:数据恢复相对比较麻烦,它需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且它们必须沿着从全备份到依次增量备份的时间顺序逐个反推恢复,因此可能会延长的恢复时间 实战: 增量备份文件系统 准备一个备份目录进行备份 [root@xuegod63 sdb1]# tree /sdb1 /sdb1/ ├── passwd └── test └── a 对上面的内容进行第一次全备 [root@xuegod63 sdb1]# xfsdump -f /opt/test-full /sdb1 -L test-full -M media0 增加一些内容,然后进行第1次增量备份 [root@xuegod63 ~]# touch /sdb1/1.txt /sdb1/2.txt [root@xuegod63 ~]# tree /sdb1/ /sdb1/ ├── 1.txt ├── 2.txt ├── passwd └── test └── a [root@xuegod63 sdb1]# xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0 -l <level> 做一个等级为1的备份 再次增加内容,然后进行level 2级别的增量备 [root@xuegod63 sdb1]# touch /sdb1/test/a.txt /sdb1/test/b.txt [root@xuegod63 ~]# tree /sdb1/ /sdb1/ ├── 1.txt ├── 2.txt ├── passwd └── test ├── a ├── a.txt └── b.txt [root@xuegod63 sdb1]# xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0 [root@xuegod63 ~]# rm -rf /sdb1/* #删除所有数据 现在进行恢复,要想恢复全部全部数据,包括新添加的文件,如何恢复? 步骤: 1、先恢复完全备份 2、情况1: 恢复最后一次增量备份(如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了。 3、情况2:如果你做的是第一次是1级备,第二次是2级备,那么你在恢复的时候就需要先恢复完全备份,然后是1级备,最后是2级备) [root@xuegod63 ~]# xfsrestore -f /opt/test-full /sdb1/ [root@xuegod63 ~]# xfsrestore -f /opt/test-back2 /sdb1/ #故意先恢复back2,查看 [root@xuegod63 ~]# tree /sdb1/ #查看,发现没有1.txt ,2.txt /sdb1/ ├── passwd └── test ├── a ├── a.txt └── b.txt [root@xuegod63 ~]# xfsrestore -f /opt/test-back1 /sdb1/ [root@xuegod63 ~]# tree /sdb1/ 到此,数据恢复成功了。 总结: 4.1 Linux系统目录结构,相对/绝对路径。 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 4.4 实战:xfs文件系统的备份和恢复