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

初步认识Linux系统

前言

        Linux系统具有许多优点,不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。

        和我们日常使用的window系统有所不同。Linux通常用在后端之上,根据不同的用途有不同的适配版本。在学习之上,我使用的是Centos7 + Ubuntu20.04/22.04.前期使用的是Centos7。和目前使用的window系统最大的不同在于,Linux系统不是图形化的界面,对于大众使用起来不是很方便。

        本博客会设计到一些历史方面关于计算机和Linux系统,文字部分会比较多。然后会简单的涉及到Linux的简单操作,只会比较简单的。然后会用Linux写一个简单的C语言文件并且在Linux系统上跑起来。

一、计算机发展历史

1、计算机历史

        第一台计算机出现于1945年2月14日,名称是埃尼阿克。

        之后有科学家提出了摩尔定律其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半。

        这条定律预示了计算机的小型化和高性能化,于是计算机私人公司分为了两种派系。一种是认为计算机只能面向于企业做大型计算机的,例如:IBM公司等。另一种是面向个人的计算机,例如:苹果、微软、英特尔等公司。

        在出现众多计算机,并且计算机对于民众持有率提升之后,就形成了“计算机+互联网”的时代。两种派系的分别发展,也在此时合二为一。

        再往后走进入了pc互联网时代,直到现在手机的新起。智能手机其实也是一台计算机,于是进入了移动互联网时代。

2、计算机系统的历史

        计算机的功能主要包括三步:输入->计算->输出。

        随着计算愈来愈复杂,操作系统的出现就成为了必然。

        首先诞生的是Unix,当时的系统使用的是汇编语言。在诞生了C语言之后,两位大佬肯汤普森和丹尼斯里奇对Unix操作系统进行了重写,于是出现了苹果OS和微软OS。

3、Linux的诞生

        随着计算机的小型化,以及计算机出现了操作系统后。计算机必然会进入高校中。

        1991年芬兰赫尔辛基大学的学生林纳斯·本纳第克特·托瓦兹基于Unix自己编写了一款操作系统,这就是最初的Linux。并且直接将Linux进行了开源。

        这个时候的所有操作系统刚开始诞生,都没有图形化的界面。

二、Linux介绍

1、主要特征

1.1、基本思想

        Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

1.2、完全免费

        Linux是一款免费(或自由,即free)的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

1.3、兼容POSIX

        这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

1.4、多用户、多任务

        Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

1.5、良好的界面

        Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

1.6、支持多种平台

        Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

2、系统功能

        系统内核的路由转发

        Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由转发依赖作为路由器的主机中安装多块网卡,当某一块网卡接收到数据包后,系统内核会根据数据包的目的IP地址,查询路由表,然后根据查询结果将数据包发送到另外一块网卡,最后通过此网卡把数据包发送出去。此主机的处理过程就是路由器完成的核心功能。 

        通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查Linux内核是不是开启IP转发功能。如果结果为1,表明路由转发功能已经开启;如果结果为0,表明没有开启。出于安全考虑,Linux内核默认是禁止数据包路由转发的。在linux系统中,有临时和永久两种方法启用转发功能。 

        临时启用:此种方法只对当前会话起作用,系统重启后不再启用。临时开启的命令格式:sysctl–wnet.ipv4.ip_forward=1。 

        永久启用:此种永久性的启用IP转发功能,通过更改配置文件/etc/sysctl.conf中的语句行“net.ipv4.ip_forward=0”,修改为“net.ipv4.ip_forward=1”,保存配置文件后执行命令sysctl–p/etc/sysctl.conf,配置便立即启用。 

3、系统优势

3.1、代码开源

        Linux由众多微内核组成,其源代码完全开源;

3.2、网络功能强大

        Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;

3.3、系统工具链完整

        Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

