Linux-基础知识(黑马学习笔记)
硬件和软件
我们所熟知的计算机是由:硬件和软件组成。
硬件:计算机系统中电子,机械和光电元件等组成的各种物理装置的总称。
软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流。
而操作系统,就是软件的一类。
一个完整的计算机:
操作系统
操作系统是计算机软件的一种,它主要负责:
作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。
而计算机,如果没有操作系统,就是一堆无法使用的塑料而已。
当计算机拥有了操作系统,就相当于拥有了灵魂,操作系统可以:
● 调度CPU进行工作
● 调度内存进行工作
● 调度硬盘进行数据存储
● 调度网卡进行网络通讯
● 调度音响发出声音
● 调度打印机打印内容
● ......
常见操作系统
不管是PC操作系统
还是移动操作系统
其功能都是:调度硬件进行工作 充当用户和硬件之间的桥梁
Linux的诞生
Linux创始人:林纳斯 托瓦兹
Linux诞生于1991年,作者上大学期间
现在能够兼容多种硬件,成为最为流行的服务器操作系统之一。
Linux内核
Linux系统的组成如下:
● Linux系统内核
● 系统级应用程序
● 内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。
● 系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:
文件管理器、任务管理器、图片查看、音乐播放等。
● 比如,播放音乐,无论用户使用自带音乐播放器或是自行安装的第三方播放器
● 均是由播放器程序,调用内核提供的相关功能,由内核调度CPU解码、音响发声等。
● 内核是Linux操作系统最核心的所在,系统级应用程序只是锦上添花。
● Linux内核是免费开源的,任何人都可以下载内核源码并查看且修改。
Linux发行版
内核是免费、开源的,这也就代表了:
● 任何人都可以获得并修改内核,并且自行集成系统级程序
● 提供了内核+系统级程序的完整封装,称之为Linux发行版
任何人都可以封装Linux,目前市面上由非常多的Linux发行版,常用的、知名的如下:
不同的发行版:
● 基础命令100%是相同的
● 部分操作不同(如软件安装)
虚拟机
借助虚拟化技术,我们可以在系统中,通过软件:模拟计算机硬件,并给虚拟硬件安装真实的操作系统。
这样,就可以在电脑中,虚拟出一个完整的电脑,以供我们学习Linux系统。
通过虚拟化技术,在电脑内,虚拟出计算机硬件,并给虚拟的硬件安装操作系统,即可得到一台虚拟的电脑,称之为虚拟机。
学习Linux系统,需要有Linux系统环境。
我们不能给自己电脑重装系统为Linux,所以通过虚拟机的形式,得到可以用的Linux系统环境,供后续学习使用。
虚拟化软件
通过虚拟化技术,可以虚拟出计算机的硬件,那么如何虚拟呢?
我们可以通过提供虚拟化的软件来获得虚拟机。
VMware WorkStation
课程选用VMware WorkStation软件来提供虚拟机。
下载地址: https://www.vmware.com/cn/products/workstation-pro.html
VMware WorkStation 安装
软件安装完成后,验证一下网络适配器是否正常配置。
在VMware上安装Linux
下载CentOS操作系统
首先,我们需要下载操作系统的安装文件,本次使用CentOS7.6版本进行学习:
https://vault.centos.org/7.6.1810/isos/x86_64/ (最后的/不要漏掉)
在VMware中安装CentOS操作系统
打开VMware软件
按照步骤创建虚拟机:
点击完成后,即开启了CentOS系统的安装,耐心等待安装完成即可,后续都是自动化的。
点击用户名:
输入密码:
体验Linux的快乐吧。
Mac系统Linux环境
VMware Fusion
在Windows系统中使用的VMware WorkStation未提供Mac版,Mac系统可以使用VMware Fusion Pro
Fusion Pro和 Workstation Pro均是VMware公司出品,完全兼容,体验基本是一致的。
下载地址: https://www.vmware.com/cn/products/fusion.html
VMware Fusion Pro安装
VMware Fusion Pro安装CentOS系统
首先,我们需要下载操作系统的安装文件,本次使用CentOS7.6版本进行学习:
https://vault.centos.org/7.6.1810/isos/x86_64/ (最后的/不要漏掉)
VMware Fusion Pro安装CentOS系统
图形化、命令行
对于操作系统的使用,有2种使用形式:
● 图形化页面使用操作系统
● 以命令的形式使用操作系统
不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。
● 图形化:使用操作系统提供的图形化页面,以获得图形化反馈的形式去使用操作系统。
● 命令行:使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。
Windows系统的图形化和命令行
Linux系统的图形化和命令行
使用命令行学习Linux系统
尽管图形化是大多数人使用计算机的第一选择,但是在Linux操作系统上,这个选择被反转了。
无论是企业开发亦或是个人开发,使用Linux操作系统,多数都是使用的:命令行。
这是因为:
● Linux从诞生至今,在图形化页面的优化上,并未重点发力。所以Linux操作系统的图形化页面:不好用,不稳定。
● 在开发中,使用命令行形式,效率更高,更加直观,并且资源占用低,程序运行更稳定。
FinalShell
既然决定使用命令行去学习Linux操作系统,那么就必须丰富一下工具的使用。
我们使用VMware可以得到Linux虚拟机,但是在Linux中操作Linux的命令行页面不太方便,主要是:
● 内容的复制、粘贴跨越VMware不方便
● 文件的上传、下载跨越VMware不方便
● 也就是和Linux系统的各类交互,跨越VMware不方便
我们可以通过第三方软件,FinalShell,远程连接到Linux操作系统之上。
并通过FinalShell去操作Linux系统。
这样各类操作都会十分的方便。
FinalShell的下载地址为:
Windows:
http://www.hostbuf.com/downloads/finalshell_install.exe
Mac:
http://www.hostbuf.com/downloads/finalshell_install.pkg
下载完成后双击打开安装。
Windows系统安装FinalShell
按照提示一直下一步即可安装完成。
Mac系统安装FinalShell
打开下载的pkg文件,按照提示下一步即可安装成功。
连接到Linux系统
首先,先查询到Linux系统的IP地址
打开Finshell软件,配置到Linux系统的连接(Mac和Windows系统的操作一致,不再分开赘述)
按图示配置连接,并点击确定
打开连接管理器
双击刚刚配置好的连接
点击接受并保存
如图连接成功
注意: Linux虚拟机如果重启,有可能,发生IP改变 如果改变IP需要在FinalShell中修改连接的IP地址
后面我们会讲解如何固定IP地址不发生改变
拓展:WSL(Windows Subsystem for Linux)
为什么要用WSL
WSL作为Windows10系统带来的全新特性,正在逐步颠覆开发人员既有的选择。
● 传统方式获取Linux操作系统环境,是安装完整的虚拟机,如VMware
● 使用WSL,可以以非常轻量化的方式,得到Linux系统环境
为什么要用WSL,其实很简单:
● 开发人员都在用,大家都用的,我们也要学习
● 实在是太方便了,简单、好用、轻量化、省内存
什么是WSL
WSL:Windows Subsystem for Linux,是用于Windows系统之上的Linux子系统。
作用很简单,可以在Windows系统中获得Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。
简而言之:
Windows10的WSL功能,可以无需单独虚拟一套硬件设备
就可以直接使用主机的物理硬件,构建Linux操作系统
并不会影响Windows系统本身的运行
WSL部署
● WSL是Windows10自带功能,需要开启,无需下载
点击确定后会进行部署
最后重启即可。
● 打开Windows应用商店
● 搜索Ubuntu
点击获取并安装
点击启动
输入用户名用以创建一个用户:
输入两次密码确认(注意,输入密码没有反馈,不用理会,正常输入即可)
至此,得到了一个可用的Ubuntu操作系统环境
安装Windows Terminal软件
Ununtu自带的终端窗口软件不太好用,我们可以使用微软推出的:Windows Terminal软件
在应用商店中搜索terminal关键字,找到Windows Terminal软件下载并安装
再次打开Windows Terminal软件,即默认使用Ubuntu系统了(WSL)
虚拟机快照
VMware虚拟机(Workstation和Funsion)支持为虚拟机制作快照。
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
相关文章:

