大数据开发工程师基本功修炼之史上最全linux学习笔记(建议收藏)(代码片段)

大数据Manor 大数据Manor     2022-12-19     503

关键词:


文章目录

前言

大家好,我是ChinaManor,直译过来就是中国码农的意思,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。

近6万字,没有更全的Linux笔记了!!

Linux是大数据中的基础,无论是运维或开发,都免不了要学,而且学的越扎实越好,下面为大家带来Linux学习笔记

操作系统概述

目标:了解 操作系统 的作用

1.1 操作系统(Operation System, OS)

操作系统作为接口的示意图:

没有安装操作系统的计算机, 通常被称为 裸机

  • 如果想在 裸机 上运行自己所编写的程序, 就必须用机器语言书写程序
  • 如果计算机上安装了操作系统, 就可以在操作系统上安装支持的高级语言环境,用于高级语言开发

1.2 操作系统的种类

  • 桌面操作系统
  • 服务器操作系统
  • 嵌入式操作系统
  • 移动设备操作系统

1.2.1 桌面操作系统

  • Window 系列
    • 用户群体大
  • macOS
    • 细节处理的更好, 没有windows软件丰富, 价格高
  • Linux
    • 应用软件少

1.2.2 服务器操作系统

  • Linux
    • 安全、稳定、免费
    • 占有率高
  • Windows Server
    • 付费
    • 占有率低

1.2.3 嵌入式操作系统

  • Linux

1.2.4 移动设备操作系统

  • IOS
  • Android (基于Linux)
  • 华为鸿蒙(基于linux)

1.2 发展史

  • linux 创始人: 林纳斯 托瓦兹
  • linux 诞生于: 1991年 作者上大学期间
  • 诞生原因:
    • 因为创始人 经常需要浏览新闻和处理邮件, 为了方便 读写 和 下载, 所以开发了 文件系统, 当时 21岁.

    • linux是开源免费

    • 后来经过全世界网友的支持, 现在能够兼容多种硬件

      唐纳德·特朗普

      弗拉基米尔·弗拉基米罗维奇·普京

      巴勃罗·迭戈·荷瑟·山迪亚哥·弗朗西斯科·德·保拉·居安·尼波莫切诺·克瑞斯皮尼亚诺·德·罗斯·瑞米迪欧斯·西波瑞亚诺·德·拉·山迪西玛·特立尼达·玛利亚·帕里西奥·克里托·瑞兹·布拉斯科·毕加索

1.3 内核

  • 内核(kernel) 是系统的心脏, 是运行程序和管理磁盘和打印机等硬件设备的核心程序.
  • Linux内核版本
    • 稳定版
      • 具有工业级强度, 可以广泛的应用和部署.
    • 开发版
      • 由于要试验各种解决方案, 所以变化很快
  • 内核源码网址: http:www.kernet.ort
    • 所有来自全世界的对linux源码的修改最终都会汇总到这个网站, 由 Linus 领导的开源社区对其进行甄别和修改, 最终决定是否进入到 LInux主线内核源码中

1.4 发行版

  • redhat:目前,全球最大的linux发行厂商,功能全面、稳定。
    • RedhatIBM 收购!
  • ubuntu:目前,是linux桌面操作系统做的最好的。
  • centos:免费版的redhat,centos 基于 redhat 发行版基础之上,再重新编译发布的版本。
    • 目前 centos 已经被 Redhat 公司收购,但是依然免费

2 系统安装

目标

  • 1: 使用 VM 虚拟机 模拟 电脑硬件
  • 2: 在虚拟的 电脑上 安装 centOS 操作系统( linux 发行版)
  • 3: 为了让别人能够访问操作, 配置 网络环境
  • 4: 使用远程客户端 CRTWinSCP 操作 linux操作系统
  • 5: 防止操作系统 意外损坏, 及时备份(快照)

2.1 VM虚拟机

