基本命令
vi f1 —编辑文档,进入vi界面
默认进入查看模式 => 按i键,进入编辑模式 => 按esc键,退出编辑 => :wq保存退出(快捷键ZZ)或者 :q!不保存退出(快捷键ZQ)
上下键 —翻看历史命令
键 —命令补齐,单击显示到多文件名字的公共部分;双击显示到所有可能文件
开机级别
systemctl set-default multi-user.target —设置开机级别,字符界面启动
systemctl get-default —查看开机级别
systemctl set-default graphical.target ---设置开机级别,图形界面启动
init 3/5
Linux运行级别
0 —关机级别
1 —单用户级别,仅root可以登录,做系统恢复、安全配置等,相当于Windows的安全模式
2 —多用户级别,但不支持网络通信
3 —多用户级别,支持网络通信,即常用的字符界面级别
4 —自定义级别,用于系统研发
5 —图形界面
6 —重启级别
级别间的切换:init X 【注:字符转图形的前提是已安装图形界面,即GUI】
文件管理命令
帮助命令
man XX —查看某命令的详细帮助,q键退出
info XX —查看某命令的帮助
XX --help —查看某命令的精简帮助
cd进入目录
cd /var/spool —进入指定目录
cd … —进入父目录,“.”表示当前目录
cd - —返回上一次所在位置
cd=cd ~ —回到家目录
ls查看目录内容
ls —查看当前目录
ls /var —查看指定目录
ls -l = ll —显示目录下的详细信息
ls -a —显示目录下的所有内容,包括隐藏文件(文件名以"."开头的为隐藏文件)
显示结果,以颜色区分类型
白色/正常色 —二进制文件,即文档
蓝色 —目录
青色 —软连接/快捷方式
绿色 —可执行程序
黄色 —设备文件
目录的功能划分
/boot —存放系统的启动程序
/etc —存放配置文件
/home —用户家目录,新建用户时,默认用户家目录在home下
/dev —设备文件
/proc —系统运行时的状态记录文件(关机自动清理)
/usr —存放程序,系统程序及软件程序
/var —存放辅助文件
/bin —存放系统进程文件
cp复制
格式:cp 源文件 目标
cp file1 …/d2/ —目标为目录时,复制到目录中
cp file1 …/d2/f2 —目标为文件时,复制并改名
【注:目标文件无,则复制成功;若目标文件已存在,提示覆盖】
cp -r d1 /var/d3 — -r表示复制目录,若目标已存在,则复制入;目标无,则复制改名
mv移动
格式:mv 源 目标
mv f1 …/d2/ —移入
mv f1 …/d2/f2 —移动并改名
【注:目标文件无,则移动成功;若目标文件已存在,提示覆盖】
mv d1 /var/d4 —移动目录,若目标已存在,则移入;目标无,则移动并改名
【注:Linux中没有改名命令,使用mv实现改名功能,如:mv f1 f3】
目录管理
mkdir d1 d2… —创建目录d1 d2等
mkdir -p d1/d2 — -p表示当父目录不存在时,一并创建,d1、d2都是目录
rm -rf —删除目录
文件的创建、删除
touch f1 f2 —创建空文件
echo “hello” > f1 —创建单行文字的文件
echo:输出打印文字
“>”:前命令,后文件,把前命令的结果保存到文档中【注:覆盖导入】
“>>”:追加
vi f1 —创建并编辑
cat f1 ---查看文件内容
cat -n f1 --- -n表示显示行号
more /etc/grub2.cfg ----分屏显示,空格(翻页),回车(下一行),b(回翻),q(退出)。
less /etc/grub2.cfg ---分屏显示且 支持查找(/hello)
rm -f ---不询问
-f 表示强制删除,不提示;-r 表示目标中允许存在目录
链接
软链接 ---又称为符号链接
链接文件,指向原文件名,再通过原文件,找到磁盘上的存储空间,读写数据,等同于windows的快捷方式
特点:删除原文件,则软连接不可用
ln -s /mnt/dd/f1 s1 ---创建软连接,格式中-s代表软连接 先写原文件,后写链接名
ln -sf /mnt/dd/f2 s1 --- -f 强制更改现有软连接的指向文件
【注:建议原文件用绝对路径表示】
硬链接
链接文件,通过原文件,直接指向磁盘的储存空间。即同一块空间,两个文件名
特点:删除原文件,硬连接仍可用
ln f1 h1 ---创建硬链接
ls -l 或 ll ---查看文件详细信息时第二项数字表示该文件的硬链接数
ll -i --- -i表示显示文件的inode号(即文件的编号),inode相同表示同一对硬链接
路径的指定
相对路径
书写的时候只写文件名不指定路径,则系统仅在当前目录下查找目标文件
如:cat f1
绝对路径
书写时从 / 开始一直书写完整的路径及文件名,则系统按指定的路径找到目标文件
如:cat /mnt/dd/f1
文件搜索
格式:find 路径 查找类型 参数
find / -name "*.txt" ---按文件名查找
find / -type f ---按文件类型查找 f 文件 d 目录 l 软链接
find / -size +100M ---按文件大小查找 + 表示大于 - 表示小于 不写+-表示等于
find / -user zhang ---按所属者查找
find / -inum 407114 ---按inode号查找
案例:查找系统中用户zhang创建的所有大于100M的 .log 日志文件
find / -user zhang -type f -name "*.log" -size +100M
编译器 —命令解释器
计算机硬件仅支持运行0、1二进制程序,称为机器语言程序,日常软件是使用C++、java、python等高级语言程序写的,所以操作系统中就需要一个专门的程序负责把高级语言程序翻译成计算机硬件能够识别的机器语言程序,称为编译器
Windows编译器:NetFramework
Linux编译器:shell
操作系统OS的组成:内核+编译器+外围基础程序
shell版本
sh、bash、ksh等
RHEL(redhat、centos)默认使用bash
命令的分类
内置命令
命令集成于shell之内,无需编译,可直接被执行。无对应的可执行程序
一般系统的基本操作命令为内置命令
help 查看所有的内置命令
外部命令
命令位于shell之外,即系统的外围基础程序部分,必须被编译后才能执行。有对应的可执行程序
大多数命令都为外部命令
whereis XX 查看命令所对应的可执行程序的位置和命令帮助文档的位置
which XX 查看命令所对应的可执行程序的位置,不查询帮助文档的位置
环境变量
一个环境变量(参数或属性)表示一项系统当前的运行状态
【Windows中的path:到哪些文件夹下找命令对应的程序】
用户登录成功后,系统会为其启动一个shell编译器,一个shell下会启动一套环境变量
set 查看当前shell的所有环境变量,含有脚本程序
env 同set,只显示环境变量,较精简
常用环境变量
PS1 ---命令提示符变量,指定了命令提示符的格式
PATH ---命令搜索路径,指定系统到哪些目录下查找并执行命令的可执行程序
HOME ---当前用户的家目录
SHELL ---当前shell的版本
TERM ---当前所在终端类型
查看变量
echo $PATH ---输出指定变量PATH的值,"$" 的功能是提取变量的值
【注:环境变量必须都大写】
更改环境变量
unset LANG ---清空环境变量LANG的值
PS1="{\u@\h \t \W}\\S" ---更改环境变量,格式2:export PS1 = “…”(临时生效)
解释:\u 用户 \h 主机名 \t 时间 \d 日期 \w绝对路径 \W相对路径 \\S 身份符
【注:手动更改环境变量的值,只针对当前shell中的变量生效,用户注销或退出后,shell自动关闭,所以手动更改不能永久生效】
配置文件
配置文件:记录操作系统某些配置的文件
应用原理:当开机时,从硬盘上读取配置文件到内存中生效执行,日常命令更改的是内存中的配置,并未写回到磁盘上的配置文
件,所以用命令做的配置注销或重启失效。
Linux系统针对系统的每一项设置,都有独立的配置文件
环境变量的配置文件
系统环境变量配置文件
针对本机所有用户生效,仅有一份
/etc/profile /etc/bashrc
针对外围程序 针对shell、内核
案例:vi /etc/profile
前端写入PS1= “{\u@\h \t \W}\S”
注销后生效
个人环境变量配置文件
针对单用户生效,每个用户一份
$HOME/.bash_profile $HOME/.bashrc
$HOME/.profile
(等同于.bash_profile,默认不存在 )
【注:个人配置与系统配置冲突时,以个人的为准。因为配置文件的读取生效顺序不同】
常用配置
PATH =“$PATH:/u01/db” ---增加软件安装路径/u01/db到PATH后,则软件的程序可当命令执行
需要把该PATH配置写到环境变量配置文件中,才能永久生效
命令别名
别名:给较长的命令起一个简单的名字
alias —查看当前shell下的命令别名
alias jrwk = “cd /etc/sysconfig/network-scripts” —新增一个命令别名
unalias jrwk —取消别名
【注:通过命令增加的别名是临时生效的,若想永久生效,需要写入环境变量】
正则表达式
对字符、文字设定格式上的规则
使用到一些特殊符号以组成正则表达式
保留字与正则表达式的区别:
保留字是为了组织成命令,多用于批量表示文件名
正则表达式符号用于对文档中的字符、文字做格式上的规定。grep、egrep、sed、awk一般都使用正则表达式的符号。
正则表达式符号
^ 表示字符的开始
$ 表示字符的结束
. 表示单配符
* 重复0-∞ 个的前一个字符
{n,m} 表示前一字符出现n-m次,如:egrep “go{2,4}d” f1
+ 表示前一字符出现一次以上
() 表示多个字符做查找。如:egrep “(good){2, }” f1
egrep命令
egrep是grep命令的升级版,等同于 grep - E,支持使用扩展的正则表达式字符
grep仅支持基本的正则表达式字符(*、.、[])
查看历史命令
上下键或history(默认1000个)
如:history | egrep “awk”
history 20 —查看最近的20个历史命令
相关环境变量
HISTFILE —指定记录历史命令的文件
HISTFILESIZE —指定文件中记录多少条历史命令
HISTSIZE=1000 —指定用history查看时默认显示多少条
保留字
保留字:Linux中具有特殊含义的字符
* 通配符,表示任意长度的任意字符
? 单配符,表示单个长度的任意字符
[] 指定单个字符的取值范围,如:[123] [0-9] [a-z]
[^] 指定单个字符的排除范围,如:[^123]
{} 指定多个字符的取值范围,如:{ab, 123, b}
\ 转义符,显现符号或字母的引申含义
’ ’ 单引号,表示多级引号的层次区分;还原字符串中的特殊符号为符号状态
反单引号,所引起来的内容当命令执行,如:“the time is : date
”
" " 双引号,在表示、明确参数的范围时必须使用,一般若参数中有空格时,使用“”表示一个完整的参数
& 后台执行符,在命令后加 &,则命令被放入后台执行,如:find /name f1 &,查看后台的命令 jobs
$ 提取变量值;用户身份符
| 管道符,前后两个命令,前命令的结果,当做后命令的输入使用,如:ls -l /etc | less
> 输出重定向,前命令,后文档,将前命令的结果保存到后面的文档中
活用: > f1 清空文件内容
echo hello >>f1 追加
< 输入重定向,前命令,后文档,将后面文档中的内容当做前命令的信息输入。如:write zhang < f1
&& 与执行,前后两个命令,前命令正确执行后,后命令才执行。实现多个命令按顺序执行的效果,如:cd /var && ls
hello && cat hello
| | 或执行,前后两个命令,前命令执行失败后,后命令才执行。实现对不同格式文件名处理的效果,如:mv ff[0-9]
dd | | mv fff[0-9] dd
补充:用户间的消息发送
w ---查看正在登陆的终端用户。who也可以
write zhang ---给指定用户发送消息,回车后开始编辑消息,ctrl + d结束编辑并发送
write root tty3 ---给指定终端上的用户发送消息
wall ---发送广播消息,即给所有已登录用户发送消息
【注:write和wall的前提是对方用户已登录】
mail zhang ---给用户发送邮件,即留言功能。【用户可以不是已登录状态】
mail ---查看本用户邮箱
1 ---输入数字,查看第几封邮件
r ---回复信件
q ---退出邮箱
字符处理
显示文档内容
head 输出文件的开头部分 - NUM 除去后NUM行外的全部内容
tail 输出文件的结尾部分 + NUM 除去前NUM行外的全部内容
head -n 3 f1 —显示文档的前三行
head -n -3 f1 —不显示文档的后三行
tail -n 3 f1 ---显示文件的最后三行
tail -n +3 f1 ---从第三行开始显示到最后
tail -f f1 ---持续读取文件,实时显示文件变化;ctrl+c(强制关闭)停止
指针指向哪一行,就会读取哪一行
tail -n +3 f1 的实质是让指针下移三次开始读取
head -n -3 f1 的实质是避除指针可到的最后三行
组合使用:head -n 5 f1 | tail -n 3 或者 tail -n +3 f1 | head -n 3 ---显示文件的3-5行
内容抓取
grep "name" f1 ---抓取文档中包含指定字符的行
grep -n "name" f1 --- -n 显示行号
grep -i "name" f1 --- -i 忽略大小写
grep -v "name" f1 --- -v 排除,即不显示抓取到的行
grep "^name" f1 --- ^ 以name开头
grep "name$" f1 --- $ 以name结尾
grep "^name$" f1 --- 只有name
排序显示
sort -rn - k 2 f1 ---排序显示文档内容
解释:-r 表示降序,不加表示升序; -n 按数值大小排序; -k指定按第几列的值排序
sort -t“:” -rn - k 2 f1 --- -t指定列的分隔符,不写默认空格为分隔符
统计命令
wc -l f1 ---统计行数;-L 表示最长行的长度
wc -m f1 ---统计字符
wc -w f1 ---统计单词个数(以空格为标志识别)
小结:
ls - l /etc | grep "^d" | wc -l ---统计etc下所有的目录的个数
ls -l /etc | grep ".conf$" | sort -rn -k 5 | head -n 10 ---显示/etc下最大的前10个配置文件
唯一显示
uniq f1 ---去除连续的重复行
活用:sort -n f1 | uniq
cut 抓取指定列
cut -d " " -f 2 f1 ---抓取显示第二列。-d 指定分隔符 -f 指定显示第几列
缺点:无法识别连续的多个分隔符
awk 抓取指定列
awk -F " " '{print $2}' f1 ---抓取显示第二列。-F指定分隔符;$ x表示第几列
awk -F " " '{print $2, $3}' f1
awk -F " " '{print $2 ":" $3}' f1 ---列之间可指定显示时的分隔符
awk -F " " '(NR==2 || NR==3){print $2, $3}' f1
awk -F " " '(NR>=2){print $2, $3}' f1
解释:()中填写行级的筛选条件
awk -F " " '($2>300){print $2, $3}' f1 ---显示第二列的值大于300的行中,第二三列
awk -F " " '/name/{print $2}' f1 ---/ /之间 筛选出包含指定字符的行
awk -F " " '$4 ~ /name/{print $2}' f1 --- 抓取第四列包含指定字符的行。~前指定筛选第几列包含指定字符的行
awk -F " " '$4 ! ~ /name/{print $2}' f1 --- 抓取第四列不包含指定字符的行
sed文字筛选
sed '3, 5d' f1 ---不显示3~5行。d表示删除、不显示
sed '3, $d' f1 ---不显示3~最后一行
sed -n '/name/ p' f1 ---抓取显示指定行,-n不显示原有内容
sed 's/name/hello/g' f1 ---替换指定文字,前原文字,后新文字
sed 's/name/& hello/g' f1 ---在指定字符后&追加字符
sed -i 's/name/& hello/g' f1 --- -i 表示对文件内容处理后回写到原文件中
vi编辑器
三种工作模式
命令模式:进入vi后的默认模式
插入模式:即编辑模式,从命令模式下按a 、i 、o 都可以进入编辑模式,按ESC键返回命令模式
末行模式:从命令模式下输入:进入末行模式,按ESC键返回命令模式
命令模式快捷命令
yy 复制光标所在行;3yy 复制三行
p 粘贴到光标所在的下一行
dd 剪切;3dd 剪切三行
u 撤销操作
ZZ 保存退出
ZQ 不保存退出
G 跳转至文件结尾处
末行模式快捷命令
:10 跳转到指定的行号位置
:set nu 显示行号
:set nonu 不显示行号
:set backup 编辑前备份,会自动在文件的同目录下创建一个文件名中带~的文件
:/ name 查找文件中指定字符的位置;按 n 查找下一个
:1,$ s/name/hello/g 字符替换(第一到最后一行)
:1,$ s/name/& hello/g 字符追加
:1,3d 删除第1-3行
:1,$d 删除第1-最后行
用户管理
useradd —添加新用户
passwd —给用户设定密码,仅root可以设置其他用户的密码
用户配置文件
/etc/passwd —共七列
用户名:密码:用户id(UID):用户所在组的id(GID):用户属性:用户家目录:用户登录后的shell
密码:由于Linux有一专用的密码配置文件,所以该项用x填充
UID:有16bit的二进制数字表示,范围是0-65535。
规律:0-99 系统用户;100-999 软件、服务用户;1000+ 自定义用户
GID:同UID特性
属性:可填写电话、地址、邮箱等,一般不填
密码配置文件
/etc/shadow
用户加锁(禁用)
方式一:给密码加锁
passwd -l user1 —密码加锁
passwd -u user1 —密码解锁
方式二:给用户名加锁
usermod -L user1 —用户加锁
usermod -U user1 —用户解锁
用户改名
usermod -l user2 user1 —先写新名,后写原名
清除用户密码
功能:无需验证,直接登录
passwd -d user1
passwd user1 —重新恢复密码:再次配置
未禁用用户,但拒绝登录系统
功能:用户仅可以登录本机的某些服务,即做服务账号使用,如:邮件、FTP,但不允许登录系统。
步骤:vi /etc/passwd,修改用户的shell为 /sbin/nologin,:wq保存退出
用户删除
userdel user1 —删除用户,但不会删除用户的相关文件
userdel -r user1 —删除用户,同时删除相关文件
用户切换
su user1 —切换到指定用户身份下,使用原用户的环境变量设置
su - user —加 - 表示使用目标用户的环境变量
组的管理
私有组 —又称主组(primary group) 不可以删除
每个用户必须且只能属于一个私有组,新建用户时,默认自动新建一个与用户名同名的组,作为用户的私有组使用。
标准组 —又称附属组 可以删除
一般用于批量用户管理的组,用户可以属于多个标准组
【注:一个组可以既是私有组又是标准组,针对用户确定组的类型。】
groupadd zu1 ---新建标准组
组配置文件
vi /etc/group ---四列信息
组名:组密码(x填充):组ID:标准组成员
usermod -G zu1 zhang ---用户加入标准组(用户zhang加入zu1)。-G指定标准组
usermod加入标准组是替换式,不是追加式
id zhang ---查看用户的id信息,可见私有组、标准组
usermod -g zu2 zhang --- -g表示更改用户的私有组
gpasswd zu1 ---为组配置密码。即允许用户临时加入该组;若组无密码,则禁止用户加入
步骤:su - wang
以wang用户的身份: newgrp zu1 ---申请临时加入组中,需要密码的审核
gpasswd -r zu1 ---删除组密码
gpasswd -a zhang zu1 ---添加用户到标准组中, -a 添加用户
vi /etc/gshadow ---查看组管理员
gpasswd -d zhang zu1 ---删除用户, -d删除用户
gpasswd -M zhang,wang zu1 --- -M列举用户列表,即多个用户同时加入标准组
gpasswd -A zhang zu1 --- -A指定标准组组的管理员,组管理员有权向组内加入用户,但-A也是替代式
gpasswd -A zhang,wang zu1 ---指定多个标准组的管理员
gpasswd -A root zu1 ---清除原来的指定的管理员,恢复到只有root的设置
groupdel zu1 ---删除标准组
小结:
新建用户并设置各项属性 :useradd -u 1100 -g zu1 -G zu2 -d /mnt/dd -s /bin/bash zhang
-u UID ; -g 私有组 ;-G 标准组 ;-d 家目录 ; -s shell
注:这些参数在usermod命令功能相同
新建用户后会影响到的文件:/etc/passwd、/etc/shadow、/etc/group、个人环境变量文件
用户、组的系统限制
vi /etc/security/limits.conf
zhang soft nproc 10000
zhang hard nproc 20000
@zu1 soft nofile 10000
@zu1 hard nofile 20000
解释:soft表示软限制,即警报线;hard表示硬限制,即最大值
nproc表示启动的进程数;nofile表示打开的文件数
sudo命令授权
mount /dev/cdrom /media/ —挂载光盘到指定目录
umount /media —卸载
功能:某些仅root可用的系统命令,授权指定用户可使用
visudo ---编辑sudo配置文件,做授权,在约100行/中root……ALL的位置写入:
zhang CentOS7-1=(root) /usr/bin/mount, /usr/bin/umount
格式:
目标用户 主机名=(以谁的身份) 命令的绝对路径(whereis或which查询)
解释:授权允许目标用户在指定的主机上,以某用户的身份执行列出的命令
实质上是用vi打开了/etc/sudoers文件
普通用户登录后
sudo mount /dev/cdrom /media/ ---以sudo的形式执行命令
sudo配置进阶
%zu1 CentOS7-1=(root) /usr/bin/mount, /usr/bin/umount ---%zu1 给组做授权
在授权的语句前,写入Cmnd_Alias GUAZAI = /usr/bin/mount, /usr/bin/umount ---命令别名,起到命令组的功能
之后的命令改为 %zu1 CentOS7-1=(root) GUAZAI 即可
权限管理
功能:给文件/目录针对用户设置权限,限制用户的读写。
ls -l或ll —显示文件的详细信息,可见权限
显示结果——权限信息 硬链接数 所属用户 所属组 文件大小 上一次修改时间 文件名
权限信息部分:
十位字符: - rwx rwx rwx
第一位表示文件类型:二进制文件,即普通文件或文档。d 目录 l 软连接 b 块设备 c 字符设备
第二-四位表示所属用户(所属者/属主)的权限,简写 u
第五-七位表示所属组(属组)的权限,简写 g
第八-十位表示其他用户的权限,简写 o
权限字母:
r 读取 w 写入 x 执行
权限配置chmod
方法一:增减式
chmod u+x f1 ---增加权限
chmod u+x, g-w, o+r f1 ---增加多项权限
chmod a+x f1 --- a 表示所有
方法二:赋值式
chmod u=rw f1
chmod u=rw, g=r, o= f1
chmod a=rw f1
方法三:数字式
将r w x视为3bit的二进制数字,有该权限用1表示,无权限用0表示,最后核算十进制的数值。
4 2 1
chmod 642 f1 ---即u=rw- g=r-- o=-w-
chmod 66 f1 ---数字不足三位则高位补0,即066,称为右匹配原则
rwx对于文件/目录的意义
对于文件
r 读取文件内容
w 写入、更改文件内容
x 执行程序
对于目录
r 显示目录下内容,相当于ls
w 目录下新建、删除、改名文件
x 进入目录,相当于cd
默认权限
满权限:对于目录:777 对于文件:666
umask变量:权限控制变量,由满权限-umask值得到文件/目录的默认权限
umask ---可查看umask值(后三位)
目录默认权限:777-022=755
文件默认权限:666-022=644
所属信息管理
chown zhang f1 —更改文件的所属用户
chown .zu1 f1 —更改所属组,用 . 或 :都可以,等同于chgrp zu1 f1
chown zhang.zu1 f1 —改所属用户和所属组
chown -R zhang.zu1 d1 --- -R表示目录内的子文件/子目录一并更改,即继承式修改,又叫递归
ACL访问控制列表
功能:在原有权限所属不变的前提下,针对文件对某个用户、组进行单独增加权限配置。
getfacl f1 —查看文件的权限配置,可见ACL
setfacl -m u:zhang:rw f1 —给用户配置ACL g:zu1:rw 给组配置
setfacl -x u:zhang f1 —删除单个ACL
setfacl -b f1 —删除该文件的所有ACL配置
【注:增加了ACL配置的文件在ls -l时,权限后会有+做标注】
文件的属性
lsattr f1 —查看文件的属性
lsattr -d d1 ---查看目录属性 -d 表示仅查看目录本身
配置格式:
chattr +/- 属性对应的字母 文件名
如:chattr +i f1 ---增加属性
常用属性值:
i 只读
a 可追加,但不能删除、修改、重命名
A 不更新访问时间,可节省磁盘I/O读写,提高访问速度
c 自动压缩
e 文件可存储于extX的文件系统上,默认存在
文件的完整信息
stat f1 —查看文件信息
安全位——set位
安全位只能加给属组、属主,且只能给可执行程序加。程序增加set位后,程序运行时所调用的文件,以其属主、属组的身份调用。
如:chmod u+s /usr/bin/cat
ll /usr/bin/cat —查看时,会在x权限的位置显示s;s表示之前有x权限,S表示之前没有x权限
粘贴位——sticky位
粘贴位(t位)只能加给其他用户部分(o部分),且给目录增加t位。目录增加t位后,目录下的内容仅所属者可删。
如:chmod o+t /mnt/d1
ll -d /mnt/d1 —查看时,只看d1本身,会在o部分的x位显示t,t表示之前有x权限,T表示之前没有x权限
文件复制移动后的权限
mv 移动文件的权限和所属不变
cp -rp /mnt/d1 /home — -p 表示复制后沿用原有的权限和所属
umask介绍
umask=0022 第一位表示ugo 的sst。若=6,则u+s、g+s; 若=5,则u+s、o+t
chmod 1755 /mnt/d1 —四位数字赋权限,第一位表示ugo 的sst 001=t
文件打包压缩
打包/解包
tar -cvf back.tar f1 f2 f3 —打包,不压缩。-c 创建包文件; -v 查错; -f 展示打包过程中的文件名
tar -cvf back.tar f1 f2 f3 —remove-files —打完包后自动删除原文件
tar -tf back.tar ---查看包文件内容
tar -xvf back.tar ---解包。默认解包到当前路径下,若有同名文件,直接覆盖
tar -xvf back.tar -C /mnt/ --- -C 指定解包的路径
tar -uf back.tar f4 ---包中追加文件
tar -f back.tar --delete f2 ---包中删除文件
tar -f back.tar --get f1 f3 ---包中提取
指定文件
tar -Af back.tar back2.tar ---包的合并。后包内的文件会加入到前包中
【说明:文件后缀仅起到标记文件类型的作用,不能决定文件的具体存储格式。加后缀便于长期管理。】
压缩/解压缩
gzip back.tar ---压缩,默认后缀 .gz
gunzip back.tar.gz ---解压缩
compress back.tar ---压缩,另一种压缩算法,通用于Unix系统
uncompress back.tar ---解压缩
打包并压缩
tar -zcvf back.tgz f1 f2 f3 f4 ---一步完成打包压缩 .tgz=.tar.gz
tar -zxvf back.tgz ---一步完成解压解包,支持用 -C 指定解包路径
数据转移 dd命令
格式:dd if=源 of=目标 bs=每次的大小 count=次数
功能:支持从任何源设备/文件给任何目标设备/文件导数据
dd if=f1 of=f2
dd if=f1 of=f2 bs=2 count=3
dd if=/dev/sda1 of=/dev/sdb1
dd if=/dev/sda of=/dev/sdb
dd if=/dev/zero of=/mnt/f2 bs=100M count=5 —创建一个100M*5=500M大小的无限文件,目的是提前占空间
dd if=/dev/zero of=/dev/sda bs=100M count=5 —冲洗磁盘或分区,便于重新分区或分区的重新格式化
备份
数据备份
方式一:把重要的数据制作成光盘镜像文件。
genisoimage -J -L -r -o /mnt/etc.iso /etc —把指定目录下的内容制作成iso文件
参数: -o 指定生成的镜像文件名 -J 目录下所有符合joliet命令规范的文件,都做到镜像中
-L 目录下所有隐藏文件都做到镜像中 -r 制作镜像时,所有文件允许读
mount /mnt/etc.iso /media ---挂载镜像文件,做数据恢复
mount /mnt/etc.iso /media -o -loop ---标准的挂载镜像文件的命令。-o -loop表示伪设备挂载
wodim --device ---查看本机的刻录设备。假设,查到设备名是 /dev/dvdrw
wodim -v dev=/dev/dvdrw blank=fast ---清空光盘上的原数据
wodim -v dev=/dev/dvdrw /mnt/etc.iso ---把镜像文件刻录到光盘上
方式二:
dd 数据导出到指定设备,一般把磁盘、分区导出到备份盘
系统操作备份
方式一:
dd 把磁盘导出到备份盘。支持热备份(不影响正常业务,更好)
方式二:
通过U盘启动工具,打开ghost工具(会自动压缩,节省空间),做磁盘、分区的备份镜像。属于冷设备
应用软件的数据备份
备份分类
完全备份——备份所有数据
差异备份——备和上一次全备后产生的变化数据
增量备份——备和上一次备份操作后产生的变化数据
累计增量备份——备连续多次增量备份的总和
备份级别 0-9级
0——完全备份
1——差异备份
2-9——寻找最近一次比本级别数字小的备份操作,做增量备份
备份策略案例
周日晚 0级备份 全备
周一晚 2级备份 差异备
周二晚 2级备份 差异备
周三晚 1级备份 差异备
周四晚 2级备份 增量备
周五晚 2级备份 累计增量备
周六晚 2级备份 累计增量备
dump工具做数据备份
功能:针对分区(挂载点)做数据备份,备份到一个未做挂载的新分区上
1. 安装dump
mount /dev/cdrom /media
cd /media/Packages ---进入光盘内安装包的存储路径
rpm -ivh rmt-<tab>
rpm -ivh dump-0.4<tab>
2.创建备份分区
fdisk /dev/sda ---进入fdisk磁盘管理工具
可用命令: m 显示帮助菜单 n 新建分区 => 起始、结束都默认 w 保存成功 p 显示分区表,可见新的分区
partprobe ---更新分区表
mkfs -t ext4 /dev/sda8或mkfs.ext4 /dev/sda8 ---给新的分区做文件系统,即格式化
3.备份分区,恢复分区
df -h ---查看分区及挂载
dump -0 -u -f /dev/sda8 /home ---备份分区
-0 表示备份级别 -u 记录日志 -f 指导存储备份数据的设备
dump -W ---查看备份记录,即日志
restore -tf /dev/sda8 ---查看备份设备中的文件
restore -rf /dev/sda8 ---恢复所有数据到当前目录下
restore -xf /dev/sda8 f1 f2 dd/ ---指定恢复的文件,回车后按提示,按1,按y