Linux-基础知识(黑马学习笔记)
硬件和软件 我们所熟知的计算机是由:硬件和软件组成。 硬件:计算机系统中电子,机械和光电元件等组成的各种物理装置的总称。 软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流。 而操作系统…...

SpringBoot项目启动报java.nio.charset.MalformedInputException Input length = 1解决方案
报错详情 SpringBoot启动报错java.nio.charset.MalformedInputException: Input length 1 报错原因 出现这个的原因,就是解析yml文件时,中文字符集不是utf-8的原因,这是maven在项目编译时,默认字符集编码是GBK。 解决方式 检…...

【Unity2019.4.35f1】配置JDK、NDK、SDK、Gradle
目录 JDK NDK SDK 环境变量 Gradle JDK JDK:jdk-1.8版本Java Downloads | Oracle 下载要登录,搜索JDK下载公用账号:Oracle官网 JDK下载 注册登录公共账号和密码_oracle下载账号-CSDN博客 路径:C:\Program Files\Java\jd…...
MySQL中的高级查询
通过条件查询可以查询到符合条件的数据,但如同要实现对字段的值进行计算、根据一个或多个字段对查询结果进行分组等操作时,就需要使用更高级的查询,MySQL提供了聚合函数、分组查询、排序查询、限量查询、内置函数以实现更复杂的查询需求。接下…...
leetcode383赎金信
用字符数组ch来记录magazine每个字母出现频率,用ransomNote的字母减去字符数组ch对应的字符出现频率,如果该字符对应的频率小于0,则不够,无法组成ransomNote! class Solution { public:bool canConstruct(string rans…...

【Unity3D】ASE制作天空盒
找到官方shader并分析 下载对应资源包找到\DefaultResourcesExtra\Skybox-Cubed.shader找到\CGIncludes\UnityCG.cginc观察变量, 观察tag, 观察代码 需要注意的内容 ASE要处理的内容 核心修改 添加一个Custom Expression节点 code内容为: return DecodeHDR(In0, In1);outp…...

MyBatisPlus常用注解
目录 一、TableName 二、TableId 三、TableField 四、TableLogic 一、TableName 在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表 由此得出…...
Putty中运行matlab文件
首先使用命令 cd /home/ya/CodeTest/Matlab进入路径:到Matlab文件夹下 然后键入matlab,进入matlab环境,如果main.m文件在Matlab文件夹下,直接键入main即可运行该文件。细节代码如下: Unable to use key file "y…...

ES6 | (一)ES6 新特性(上) | 尚硅谷Web前端ES6教程
文章目录 📚ES6新特性📚let关键字📚const关键字📚变量的解构赋值📚模板字符串📚简化对象写法📚箭头函数📚函数参数默认值设定📚rest参数📚spread扩展运算符&a…...

生产环境下,应用模式部署flink任务,通过hdfs提交
前言 通过通过yarn.provided.lib.dirs配置选项指定位置,将flink的依赖上传到hdfs文件管理系统 1. 实践 (1)生产集群为cdh集群,从cm上下载配置文件,设置环境 export HADOOP_CONF_DIR/home/conf/auth export HADOOP_CL…...

【lesson59】线程池问题解答和读者写者问题
文章目录 线程池问题解答什么是单例模式什么是设计模式单例模式的特点饿汉和懒汉模式的理解STL中的容器是否是线程安全的?智能指针是否是线程安全的?其他常见的各种锁 读者写者问题 线程池问题解答 什么是单例模式 单例模式是一种 “经典的, 常用的, 常考的” 设…...
【LeetCode每日一题】单调栈316去除重复字母
题目:去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 示例 1: 输入:s “bcabc” 输…...

【Git】Gitbash使用ssh 上传本地项目到github
SSH Git上传项目到GitHub(图文)_git ssh上传github-CSDN博客 前提 ssh-keygen -t rsa -C “自己的github电子邮箱” 生成密钥,公钥保存到自己的github的ssh里 1.先创建一个仓库,复制ssh地址 git init git add . git commit -m …...

activeMq将mqtt发布订阅转成消息队列
1、activemq.xml置文件新增如下内容 2、mqttx测试发送: 主题(配置的模糊匹配,为了并发):VirtualTopic/device/sendData/12312 3、mqtt接收的结果 4、程序处理 package comimport cn.hutool.core.date.DateUtil; imp…...
Go语言教程
一、引言 Go(又称Golang)是由Google开发的一种静态类型、编译型的开源编程语言。它旨在提供简单、快速和可靠的软件开发体验。Go语言结合了动态语言的开发效率和静态语言的安全性能,特别适用于网络编程、系统编程和并发编程。本教程将介绍Go…...

分布式锁的应用场景及实现
文章目录 分布式锁的应用场景及实现1. 应用场景2. 分布式锁原理3. 分布式锁的实现3.1 基于数据库 分布式锁的应用场景及实现 1. 应用场景 电商网站在进行秒杀、特价等大促活动时,面临访问量激增和高并发的挑战。由于活动商品通常是有限库存的,为了避免…...

嵌入式Linux中apt、apt-get命令用法汇总
在Linux环境开发过程中接触ubuntu虚拟机时,在安装软件或者更新软件时apt和apt-get命令使用相对较频繁,下面对这两个命令的用法进行汇总。 apt(Advanced Package Tool)和 apt-get 是用于在基于 Debian 的 Linux 发行版中进行软件包…...

Unity之ShaderGraph如何实现水面波浪
前言 这几天通过一个水的波浪数学公式,实现了一个波浪效果,感觉成就感满满,下面给大家分享一下 首先先给大家看一下公式; 把公式转为ShaderGraph 第一行公式:waveType = z*-1*Mathf.Cos(wave.WaveAngle/360*2*Mathf.PI)+x*Mathf.Sin(WaveAngle/360*-2*Mathf.PI) 转换…...

无线局域网(WLAN)简单概述
无线局域网 无线局域网概述 无限局域网(Wireless Local Area Network,WLAN)是一种短距离无线通信组网技术,它是以无线信道为传输媒质构成的计算机网络,通过无线电传播技术来实现在空间传输数据。 WLAN是传输范围在1…...

学习数仓工具 dbt
DBT 是一个有趣的工具,它通过一种结构化的方式定义了数仓中各种表、视图的构建和填充方式。 dbt 面相的对象是数据开发团队,提供了如下几个最有价值的能力: 支持多种数据库通过 select 来定义数据,无需编写 DML构建数据时&#…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...