2.1.1 概述

  • 虚拟机 (Virtual Machine) 指通过 软件模拟 的具有完整硬件系统功能的. 运行在一个完全隔离环境中的完整计算机系统
    • 虚拟系统通过生成现有操作系统的全新虚拟镜像, 具有真实操作系统完全一样的功能.
    • 进入虚拟系统后, 所有操作都是在这个独立全新的独立的虚拟系统里面进行, 可以独立安装运行软件, 保存数据, 不会对真正的系统产生任何影响
    • 而且现有在系统与虚拟镜像之间灵活切换的一类操作系统

2.1.2 安装虚拟机

详情请参考 资料(环境) 中《01_开启电脑虚拟化》,《02_安装虚拟机软件》word文档!

2.1.3 配置网卡

目标

  • 了解桥接 和 NAT 的 联网原理
  • 配置虚拟机的网卡信息

a. 网络原理

桥接原理

因为 虚拟机的linux系统的ip地址是固定的, 更换路由器后导致无法使用, 所以 不推荐使用


NAT原理

如果宿主电脑可以上网, 内部的虚拟机也可以上网就好了

NAT原理本质上就是 虚拟机实现了交换机的功能, linux系统的IP地址就不会随宿主电脑的ip地址更改而更改

推荐使用这种方式

b. 确保 VMnet8 已经启动

c. 设置VMnet8的ip地址

网关: 192.168.100.1

d. 确保所有关于VMWare的服务都开启

e 配置虚拟机的网卡

  • 核查 配置子网ip和子网掩码

  • 再次确认

2.2 centos是linux的发行版

2.2.1 目标

  • 在虚拟机上 安装centos系统 模拟 机房的一台服务器

2.2.2 路径

  • 第一步: 理解安装步骤
  • 第二步: 使用VM虚拟机 准备 硬件环境
  • 第三步: 在硬件环境 安装CentOs镜像
  • 第四步: 理解centos的文件和目录

2.2.4 实现

2.2.4.1 理解安装步骤

2.2.4.2 使用VM虚拟机 准备 硬件环境

  • 请参考资料中《03_创建虚拟主机》 word 文档

2.2.4.3 在硬件环境 安装CentOs镜像

  • 请参考资料中 《04_CentOS系统安装步骤》word 文档

2.2.4.4 配置网卡信息

目标
  • 能够让 宿主机新装的centOS 相互通信
第一步: 了解 网卡 和ip地址的概念
  • 网卡是一个专门负责网络通讯的硬件设备

  • ip地址是设置在网卡上的地址信息

  • 我们可以把 电脑 比作 手机, 网卡 相当于 手机卡槽, ip地址 相当于 手机号

  • IP地址

    • 每台联网的电脑上都有IP地址, 是保证电脑之间正常通讯的重要设置

      注意: 每台电脑的IP地址不能相同, 否则 会出现IP地址冲突, 并且没有办法正常通讯

第二步: 查看网卡信息
  • ifconfig 和 ping
序号命令对应英文作用
01ifconfigconfiguration
a newwork interface
查看/配置计算机当前的网卡信息
02ping ip地址ping检测到目标ip地址 的连接是否正常
03service network restart重启网卡服务
第三步: 通过 setup 命令设置网卡新
# 开始设置网卡信息
setup

重启网卡服务

测试能否上网, 注意: 前提是 宿主机必须能够上网

2.2.4.5 理解centos的文件和目录

  • windows 系统 可以拥有多个盘符, 如 C盘D盘E盘
  • Linux 没有盘符 这个概念, 有类似得分区(一个硬盘分多个分区)
  • Linux 所有文件都在‘根’(‘/’)目录下
  • Linux主要目录 速查表

  • /bin: 二进制命令所在的目录

  • /boot : 系统引导程序所需要的文件目录,引导系统开机

  • /dev :设备软件目录,磁盘,光驱,

  • /etc: 系统配置,启动程序
  • /home:普通用户的家,目录默认数据存放目录
  • /lib: 启动系统和运行命令所需的共享库文件和内核模块存放

  • /mnt:临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用

  • /opt:额外的应用软件包

  • /proc:操作系统运行时,进程信息和内核信息存放在这里

  • /root:Linux超级权限用户root的家目录
  • /sbin:和管理系统相关的命令,【超级管理员用】
  • /tmp:临时文件目录,这个目录被当作回收站使用

  • /usr:用户或系统软件应用程序目录

  • /var:存放系统日志的目录

  • 注意:一般不要 操作 非自己创建的目录和文件,否则可能导致服务器崩溃。

