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

Posted ChinaManor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议收藏)相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

文章目录

前言

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

在这里插入图片描述

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

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

操作系统概述

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

1.1 操作系统(Operation System, OS)

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

1558233351754

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

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

1.2 操作系统的种类

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

1.2.1 桌面操作系统

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

1.2.2 服务器操作系统

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

1.2.3 嵌入式操作系统

  • Linux

1.2.4 移动设备操作系统

在这里插入图片描述

1.2 发展史

1558319402471

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

    • linux是开源免费

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

      唐纳德·特朗普

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

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

1.3 内核

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

1.4 发行版

1558235184585

  • 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. 网络原理

桥接原理

img

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


NAT原理

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

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

img

推荐使用这种方式

b. 确保 VMnet8 已经启动

1558337009634

c. 设置VMnet8的ip地址

网关: 192.168.100.1

在这里插入图片描述

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

1558336761406

1558336839933

e 配置虚拟机的网卡

1558337229189

1558337610312

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

img

  • 再次确认

img

2.2 centos是linux的发行版

2.2.1 目标

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

2.2.2 路径

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

2.2.4 实现

2.2.4.1 理解安装步骤

1558240245826

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

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

2.2.4.3 在硬件环境 安装CentOs镜像

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

2.2.4.4 配置网卡信息

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

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

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

  • 1558344879693

  • IP地址

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

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

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

1558247190917

1558247220178

1558247246532

1558247368564

1558247409260

1558247452026

1558247491063

1558247601610

重启网卡服务

1558247798178

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

1558248052904

2.2.4.5 理解centos的文件和目录

在这里插入图片描述

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DrvaDM49-1624684684145)(assets%5CUsers%5CAdministrator%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1569551112308.png)]

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

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

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

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

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

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

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

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

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

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

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

2.4 远程连接工具

1558345029327

2.4.1 secureCRT软件

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

a.安装

  • 双击 下一步 就可以了

b.配置连接 linux系统

1558255252717

1558255293658

1558255346247

1558255408532

c. 修改主题和字体大小

1558255508796

1558255614919

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qXQz5H1N-1624684684149)(assets/1558255659233.png)]

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. 拍摄快照

1558256455340

2.5.3 恢复到快照状态

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

3 常用命令

目标

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

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

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

  • 在职场中,大量的 服务器维护工作 都是在 远程 通过SSH客户端 来完成的, 并没有图形界面, 所有的维护工作都需要通过命令来完成!
    - [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gxptoali-1624684684149)(assets%5CUsers%5CAdministrator%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5C1569553614037.png)]

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

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

学习终端命令的技巧:

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

windows系统命令体验

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

1558233351754

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 命令的帮助信息

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

终端使用技巧

自动补全

以上是关于大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章

大数据开发工程师基本功修炼之Linux学习笔记

大数据开发工程师基本功修炼之Linux学习笔记

大数据开发工程师基本功修炼之Linux学习笔记

[原]开源框架Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位...

python学习教程,史上最全面的python学习路线图

史上最全“大数据”学习资源整理