三、Linux安装

        因为Linux是开源的,所以可以直接去网站下载(www.kernel.org)。我们电脑已经window系统所以,使用Linux需要安装虚拟机,或者直接换掉系统。

        这里我用的是另一种方法,在网上挑了云服务器,安装Linux系统用。关于云服务器使用手册如下:

        (1)挑选最便宜的云服务器,因为我们的代码不是用于商用或者大型企划。

        (2)找到云服务器的实例,找到你的公网IP。

        (3)注意系统的选择使用的系统是centos7或者Ubuntu20.04/22.04.

        (4)云服务器实例中首先能够重置root密码。

        (5)安装登录软件,例如xshell等,也可以使用云服务自带的登录器或者电脑的命令控制符,window的系统也是可以链接Linux的。

        (6)开始登录

四、Linux的使用

        我使用的云是腾讯云,用的是轻量级应用服务器,因为有一个月的试用,所以暂时不花钱。如果长期使用,华为云会更加好一些,便宜。总之什么适合你就用啥就行。

1、登录

        如果在登录器上登录,很简单输入IP和密码登录即可。进入以下界面就表示登录成功了:

        如果使用命令控制符登录可以输入 "ssh root@(IP地址)",IP地址如下,用黑笔图了的地方,每个人IP都不同:

        进入了之后输入密码登录,这里密码不回显,所以不要乱按。

        到这里就算链接完成了,如果没有显示。

2、命令操作

        因为Linux是命令操作,所以我们需要熟系有哪些操作命令。

2.1、登录账户/账户操作

        使用“whoami”能够查看登录使用的身份:

        这里第一次登录使用的是root也就是最高权限账户,我们也可以创建子账户。在那之前我们可以看看服务器上有哪些能够登录的账户“ls /home/”:

                这里就能看出来有两个账户,如果我们没有这么多账户希望新建一个子账户使用“useradd”创建对应账户的名称:

        这个时候需要修改用户密码,使用“passwd + 用户名”,注意这里用户的密码不能太短或者太简单,同时会要求重复输入两次密码。另外,输入的密码也是不回显的:

        以上是密码重复输入错误和密码太简单的举例,正确的如下:

        最后一句的意思就是修改成功了。

        如果不需要这个账户也可以使用“userdel -r + 用户名”删除,不要直接“userdel  + 用户名”,不然系统会出问题。这个时候查询的用户在,但是不能使用。正确方式如下:

        这样关于用户的操作就完了。

2.2、clear

        “clear”能够清理操作界面:

        这里加回车之后,界面就回到第一行,且之前的操作都看不见了。

2.3、ls + 其他指令

        ls指令的作用是查找文件夹之下有什么文件,如果需要查找当前目录下的文件有许多相关指令:

        (1)#ls:查找当前目录下的文件名.

        我们这里先返回到根目录“/”处,然后就可以使用ls查看当前目录下有什么内容。

        这里蓝色的字体都是文件,不同颜色表示不同作用。

        (2)ls -l 和 ll :查看文件的更多属性。

        “ll”操作其实是“ls -l”的重命名,使用之后结果如下:

        这里d开头的“dr-xr-x---”表示这是一个目录,其他开头表示另外性质的文件。

        所以再ls后面增加“-l”能够然文件信息更加详细。

        (3)ls -a:显示全部文件(显示隐藏)

        像我们window系统也有隐藏的文件Linux也一样。用上面的命令就能查看所有文件。

        我们先进入“root”目录,然后使用两种方式查看,能够看到“ls -a”能够看到“.”开头的文件,这些文件就是隐藏文件。

        (4)指令组合

        像“-a”,“-l”这样的指令能够组合使用,可以用任意顺序组合,效果都是一样的。例如“ls -a -l”、“ls -l -a”、“ls -al”、“ls -la”。这些指令都是查看目录下所有文件的属性。

        可以看到有“.”、“..”文件,这个文件是每个目录都存在的,“.”的作用是表示当前目录,“..”的作用是上级目录。

2.4、cd + 目录地址

        cd的作用就是移动自己所在的地址,例如“cd ..”表示返回上级目录,“cd ./root”表示进入当前目录的root目录文件。这里的地址可以写的很详细,但是“cd root”和“cd ./root”的作用是一样的。也就是说能够当前文件夹这样的写法是可以实现的。“cd”指令在上面的文件操作中使用过了,所以不再举例。