2.4 远程连接工具

2.4.1 secureCRT软件

  • secureCRT是Windows上 登录 服务器主机的软件
  • 主要是 通过命令行操作服务器

a.安装

  • 双击 下一步 就可以了

b.配置连接 linux系统

c. 修改主题和字体大小

d. 常用快捷键

tab键:命令或者路径提示及补全;

ctrl+c:放弃当前输入,终止当前任务或程序;

ctrl+l:清屏;

ctrl+shift+c:复制;

ctrl+shift+v:粘贴;

alt+b :打开connect窗口;

alt+1/2/3/4/5… :切换会话窗口

2.4.2 winSCP

  • 它的主要功能就是在本地远程计算机间 进行 文件 上传和下载
  • 使用 鼠标拖拽 即可完成

2.5 快照(备份)

2.5.1 目标

  • 快照就是 备份系统, 防止意外损坏, 降低损失

2.5.2 备份系统

a. 右键目标centos系统 -> 快照 -> 快照管理器

b. 拍摄快照

2.5.3 恢复到快照状态

a. 右键目标centos系统 -> 快照 -> 恢复到指定快照即可

3 常用命令

目标

  • 理解学习linux终端命令的原因
  • 学习技巧

01.学习Linux终端命令的原因

  • Linux刚面世时并没有图形界面, 所有的操作全靠命令完成, 如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等

  • 在职场中,大量的 服务器维护工作 都是在 远程 通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成!

  • 在职场中, 作为后端程序员, 必须要或多或少的掌握一些Linux常用的终端命令

  • Linux发行版本的命令大概有200多个, 但是常用的命令只有10多个而已

学习终端命令的技巧:

  • 不需要死记硬背, 对于常用命令, 用的多了, 自然就记住了。
  • 不要尝试一次学会所有的命令, 有些命令是非常不常用的,临时遇到, 临时百度就可以

windows系统命令体验

​ 参见《资料(环境)》 内的05_windows命令。

Linux终端命令格式

目标

  • 了解终端命令格式

  • 掌握常用命令

  • 了解知道如何查阅终端命令帮助信息

01.终端命令格式

command [-options] [parameter]

说明:

  • command : 命令名, 相应功能的英文单词或单词的缩写
  • [-options] : 选项, 可用来对命令进行控制, 也可以省略
  • parameter : 传给命令的参数, 可以是 零个、一个 或者 多个

1.1 常用Linux命令的基本使用

序号命令对应英文作用
01lslist查看当前目录下的内容
02pwdprint working derectory查看当前所在文件夹
03cd [目录名]change directory切换文件夹
04touch [文件名]touch如果文件不存在, 新建文件
05mkdir [目录名]make directory创建目录
06rm [文件名]remove删除指定的文件名
07clearclear清屏

02.目录(文件夹)常用命令

目标:文件夹的增、删、改、查的命令操作

2.1创建文件夹的命令

​ 格式:mkdir 目录名

​ mkdir -p 目录名1/目录名2/目录名3(嵌套)

​ 注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名

​ 示例: mkdir /opt/dir1

​ mkdir -p /opt/dir1/dir2/dir3/dir4

