Linux高级和Zookeeper
一、Linux高级
1. *Linux系统概述和安装*
1.1. Linux系统概述
Ø Linux创始人: *林纳斯 托瓦兹*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1081hZU1-1691341419721)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps1.jpg)]
l Linux 诞生于1991年,作者上大学期间
l Linux的特点
*开源,免费*****,****拥有最为庞大的源码贡献者
l Linux的吉祥物
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQR1KPiL-1691341419722)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps2.jpg)]
1.2. Linux发行版介绍
对于Linux操作系统来说,其本身是一个整体,包括****Linux内核、系统库和系统程序****,Linux内核是其最基础的部分,它实现了对硬件资源的管理,并且提供了使用这些硬件资源的通用接口。
自1991年发布Linux内核来,很多公司加入其中,在内核的基础上构建了自己的操作系统版本,这个被称为Linux的发行版。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ozTE8mAY-1691341419723)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps3.jpg)]
l Redhat:目前,全球最大的Linux发行厂商,功能全面、稳定。
l Redhat 被 IBM 收购!
l Ubuntu:目前,是Linux桌面操作系统做的最好的。
l Centos:免费版的redhat,Centos 基于 redhat 发行版基础之上,再重新编译发布的版本。
l 目前 Centos 已经被 Redhat 公司收购,但是依然免费
l deepin:目前,国内做的最好的一款Linux发行版
1.3. 虚拟机软件介绍
虚拟机 (Virtual Machine) 指通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。
虚拟系统通过生成现有操作系统的全新虚拟镜像, 具有真实操作系统完全一样的功能.进入虚拟系统后, 所有操作都是在这个独立全新的独立的虚拟系统里面进行, 可以独立安装运行软件, 保存数据, 不会对真正的系统产生任何影响
*常用的虚拟机软件:*
VMware | 这款虚拟机软件兼容性很强,快照功能很快捷,方便,允许你在任意开机时刻创建系统快照和恢复,十分实用 |
---|---|
VirtualBox | Sun公司的产品,属于轻量级的虚拟机平台,而且是开源的,完整安装包很小,,功能相对也很精简,快照功能这里叫备份和快速修复,在不同的快照间跳转用起来感觉不是很方便,也不能实现文件拖拽的功能 |
1.4. VMware安装
查看安装VMware虚拟机.doc文档
1.5. Linux系统(CentOS)系统安装
查看02_安装Centos.doc文档
1.6. 登录并查看IP地址
*1:登录*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBxKgAvB-1691341419723)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps4.jpg)]
*2:查看IP地址*
*ifconfig*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQwWiHoH-1691341419724)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps5.jpg)]
这个ip地址是自动分配的,后边我们可以设置静态IP地址。
1.7. Linux连接工具CRT使用
1.7.1. 概述
通常linux都是作为远程服务器存在的。那么我们在自己的机子上如何远程操作服务器端的linux呢?这里一款强大远程连接工具CRT。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jfQ9Cb5N-1691341419724)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps6.jpg)]
1.7.2. CRT安装
*参考*:CRT连接linux文档.doc
1.7.3. 使用步骤
*1、建立连接*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CLwTAI4J-1691341419725)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps7.jpg)]
*2、参数配置*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1VYCGquz-1691341419725)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps8.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nk26399j-1691341419726)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps9.jpg)]
3、设置主题,颜色和仿真
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dWKqwZJN-1691341419726)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps10.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYwVcSNS-1691341419727)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps11.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AsAJ4xeH-1691341419727)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps12.jpg)]
1.7.4. 文件上传
文件上传有多种方式, 此处介绍常用的二种方式
l 第一种上传方式: 基于CRT 的 alt + p
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Y9uiJTV-1691341419727)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps13.jpg)]
在此窗口下, 可以通过cd 切换到想要上传的目录下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FnXFOCcQ-1691341419732)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps14.jpg)]
直接将需要上传的文件, 直接拖拽到窗口下, 即可完成上传工作
l 第二种上传方式: 使用linux的上传工具进行上传
1**)** 安装上传工具 : 使用yum进行联网下载软件并安装 yum -y install lrzsz2) 使用方式**😗* 2**.1)** 输入上传命令**😗* rz 弹出上传框 2**.2)** 选择对应文件**,** 点击ok进行上传 上传后文件存储在什么位置上**?** 答**😗* 在那个目录下输入的rz**,** 就会将文件存储到那个目录下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G62qdoec-1691341419732)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps15.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-My687YYP-1691341419733)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps16.jpg)]
1.7.5. 文件的下载
1)设置windows的下载存放目录:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZuotzhEw-1691341419733)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps17.jpg)]
2)下载文件
*sz 要下载的文件*
[root@node1 ~]# sz anaconda-ks.cfg
下载完之后,去之前设置的windows下载目录查看文件即可.
1.8. Linux的快照
1.8.1. 作用
快照就是 备份系统, 防止意外损坏, 降低损失
1.8.2. 拍摄快照
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4hz34Dvl-1691341419734)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps18.jpg)]
填写名称和描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NrBfWuUt-1691341419734)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps19.jpg)]
1.8.3. 恢复快照
右键目标centos系统 -> 快照 -> 快照管理器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEnHaEqr-1691341419735)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps20.jpg)]
1.8.4. 删除快照
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Durv19vT-1691341419735)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps21.jpg)]
1.9. Linux目录结构介绍
Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XllMCia1-1691341419736)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps22.jpg)]
常用的目录介绍:
*目录* | *作用* |
---|---|
/bin | 二进制命令所在的目录 |
/boot | 系统引导程序所需要的文件目录 |
/dev | 设备软件目录,磁盘,光驱, |
/etc | 系统配置,启动程序 |
/home | 普通用户的家,目录默认数据存放目录 |
/lib | 共享库文件和内核模块存放目录 |
/mnt | 临时挂载储存设备的挂载点 |
/opt | 额外的应用软件包 |
/proc | 操作系统运行时,进程信息和内核信息存放在这里 |
/root | Linux超级权限用户root的家目录 |
/sbin | 和管理系统相关的命令,【超级管理员用】 |
/tmp | 临时文件目录,这个目录被当作回收站使用 |
/usr | 用户或系统软件应用程序目录 |
/var | 存放系统日志的目录 |
2. *Linux**基础命令*
2.1. 终端命令格式
command [-options] [parameter]
*说明:*
- command : 命令名, 相应功能的英文单词或单词的缩写
- [-options] : 选项, 可用来对命令进行控制, 也可以省略
- parameter : 传给命令的参数, 可以是 零个、一个 或者 多个
2.2. 终端使用技巧
2.2.1. 自动补全
1、 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab键
2、 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
2.2.2. 曾经使用过的命令
1、使用 上 / 下 光标键可以在曾经使用过的命令之间来回切换
2、如果想要退出选择, 并且不想执行当前选中的命令, 可以按 ctrl + c
2.3. 显示文件列表命令
ls 是英文单词list的简写, 其功能为列出目录的内容,是用户最常用的命令之一
ls常用选项
如果只使用ls命令就只能看到当前目录下非隐藏文件。
选项 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件, 包含隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
常见使用命令:
ls #查看当前目录内容 (缺点: 隐藏文件看不到,以 .开头的文件) !ls -a #查看当前目录内容 ,包括隐藏文件 ls **-**al #查看目录内容的详细信息(查看文件类型、权限、大小等) ls **-**lh #查看目录内容的详细信息,以K,M,G方式显示文件大小 ls /root #查看/root目录下内容ll #等价于ls -l !
2.4. 目录查看、目录创建和目录删除命令**(pwd、mkdir、rm)**
2.4.1. pwd命令
查看当前所在目录
[root@node1 ~]# pwd/root
2.4.2. mkdir命令
该命令用于创建目录
注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名
1)创建没有层级关系的目录
mkdir 目录名
mkdir test
2)创建有层级的目录
mkdir -p 目录1/目录2/目录3
mkdir -p **/root/aaa/**bbb
2.4.3. rm命令
该命令用于删除文件或者目录
参数解释:
参数 | 英文 | 含义 |
---|---|---|
-f | force (强制) | 强制删除,忽略不存在的文件或目录, 无需提示 |
-r | recursive (递归) | 递归地删除目录下的内容, 删除目录时必须加此参数 |
使用方法:
rm -r 目录 #删除目录有提醒
[root@node1 ~]# rm -r testrm:是否删除目录 “test”?
rm -fr 目录 #直接删除目录(不管有没有内容)
[root@node1 ~]# rm -fr test[root@node1 ~]#
rm -f 文件名
rm -f a.txt #强制删除一个文件
2.5. 目录切换命令
cd 是英文单词 change directory 的缩写, 其功能为 更改当前的工作目录, 也是用户最常用的命令之一
注意: linux的所有 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名) |
cd 目录 | 切换到指定目录下 |
cd … | 切换到上级目录 |
cd - | 可以在最近的两次目录之间切换9 |
实例:
cd #回到用户主目录(root的家)cd test #切换到当前目录下的test目录(相对路径) cd /root/test #切换到指定目录(绝对路径)cd … #回到上一级目录 cd …/… #回到上上一级目录cd **…/**dir #回到上一级的dir目录
2.6. 文件操作命令
2.6.1. touch命令
touch命令创建文件
touch 文件路径
touch a.txt #在当前目录创建a.txt文件 touch **/root/**a.txt #在/root目录创建a.txt文件
2.6.2. mv命令
通过mv 命令可以用来移动文件或目录, 也可以给文件或目录重命名
*1)**将文件移动另一个目录中**:*
mv 文件 目录/
touch a.txt mkdir dir mv a.txt dirls dir
*2)**重命名*
mv 旧文件名 新文件名
mv a.txt b.txt #重命名文件 mv dir1 dir2 #重命名目录
*3)**将目录移动 到 另一个目录中**:*
mv 被移动目录 目标目录
mv dir1 /
2.6.3. cat/more/less命令
l *cat命令*
cat 文件路径
cat **/root/**initial-setup-ks.cfg
l *more命令*
分页显示文件内容,还支持直接跳转行等功能
*语法:* more 文件路径
*相关操作:*
*Enter:* 向下n行, 需要定义, 默认为1行
*空格键:* 向下滚动一屏 或 Ctrl + F
*B键* : 返回上一屏 或 Ctrl+B
*q:* 退出more
more **/root/**initial-setup-ks.cfg
l *less命令*
分页显示文件内容,还支持直接跳转行等功能
*语法:* less filePath
*空格键:* 前进一页 或 page down
*b 😗 后退一页 或 page up
*d 😗 前进半页
*u 😗 后退半页
q : 退出
2.6.4. cp命令
cp a.txt dir1 #将a.txt复制到dir1目录cp a.txt b.txt #将a.txt复制到b.txt
2.7. 文件查找命令
2.7.1. find指令
用于查找符合条件的文件
示例:
find / **-*name 'ins’ #查找/目录下以文件名ins开头的文件 find / **-**type f **-**size **+**100M #查找/目录下文件大小大于100M的文件
2.7.2. grep命令
grep命令可以对文件进行文本查询
grep lang anaconda-ks.cfg #在文件中查找langCat anaconda-ks.cfg | grep lang
2.8. 压缩和解压命令tar
参数解释:
*参数* | *解释* |
---|---|
-c | 创建一个新tar文件 |
-v | 显示运行过程的信息 |
-f | 指定文件名 |
-z | 调用gzip压缩命令进行压缩 |
-x | 解开tar文件 |
2.8.1. 解压
tar -zxvf 压缩文件 [-C] [指定解压目录]
示例:
tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录tar -xvf redis-3.2.8.tar.gz #将文件解压到当前目录tar **-**zxvf redis-3.2.8.tar.gz -C **/root/**dir #将文件解压到指定目录
2.8.2. 压缩
tar -c[z]vf 压缩文件 目录
tar -cvf test.tar /root/test #打包tar -czvf test.tar.gz **/root/**test #打包并压缩
2.9. 系统管理命令
2.9.1. ps命令
ps命令用来列出系统中当前运行的那些进程
ps -ef #查看所有进程
2.9.2. kill命令
kill命令用于终止执行中的程序
kill **-**9 12345 #杀死pid为12345的进程
2.9.3. 管道命令
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urA2Tjc3-1691341419736)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps23.jpg)]
ps -ef | grep java #查询名称中包含java的进程
2.10. 用户的创建和删除****命令
2.10.1. 用户创建和密码设置
useradd 用户名
passwd 用户名
useradd itheima #创建新用户itheimapasswd itheima #设置用户itheima密码
2.10.2. 用户删除
user -r 用户名
userdel -r itheima #删除用户itheima
2.11. 权限管理命令
2.11.1. 文件权限概述
Linux操作系统是多任务多用户操作系统,用户是Linux系统工作中重要的一环, 用户管理包括 ****用户*与*组****管理
LInux对于不同的系统资源拥有不同的使用权限,Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
****所属用户:****文件的创建者
****所属用户组:****和所属用户在同一组的用户
****其他用户:****既不是所属用户,也不是所属用户组
2.11.2. 文件权限解读
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LMLvRajQ-1691341421429)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps24.jpg)] | 文件目录列查看权限 |
---|---|
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qDp4S40r-1691341421430)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps25.jpg)] | 权限说明 |
属主(user)*u* | 属组(group)*g* | 其他用户(other)*o* | ||||||
---|---|---|---|---|---|---|---|---|
*r* | *w* | *x* | *r* | *w* | *x* | *r* | *w* | *x* |
*4* | *2* | *1* | *4* | *2* | *1* | *4* | *2* | *1* |
*r*: 对文件是指可读取内容 对目录是可以ls
*w*: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件)
*x*: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
2.11.3. chmod命令
chmod命令用来变更文件或目录的权限。
chmod 666 a.txt chmod u+x a.txtchmod u**=rwx,g=rw,o=**x a.txt
2.12. 网络和服务管理命令
2.12.1. ifconfig****命令
查看主机ip地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hxOK1b9M-1691341419737)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps26.jpg)]
2.12.2. systemctl命令
systemctl 命令是用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态,在Centos7.0之前,使用的是service命令,在Centos7.0之后,使用systemctl命令来进行服务控制
l 格式: systemctl 操作 服务名
l 相关语法介绍
服务管理命令 | 功能 |
---|---|
systemctl start 服务名 | 开启服务 |
systemctl stop 服务名 | 关闭服务 |
systemctl status 服务名 | 显示服务状态 |
systemctl enable 服务名 | 设置开机自启动 |
systemctl disable 服务名 | 关闭开机自启动 |
l 相关操作
*网络操作*
systemctl status network # 查看网络服务状态 systemctl stop network # 停止网络服务systemctl start network # 启动网络服务systemctl restart network # 重启网络服务
*防火墙操作*
systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动systemctl status firewalld.service #查看防火墙状态
2.13. 磁盘管理命令
命令 | 作用 |
---|---|
df -h | disk free 显示磁盘剩余空间 |
du -h [目录名] | disk usage 显示目录下的目录大小 |
free -h | 查看内存使用率 |
2.14. 时间和日期
命令 | 作用 |
---|---|
date | 查看系统时间(*默认*) |
date +“%Y-%m-%d %H:%M:%S” | 查看系统时间(*指定格式*) |
date -s “时间字符串” | 设置系统时间 |
实例:
[root@node1 export]# dateWed Jul 31 07**:20:31 CST 2019[root@node1 export]# date +"%Y-%m-%d %H:%M:%S"2019-07-31 07:20:49[root@node1 export]# date -s '2019-07-31 20:21:49’Wed Jul 31 20:21:49 CST 2019[root@node1 export]# date +“%Y-%m-%d %H:%M:%S” 2019-07-31 20:21😗*52
2.15. 其他命令
2.15.1. ln命令
ln命令可以用来创建软连接,类似于创建快捷方式
命令格式:
ln [参数][源文件或目录][目标文件或目录]
实例:
ln -s 2**.txt 1.**txt |
---|
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCGJfzx4-1691341421430)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps27.jpg)] |
2.15.2. clear命令
清屏命令,还可以使用快捷方式:ctrl + l
2.15.3. 关机重启
*reboot 😗 重新启动
*shutdown -h now* : 马上关机(断电关机)
*halt 😗 立刻关机(centos) (不断电关机)
2.16. vi编辑器
2.16.1. vi编辑器介绍
vi是visual interface的简称, 是Linux中最经典的文本编辑器
vi的核心设计思想:让程序员的手指始终保持在键盘的 核心区域, 就能完成所有编辑操作
vi的特点:
1.只能是编辑文本内容, 不能对字体段落进行排版
2.不支持鼠标操作
3.没有菜单
4.只有命令
2.16.2. vim编辑器
vim 是从vi发展出来的文本编辑器, 支持代码补全、编译 及 错误跳转等方便编程的功能提别丰富, 在程序员中被广泛使用, 被称为编辑器之神。
2.16.3. vi编辑器使用
vi a.txt #直接打开文件vim a.txt #vim是vi的增强版vim a.txt **+**10 #直接打开文件,并定位到第10行
*Vi编辑器三种模式:*
\1. 命令行模式
- 打开文件首先进入命令模式, 是使用vi的入口
- 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除
- 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现
\2. 末行模式 – 执行 保存 退出等操作
- 要退出 vi 返回到控制台, 需要在莫行模式下输入命令
- 末行模式 是 vi 的出口
\3. 编辑模式 – 正常的编辑文字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tRq7iP0G-1691341419737)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps28.jpg)]
2.16.4. 命令行模式常用命令
*命令* | *功能* |
---|---|
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
dd | 删除光标所在行 |
ndd | 从光标位置向下连续删除 n 行 |
yy | 复制光标所在行 |
nyy | 从光标位置向下连续复制n行 |
p | 粘贴 |
u | 撤销上一次命令 |
gg | 回到文件顶部 |
G | 回到文件末尾 |
/str | 查找str |
2.16.5. 底行模式常用命令
*命令* | *功能* |
---|---|
:w 文件 | 另存为 |
:w | 保存(ctrl + s) |
:q | 退出, 如果没有保存,不允许退出 |
:q! | 强行退出, 不保存退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
:set nu | 设置行号 |
:%s/旧文本/新文本/g | 文本替换 |
2.16.6. 异常处理
如果 vi 异常退出, 在磁盘上可能会保存有 交换文件
下次再使用 vi 编辑文件时, 会看到以下屏幕信息, 按下字母 d 删除交换文件即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p1fDgmg6-1691341419737)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps29.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j3xuzlU2-1691341419738)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps30.jpg)]
然后,回到文件编辑目录,删除生成的隐藏文件,如:
rm **.**Hello.java.swp -fr
3. *虚拟机网络配置*
3.1. VMware网卡配置模式
虚拟机网卡默认有三种配置模式:桥接模式、NAT模式、仅主机模式,在本课程中,我们配置的是NAT模式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ud87025M-1691341419738)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps31.jpg)]
3.1.1. 桥接模式
需要依赖外部网络环境,VMware 虚拟出来的操作系统就像是局域网中的一台独立的主机,需要手工为虚拟系统配置IP地址,虚拟机的ip必须和宿主机(windows)的ip是同一个网段。开发环境下可能会使用, 学习环境不用, 类似于虚拟机和主机就好比插在同一台交换机上的两台电脑
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w5tjBSQ8-1691341419738)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps32.jpg)]
3.1.2. NAT模式
使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网,如果主机能够正常上网,那么虚拟机也能够直接上网。此时虚拟机处于一个新的网段内,由VMware提供的DHCP服务自动分配IP地址,然后通过VMware提供的NAT服务,共享主机实现上网, 不依赖外部网络环境
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VWCwh6ZA-1691341419739)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps33.jpg)]
3.1.3. 仅主机模式
仅主机模式和NAT模式是类似的,在该模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机,当然多个虚拟机之间也可以互相访问, 只需要记住仅主机模式是无法进行上网的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-59FYyJp8-1691341419739)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps34.jpg)]
3.2. 编辑虚拟机的网络编辑器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0zMYZBLR-1691341419739)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps35.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6v4DKjG-1691341419740)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps36.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2DEFj5V-1691341419740)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps37.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kyBYdjTl-1691341419740)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps38.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NcesHv2w-1691341419741)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps39.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7VRDr1y-1691341419741)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps40.jpg)]
3.3. 编辑Window的虚拟网卡
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-huBe1Ldu-1691341419741)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps41.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VaBdoXbp-1691341419742)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps42.jpg)]
3.4. 3.修改IP地址为静态
为什么要设置静态ip ?
当安装完虚拟机之后,默认的ip分配方案为DHCP,每一次开机时的ip都是有可能不同的,这样就会导致每次远程连接都需要查看ip地址.设置为静态ip后, 当前虚拟机的ip地址就不会在发生改变, 后期配置集群相关的内容时首要的要求就是ip必须为静态, 否则由于无法得到一个准确的ip地址,集群也是构建不了的
1)查看网卡名字
*ifconfig*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OkD0gAca-1691341419742)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps43.jpg)]
2)编辑修改网卡IP地址的配置文件
*vim /etc/sysconfig/network-scripts/ifcfg-ens33*
修改以下的红色部分
TYPE**="Ethernet"PROXY_METHOD="none"BROWSER_ONLY=“no”*BOOTPROTO=“static”*DEFROUTE="yes"IPV4_FAILURE_FATAL**="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="dfd8991d-799e-46b2-aaf0-ed2c95098d58"DEVICE="ens33"ONBOOT=“yes”*IPADDR=“192.168.88.161”**GATEWAY=“192.168.88.1”**NETMASK=“255.255.255.0”**DNS1=“8.8.8.8”**DNS2=“114.114.114.114”****IPV6_PRIVACY=“no”*
文件配置如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cayqmH5n-1691341419742)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps44.jpg)]
3)重启网络:
systemctl restart network
4)测试是否联网:
*ping www.baidu.com*
[root@localhost ~]# ping www.baidu.comPING www.a.shifen.com (112.80.248.76) 56(84) bytes of data.64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=1 ttl=128 time=14.1 ms64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=2 ttl=128 time=14.0 ms64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=3 ttl=128 time=13.7 ms64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=4 ttl=128 time=13.5 ms64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=5 ttl=128 time=14.6 ms64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=6 ttl=128 time=14.3 ms
修改完之后使用CRT重新连接虚拟机
4. *Linux高级命令*
该章节的所有操作都在/export/data/shell目录进行,请提前创建该目录.
mkdir -p /export/data/
4.1. 重定向命令
*1、重定向 >*
Linux 允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:ls >test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )。
案例:
将/目录下文件的详情保存到test.txt文件中
ll / > test.txt
查看文件内容:cat test.txt
总用量 28lrwxrwxrwx. 1 root root 7 3月 31 06**:05 bin -> usr/bindr-xr-xr-x. 5 root root 4096 3月 31 06:22 bootdrwxr-xr-x. 3 root root 18 5月 12 09:15 datadrwxr-xr-x. 20 root root 3320 5月 10 15:48 devdrwxr-xr-x. 132 root root 8192 5月 12 10:27 etcdrwxr-xr-x. 3 root root 18 5月 7 20:25 exportdrwxr-xr-x. 3 root root 20 4月 9 10:16 homedrwxr-xr-x. 2 root root 6 11月 5 2016 mediadrwxr-xr-x. 5 root root 41 4月 7 16:23 optdr-xr-xr-x. 206 root root 0 5月 10 15:47 procdr-xr-x—. 24 root root 4096 5月 12 15:43 rootdrwxr-xr-x. 38 root root 1180 5月 10 15:48 runlrwxrwxrwx. 1 root root 8 3月 31 06:05 sbin -> usr/sbindrwxr-xr-x. 2 root root 6 11月 5 2016 srvdr-xr-xr-x. 13 root root 0 5月 10 15:48 sysdrwxrwxrwt. 25 root root 4096 5月 12 16:32 tmpdrwxr-xr-x. 13 root root 155 3月 31 06:05 usrdrwxr-xr-x. 20 root root 282 3月 31 06😗*22 var
根绝结果发现命令的执行结果已经写入test.txt文件中了。
*2、重定向* *>>*
>>这个是将输出内容****追加****到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
案例:
现在有个文件1.txt,内容如下,现在将整个文件的内容追加到上一个案例的test.txt文件中
Hadoop HDFS MapReduceZookeeper Hive HBase
实现方式:
cat 1**.**txt >> test.txt
查看test.txt内内容:cat test.txt
总用量 28lrwxrwxrwx. 1 root root 7 3月 31 06**:05 bin -> usr/bindr-xr-xr-x. 5 root root 4096 3月 31 06:22 bootdrwxr-xr-x. 3 root root 18 5月 12 09:15 datadrwxr-xr-x. 20 root root 3320 5月 10 15:48 devdrwxr-xr-x. 132 root root 8192 5月 12 10:27 etcdrwxr-xr-x. 3 root root 18 5月 7 20:25 exportdrwxr-xr-x. 3 root root 20 4月 9 10:16 homedrwxr-xr-x. 2 root root 6 11月 5 2016 mediadrwxr-xr-x. 5 root root 41 4月 7 16:23 optdr-xr-xr-x. 206 root root 0 5月 10 15:47 procdr-xr-x—. 24 root root 4096 5月 12 15:43 rootdrwxr-xr-x. 38 root root 1180 5月 10 15:48 rundrwxr-xr-x. 2 root root 6 11月 5 2016 srvdr-xr-xr-x. 13 root root 0 5月 10 15:48 sysdrwxrwxrwt. 25 root root 4096 5月 12 16:32 tmpdrwxr-xr-x. 13 root root 155 3月 31 06:05 usrdrwxr-xr-x. 20 root root 282 3月 31 06:22 vardrwxr-xr-x. 3 root root 17 4月 8 16😗*17 xxxdoop HDFS MapReduceZookeeper Hive HBase
通过查看结果发现test.txt中已经有了1.txt文件的内容,实现了追加.
4.2. cut命令
cut:文件内容查看命令,cut命令可以从一个文本文件或者文本流中提取文本列。
*cut命令参数解释*
*Option 可选项* | *解释* |
---|---|
-b | 按字节选取 忽略多字节字符边界 |
-c | 仅显示行中指定范围的字符 |
-d | 自定义分隔符,默认为制表符 \tab |
-f | 与-d一起使用,指定显示哪个区域。Field |
-n | 与“-b”选项连用,不分割多字节字符; |
–complement | 补足被选择的字节、字符或字段; |
–out-delimiter=<字段分隔符> | 指定输出内容是的字段分割符; |
–help | 显示指令的帮助信息; |
–version | 显示指令的版本信息。 |
*实例:*
如有一个学生报表信息文件stu.txt,包含id、name、age、score.
id name age score01 tom 18 7802 jack 20 8503 bill 16 9004 mary 24 7705 anna 21 85
- 使用-d和-f显示文件中的指定的列
#显示id列[root@node1 shell]# cut -d " " -f 1 stu.txt id0102030405 #显示name和age列[root@node1 shell]# cut -d " " -f 2,3 stu.txtname agetom 18jack 20bill 16mary 24anna 21
解释:
-d “ ” :用来指定文件字段之间的分隔符,如果文件的分隔符是制表符则不需要指定该参数
-f 数字 :用来指定哪一列
- –complement 选项提取指定字段之外的列(打印除了第二列之外的列)
[root@node1 shell]# cut -d " " -f 2 --complement stu.txtid age score01 18 7802 20 8503 16 9004 24 7705 21 85
- 指定字段的字符或者字节范围
cut命令可以将一串字符作为列来显示,字符字段的记法:
N-:从第N个字节、字符、字段到结尾;
N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;
-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。
#打印第1个到第4个字符:[root@node1 shell]# cut -c 1-4 stu.txtid n01 t02 j03 b04 m05 a #打印前2个字符:[root@node1 shell]# cut -c -2 stu.txtid0102030405 #打印从第5个字符开始到结尾[root@node1 shell]# cut -c 5- stu.txtame age scoreom 18 78ack 20 85ill 16 90ary 24 77nna 21 85
4.3. sort命令
4.3.1. 目标
sort可针对文本文件的内容,以行为单位来排序。
4.3.2. 路径
第一步: 对字符串排序
第二步: 去重排序
第三步: 对数值排序
第四步: 对成绩排序
4.3.3. 实现
4.3.3.1. 第一步: 对字符串排序
准备工作
vim sort_demo1.txt
文件内容
bananaapplepearorangepear
案例:
[root@node1 export]# sort sort_demo1.txtapplebananaorangepearpear
4.3.3.2. 第二步: 去重排序
参数 | 英文 | 含义 |
---|---|---|
-u | unique | 去掉重复的 |
它的作用很简单,就是在输出行中去除重复行。
案例: 获取当前文件中不重复的内容
[root@node1 shell]# sort -u sort_demo1.txt applebananaorangepear
4.3.3.3. 第三步: 对数值排序
参数 | 英文 | 含义 |
---|---|---|
-n | numeric-sort | 按照数值大小排序 |
-r | reverse | 使次序颠倒 |
准备数据
vim sort_demo2.txt
1 3 5 7 11 2 4 6 10 8 9
默认按照字符串排序
[root@node1 export]# sort sort_demo2.txt1101123456789
升序
[root@node1 export]# sort -n sort_demo2.txt 1 2 3 4 5 6 7 8 9 1011
倒序
[root@node1 shell]# sort -n -r sort_demo2.txt 1110987654321 [root@node1 shell]# sort **-**nr sort_demo2.txt 1110987654321
4.3.3.4. 第四步: 对成绩排序
参数 | 英文 | 含义 |
---|---|---|
-t | field-separator | 指定字段分隔符 |
-k | key | 根据那一列排序 |
准备工作
vim sort_demo3.txt
zhangsan 68 99 26lisi 98 66 96wangwu 38 33 86zhaoliu 78 44 36maqi 88 22 66zhouba 98 44 46
练习: 切割文件根据第二段成绩进行倒序显示所有内容
[root@node1 export]# cat sort_demo3.txt | sort -t ’ ’ -k 2 -n -rzhouba 98 44 46lisi 98 66 96maqi 88 22 66zhaoliu 78 44 36zhangsan 68 99 26wangwu 38 33 86
4.4. uniq****命令
uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用,通过sort排序将相同的行放在一起,然后实现去重。
4.4.1. 目标
uniq 命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用。
4.4.2. 路径
第一步:实现去重效果
第二步:不但去重,还要统计出现的次数
4.4.3. 实现
4.4.3.1. 第一步:实现去重效果
命令 | 英文 | 含义 |
---|---|---|
uniq [参数] 文件 | unique 唯一 | 去除重复行 |
准备工作
vim uniq_demo.txt
张三 98李四 100王五 90赵六 95麻七 70李四 100王五 90赵六 95麻七 70
实现1:简单去重,必须要加sort
[root@localhost data]# cat uniq_demo.txt | sort | uniq 李四 100麻七 70王五 90张三 98赵六 95
实现2: 实现去重效果(按照成绩排序,降序,去重)
[root@node1 data]# cat uniq_demo.txt | sort -t ’ ’ -k 2 -n -r | uniq 李四 100麻七 70王五 90张三 98赵六 95
4.4.3.2. 第二步:不但去重,还要统计出现的次数
参数 | 英文 | 含义 |
---|---|---|
-c | count | 统计每行内容出现的次数 |
[root@node1 data]# cat uniq_demo.txt |sort| uniq -c 2 李四 100 2 麻七 70 2 王五 90 1 张三 98 2 赵六 95
4.5. wc命令
wc命令:统计行数 单词数 字节数
在默认的情况下,wc将计算指定文件的行数、字数以及字节数。
命令使用格式为:
*wc 文件名*
*wc命令参数*
*参数* | *解释* |
---|---|
-l | 统计行数 line |
-c | 统计字节数 char |
-w | 统计单词数 word |
-m | 统计字符数 |
*实例:*
有个文件test_wc.txt,内容如下:
1 11222 bbb333 aaa bbb 444 aaa bbb ccc555 aaa bbb ccc ddd666 aaa bbb ccc ddd eee
- 统计指定文件行数、字数、字节数
[root@node1 shell]# wc test_wc.txt 6 21 85 test_wc.txt#行数为6, 单词数为21, 字节数为85
- 查看根目录下有多少个文件
[root@node1 shell]# ls / | wc -w24
4.6. awk命令
4.6.1. 简介
awk是一种处理文本文件的命令,是一个强大的文本分析工具,它支持分段,默认每行按****空格*或*TAB****分割。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。
awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
*语法:*
awk [-F field-separator] ‘commands’ input-file**(s)** 或awk -F|-f|-v ‘BEGIN{ } / / {comand1;comand2} END{ }’ file-F 定义列分隔符-f 指定调用脚本**-v** 定义变量****’ '*引用代码块,awk执行语句必须包含在内*BEGIN{ }**** 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符****{ }**** 命令代码块,包含一条或多条命令**//** 用来定义需要匹配的模式(字符串或者正则表达式),对满足匹配模式的行进行上条代码块的操作****END{ }**** 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
*运行方式:*
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVw14cV9-1691341419743)(file:///C:\Users\10652\AppData\Local\Temp\ksohtml168276\wps45.jpg)]
l *命令行方式*
awk [-F field-separator] ‘commands’ input-file**(s)**
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。 在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名**-F域分隔符的情况下,默认的域分隔符是**空格****。
l *脚本方式*
将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,通过键入脚本名称来调用。 相当于shell脚本首行的:#!/bin/sh 可以换成:#!/bin/awk。
*变量分配:*
默认情况下,awk 会将如下变量分配给它在文本行中发现的数据字段:
l *$0* 代表整个文本行;
l *$1* 代表文本行中的第 1 个数据字段;
l *$2* 代表文本行中的第 2 个数据字段;
l *$n* 代表文本行中的第 n 个数据字段。
*print和printf*
awk中同时提供了print和printf两种打印输出的函数。
其中print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。
printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。
4.6.2. 入门案例
默认每行按****空格*或*TAB*分割,使用*$n****来获取段号
有个文件test_awk.txt,内容如下:
aaa 111 333bbb 444 555ccc 666 777 888ddd 999 222 999
l 案例1: 打印test_awk.txt第1段
awk ‘{print $1}’ test_awk.txt
l 案例2: 打印出test_awk.txt的第1,2,3段
awk ‘{print $1,$2,$3}’ test_awk.txt
l 案例3:打印出1.txt的第1,2,3段,并且使用#号连接
awk ‘{print $1"#“$2”#"$3}’ test_awk**.**txt
4.6.3. 段之间的连接符OFS
OFS用来指定输出记录分隔符
案例1::打印1,2,3段,指定#为连接符
awk ‘{OFS=“#”}{print $1,$2,$3}’ test_awk.txt
4.6.4. 指定分隔符
-F 来指定分隔符
准备工作,现在有个文件test_awk2.txt,内容如下:
aaa:111:333bbb:444:555ccc:666:777:888ddd:999:222:999:cccc
l 案例1: 打印出test_awk2.txt的第1段
awk **-**F ‘:’ ‘{print $1}’ test_awk2.txt
l 案例2: 打印出test_awk2.txt的所有段
awk **-**F ‘:’ ‘{print $0}’ test_awk2.txt
l 案例3: 打印出test_awk2.txt的第1,3段
awk **-**F ‘:’ ‘{print $1,$3}’ test_awk2.txt
4.6.5. 内容匹配
这里的内容匹配需要使用正则表达式,常用的正则表达式规则如下:
1、^linux 以linux开头的行
2、$php 以php结尾的行
3、. 匹配任意单字符
4、.+ 匹配任意多个字符
5、 .* 匹配0个或多个字符(可有可无)
6、 [0-9a-z] 匹配中括号内任意一个字符
7、 (linux)+ 出现多次Linux单词
8、 (web){2} web出现两次以上
9、\ 屏蔽转义
*实例:*
l 案例1: 匹配test_awk2.txt中包含cc的内容
awk ‘/cc/’ test_awk2.txt
l 案例2: 匹配test_awk2.txt中第1段包含cc的内容
awk **-**F ‘:’ ‘$1 ~ /cc/’ test_awk2.txt
l 案例3: 匹配test_awk2.txt中第1段包含至少连续两个c的内容
awk **-**F ‘:’ ‘$1 ~ /cc+/’ test_awk2.txt
l 案例4: 在test_awk2.txt中如果匹