• Python + 大数据-Hadoop生态-Linux(一)-环境搭建和Vi


    Python + 大数据-Hadoop生态-Linux(一)-环境搭建和Vi


    今日课程学习目标
    1、了解Linux操作系统发展介绍、安装配置
    2、掌握SSH原理机制、Linux文件上传下载
    3、掌握Linux常见文件系统操作命令使用
    4、掌握Vim编辑器基础使用
    
    • 1
    • 2
    • 3
    • 4
    今日课程内容大纲
    #操作系统概述
    #linux系统概述
    #vmware虚拟机
    	虚拟网络+网络模式
    	Centos7系统安装
    	SSH免密登录  非对称加密(私钥 公钥)
    	文件下载
    	虚拟机的快照
    #Linux常用的基础命令
    	文件系统的操作  目录树
    	搜索操作、解压缩
    	管道
    #vi|vim编辑器
    	打开新建、异常处理
    	常用命令操作
    	插入模式编辑、保存退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    一、操作系统概述
    1.1、计算机原理
    • ==冯、诺依曼==结构 (普林斯顿结构)
      • 核心思想:把程序当做数据存储在计算机存储设备中。按顺序读取指令执行。
      • 冯、诺依曼计算机制造三个基本原则
        • 采用二进制逻辑
        • 程序存储执行
        • 计算机由五个部分组成
      • 硬件分类:
        • CPU(运算器控制器
        • 存储设备(内存、外存)
        • 输入设备
        • 输出设备
    • 计算机软件分为软件和硬件。
    1.2、操作系统与分类
    • 定义:管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。没有操作系统称之为裸机。
    • 意义:使编程变得更简单。不需要再编写程序如何去控制协调硬件工作。
    • 操作系统分类
      • 桌面
      • 服务器
      • 嵌入式
      • 移动设备

    二、Linux操作系统
    2.1、Linux发展史

    http://linuxfederation.com/complete-historical-timeline-linux-evolution/

    2.2、Linux内核
    • Linux操作系统=Linux内核+GNU+其他应用操作
    2.3、Linux发行版本
    • Linux分类

      • 个人桌面版

      • 企业服务器版

        国内最大的体系 RH 红帽系统,Centos是社区免费版本。
        
        • 1

    三、VMware虚拟机
    3.1、虚拟组件
    • 所谓的虚拟指的是物理上不存在,但是逻辑上存在,功能跟物理实体一样的。
    #1、网卡、网络适配器
    	连接网络的硬件设备 分为有线和无线之分 其唯一身份标识MAC地址。
    #2、交换机
    	通过网线将计算机组成局域网,同一个交换机下网络地位是一样的。
    	整个局域网网络属性由交换机决定的。
    #3、网桥
    	扩大局域网通信距离的一种设备。网桥两边网络地位也是一样的。
    #4、DHCP 动态主机配置协议设备
    	自动的分配IP 网关DNS等属性 集中维护局域网网络。
    #4、NAT服务器
    	将不可上网的IP转换成为可以上网的IP  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • Q:如何去组建一个局域网?

      交换机 服务器 网线
      
      • 1
    3.2、VMware3种网络模式
    • 核心

      1、这种网络模式下,使用的交换机是谁?
      2、这种网络模式下,虚拟机能否上网?如果能上网,是如何上网的?
      
      • 1
      • 2
    • 桥接模式:使用是vmnet0交换机,可以上网,通过网桥桥接上网的。

    • NAT模式:使用vmnet8交换机,可以上网,通过NAT转换上网的。

    • host-only模式:使用vmnet1交换机,不可以上网。

    • 实战:使用VMware虚拟机NAT模式安装Centos7操作系统。 详细参考附件资料。

      #整个离线课程3台虚拟机 硬件资源分配
      node1 1*2 CPU  4G ram  
      node2 1*1 CPU  2G ram
      node2 1*1 CPU  2G ram
      
      • 1
      • 2
      • 3
      • 4
    3.3、SSH安全外壳协议
    • 核心:非对称加密(单向的)

      两把钥匙
      公钥、私钥
      公钥加密、私钥解密
      
      • 1
      • 2
      • 3
    • 用途1:基于用户名密码加密登录

    • 用途2:机器间的免密登录

    3.4、Linux文件上传与下载

    四、Linux常见基础命令
    4.1、文件系统基本概念

    文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)上的文件的方法和数据结构;即在存储设备上组织文件的方法

    操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

    • 功能:存储文件,存储数据,管理文件。

    • 形式:目录树结构。

      1、都是从/根目录开始的
      2、分为两个种类:目录、文件
      3、路径的唯一性
      4、只有在目录下才可以继续创建下一级目录
      
      • 1
      • 2
      • 3
      • 4
    • Linux号称万物皆文件,组成一个目录树结构。所有的文件都是从/根目录开始的。

    • 回顾:

      • 1、当前目录、相对路径、绝对路径

        #1、当前目录
          你目前所在的目录 可以使用pwd来查看。 有的场合叫做当前工作目录。
        
        #2、相对路径
          相对你当前的工作目录  路径没有/
        
        #3、绝对路径
          从根目录开始,/开始的 跟你在哪里没有关系
        
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
      • 2、特殊符号 . … ~ /

        #  .
        	如果是文件名字以.开始  .1.txt   表示文件是隐藏文件
        	如果是路径中有. 表示的是当前路径  ./
        #  ..
        	当前路径的上一级   cd ../../
        	e.g:cp ../../1.txt ./    
        
        #  ~  
        	表示的是用户的家目录
        	root用户的家目录  /root
        	普通用户的家目录   /home/用户名
        
        #  /
           根目录
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
    4.2、常见的操作命令
    #1、history命令 
       查看历史执行命令
    #2、查看指定目录下内容
       ls
       ls -a      查看所有文件 包括隐藏文件
       ls -l =ll  查看文件详细信息 包括权限 类型 时间 大小等
       ll -h      表示以人性化的显示内容
       ll  *      *通配符表示任意字符  ?表示有且只有一个字符
    #3、切换工作目录
       #如何查看自己当前的所在目录 pwd
       cd 路径     注意自己写的是相对还是绝对的  还可以结合特殊符合使用
       cd ./
       cd /
       cd ../
       cd ~
    #4、文件的创建与删除
       touch 创建一个空文件  没有内容的文件
       mkdir 创建文件夹
       	 	 -p  父目录不存在的情况下 帮助创建
       rm    删除文件
       		 -f 强制删除  不给与提示
       		 -r 递归删除 针对文件夹
       		 -rf 杀伤力极大 问问自己在干什么
       		 坐牢眼:rm -rf /*
    #5、移动与复制
    	tree  以树状图的形式显示文件夹下内容
    		[root@node1 tmp]# tree /usr/tmp/
    		-bash: tree: command not found
    		#如果在linux中出现命令找不到错误,一般来说两种原因:命令写错 命令不存在
    		在确定没有写错的情况下  可以使用yum在线快速安装
    		yum install -y tree
    	cp	复制文件或者文件夹
    		-r 递归 针对文件夹
    		/a/b  表示复制的是文件夹b
    		/a/b/* 表示复制的是文件夹b下的所有内容
    	mv  移动文件或者文件夹
        mv  旧文件名 新文件名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 文件内容查看命令

      #1、cat
      	一次查看所有的内容  适合小文件
      #2、less
      	分屏查看大文件  enter回车下一行  空格下一屏
      	前后屏幕  b  f
      	退出 q
      #3、head	
      	查看文档的前几行内容
      	-n 指定行数
      #4、tail
      	- 数字  查看最后几行内容
      	-f -F 文件  实时查看文件的变化内容
      	(当追踪的文件丢失再出现的时候 能否继续追踪 F可以继续)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
    • 管道命令 |

      # 命令 1 | 命令 2 
        可以将命令 1 的结果 通过命令 2 作进一步的处理
        
      [root@node1 ~]# ls 
      1.txt  anaconda-ks.cfg  hello  lrzsz-0.12.20.tar.gz  test  test.file
      [root@node1 ~]# ls | grep ^t
      test
      test.file  
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    • echo 输出命令

      #相当于print 将内容输出console控制台
      [root@node1 test]# echo 111
      111
      [root@node1 test]# echo "hello "
      hello 
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 重定向

      #  >  覆盖
      
      #  >> 追加
      	将前面命令成功的结果追加指定的文件中
      
      #  &>>
          将前面命令失败的结果追加指定的文件中
      
      
      输出的内容分为标准输出stdout  错误输出stderr
      [root@node1 test]# echo 111
      111
      [root@node1 test]# echo "hello "
      hello 
      [root@node1 test]# echo 111 > 4.txt
      [root@node1 test]# cat 4.txt 
      111
      [root@node1 test]# echo 222 > 4.txt   
      [root@node1 test]# cat 4.txt       
      222
      [root@node1 test]# echo 222 >> 4.txt
      [root@node1 test]# cat 4.txt        
      222
      222
      
      [root@node1 test]# mkdir a/b/c  >> 5.txt   
      mkdir: cannot create directory ‘a/b/c’: No such file or directory  
      #错误的输出无法通过>>进行追加
      
      [root@node1 test]# mkdir a/b/c &>> 5.txt
      [root@node1 test]# cat 5.txt 
      mkdir: cannot create directory ‘a/b/c’: No such file or directory
      
      
      #  && 和 ||
      	命令1 &&命令2  1执行成功才执行2
      	命令1 ||命令2  1执行失败才执行2
      
      [root@node1 test]# mkdir a/b/c && echo "创建目录成功了"
      mkdir: cannot create directory ‘a/b/c’: No such file or directory
      [root@node1 test]# mkdir -p a/b/c && echo "创建目录成功了"
      创建目录成功了
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
    • 软链接

      • 可以对比理解windows快捷方式。

        有没有硬链接呢?  有
        ln -s 目标文件的绝对路径 软链接名(快捷方式)
        ln    目标文件的绝对路径 硬链接名
        
        • 1
        • 2
        • 3
    • Linux搜索文件

      • find

        find <指定目录> <指定条件> <指定动作>
        	默认是搜索当前目录下,所有文件 显示在屏幕上
        	
        find . -name "*.log" -ls 在当前目录查找以.log 结尾的文件, 并显示详细信息。
        find /root/ -perm 777 查找/root/目录下权限为 777 的文件
        find . -type f -name "*.log" 查找当目录,以.log 结尾的普通文件
        find . -type d | sort 查找当前所有目录并排序
        find . -size +100M 查找当前目录大于 100M 的文件	
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
      • grep

        ps -ef | grep sshd 查找指定 ssh 服务进程
        ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身
        ps -ef | grep sshd -c 查找指定进程个数
        
        • 1
        • 2
        • 3
      • locate

        #相当于find -name 但是效率比find更高 因为底层维护了一个索引的数据库 默认一天更新一次
        #通常的使用习惯是 先更新在查找
        updatedb
        locate /etc/sh 搜索 etc 目录下所有以 sh 开头的文件
        locate pwd 查找和 pwd 相关的所有文件
        
        • 1
        • 2
        • 3
        • 4
        • 5
      • which

        #查找环境变量中的内容 
        通常用于判断软件是否配置环境变量。
        
        • 1
        • 2
    • 解压缩命令

      • 打包、解包

        tar cvf 打包名.tar  文件或者目录
        tar xvf 打包名.tar
        tar xvf 打包名.tar -C指定解包目录
        
        • 1
        • 2
        • 3
      • 压缩、解压缩

        #z  gzip
        使用 gzip 压缩和解压缩
        #j bzip2
        使用 bzip2 压缩和解压缩
        
        
        tar zcvf itheima.tar.gz a.txt b.txt 
        tar zcvf itheima.tgz a.txt b.txt 
        
        tar zxvf lrzsz-0.12.20.tar.gz -C aaa/   
        (至孝潍坊)
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11

    五、vi|vim文本编辑器
    5.1、介绍
    • VI编辑器是linux平台上最强悍的文本编辑器。主要是以命令来驱动执行。

      最困难的就是命令的使用
      区分3种工作模式
      
      • 1
      • 2
    • VIM是VI的增强版本,功能差不多。

    5.2、3种工作模式
    • 命令模式

      直接使用vi打开文件进入的就是命令模式
      在此模式下,所敲的按键都理解为命令 以命令驱动执行不同的功能
      此模型下,不能自由进行文本编辑
      
      • 1
      • 2
      • 3
    • 输入模式(左下角insert标记)

      编辑文本内容
      需要从命令模式按下i进入输入模式
      按下esc回到命令模式
      
      • 1
      • 2
      • 3
    • 底线命令模式

      : 字母
      通常用于文件的保存退出
      
      :q 退出
      :w 保存
      :wq 保存退出
      :wq! 强制保存退出
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 还可以在命令模式下输入:shift+zz 快速的保存退出。
    5.3、打开、新建
    vim  文件名
    
    #1、如果编辑的文件不存在 此时就是新建文件 new file
    #2、如果文件存在,就打开文件 进入命令模式
    
    • 1
    • 2
    • 3
    • 4
    • 异常模式处理

      • 情况:编辑过程中 ,VIM闪退。导致底层会生成一个swap交换文件,里面记录着未保存的数据
      • 现象:再次打开文件的时候,编辑器会询问你如何处理swap交换文件。
    5.4、vim基本操作命令
    • 光标的移动

      cp /etc/profile ./
      
      #1、方向键控制移动  
      #2、命令 hjkl移动
      #3、翻页 pageup  pagedown
      #4、行首(home 0)  行尾(end $)
      
      #5、跳到文件的最后一行  G
      #6、跳到文件的第一行  gg
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    • 复制粘贴

      #复制
      yy  复制当前行 
      nyy 复制当前行往下n行
      
      #粘贴
      p 当前行的下一行粘贴
      P 当前行的上一行粘贴
      
      #注意 使用鼠标从window或者其他地方复制内容到vim编辑器粘贴 一定一定要在输入模式下进行 否则数据会有丢失的风险。
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    • 搜索替换

      #搜索
      /待搜索的内容   回车进行搜索 搜索到的结果高亮显示
      使用n跳转到下一个搜索到的内容  N跳转上一个
      
      #清除搜索匹配之后的高亮显示
      :noh
      
      #替换
      :2,4s/原内容/替换内容/gc
      没有g的时候 替换每一行匹配的到的第一个  g表示替换这一行的所有匹配到的
      c表示替换前给用户提示
      
      #如果需要进行全局替换 所谓第一行到最后一行
      :1,$s/原内容/替换内容/gc
      :%s/原内容/替换内容/gc
      
      hello tom hello allen hello
      allen tom mac apple
      hello allen apple
      hello apple spark allen hadoop spark
      allen allen
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
    • 删除、撤销

      #删除命令
      dd  删除当前行
      ndd 删除当前行往下n行
      
      #撤销、反撤销
      u 撤销上一步的操作  后悔药
      ctrl+r 反撤销
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    5.5、插入模式、编辑模式(重要)
    在命令模式下面输入字母进入插入模式
    
    # i 进入到编辑模式后,定位到当前光标前面
    # o 进入到编辑模式后,在当前行的后面,添加一行空行
    
    • 1
    • 2
    • 3
    • 4
    • 常见的组合命令 G+o

      打开文件之后 调整到最后一行 在下一行开始编辑
      
      • 1
    • 注意:在crt中,复制的内容单击鼠标右键可以进行粘贴,但是在vim编辑器中,必须在输入模式下再进行粘贴,否则内容会有丢失的风险

    5.6、可视模式( VISUAL )
    • 功能:用于文本的选择

      # v       基于字符选择的
      # V       基于行选择的
      # ctrl+v  基于文本块的选择
      
      • 1
      • 2
      • 3
    • 选择之后配合其他命令进行操作

    5.7、扩展:notepad++ 文本编辑插件
    • 功能:在windows平台联机编辑linux上的文件,保存之后,自动同步服务器上。
    • 前提:notepad++ 升级到最新版本
    • 安装插件:插件—>插件管理—>NppFTP
    • 插件的配置
  • 相关阅读:
    Clickhouse表引擎—集成系列引擎
    如何通过WinDbg获取方法参数值
    安卓手机浏览器怎么选择?多御浏览器有什么功能
    Allegro Design Entry HDL(OrCAD Capture HDL)元器件管理菜单详细介绍
    vue3 + quasar 弹窗的几种方式
    ROS1云课→09功能包小定制(CLI命令行接口)
    交叉熵与对数似然分析
    神奇英语语法系列(四)——非谓语
    详解初阶数据结构之顺序表(SeqList)——单文件实现SeqList的增删查改
    Android Jetpack系列(二): Lifecycle(使用篇)
  • 原文地址:https://blog.csdn.net/qq_45588318/article/details/127590054