2.2删除文件夹的命令(谨慎使用,谨慎使用,谨慎使用

​ 格式:rm 文件夹 (有提示)

​ rm -f 文件夹 (取消提示)

​ rm -rf 文件夹 (递归删除)

​ rm -rf 结合通配符 * ? [abc][a-z]

​ rm -rf dir3*

​ 示例:rm -rf /opt/dir1/dir2/dir3/dir4

参数英文含义
-rrecursive (递归)递归地删除目录下的内容, 删除文件夹 时必须加此参数
-fforce (强制)强制删除,忽略不存在的文件, 无需提示

2.3修改文件夹的命令

格式:mv  旧文件夹名       新文件夹名

改变位置:mv 就路径 新路径(已经存在)

​ 示例: mv /opt/dir1 /opt/dir111

​ mv /opt/dir111 /opt/dir1/dir2/dir3

2.4查询文件夹的命令

​ 格式:ls 文件夹名 (包含权限、日期等信息)

​ ll 文件夹名 (不包含权限、日期等信息)

​ 列出某一目录内的内容(内容包括子文件夹和文件)

​ ls 或 ll 列举出当前文件夹内的文件夹和文件

​ 示例: ls /opt

​ ll /opt

2.5 其他命令

目录切换命令

​ 格式:cd 目标路径

​ cd …/ (进入上级目录)

​ 示例 : cd /opt

​ cd …/…/

软连接(快捷键)

​ 格式:ln -s 目标文件绝对路径 快捷方式路径

​ 示例:ln -s /opt/dir1/dir2/dir3 /dir3

当前位置

​ 格式:pwd

复制文件夹

​ 格式:cp -a 原文件夹 目标文件夹

练习:

​ 1、在/tmp目录下创建一个自己姓名的文件夹

​ 2、进入该文件夹,一次性创建文件夹/tmpdir1/tmpdir2/tmpdir3/tmpdir4/tmpdir5

​ 3、将文件夹tmpdir4及其子文件夹移动到与tmpdir1相同的目录

​ 4、创建tmpdir3的软连接到与tmpdir1相同的目录

​ 5、将tmpdir5 名称改为tmpdir555

​ 6、在目录tmpdir1下创建文件夹tmp1、tmp2、tmp3、tmp4

​ 7、查看tmpdir1目录下有哪些文件夹(包含详细信息)

​ 8、删除文件夹tmp1、tmp2、tmp3、tmp4

​ 9、一次性删除文件夹/tmp/姓名

03.文件常用命令

目标:文件的增、删、改、查的命令操作

3.1创建文件的命令

​ 创建空文件 - 格式:touch 文件名(文件存在、不存均可)

​ 创建有数据的文件 - 格式:echo ‘abc’ > 文件名(文件名不能存在)

​ 示例: touch test1.txt test2.txt test3.txt

​ echo ‘abc’ > test4.txt

3.2删除文件的命令(谨慎使用,谨慎使用,谨慎使用

​ 格式:rm 文件夹 (有提示)

​ rm -f 文件 (取消提示)

​ rm -rf 文件 (递归删除)

​ rm -rf 结合通配符 * ? [abc][a-z]

​ rm -rf *.txt

​ 示例:rm -rf test1.txt test2.txt

参数英文含义
-rrecursive (递归)递归地删除目录下的内容, 删除文件夹 时必须加此参数
-fforce (强制)强制删除,忽略不存在的文件, 无需提示

3.3修改文件的命令

格式:mv  旧文件名       新文件名

​ 示例: mv test3.txt test333.txt

3.4查询文件的命令

查看文件信息

​ 格式:ls 文件夹名 文件名 (包含权限、日期等信息)

​ ll 文件夹名 文件名 (不包含权限、日期等信息)

​ 列出某一目录内的内容(内容包括子文件夹和文件)

​ ls 或 ll 列举出当前文件夹内的文件夹和文件

​ 示例: ls /opt

​ ll /opt

查看文件前10行数据

​ 格式 : head 文件名 或 head -10 文件名

​ 示例 : head test1.txt 或 head -10 test1.txt

查看文件后10行数据

​ 格式: tail 文件名 或 tail -10 文件名 或 tail -f 文件名

​ 示例 : tail test1.txt 或tail -10 test1.txt

查看文件内容

​ 格式:more 文件名

​ 示例 :more test1.txt

查看所有

​ 格式:cat 文件名

过滤查看

​ 格式:grep 关键字 文件名

​ 示例: grep is profile

3.5 其他命令

文件追加

​ 格式:echo ‘abcde’ >> 文件名

​ 示例:echo ‘abcde’ >> test4.txt

复制文件

​ ​ 复制文件夹

​ 格式:cp 原文件 目标文件

练习:

​ 1、创建文件夹/opt/tmp/

​ 2、在/opt/tmp/文件夹内,一次性创建空文件 test1.txt、 test2.txt、 test3.txt、 test4.txt

​ 3、在/opt/tmp/文件夹内,一次性创建文件 test5.txt ,文件内含有数字123456789

​ 4、将文件 test5.txt 改为 test555.txt

​ 5、向test555.txt 文件追加20行数据,第一行1、第二行2、第三行3、… …(或每行内容自己定)

​ 6、查看test555.txt 文件前8行数据

​ 7、查看test555.txt 文件后15行数据

​ 8、删除文件test555.txt

​ 9、删除文件 test1.txt、 test2.txt、 test3.txt、 test4.txt

常用命令补充

ls 命令选项

选项英文含义
-aall显示指定目录下所有子目录与文件, 包含隐藏文件
(以 . 开头的文件为隐藏文件, 需要用 -a 参数才能显示)
-l以列表方式显示文件的详细信息
-hhuman-readable配合 -l 以人性化的方式显示文件大小
通配符含义
*代表 任意个数 的字符
?代表任意一个字符, 且只能是一个
[abc]匹配a、b、c中任意一个
[a-f]匹配从a到f范围内的任意一个字符

cd 命令选项

命令含义
cd -可以在最近的两次目录之间切换

cat 命令选项

命令含义
-n显示行号
-b非空行 显示行号

grep命令选项

​ grep 选项 关键字 文件名

命令含义
-n显示匹配行和行号
-i忽略大小写
-v显示 不包含关键字 的所有行
^a行首,搜索以a开头的行
ke$行尾,搜索以ke结束的行

查阅命令帮助信息(知道)

因为一个命令有很多可选项, 死记硬背肯定不行, 所以需要借助手册查阅.

–help 帮助信息

command --help

说明:

  • 显示 command 命令的帮助信息

缺点: 虽然可以查询命令的帮助信息, 但是没有提供 翻页、搜索功能.

终端使用技巧

自动补全

<

kettle8.2版本学习路线(史上最全,内附中文教程)

一、什么人适合学习kettle1、正在准备数据挖掘相关职位面试的同学2、学习过ETL基础知识、但希望通过真正的行业项目,认识更高级的模型和实际应用的同学3、对数据挖掘,大数据,BI应用有兴趣并希望以后从事该方面工作的同... 查看详情

史上最全的并发编程学习目录

目录一:线程基础知识1.并发编程的基本概念2.线程的基本操作3.线程之间的通信wait和notify4.join和yield以及sleep详解5.synchronized关键字讲解6.volatile原理7.线程组8.线程优先级9.守护线程10.ThreadLocal二:JDK并发包1.jdk并发工具类2.jdk并发... 查看详情

史上最全系列|大数据框架知识点汇总(资源分享还不快拿去)

...#xff0c;具体内容如下:关注公众号:【3分钟秒懂大数据】,回复关键字:【大数据】,进群领取下文全部PDF文件。1、大数据学习路线文章硬不硬核,你说了算,土哥怒肝大数据学习路线一条龙!ÿ... 查看详情

史上最全的机器学习资料(上)转

...十分之广,包括了MATLAB、Python、Clojure、Ruby等等。为了让开发者更加广泛、深入地了解机器学习,云栖社区组织翻译了GitHubAwesomeMachineLearning资源,涵盖24种编程语言的机器学习的框架、库以及其他相关资料。机器学习(MachineLearning... 查看详情

可能是史上最全的tensorflow学习资源汇总

 在之前的Tensorflow系列文章中,我们教大家学习了Tensorflow的安装、Tensorflow的语法、基本操作、CNN的一些原理和项目实战等。本篇文章将为大家总结Tensorflow纯干货学习资源,非常适合新手学习,建议大家收藏。想要学习更多... 查看详情

spark修炼之道——spark学习路线课程大纲

...。或补充、或删除。Spark修炼之道(基础篇)——Linux大数据开发基础(15讲)、L 查看详情

史上最全python工程师常见面试题集锦,有这一份就够了

从互联网诞生以来,基本上所有的程序都属于网络程序,也就需要设计到网络编程,在python中,就是在python程序本身这个进程内,链接别的服务器进程的通信端口进行通信。在Python程序员找工作的时候,京城被问到关于网络编程... 查看详情

(转)用户访问网站基本流程及原理(史上最全,没有之一)

...原理tcpip三次握手osi参考模型TCPIP模型处理过程以太网的数据链路大致流程路由解析静态路由 动态路由路由算法http协议原理www服务请求过程请求 查看详情

如何成为一个大数据工程师?学习路线图是什么?

...的路上很迷茫,不知道该如何成为一名合格的大数据开发工程师,也不知道该学习哪些技术,下面就给大家谈谈如何成为一个大数据开发工程师!想要成为大数据工程师,首先要更新自己的技术库,也就是说需要将自己以前学习... 查看详情

sentinel(史上最全)(代码片段)

...博客园版为您奉上珍贵的学习资源:sentinel基本概念开发的原因,需要对吞吐量(TPS)、QPS、并发数、响应时间(RT)几个概念做下了解,查自百度百科,记录如下: 查看详情

2021年最全mysql学习之路——从入门到进阶史上最全的学习路线

在校招面试中,mysql被问到频率是真的高,当初为了能够在mysql这块加分,看了不少书籍,在网上也找了不少资料,庆幸的是,每次面试官问到mysql相关知识,我基本都能对答如流,而且还能从一个... 查看详情

史上最全软件测试工程师常见的面试题总结多测师

1.自动化的测试原理?2.100个用户同事发帖  XXX  你希望的团队是怎么样子的?XXX3.连接俩个字符串使用什么命令??4.SCP和SFTP的区别?5.数据库的数据类型?6.你们公司是如何评价一个软件的质量的?7.你工作几年了... 查看详情

史上最全的springboot学习教程!会不断更新

史上最全的SpringBoot学习教程!会不断更新https://www.cnblogs.com/qiantao/p/14605154.html  查看详情

23篇大数据系列sql基础知识(史上最全,建议收藏)(代码片段)

作者简介蓝桥签约作者、大数据&Python领域优质创作者。维护多个大数据技术群,帮助大学生就业和初级程序员解决工作难题。我的使命与愿景:持续稳定输出,赋能中国技术社区蓬勃发展!大数据系列文章ÿ... 查看详情

史上最全it类学习资源

...源,主要是IT相关。从软件到硬件,从免费书籍到开发工具,从教程到源代码,它上面几乎是涵盖了所有你想学习的东西,简直是应有尽有。正如它的名字awesome一样,绝对awesome,用中文说,就 查看详情

要成为一名大数据开发工程师必备哪些技能?

首先我们要了解Java语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。大数据Java:只要了解一些基础即可,做大数据不需要很深的Java技术,学javaSE就相当于有学习大数据基础。Linux:因为大数据相关软件... 查看详情

23篇大数据系列scala基础知识全集(史上最全,建议收藏)(代码片段)

作者简介:蓝桥签约作者、大数据&Python领域优质创作者。管理多个大数据技术群,帮助大学生就业和初级程序员解决工作难题。我的使命与愿景:持续稳定输出,赋能中国技术社区蓬勃发展!大数据系列文... 查看详情

史上最全sql基础知识语法(代码片段)

...SQL基本介绍二、SQL基础1、SQL基本语法2、SQL库操作1)创建数据库2)显示数据库3)使用数据库4)修改数据库5)删除数据库6)总结3、SQL表(字段)操作1)创建数据表2)显示数据表3)查看数据表4)更改数据表5)更改字段①新增字段②字... 查看详情