2.5、pwd

        pwd能够打印当前所处路径:

        那么现在我们处在根目录下。移动到root就到了root目录下:

2.6、mkdir

        我们能够创建新的目录,mkdir:增加目录,使用方式:mkdir + 文件名:

        如果我们想建立一串目录,就需要增加指令“-r”。例如我想创建a/b/c/d,如果直接用“mkdir”是无法创建的,增加指令“-r”才行。

        这了的tree指令能打印当前文件夹之下的文件,并将子文件展开。

        如果无法使用tree命令,在centos下使用指令“yum install -v tree”安装tree命令。

2.7、stat

        stat能够查看文件的属性,包括创建时间、大小等等文件信息内容,这写内容对于window系统也一样。需要有一些信息来维护这个文件。

        window:

2.8、which

        which能够查找文件所在的位置:

        但是需要设置环境变量计算机才能找到,这里举例查找的都是之前写过的指令,同时也说明这些指令也是人为写好的文件。

        查找之后下面一行就是文件所在的路径。

        这里的alias表示的是取别名的意思。

2.9、rmdir

        “rmdir”能够删除空目录:

        但是不能删除除空目录以外的文件,如果需要删除文件请使用“rm + 文件名”。

        同样的这里之前创建的文件“a”也不能删除,因为它的下面有:b/c/d。但是一个一个删除太麻烦了,我们可以使用“rm + -r + 文件名”来删除递归文件。

        这里因为使用的是root用户,他的权利太大,所以删除文件的时候系统会问你要不要删除,如果要删除再用“y”确认即可,不想删除就输入“n”。使用其他用户删除自己创建的文件时不会询问。

        如果你不想让系统问,也可以增加“-f”指令,让系统不询问是否删除。但是需要注意的是,这条指令不要乱用,因为不会询问,如果在根目录直接用“rm -r -f /”那么这个系统就完蛋了。所以需要注意自己的权限,以及指令不要乱用,不然系统挂了在公司里要追责的。

        当然如果是其他用户在根目录下也不会让你删除东西,除了root用户。如果是自己学习的时候买的云系统,现在大家还能用root用户在“/”目录下使用“rm -r -f /”,之后等着重装系统就完了。

        总之删除命令不要轻易加“-f”。

2.10、man

        “man + 文件名”能够查看当前文件的手册,例如“man ls”能够查看ls的作用:

        按q退出。

        当然其他的也能够查看,例如“man man”:

        

        使用方法还是很简单的,如果想查看C语言的手册可以增加指令“3”:

        在那之前需要使用指令“# yum install -y man-pages”对指令进行下载。“man”找的是函数的,所以不要去找库或者关键字的手册,因为没有。

        用“man”查找“printf”也能查找出来,但是这个“printf”不是C语言的“printf”,而是Linux自己的“printf”,Linux的“printf”能够在自己的界面上打印字符串。使用方式和C语言类似,这里不过多描述了。

3、Linux下第一个C语言文件

        首先使用“#vim code.c”创建并进入code.c文件:

        书写C语言内容如上所示。按“Esc”再按“CTRL+z”退出。

        如果要重新进入“code.c”文件使用命令“cat”,例如“cat code.c”。

        使用gcc编译代码,之后会出现对应可执行文件“mycmd”:

        该文件直接打开就能使用。

