当前位置: 首页 > 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;从而提高代码的可维护性、可扩展性和可…...