云计算笔记d ay4
归档与压缩
压缩格式:
gzip---->.gz -z
bzip2--->.bz2 -j
xz------->.xz -J
归档及压缩(制作tar包)
格式:
tar [选项] /路径/压缩包名字 /路径/源数据.......
-c:动作打包数据 -f:指定压缩包名字,必须在所有选项最后
-z、-j、-J : gzip bzip2 xz
解包:
tar [选项] /路径/压缩包名字 [选项] /释放的路径
-x:解包 -f:指定压缩包名字,必须在所有选项最后
-C:指定路径 -t:查看tar包内容
tar命令高级使用:
本例要求使用tar工具完成以下备份任务:
创建一个名为/root/backup.tar.bz2的归档文件
其中包含/usr/local目录中的内容
tar归档必须使用bzip2进行压缩步骤
[root@server0 ~]# tar -jcf /root/backup.tar.bz2 /usr/local/[root@server0 ~]# tar -tf /root/backup.tar.bz2
tar命令也可以单独进行归档不进行压缩
]# tar -cf /root/abc.tar /etc/passwd /etc/fstab ]# ls /root/
重定向操作
重新定向命令的输出 >
将前面命令的输出,作为内容,写入到后面的文件
>:覆盖重定向
>>:追加重定向
echo命令的使用
管道操作 |
作用:将前面命令的输出,传递给后面命令,作为后面命令的参数
一般情况下不支持管道
1.双参数以上的命令
2.没有参数也能运行的命令
3.交互式的命令不支持
显示8~12行内容
eg:]# head -12 /etc/passwd | tail -5]# cat -n /etc/passwd | head -12]# cat -n /etc/passwd | head -12 | tail -5]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pa.txt]# cat /opt/pa.txt
Linux中大多数配置文件内容,以#开头的行为注释行
显示配置文件有效信息(去除以#开头的注释行和去除空行)
]# grep -v ^# /etc/login.defs
find命令
-type 类型(f文本文件、d目录、l快捷方式)
[root@A /]# find /boot -type d[root@A /]# find /etc -type l [root@A /]# find /boot -type f
-name 名字 (iname忽略大小写)
两个条件联合使用
]# mkdir /mnt/cbd01]# mkdir /mnt/cbd02]# touch /mnt/cbd03.txt]# find /mnt/ -name \"cbd*\"]# find /mnt/ -name \"cbd*\" -type d]# find /mnt/ -name \"cbd*\" -type f]# find /mnt/ -name \"cbd*\" -o -type f #两个满足其中一个
-size 大小 +与-
-user 用户名 (按照数据的所有者)
-mtime 修改时间
+90 #90天之前修改的过的数据
-10 #最近10天之内修改的过的数据
/var :存放经常变化的数据(日志、数据库.....)
eg:三个月之前的数据:root@A /]# find /var -mtime +90最近10天之内的数据:[root@A /]# find /root -mtime -10
补充:
-newermt #在此时间之后
! -newermt #不在此时间之后(必须在此时间之前)
不写年月日则表示今天
find高级使用
处理find找到的数据,每查找的一个就传递一次
find [范围] [条件] -exec 处理命令 {} \\;
-exec额外操作的开始
{} 永远表示前面find查找的结果
\\; 额外操作的结束
]# find /boot -size +10M]# find /boot -size +10M -exec cp {} /mnt \\; ]# ls /mnt]# find /boot -size +10M -exec ls -lh {} \\;两个条件联合使用]# mkdir /root/mytab]# find /etc -name \"*tab\" -type f]# find /etc -name \"*tab\" -type f -exec cp {} /root/mytab \\;]# ls /root/mytab
案例:查找并处理文件1. 利用find查找,数据的所有者为 student,并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中]# useradd student #创建普通用户student ]# mkdir /root/findfiles ]# find / -user student -type f]# find / -user student -type f -exec cp {} /root/findfiles \\;]# ls -A /root/findfiles/ #-A显示隐藏数据
vim高级使用
命令模式[root@qq ~]# cp /etc/passwd /opt/pass.txt[root@qq ~]# vim /opt/pass.txt 末行模式:末行模式下 :r /opt/aa.txt末行模式下 :r /etc/passwd末行模式下 :r /etc/shells末行模式下:替换 :1,10s/root/haha/g 替换第1-10行所有的“root”:%s/bin/xixi/g 替换文件内所有的“bin”开关参数的控制:set nu或nonu 显示/不显示行号:set ai或noai 启用/关闭自动缩进(了解)设置永久开关[root@nb ~]# vim /root/.vimrc set nu set aivimdiff同时比对或修改多个文件[root@a ~]# vimdiff /opt/zz.txt /opt/yy.txt命令模式下Ctrl与w同时按下,然后左右键移动光标末行模式wqa保存全部文件并退出设置vim永久开关功能设置[root@nb ~]# vim /root/.vimrc #家目录下.vimrcset nu #写入内容[root@nb ~]# vim /etc/passwd #测试是否开启行号[root@nb ~]# vim /opt/pass.txt
显示光盘内容
光盘文件----》虚拟机光驱设备---》目录(/mnt)
[root@qq ~]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
如果没有光驱设备,直接挂载光盘镜像文件即可
软件名:firefox
软件包名:firefox-91.9.0-1.el8_5.x86_64.rpm
[root@localhost /]# rpm -qa #当前系统中所有已安装的软件包[root@localhost /]# rpm -q firefox #查看firefox是否安装[root@localhost /]# rpm -q httpd #httpd构建Web服务器软件 [root@localhost /]# rpm -qi firefox #查询软件信息
查询某个目录/文件是哪个RPM包带来的
格式:rpm -qf [文件路径]…
即使目标文件被删除,也可以查询
查询软件包(参数软件包名)
查询软件包的安装清单: ]# rpm -qpl /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm查询软件包信息]# rpm -qpi /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm导入红帽签名信息(了解)]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial查询软件包信息(没有警告输出)]# rpm -qpi /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm利用rpm安装软件(了解内容)]# rpm -q vsftpd ]# rpm -ivh /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm]# rpm -q vsftpd #查看是否安装成功]# rpm -evh vsftpd #卸载软件]# rpm -q vsftpd #查看是否卸载成功
Yum软件:自动解决依赖关系,安装软件
yum命令:主要用于安装与卸载
rpm命令:主要用于查询
软件仓库:1.众多的软件包 2.仓库清单(仓库数据文件)
本地Yum仓库:由本机直接提供软件仓库
]# mkdir /etc/yum.repos.d/bak]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak]# ls /etc/yum.repos.d/]# vim /etc/yum.repos.d/haha.repo [haha] #仓库的标识 name=xixi #仓库描述信息,可以省略baseurl=file:///mnt/AppStream #指定仓库位置file://表示本地为服务端enabled=1 #仓库是否启用,1表示启用,可以省略gpgcheck=0 #是否检测软件包红帽签名信息,不检测红帽签名信息[xixi] #仓库的标识name=xixi #仓库描述信息,可以省略baseurl=file:///mnt/BaseOS #指定仓库位置file://表示本地为服务端enabled=1 #仓库是否启用,1表示启用,可以省略gpgcheck=0 #是否检测软件包红帽签名信息,不检测红帽签名信息 ]# yum repoinfo #列出当前系统识别的软件仓库]# yum -y install httpd #测试安装软件
总结:本地Yum仓库排除错误
1.没有挂载光驱设备
2./etc/yum.repos.d目录下的仓库配置文件内容写错
3./etc/yum.repos.d目录下,错误的配置文件影响
执行流程:
yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/AppStream
yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/BaseOS
Yum仓库使用:
安装软件
[root@localhost ~]# yum -y install httpd
卸载软件(建议不要使用-y选项)
Yum仓库的查询
]# yum list ftp #查询仓库是否有ftp软件
可安装的软件包 #表示当前系统没有安装该软件]# yum list httpd]# yum search ftp #包含ftp就匹配]# yum provides /usr/bin/hostname ]# yum provides /etc/passwd #仓库中那个软件包产生该文件]# yum provides guestmount #查询仓库中那个软件产生该程序 ]# yum -y install libguestfs-tools-c]# guestmount --help #查看帮助信息]# rm -rf /usr/bin/hostname]# ls /usr/bin/hostnamels: 无法访问/usr/bin/hostname: 没有那个文件或目录]# yum provides /usr/bin/hostname #查询仓库中那个软件,产生了此程序]# yum -y reinstall hostname #覆盖安装清空缓存(了解)执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/AppStream[root@localhost ~]# yum clean all #清空Yum的缓存[root@localhost ~]# yum repoinfo #列出仓库信息[root@localhost ~]# yum repoinfo #列出仓库信息
命令补充
历史命令
管理/调用曾经执行过的命令
history:查看历史命令列表
history -c:清空历史命令
history -w:记录历史命令为空的状态
!n:执行命令历史中的第n条命令
!str:执行最近一次以str开头的历史命令
先输入cat、ls命令再查询历史命令
date,查看/调整系统日期时间
zip归档工具,跨平台(Windows与Linux)
归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档...
[-r]:被归档的数据有目录,必须加上此选项
du,统计目录占用硬盘的空间
-s:只统计每个参数所占用的总空间大小
-h:提供易读容量单位(K、M等)
制作快捷方式(链接文件 符号链接)
格式:
ln -s /路径/源数据 /路径/快捷方式名字 #软链接
硬链接:源数据消失,快捷方式仍然有效
用户账号简介
作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限
唯一标识:UID(编号从0开始的编号,默认最大60000)
zhangsan(UID 1200)
管理员root的UID:永远为0
普通用户的UID:默认从1000开始
组的作用: 方便管理用户
唯一标识:GID(编号从0开始的编号,默认最大60000)
原则:Linux一个用户必须至少属于一个组
组账户的分类:
基本组:一般情况与用户同名,一个用户必须有基本组,基本组只能有一个
附加组(从属组):一个用户可以有多个附加组,也可以没有附加组
/etc/passwd:存放用户基本信息配置文件
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
useradd创建用户
-u:指定 用户UID
-d:指定宿主目录(家目录),默认为 /home/用户名
-G:指定所属的附加组 -g指定基本组
-s:指定用户的登录解释器,默认为/bin/bash
-u:创建用户时,指定用户UID编号
-d:指定宿主目录(家目录),默认为 /home/用户名(不可以事先新建用户的家目录)
-G:指定所属的附加组 -g:指定基本组 (了解一下)
-s:指定用户的登录解释器 /bin/bash
shell:壳,解释器
用户---->解释器---->内核---->硬件
/sbin/nologin:禁止用户登录操作系统
usermod修改用户属性
-l:更改用户帐号的登录名称
-u:用户id
-s:登录解释器
-d:家目录路径(默认不会自动创建新的家目录)
]# usermod -md /mnt/abc16 nsd16 #将用户原有的家目录进行移动,并且设置相应的权限
-G:修改用户的附加组 #重置附加组 (了解)
passwd设置密码
[root@localhost ~]# useradd nsd18
[root@localhost ~]# passwd nsd18 #交互式设置
w,保存密码字串/有效期等信息
每个用户记录一行,以:分割为9个字段
[root@localhost ~]# grep nsd18 /etc/shadow
nsd18:$6$NVe937Nd$B0n94XrpQ.LipQHTpYh0iV/M4jCLdccfHxzRLprdxDzwk8WDDh/TzdTfh8lA9y9WKJ.8Ls/l5.w/1W.nV6CFX/:18481:0:99999:7:::
上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数
字段1:用户帐号的名称
字段2:加密后的密码字符串
字段3:上次修改密码的时间
字段4:密码的最短有效天数,默认0
字段5:密码的最长有效天数,默认99999
字段6:密码过期前的警告天数,默认提前7天进行警告
字段7:密码过期后多少天禁用此用户账号
字段8:帐号失效时间,默认值为空
字段9:保留字段(未使用)
非交互式设置密码
[root@qq ~]# echo 123456 | passwd --stdin nsd01
[root@qq ~]# echo redhat123 | passwd --stdin nsd01
~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)
/etc/bashrc:全局配置文件,影响全体用户 (开启新的终端)
userdel命令 删除用户
格式:userdel [-r] 用户名
添加 -r 选项,家目录/用户邮件也一并删除
组账号管理
[root@localhost ~]# groupadd tarena #新建一个组
[root@localhost ~]# grep tarena /etc/group #查看组信息
tarena:x:1607:
组名字:密码占位符:GID:组成员列表
gpasswd命令(添加附加组)
格式:gpasswd [选项]... 组名
•常用命令选项
-a:添加组成员,每次只能加一个
-d: 删除组成员,每次只能删一个
-M:定义(重置)组成员用户列表,可设置多个用户
-A:定义组管理员列表(组管理员可以属于此组也可以不属于此组)
/etc/gshadow:组的管理信息配置文件
组名:密码加密字符串:组的管理员列表:组成员列表
/etc/passwd:用户基本信息
/etc/shadow:用户密码信息
/etc/group:组基本信息
/etc/gshadow:组管理信息
eg:
以下哪个文件存放用户基本信息
A./etc/passwd B./etc/fstab C./etc/hosts D./etc/shells
以下那个文件存放用户基本信息:
A./etc/psaswd B./etc/paswsd C./etc/passwd D./etc/password
总结:Linux系统执行useradd命令,会完成那些操作?
1.会在/etc/passwd增加一行信息
2.会在/etc/shadow增加一行信息
3.会在/home新增用户家目录
4.会在/var/spool/mail增加用户邮件文件
5.会在/etc/group增加一行组信息
6.会在/etc/gshadow增加一行组的管理信息
总结:Linux系统执行userdel -r命令,会完成那些操作?
1.会在/etc/passwd删除一行信息
2.会在/etc/shadow删除一行信息
3.会在/home删除用户家目录
4.会在/var/spool/mail删除用户邮件文件
5.会在/etc/group删除一行组信息
6.会在/etc/gshadow删除一行组的管理信息
删除组账号:删除组的时候,不可以删除基本组
eg:[root@localhost ~]# groupdel tarena [root@localhost ~]# groupdel tmooc[root@localhost ~]# grep tmooc /etc/group[root@localhost ~]# grep tarena /etc/group
周期性计划任务
用途:按照设置的时间间隔,为用户反复执行某一项固定的系统任务
软件包:cronie、crontabs
系统服务:crond
日志文件:/var/log/cron
使用 crontab 命令
–编辑:crontab -e [-u 用户名]
–查看:crontab -l [-u 用户名]
–清除:crontab -r [-u 用户名]
计划任务书写格式:
时间 任务内容
分 时 日 月 周 操作
30 20 * * *
30 8 * * *
30 8 * * 1-5
30 8 * * 1,5,7
* * * * * #每分钟
*/12 * * * * #每12分钟
48 */2 * * * #每2个小时
每分钟记录当前系统时间,写入到/opt/time.txt
[root@nb ~]# date [root@nb ~]# date >> /opt/time.txt [root@nb ~]# cat /opt/time.txt [root@nb ~]# which date #查找命令所对应的程序[root@nb ~]# crontab -e #编写计划任务* * * * * /usr/bin/date >> /opt/time.txt[root@nb ~]# crontab -l #查看计划任务内容[root@nb ~]# cat /opt/time.txt[root@nb ~]# ls /var/spool/cron #任务文件存放的路径[root@nb ~]# cat /var/spool/cron/root #记录root用户计划任务
bc 计算器
获取命令帮助
方式一:命令 --help
[root@localhost ~]# cat --help
[root@localhost ~]# yum --help
方式二:man 命令
显示命令帮助:
[root@localhost ~]# man cat #按q退出
[root@localhost ~]# man passwd #显示passwd命令帮助
[root@localhost ~]# man 5 passwd
数字5表示帮助的类型,表示配置文件类型