五、Linux相关知识点

        该章节内容是对第四章节的一个补充,知识点和代码操作不分家。系统中的这些相关知识点其实对于所有系统都是类似的,因为他们都来自Unix。

        在电脑中无论是Windows还是Linux,目录 == 文件夹。

        如果建立一个空文件,虽然该文件中没有内容但是也要占据空间。因为维护文件的存在需要有维护文件的内容,这些信息也是储存在电脑中的。

        文件 = 内容 + 属性

        那么文件的操作分为两种,一种是对文件内容操作,另一种是对属性进行操作。

        例如“ls”就是显示文件属性,只有ls就只显示文件名。用“ll”或者“ls -l”会显示详细信息,显示“d”开头表示:目录,“-”开头表示普通文件。

        Windows中:“\”是路径分隔符,Linux中:“/”是路径分隔符。

        每个目录都有连个隐藏目录“.”“..”。分别表示当前目录和上级目录。

        Linux的文件结构,是一颗从根目录“/”开始的多叉树:

        a.叶子结点:一定是普通节点或者空目录。

        b.非叶子节点:一定是非空目录。

        文件中分为相对路径和绝对路径,这个道理和Windows是相同的。

        在路径或者文件名中可以用“*”表示不确定的部分,在前或者在后。

结语

        本节的重点在于Linux的进入以及简单的操作,然后需要认识到,对于电脑来说所有的操作其实都来源于文件。像windows的桌面,其实也是一个文件。我们进入系统会默认用用户登录然后进入用户的初始界面,最后显示图像出来。实际上桌面也是一个文件夹,我们可以在C盘的user中找到对应的桌面文件,里面的内容和桌面上的显示相同。

        大致就是这样,可以说文件是计算机系统的基础。

        下一篇博客可能会出的晚点,主要是实现用于实操去了。总之,感谢大家的支持了。

相关文章:

初步认识Linux系统

前言 Linux系统具有许多优点,不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用&#xff0c…...

JavaScript AI 编程助手

JavaScript AI 编程助手 引言 随着人工智能技术的飞速发展,编程领域也迎来了前所未有的变革。JavaScript,作为全球最流行的编程语言之一,其与AI的结合为开发者带来了巨大的便利和无限的可能性。本文将探讨JavaScript AI编程助手的定义、功能…...

达梦数据库的系统视图v$datafile

达梦数据库的系统视图v$datafile 达梦数据库的V$DATAFILE 是一个重要的系统视图,提供了有关数据库数据文件的信息。 V$DATAFILE 系统视图 V$DATAFILE 视图用于显示数据库中每一个数据文件的详细信息。通过查询这个视图,数据库管理员可以了解数据文件的…...

Triton/window安装: triton-2.0.0-cp310-cp310-win_amd64.whl文件

下面这个github仓: https://github.com/PrashantSaikia/Triton-for-Windows/tree/main 安装命令也很简单,下载到本地后运行: pip install triton-2.0.0-cp310-cp310-win_amd64.whl...

应急响应-DDOS-典型案例

某单位遭受DDoS攻击事件如下 事件背景 2019年2月17日,某机构门户网站无法访问,网络运维人员称疑似遭受DDoS攻击,请求应急响应工程师协助。 事件处置 应急响应工程师在达到现场后,通过查看流量设备,发现攻击者使用僵…...

JAVA学习之知识补充(下)

六:File类与IO流: 这里给出三种常见的初始化方法: 通过文件路径初始化: File file new File("C:/example/test.txt");这种方法用于创建一个文件对象,该文件对象表示指定路径的文件或目录。例如:File fil…...

qt生成一幅纯马赛克图像

由于项目需要&#xff0c;需生成一幅纯马赛克的图像作为背景&#xff0c;经过多次测试成功&#xff0c;记录下来。 方法一&#xff1a;未优化方法 1、代码&#xff1a; #include <QImage> #include <QDebug> #include <QElapsedTimer>QImage generateMosa…...

python循环——九九乘法表(更加轻松的理解循环结构)

感受 首先&#xff0c;得明确意识到这个问题&#xff0c;就是我的循环结构学的一塌糊涂&#xff0c;完全不能很好的使用这个循环来实现各种九九乘法表达输出&#xff0c;这样的循环结构太差了&#xff0c;还需要我自己找时间来补充一下循环的使用&#xff0c;来拓宽自己的思考方…...

UDS诊断系列之十八故障码的状态掩码

