Linux

Linux课堂笔记(5)

tar命令:归档和压缩文件;提取和解压缩文件


归档文件和目录

1)	归档语法格式:tar  cvf   创建的存档的文件名.tar   目标文件(源文件)
2)	归档文件需要文件的读取权限;归档目录需要目录的读取和执行权限
3)	创建归档时忽略没有读取权限的文件和没有读取,执行权限的目录
4)	创建归档如果不指定归档后的目录位置,那么归档后的文件会创建在当前目录中

提取文件

1)	提取归档文件和目录语法格式:tar  xvf  归档文件名
2)	提取归档文件不指定路径默认提取后的文件存在当前路径下
3)	建议:提取归档文件到指定的空目录,避免覆盖现有任何文件
4)	root用户提取存档时保留文件的原始用户和组所有权;普通用户提取存档时,文件所有权将属于从存档中提权文件的用户
5)	tar  xvf  new.tar  -C  目标位置  //  -C指定提取后的文件存在指定位置

创建压缩归档

1)	使用gzip归档时压缩:  tar   czvf   new.tar.gz      目标文件(源文件)
2)	使用bzip2归档时压缩: tar   cjvf    new.tar.bz2    目标文件(源文件)
3)	使用xz归档时压缩:    tar   cJvf   new.tar.xz      目标文件(源文件)
4)	du  -sh new.tar:         显示大小
5)	tar   tf  new.tar.gz

提取压缩的存当

1)	tar  xzvf  new.tar.gz    -C  目标位置    // -C 指定提取后的文件存在指定位置
2)	tar  xjvf  new.tar.bz2   - C  目标位置   // -C 指定提取后的文件存在指定位置
3)	tar  xJvf  new.tar.xz    -C  目标位置    // -C 指定提取后的文件存在指定位置

系统间安全传输文件:scp和sftp


  • scp(secure copy):OpenSSH套件,文件从远程系统复制到本地系统或者从本地系统复制到远程系统
a.	语法格式:user@host(IP):/path;user@可选项,如果未指定,使用当前本地用户名
b.	文件复制到远程系统举例:  scp    /tmp/file   user@x.x.x.x:/home/user
c.	从远程系统复制到本地举例:scp    user@x.x.x.x:/tmp/userfile    /root
d.	r 选项以递归方式复制整个目录:scp  -r   user@x.x.x.x:/var/log  /root/test
  • sftp:交互的方式从SSH服务器上传或下载文件
a.	语法格式:user@host(IP);如果未指定用户,使用本地用户作为远程用户名进行登录
b.	举例:sftp remoteuser@remotehost(或IP):回车出现提示符sftp>
c.	get:从远程系统下载文件
d.	put:将文件上载到到远程系统
e.	命令举例:ls,cd,mkdir,pwd,rmdir

系统间安全同步文件


  • rsync:仅同步已更改的文件部分来将复制的数据最小化(即复制文件的差异部分)
  • -a:启动“存档模式”,实现递归复制并开启多个选项,存档模式与表中指定的蓝色选项的作用相同
  • 同步本地文件或目录
rsync  -av  /var/log  (源) /tmp(目的)      在tmp目录下自动建名为log的目录
rsync  -av  /var/log/(源)  /tmp (目的)     源目录加上尾斜杠,不在目标目录中创建新的子目录
  • 本地文件或目录与远程计算机上的文件或目录同步
语法格式: user@host(IP):/path
rsync   -av  /var/log      remotehost@remotehost:/tmp         本地同步到远程
rsync   -av  remotehost@remotehost:/var/log      /tmp         远程同步到本地

RPM


  • RPM(Redhat package manager)由红帽开发的软件包安装和管理程序,可以对rpm格式的软件包进行安装,升级,卸载,效验和查询等相关操作。
  • RPM软件包文件命名格式:软件包名称-版本号-发行号.操作系统版本.硬件平台类型.rpm
举例:openssl-1.0.1e-60.el7.x86_64.rpm
1)	openssl软件包名称
2)	1.0.1e-60 版本号和发行号(包括主版本,次版本,修订号和微调号)
3)	el7 表示该软件包提供给Enterprise linux7版本操作系统使用
4)	x86_64 表示该软件包可以运行的CPU架构( 64位和兼容32位的x86架构
  • noarch表示软件包不限定架构;aarch64表示64位ARM架构
  • rpm 软件包安装
1)	mount | grep sr0 
2)	语法格式:rpm   选项   安装包名
3)	rpm   -ivh   zenity-3.28.1-1.el8.x86_64.rpm
4)	i 安装软件包;v 显示安装信息;h 以#号显示进度
  • rpm缺点:依赖关系严重,不管是安装还是卸载,都需要先处理依赖软件

