Linux高级shell脚本

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

  1. 使用-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 数字 :用来指定哪一列

  1. –complement 选项提取指定字段之外的列(打印除了第二列之外的列)

[root@node1 shell]# cut -d " " -f 2 --complement stu.txtid age score01 18 7802 20 8503 16 9004 24 7705 21 85

  1. 指定字段的字符或者字节范围

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

  1. 统计指定文件行数、字数、字节数

[root@node1 shell]# wc test_wc.txt 6 21 85 test_wc.txt#行数为6, 单词数为21, 字节数为85

  1. 查看根目录下有多少个文件

[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中如果匹

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道独行之BIGDATA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值