在谈19服务的子功能之前&#xff0c;先说一下故障码&#xff08;DTC&#xff09;的状态掩码是什么。 一、状态掩码 状态掩码由八个状态位构成&#xff0c;客户端利用它向服务器请求与其状态相匹配的DTC信息。当服务器接收到来自客户端的请求时&#xff0c;它会通过过滤匹配的…...

【jvm】直接引用

目录 1. 说明2. 形式3. 特点4. 生成过程5. 作用 1. 说明 1.在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;直接引用&#xff08;Direct Reference&#xff09;是相对于符号引用&#xff08;Symbolic Reference&#xff09;而言的&#xff0c;它是指向内存中实际存在的…...

PythonStudio 控件使用常用方式(二十七)TActionList

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…...

PDF 转Word 开源库

1. Apache PDFBox Apache PDFBox 是一个开源的 Java 库&#xff0c;用于创建和操作 PDF 文档。虽然 PDFBox 本身没有直接支持 PDF 转 Word 的功能&#xff0c;但它可以提取 PDF 内容&#xff0c;你可以结合其他方法将这些内容写入 Word。 添加依赖 <dependency><gr…...

Docker - 深入理解Dockerfile中的 RUN, CMD 和 ENTRYPOINT

RUN docker file 中的 RUN 命令相对来教容易理解 RUN 指令用于在构建镜像时执行命令&#xff0c;这些命令会在 Docker 镜像的构建过程中执行。常用于安装软件包、设置环境变量、创建目录等。RUN 指令会在镜像构建中创建新的镜像层&#xff0c;每个 RUN 指令都会创建一个新的镜…...

Python 函数式编程 内置高阶函数及周边【进阶篇 3】推荐

前面我们已经总结并实践了用python获取到了数据。也介绍了python中http网络请求的几种方式&#xff0c;正在学习python开发语言或者对python3知识点生疏需要回顾的请点这里 &#xff0c;本章主要总结了函数式编程及特点 和 python中内置的高阶函数及周边知识&#xff0c;方便自…...

【Rust光年纪】探秘Rust GUI库:从安装配置到API概览

Rust语言GUI库全方位比较&#xff1a;选择适合你的工具 前言 在现代软件开发中&#xff0c;图形用户界面&#xff08;GUI&#xff09;库扮演着至关重要的角色。随着Rust语言的不断发展&#xff0c;越来越多的优秀的GUI库也相继问世&#xff0c;为Rust开发者提供了更多选择。本…...

Element plus部分组件样式覆盖记录

文章目录 一、el-button 样式二、Popconfirm 气泡确认框三、Popover 气泡卡片四、Checkbox 多选框五、Pagination 分页六、Form 表单七、Table 表格 一、el-button 样式 html&#xff1a; <el-button class"com_btn_style">button</el-button>样式覆盖…...

重塑业务生态,Vatee万腾平台:引领行业变革的新引擎

在数字经济浪潮汹涌的今天&#xff0c;传统行业的边界正被不断模糊与重塑&#xff0c;新兴技术如云计算、大数据、人工智能等正以前所未有的速度改变着商业世界的面貌。在这一背景下&#xff0c;Vatee万腾平台应运而生&#xff0c;以其独特的创新模式和强大的技术实力&#xff…...

标准术语和定义中的【架构】应该如何描述

一、参考国家标准和国际标准中对“架构”的描述 &#xff08;1&#xff09;GB/T 8566-2022 国家标准 架构的术语描述&#xff1a;(系统)在其环境中的一些基本概念或性质,体现在其元素关系,以及设计与演进原则中。 &#xff08;2&#xff09;ISO/IEC/IEEE 42010 国际标准 架构的…...

华为鸿蒙Core Vision Kit 骨骼检测技术

鸿蒙Core Vision Kit 是华为鸿蒙系统中的一个图像处理框架&#xff0c;旨在提供各种计算机视觉功能&#xff0c;包括物体检测、人脸识别、文本识别等。骨骼检测是其中的一项功能&#xff0c;主要用于检测和识别人类身体的骨骼结构。 骨骼检测的关键点 骨骼点检测&#xff1a;通…...