Yum


  • Yum(yellow dog updater modified)安装,更新,删除和获取有关软件包及其依赖项的信息;获取已执行事务的历史记录并可以使用除红帽外的第三方软件仓库
  • RHEL8启用软件仓库
  • yum优点:解决rpm的缺点(rpm依赖问题)
  • yum缺点:过于依赖yum源文件,如果源文件有问题,安装等操作可能失败。若yum服务器被入侵,yum源不再安全。
1)	软件仓库来源:本地ISO镜像;RHEL系统需要购买订阅;CentOS系统;EPEL
2)	/etc/yum.repos.d/目录中配置软件仓库文件,必须以.repo结尾
  • 举例
vim /etc/yum.repos.d/dvd.repo    
[app]
name=app
enable=1
gpgcheck=0
baseurl=file:///run/media/root/RHEL-8-2-0-BaseOS-x86_64/AppStream
[base]
name=base
enable=1
gpgcheck=0
baseurl=file:///run/media/root/RHEL-8-2-0-BaseOS-x86_64/BaseOS
  • yum安装和删除各组软件
1)	组:针对特定目的而一起安装的相关软件集合
2)	RHEL8组类型:常规组(软件包的集合)和环境组(常规组的集合)
3)	1个组提供的软件包或组可能为:mandatory(安装该组时必须安装);default(安装该组时通常会安装);optional(安装该组时不予安装,除非特别要求)
  • 事务历史记录
1)	yum histroy:显示安装和删除事务的摘要
2)	yum history undo  ID:撤销事务

什么是 EPEL?


EPEL 的全称叫 Extra Packages for Enterprise Linux。EPEL 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL 之后,就相当于添加了一个第三方源。

为什么需要 EPEL?

那是因为 CentOS 源包含的大多数的库都是比较旧的。并且,很多流行的库也不存在。EPEL 在其基础上不仅全,而且还够新。

EPEL 这两个优点,解决了很多人安装库的烦恼。

EPEL 在 CentOS 系统安装相当简单。

yum install -y epel-release
yum install -y htop

存储


  • 存储管理概念:Linux服务器上的文件通过文件系统层次结构进行访问。该文件系统层次结构由系统可用的存储设备所提供的文件系统组成。每个文件系统都是一个已格式化的存储设备,用于存储文件;通过将文件系统附加到文件系统层次结构中的目录,来访问文件系统
  • 挂载点概念:让文件系统中的内容在文件系统层次结构中可用,必须将它挂载到一个空目录上,该目录被称为挂载点。
  • 磁盘分区
1)	存储设备划分为更小的区块,称为分区
2)	分区用于划分硬盘,不同的部分可以通过不同的文件系统进行格式化或用于不同的用途
  • df 命令
1)	格式:df   [选项]  [文件]
2)	-a:列出包括虚拟文件系统在内的所有文件系统
3)	-T:显示文件系统类型
4)	-h:以KiB,MiB或GiB显示
5)	-H:以KB,MB或GB显示
  • 手动挂载文件系统
1)	语法格式:mount   挂载的文件系统  挂载点的目录
2)	按块设备名称挂载举例:     mount    /dev/sdd1    /mnt/dd
3)	按文件系统UUID挂载举例:mount   UUID=“xxxxxx”   /mnt/dd
4)	查看文件系统UUDI命令:lsblk  --fs 和 blkid
5)	手动挂载文件系统缺点:系统重启后自动卸载文件系统
6)	手动卸载文件系统:umunt  挂载点
7)	UUID概念:与文件系统关联的唯一标识符,只要文件系统没有重新创建过,它就不会变

find


  • find:通过在文件系统层次结构中执行实时搜索查找文件,速度慢,准确率高。而且可以根据文件名以外的条件搜索文件。例如:文件权限,文件类型,文件大小等
  • 调用find命令的用户必须具有查看其内容的目录的读取和执行权限
