当前位置: 首页 > news >正文

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构建数据时&#…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

git: early EOF

macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...