Table API SQL系统(内置)函数System (Built-in) Function详解

目录 函数类型 引用函数 函数精确引用 函数模糊引用 函数解析顺序 精确的函数引用 模糊的函数引用 系统函数 标量函数(Scalar Functions) 比较函数(Comparison Functions) 逻辑函数(Logical Functions) 算术函数(Arithmetic Functions) 字符串函数(Strin…...

一键运行RocketMQ5.3和Dashboard

一键运行RocketMQ5.3和Dashboard 目录 一键运行RocketMQ5.3和Dashboard通过Docker Compose 来一键启动运行的容器包括docker-compose.yml文件运行命令启动本地效果查看 参考信息 通过Docker Compose 来一键启动 运行的容器包括 NameServerBrokerProxyDashBoard docker-compo…...

HAL STM32 SG90舵机驱动控制

HAL STM32 SG90舵机驱动控制 &#x1f516;测试对象&#xff1a;STM32F103SG90舵机 &#x1f33c;功能实现&#xff1a;通过串口指令&#xff0c;控制SG90舵机转动到指定角度。 ✨在实际硬件舵机驱动过程中&#xff0c;使用SG90普通舵机空载运转情况下&#xff0c;电流在180mA…...

【Kubernetes】k8s集群图形化管理工具之rancher

目录 一.Rancher概述 1.Rancher简介 2.Rancher与k8s的关系及区别 3.Rancher具有的优势 二.Rancher的安装部署 1.实验准备 2.安装 rancher 3.rancher的浏览器使用 一.Rancher概述 1.Rancher简介 Rancher 是一个开源的企业级多集群 Kubernetes 管理平台&#xff0c;实…...

AI编程系列一1小时完成链家房价爬虫程序

背景 AI编程实在太火&#xff0c;写了很多年的Java&#xff0c;现在Python 和Go 简单好用&#xff0c;今天结合智谱清言快速完成一个程序爬虫程序&#xff0c;没有任何Python 编程经验&#xff0c;只需要会提问&#xff0c;熟悉简单HTML结构即可。未来一定是有业务能力者的福…...

【JavaEE初阶】文件内容的读写—数据流

目录 &#x1f4d5; 引言 &#x1f334; 数据流的概念 &#x1f6a9; 数据流分类 &#x1f333; 字节流的读写 &#x1f6a9; InputStream&#xff08;从文件中读取字节内容) &#x1f6a9; OutputStream&#xff08;向文件中写内容&#xff09; &#x1f384; 字符流的…...

Spring Boot项目中使用Sharding-JDBC实现读写分离

Sharding-JDBC是一个分布式数据库中间件&#xff0c;它不仅支持数据分片&#xff0c;还可以轻松实现数据库的读写分离。下面是如何在Spring Boot项目中集成Sharding-JDBC并实现读写分离的详细步骤&#xff1a; 目录 1. 引入依赖 2. 配置数据源 3. 配置Sharding-JDBC相关参数…...

【网络安全】SSO登录过程实现账户接管

未经许可,不得转载。 文章目录 正文正文 登录页面展示了“使用 SSO 登录”功能: 经分析,单点登录(SSO)系统的身份验证过程如下: 1、启动SSO流程:当用户点击按钮时,浏览器会发送一个GET请求到指定的URL: /idp/auth/mid-oidc?req=[UNIQUE_ID]&redirect_uri=[REDI…...

Admin.NET源码学习(3:LazyCaptcha使用浅析)

Admin.NET项目前端登录页面的验证码图片默认使用动态图&#xff0c;且图形内容为阿拉伯数字运算&#xff08;如下图所示&#xff09;&#xff0c;用户输入正确的计算结果才能正常登录。项目采用LazyCaptcha模块生成验证码及动态图。   在Admin.NET.Core项目中添加了Lazy.Cap…...

在原生未启用kdump的BCLinux 8系列服务器上启用kdump及报错处理

本文记录了在原生未启用kdump的BCLinux 8系列操作系统的服务器上手动启用kdump服务及报错处理的过程。 一、问题描述 BCLinux 8系列操作系统&#xff0c;系统初始化安装时未启用kdump服务&#xff0c;手动启动时报以下“No memory reserved for crash kernel”或“ConditionK…...

Android架构组件中的MVVM

Android架构组件中的MVVM&#xff08;Model-View-ViewModel&#xff09;模式是一种广泛应用的设计模式&#xff0c;它通过将应用程序分为三个主要部分&#xff08;Model、View、ViewModel&#xff09;来分离用户界面和业务逻辑&#xff0c;从而提高代码的可维护性、可扩展性和可…...

走向绿色:能源新选择,未来更美好

当前&#xff0c;全球范围内可再生能源正经历着从辅助能源向核心能源的深刻转型&#xff0c;绿色能源日益渗透至居住、出行、日常应用等多个领域&#xff0c;深刻影响着我们的生活方式&#xff0c;使我们能够更加充分地体验清洁能源所带来的优质生活。 一、绿色能源与“住” …...

鸿蒙装饰器的介绍

State装饰器&#xff0c; State装饰的变量&#xff0c;称为状态变量&#xff0c;与声明式范式中的其他被装饰变量一样&#xff0c;是私有的&#xff0c;只能从组件内部访问&#xff0c;在声明时&#xff0c;必须指定其类型和本地初始化。 Provide装饰器和Consume装饰器&#…...

零基础5分钟上手亚马逊云科技核心云架构知识 - 权限管理最佳实践

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…...

[数据库][知识]SQL Server、MySQL 和 Oracle 的默认端口和数据库链接

SQL Server、MySQL 和 Oracle 的默认端口号、连接 URL 和驱动类名。以下是对每个数据库连接信息的简要说明&#xff1a; SQL Server 默认端口号&#xff1a;1433JDBC URL 格式&#xff1a;jdbc:sqlserver://localhost:1433;DatabaseNamedbnameJDBC 驱动类名&#xff1a;com.mic…...

【Unity教程】使用 Animation Rigging实现IK制作程序化的动画

在 Unity 开发中&#xff0c;为角色创建逼真且自适应的动画是提升游戏体验的关键。在本教程中&#xff0c;我们将结合 Animation Rigging 工具和 IK&#xff08;Inverse Kinematics&#xff0c;反向运动学&#xff09;插件来实现程序化的动画。 视频教程可以参考b战大佬的视频 …...

OBS混音器(Mixers)的重要性和配置指南

在进行直播或录制时,音频管理是非常关键的一环,特别是在需要同时处理多个音频源的复杂设置中。OBS Studio提供了强大的音频管理工具,其中“混音器”功能扮演了核心角色。混音器(Mixers)在OBS中用于控制不同音频源的输出路由,允许用户精确控制哪些音源出现在最终的直播或录…...

Ubuntu安装Anaconda3

本文详细阐述了在 Ubuntu 系统中安装 Anaconda3 的完整流程。包括 Anaconda3 安装包的获取途径&#xff0c;具体安装过程中的每一个步骤及注意事项&#xff0c;还有安装后的环境变量设置和安装成功的验证方法。旨在为 Ubuntu 用户提供清晰、易懂且准确的 Anaconda3 安装指南&am…...

数据类型解码:INT、VARCHAR、DATETIME的深度解析与实践

标题&#xff1a;数据类型解码&#xff1a;INT、VARCHAR、DATETIME的深度解析与实践 在软件开发和数据库设计中&#xff0c;数据类型是构建数据模型的基础。准确理解和使用数据类型&#xff0c;如INT、VARCHAR、DATETIME&#xff0c;对于确保数据的完整性、性能和安全性至关重…...

基于单片机的智能晾衣系统设计

摘 要 &#xff1a;在网络信息技术的推动下&#xff0c;智能家居得到了广泛应用&#xff0c;文章根据当前的市场动态&#xff0c;针对基于单片机的智能晾衣系统设计展开论述&#xff0c;具体包括两个方面的内容———硬件设计和软件设计。 关键词 &#xff1a;单片机&#xff…...

Python实战项目:天气数据爬取+数据可视化(完整代码)

一、选题的背景 随着人们对天气的关注逐渐增加&#xff0c;天气预报数据的获取与可视化成为了当今的热门话题&#xff0c;天气预报我们每天都会关注&#xff0c;天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过…...

知识改变命运 数据结构【链表面试题】

1. 删除链表中等于给定值 val 的所有节点。 OJ链接 public ListNode removeElements(ListNode head, int val) {if (headnull) {return null;}ListNode curhead.next;ListNode prehead;while(cur!null) {if(cur.valval) {pre.nextcur.next;curcur.next;}else {precur;curcur.ne…...

计算机毕业设计 医院问诊系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

掌握CSS的:any-link伪类:统一链接样式的高效方法

在网页设计中&#xff0c;链接是用户导航和交互的重要组成部分。CSS提供了多种伪类选择器来定义链接的不同状态&#xff0c;例如:link用于选择未访问的链接&#xff0c;:visited用于选择已访问的链接。然而&#xff0c;有时候我们需要同时为所有状态的链接设置统一的样式&#…...

虚幻5|角色武器装备的数据库学习(不只是用来装备武器,甚至是角色切换也很可能用到)

虚幻5|在连招基础上&#xff0c;给角色添加武器并添加刀光|在攻击的时候添加武器并返回背后&#xff08;第一部分&#xff0c;下一部分讲刀光&#xff09;_unreal 如何给角色添加攻击-CSDN博客 目的&#xff1a;捡起各种不同的武器&#xff0c;捡起的武器跟装备的武器相匹配 …...

防火墙技术与地址转换

文章目录 前言一、四种区域二、实验拓扑图基础配置防火墙配置测试结果 前言 防火墙是计算机网络中的一种安全设备或软件功能&#xff0c;旨在监控和控制进出网络的网络流量。其核心目的是保护内部网络免受外部攻击或不必要的访问。防火墙通过设定一系列安全规则&#xff0c;允…...

C++11中的Lambda表达式

文章目录 C11中的Lambda表达式1.lambda表达式形式2.向lambda传递参数3.使用捕获列表4.lambda捕获和返回1.值捕获2.引用捕获3.隐式捕获4.可变lambda5.指定lambda的返回类型 C11中的Lambda表达式 1.lambda表达式形式 lambda表达式具有以下形式 [capture list] (parameter list)…...

Unity图形系统

Unity的图形系统是一个复杂且功能强大的模块&#xff0c;它支持多种渲染技术和API&#xff0c;能够满足从移动设备到高端游戏机和桌面平台的各种需求。以下是关于Unity图形系统的详细解析&#xff1a; 渲染流程与技术 Unity的渲染流程可以分为应用程序阶段&#xff08;CPU&…...

Ceph篇之利用shell脚本实现批量创建bucket桶

Ceph创建bucket桶 在 Ceph 中创建桶&#xff08;bucket&#xff09;需要使用 Ceph 对象网关&#xff08;RGW&#xff09;。 注&#xff1a;如果查看shell批量创建脚本请直接参见目录3 1. 利用radosgw-admin工具创建桶 确保 Ceph 集群和对象网关已正确配置 确保你的 Ceph 集群…...

周末总结(2024/08/17)

工作 人际关系核心实践&#xff1a; 要学会随时回应别人的善意&#xff0c;执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己&#xff0c;抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内&#xff0c;职场社交不要放在5min以内 职场的人际关系在面对利…...

SQL高级编程:掌握自定义函数和过程的艺术

标题&#xff1a;SQL高级编程&#xff1a;掌握自定义函数和过程的艺术 在SQL的世界里&#xff0c;数据操作不仅仅局限于简单的查询和更新。通过自定义函数&#xff08;User-Defined Functions, UDFs&#xff09;和存储过程&#xff08;Stored Procedures&#xff09;&#xff…...