1)	find    /home   -name  test	             	根据文件名搜索
2)	find    /home   -name‘filename’          	使用通配符根据文件名搜索
3)	find    /home    -iname  test             	 	不区分大小写根据文件名搜索
4)	find    /home    -user     syb                	根据指定相同文件所有者搜索
5)	find    /home  -user  syb  -or  -user  u1     	根据指定不同文件所有者搜索
6)	find    /home  -not  -user  syb        	   	根据文件所有者搜索
7)	find    /home  -group     group1             根据文件所属组搜索
8)	find    /home  -user  syb  -group group1     根据文件所有者和所属组搜索
9)	find    /home  -perm  664	                  	根据文件指定权限搜索
	/222:用户,组,其它,三个权限中至少一位匹配即可   	rw-r--r--匹配
	-324:用户,组,其它,三个权限中用户至少有写入和执行,且组至少有写入,且其它至少有读取
10)	find  / -nouser  -nogroup	                  根据文件指定没有所属者和没有所属组搜索
11)	find  /  -uid    1000                         根据uid搜索
12)	find  /home   -type  d	                      根据文件指定类型搜索
13)	find  /home   -size   500M	              根据文件指定大小搜索(等于500M)
14)	find  /home  -size  +500M	                  根据文件指定大小搜索(大于500M)
15)	find  /home  -mmin   120                   指的是120分钟这个时间点
16)	find  /home  -mmin  +120                   超过120分以前修改的所有文件
17)	find  /home  -mmin  -120                   过去120分钟之内修改的所有文件
  • find高级应用:调用-exec将搜索出来的文件进行二次操作
1)	-exec  ls  -l  {}    \;    表示将花括号里找出的文件执行ls -l命令,以转义符和分号结束
2)	find  /home/syb   -name ‘*’    -exec   ls -l  {}   \;
3)	find  /home/ -user  syb    -exec    cp   -af  {}     /root/dfiles   \;
  • 文件检索:grep
1)	语法格式:grep   关键字   搜索位置
grep  a  test 	                   检索文件test中的字符小a
grep  -i  a  test	           检索文件test中的字符a,忽略大小写
grep  -n  a test	           列出文件test中的字符a所在行 

磁盘分区


  • MBR分区方案:指定在运行BIOS固件的系统上如何对磁盘进行分区

1)	分区表记录在硬盘的第一个扇区即MBR,大小512字节
2)	MBR分为三个部分:主引导程序446字节;分区表64字节;分区结束标记2字节
3)	主分区的分区信息记录在MBR中;扩展分区的分区信息记录在扩展分区中
4)	三个主分区和一个扩展分区
5)	扩展分区是特殊的主分区,不能存放数据,用于存放其它的分区(逻辑分区)
6)	最大磁盘和分区大小为2TiB
  • GPT分区方案:对于运行统一可扩展固件接口(UEFI)固件的系统,解决基于MBR分区方案中的限制。

1)	GPT最多可以提供128个分区;最大磁盘和分区大小为8ZiB
2)	GPT使用全局唯一标识符GUID识别每个磁盘和分区
3)	GPT提供分区表信息的冗余:主GPT位于磁盘头部;备份副本位于磁盘尾部
  • 磁盘分区步骤
第一步:划分分区
lsblk或者lsblk --fs查看
fdisk命令划分分区:#fdisk  /dev/sda
m:获取帮助;p:打印当前的硬盘分区表
n:新建分区;d:删除分区
l:列出可用分区标识符号;82 linux swap;83 linux;8e lvm;t:更改分区标识
w:保存分区表并退出;q:直接退出不保存
第二步:刷新保存分区表 
#partprobe   /dev/sda
第三步:定义文件系统类型
RHEL8支持的文件系统:ext和xfs
创建ext文件系统#mkfs.ext4   /dev/sda1  或者   #mkfs  -t ext4  /dev/sda1
创建xfs文件系统命令:#mkfs.xfs   /dev/sda1
第四步:挂载到指定目录下:手动挂载和持久挂载
mount   /dev/sda1  /mnt/a1
  • 持久挂载文件系统:挂载后系统重启时会自动挂载文件系统
1)	编辑/etc/fstab文件的6个字段
2)	文件系统标识符:分区标识符号;UUID;卷标(Label)
3)	挂载点:空目录
4)	文件系统类型
5)	挂载参数:default
6)	dump做全盘备份:0 | 1
7)	fsck顺序字段:开机第几顺位做自检:1 2 3…;0代表不自检
8)	编辑/etc/fstab文件后,必须使用#mount  -a  重新挂载所有编辑过的内容