【Linux入门】Linux简史

        Linux 是什么?Linux 是一款叫做操作系统的软件。

        操作系统这款软件有什么样的意义呢?简单来说,比如有顾客买了一台笔记本电脑,这台笔记本电脑由电脑硬件组成,在这堆硬件上一定搭载了一款操作系统。正因为操作系统存在,才有一个行为——开机,如果就笔记本电脑仅仅只有硬件,就不存在所谓的开机行为。所以操作系统可以说是计算机世界的一个基础。当下,操作系统不仅在笔记本电脑中存在(例如windows),也在手机中存在的(例如安卓或者是 ios)。

        要认识一件事物,尤其是一件陌生的事物,离不开对事物始末的了解,这样才能更清楚的认识它。本篇博客整理了Linux的相关历史,结合少量的Linux指令,旨在让读者进一步认识Linux,对计算机世界有更宽泛的了解。

目录

一、Linux发展史

1.硅谷模式

2.行业故事

3.Linux问世

 二、Linux的特征

1.基本特征

2.什么是操作系统

3.开源 

4.现行版本 

5.企业应用现状

三、Linux环境安装

引、基本指令

1.用户相关

· 用户登录:ssh

· 显示当前用户名:whoami

· 添加用户:adduer  

· 给用户设置新密码:passwd 

· 删除用户:userdel 

2.文件的创建

· 创建空目录:mkdir

· 创建文件:touch 

3.文件的显示

· 显示用户当前所在的目录:pwd

· 显示目录结构:tree 

· 补、Linux下的目录结构

· 显示非隐藏文件:ls 

4.文件的访问

· 访问目录:cd

· 补、绝对路径和相对路径 

5.文件的删除

· 删除空目录:rmdir

· 删除文件:rm 

6.一些快捷键


一、Linux发展史

1.硅谷模式

        在1946年2月14日的情人节,美国发布了世界第一台通用计算机(也是世界第二台电子计算机)——埃尼阿克(ENIAC)。这款计算机,主要用于军事,用于计算导弹轨迹等。但早期的硬件电路和集成电路的集成度较低,埃尼阿克的体积非常巨大,操作成本很高。

        埃尼阿克发布的时间点——1946年2月14日在历史上十分特别。彼时,国际上的主要矛盾变成了美苏冷战。国家和国家之间的竞争,会促使技术的不断突破,例如航天领域的阿波罗登月计划、军械领域的核武器等等。作为军事设备,埃尼阿克也急迫地渴望迭代更新,于是,计算机小型化,也在紧锣密鼓地进行着。

        摩尔定律为计算机小型化提供了理论依据。摩尔定律是指,一个集成电路的集成度每15个月或者18个月会增加一倍,性能也会增加一倍。而集成度每隔多长时间增加一倍,这件事本身不重要,重要的是集成度一旦增加一倍,变得越来越高,就可以在以往相同体积的情况下获得比以往更高的算力。

        早期,政府单位在技术领域上并不擅长,但为了推动技术进步,政府选择了与研究机构和高校合作。战争往往不计成本,军事上的技术研究往往能获得政府的大量资源支持。政府投入源源不断的资源,不仅仅要推动一项技术的发展,还要推动全方位的各种各样的技术发展,所以政府方面往往要求这项技术是可持续发展的。比方说,当下需要更好的无线电技术支援情报工作,就得给负责无线电技术的团队提供资金;当下需要升级坦克的武装力量,就得给负责坦克的团队提供资金,当下要研究计算机,就计算机团队提供资金......现在资金都花掉了,技术团队都得到了充分的资助,可政府的钱越来越少了,接下来要怎么给新增的项目提供资金呢?

        上个世纪,美国商人陆续发现了政府的这个需求。当研究机构和高校研究出了各种技术,有新的发明专利,有新的技术,就有商人就开始出售这些新专利和新技术,最著名的例如乔布斯、比尔盖茨等。而政府通过税收的方式,来进行资金的回流,继续支持技术的发展。

        商人、技术人员和政府之间联合起来,孵化出一批一批新的产品。随着技术的不断发展和需求的不断扩大,这些产品不再像从前只提供给政府,也渐渐面向了平民。例如苹果公司,做出了它们的第一代桌面级计算机,彼时标价一万美金。上个世纪六七十年代的一万美金,相当于现在的上千万美金,尽管这个标价十分高昂,非普通人所能担负,但它标志着技术发展的又一个突破,也预示着普通人能够消费的计算机会在未来某一天问世。

        像商人、技术人员和政府之间这样一种不断推动科学技术发展的循环模式,被称为硅谷模式。而小型计算机和操作系统,就在这个模式之下陆续问世了。

2.行业故事

        随着芯片的集成度越来越高,计算机也越来越小型化。但彼时的计算机,即便再怎么小型化也难以使用。

        为了将计算机硬件技术进行商业化,有一家IBM的公司,孵化出了给企业使用的计算机产品,上面搭载了一款名为unix的操作系统。研究机构和高校,也可以简单理解成企业,在从事相关业务和完成相关工作。计算机本来就可以计算数据,研究机构和高校的各种实验室需要做各种实验,正好为计算机提供了用武之地。早期的IBM看中了这个市场,打造了各种各样的硬件产品(其实九十年代的时候,IBM也有自己的个人电脑业务——thinkpad,但这个品牌后来被联想收购了)。

        彼时还有一家公司既有硬件业务,也有软件业务。这家公司叫做苹果,它自研了一款名为macOS的操作系统。苹果与IBM的理念不同,IBM认为计算机将来只能是那些有足够财力的企业来使用,而苹果认为个人计算机是一个未来趋势。苹果的电脑刚开始出来的时候虽然价格很贵,但产品做得很好,也卖得很好,有不少人会买来尝鲜。
        还有一家公司主要做软件,叫微软。说是主要做软件,其实微软主要做的是windows操作系统。但微软比较担心,既有硬件也有软件的苹果发展得太好,万一苹果的电脑在将来卖得特别特别好,而苹果的电脑上又不搭载它的操作系统(因为苹果自己也做软件,也做操作系统),那它的市场份额很可能会越来越少。
        于是为了跟苹果对抗,微软就找了一个合伙人,而这个合伙人就是IBM。但IBM和微软还没过完蜜月期啊,两家公司就因为啊理念不符而分道扬镳了。IBM认为电脑的造价很高,将来只能是那些有足够财力的企业来使用,普通人根本别想用得起;但微软不那么认为,而且在微软公司内部一直流传着一个口号“一定会将来在每一个人的桌面上放着,上面搭载的是 windows 操作系统”。
        后来,微软又找了一个合伙人,这个合伙人叫英特尔,是一家做芯片的公司。微软和英特尔,虽然把握着计算机最核心的两种技术,但它们的业务本身不涉及组成计算机的其他部件,于是它们又拉来了一大批电脑的制造商和组装商,例如联想、戴尔等。至此,提供操作系统的微软,提供芯片的英特尔,再加之电脑的制造商和组装商,终于使不带有苹果logo的电脑问世了。

        尽管这样生产出来的一台电脑生产成本更低、标价比苹果电脑更亲民,性价比很高,但它的品控却很难做。这是因为这样一台“大杂烩”电脑得由不同的公司负责,尽管每一家公司都能专注做自己擅长的事情(这样很容易控制成本),但最后要把各自负责的业务模块合起来,品控就难办了。不过,也因为苹果电脑的质量高的同时价格昂贵,这种性价比电脑有了不错的市场空间。

        这也促成了当今笔记本电脑和台式电脑的市场格局。现在的电脑只要装的是windows操作系统,那它搭载的一定是英特尔的cpu。IBM呢,逐渐没落,现在虽然算不上很差但也算不上很好。而苹果呢,因为产品做得很好,成为了全球市值最高的公司。


3.Linux问世

        彼时,苹果电脑搭载了苹果自研的操作系统macOS,微软有自研的操作系统windows同时也找到了合作伙伴。而IBM的一体机搭载了一款收费的操作系统unix,并将自己的一体机提供给企业作服务器,或捐赠给研究机构和高校辅助其研究科学技术。
        上个世纪九十年代,一名赫尔辛基大学的学生林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds),在使用过搭载unix操作系统的电脑后突发奇想——开发一款免费操作系统可以免费让大家来用。他花了一段时间,独自一人写了一款代码量1.1万行左右的操作系统,取名为Linux(linux is not unix),并在1991年10月5日免费公开了Linux的源代码(这种行为叫做开源。但开源并不一定是免费的)。

        Linux操作系统重要的特征就是开源。在Linux被林纳斯开源之后,越来越多的人参与到了Linux的完善工作中,很多顶级的黑客和出色的工程师,以及操作系统的编写者逐渐参与到这个项目中来,使Linux操作系统变得越来越大啊。截至目前,Linux的源代码的代码量有大概6000到8000万行左右了(Linux官网:The Linux Kernel Archives)。


 
二、Linux的特征

1.基本特征

        Linux的基本特征:稳定、安全、快速、成本低

2.什么是操作系统

        操作系统是一款具有软硬件管理功能的软件,对下,它可以管理好软硬件资源,对上,它可以为用户提供良好的使用环境。一个操作系统是良好的,这一点的衡量指标应该是:稳定、快速、安全。

        用户在计算机上的所有软件行为都会通过操作系统转化为硬件行为。所有软件,都自顶向下贯穿计算机的软硬件结构。换句话说,几乎所有的软件行为,都和操作系统有直接或间接的关系。

        常见的操作系统有:

  • Unix:一款闭源的操作系统
  • Linux:一款开源的操作系统
  • DOS:磁盘操作系统
  • Windows:微软自研的操作系统
  • MacOS:苹果自研的操作系统 

3.开源 

        GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软 件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码。

        Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成 在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。

        但注意,开源并不一定免费,开源的代码经过再次商业化即为付费版本。

4.现行版本 

  • Ubuntu ——Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应 用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定爱不 释手的一款操作系统。 红帽企业级Linux 这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包 括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管 理员进行培训和认证。
  • CentOS ——CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版 完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红 帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业 级Linux如出一辙。 CentOS使用YUM来管理软件包。
  • Fedora ——小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公 司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好 的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。
  • Kali Linux ——Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论 坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马 可以使用。Kali使用APT来管理软件包。毫无疑问,Kali Linux是一款渗透测试工具,或者是文明黑客(我不想谈论恶意黑客)青睐的操作系统。

5.企业应用现状

  • Linux在服务器领域的发展——随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中 占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政 府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的 扶持力度,Linux服务器产品一定能够冲击更大的服务器市场。据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速 崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。
  • Linux在桌面领域的发展——近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗。Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域 得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已 经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还 有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。
  • Linux在移动嵌入式领域的发展——Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用, 目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用 的Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作 系统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系 统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都 在逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量。
  • Linux在云计算/大数据领域的发展——互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开 源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进 行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

三、Linux环境安装

        搭建Linux环境的常见方式有:虚拟机、云服务器、双系统。

        这里推荐云服务器 + xshell(远程登录云服务器的软件)的方式。这种方式搭建Linux环境较为简单方便,同时,部署在云服务器上的项目可以直接被外网访问,这和公司实际的业务场景较为接近。

  • xshell的下载链接:XSHELL - NetSarang Website
  • 购买云服务器

        市面上的服务器厂商有很多,如阿里云、腾讯云、华为云等。这里以腾讯云为例:

1. 进入官方网站学生云服务器_学生云主机_学生云数据库_云+校园特惠套餐 - 腾讯云

(有的优惠套餐学生党可以免费白嫖,可以试用几个月,也可以拼单凑伙使用,大家按自己的需要来~)

2.登录后点击购买,镜像一栏选择 CentOS 7.6(64位)

3.购买完成后, 可以在控制台中找到自己买的服务器,点进去能够看到服务器的 IP 地址

(蓝色方框为公网 ip 地址, 登陆服务器会用到它 )

4.设置 root 密码: 勾选服务器, 点击重置密码(这个环节可能需要手机短信验证). root 密码建议设置的稍微复杂一 些, 否则容易被黑客入侵.

  • 使用 XShell 远程登陆到云服务器

1.启动xhell

2.新建会话窗口

3.登录

(首次连接会弹窗,提示用户接收密钥,点击接受即可。当第一次登陆时没有其他用户,只有超级用户root,它是有最高权限的管理员。可以直接用xshell的窗口选项来登录,也可以输入Linux指令来登录)

(输入Linux指令登录,详见下文)

引、基本指令

        Linux操作系统又被称之为“核心(kernel)” 。但一般的用户,不能直接使用kernel,而要通过kernel的“外壳”程序——命令行解释器shell,来与 kernel 沟通。这是因为 kernel 对于一般的用户来说太过复杂,且不让用户直接使用 kernel 而提供 shell 给用户,也进一步保障了操作系统的安全性。从技术的角度,shell 能将用户的指令翻译给 kernel 处理。 同时,将kernel 的处理结果翻译给使用者

        对比windows GUI,我们操作windows 也不是直接操作windows内核,而是通过点击图形接口,从而达到操作的目的(例如要进入D盘,一般通过直接双击D盘盘符,或者通过一个应用程序)。shell 对于Linux,也是类似的作用,主要是对我们的指令进行解析,解析指令给 kernel。反馈结果在通过内核运 行出结果,通过shell解析给用户。

        Linux操作系统都采用纯命令行的方式进行操作,虽然也有图形化界面,但是一般不用。这是因为无论图形还是指令,本质其实都是一样的,而指令操作更贴近操作系统。

        所以说,Linux指令是 Linux操作系统中的基本操作,而它们是在命令行上运行的程序或实用程序。命令行是一个界面,它接受文本行并将其处理为计算机的指令。通俗来讲,我们所输入的指令就是一个可执行程序,当用户要运行一条指令时,系统会在相应文件下找相应的指令,然后再执行它。这个过程就相当于执行了一个可执行程序,同时也意味着,所有的指令操作都与文件相关,换句话说,Linux下,一切皆文件

        Linux中的文件基本分为两种:目录文件普通文件,其中,目录文件相当于Windows中的文件夹,普通文件就相当于Windows中的普通文件。一个文件包含了文件内容和文件属性,其中,文件属性跟文件内容一样,也是数据,也需要存储。这就决定了,指令本质就是对文件内容的操作或对文件属性的操作

1.用户相关

· 用户登录:ssh

        语法:ssh + 用户名 + @ + 域名

         上图的演示登录的是超级用户root(拥有最高的管理员权限),不同用户可以通过超级用户root来创建,域名用的是小编的云服务器。 ssh指令后别忘了要加空格。

· 显示当前用户名:whoami

        语法:whoami

· 添加用户:adduer  

        adduser可以创建一个普通用户的账号,这个账号会以目录文件的形式存放在家目录“home”中。

        语法:addsuer + 用户名

· 给用户设置新密码:passwd 

        语法:passwd + 用户名

· 删除用户:userdel 

        语法:userdel + (选项) + 用户名  

        但“userdel + 用户名”只删除了用户。

【补】选项:

  • -r:连同用户主目录一起删除。如果创建时主目录已经存在(即主目录不属于当前要删除的用户),则无法删除主目录

2.文件的创建

· 创建空目录:mkdir

        mkdir(make director)可以在当前目录下创建一个新的目录。

        语法:mkdir + (选项) + 新目录名

【补】选项 :

  • -p / -parents   可以是一个路径名称。此时若路径中的某些目录尚不存在 , 加上此选项后 , 系统将自动建立好那些尚不存在的目录, 即一次可以建立多个目录。例如mkdir –p test/test1 : 递归建立多个目录(test1在test里面)。

· 创建文件:touch 

        touch 可更改文件或目录的日期时间,包括存取时间和更改时间,也可以新建一个原本不存在的文件。

        语法:touch + (选项) + 新文件名(具体到格式)

【补】选项 :

  • -a:或 --time=atime / --time=access / --time=use,只更改存取时间
  • -c:或 --no-create  不建立任何文档
  • -d :使用指定的日期时间,而非现在的时间
  • -f :此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题
  • -m:或 --time=mtime / --time=modify ,只更改变动时间
  • -r:把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
  • -t :使用指定的日期时间,而非现在的时间

3.文件的显示

· 显示用户当前所在的目录:pwd

        pwd(print working director)可以显示用户当前所在的目录

        语法:pwd

· 显示目录结构:tree 

        tree可以显示目录结构,也可以显示目录(文件夹)和文件的数量。

(注:tree这条指令需要先用“yum install -y tree”下载)

        语法:tree

(ps:上图的演示是接上文的指令操作后的。上文的演示已经创建了两个空目录dir1、dir2和两个文件test.txt、test.c)

· 补、Linux下的目录结构

        Linux系统中,磁盘上的目录文件和普通文件被组成一棵目录树,树中的每个节点都是目录文件或普通文件。

        由于一个目录里可以再放别的目录和文件,因此整个目录结构一定是一棵多叉树。这棵多叉树的每个叶子节点一定是空目录或普通文件,每条路径上的节点一定是一个非空目录;特别的,树的根节点是根目录“/”根目录下的家目录“home”里存放了普通用户账号(也是目录文件)。而用户对目录文件和普通文件的增删查改,本质都是对这颗多叉树的增删查改

· 显示非隐藏文件:ls 

        对于目录,ls(list)会列出当前目录下的所有子目录与文件;而对于文件,将列出文件名以及其他信息。

        语法:ls +(选项)

【补】选项:

  • -a:列出目录下的所有文件,包括以 . 开头的隐藏文件
  • -d:将目录像文件一样显示,而不是显示其下的文件
  • -i:输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k:以 k 字节的形式表示文件的大小。 ls –alk 指定文件
  • -l:列出文件的详细信息
  • -n:用数字的 UID,GID 代替名称
  • -F:在每个文件名后附上一个字符以说明该文件的类型, “*” 表示可执行的普通文件; “/” 表示目录; “@” 表示符号链接;“|” 表示 FIFOs ; “=” 表示套接字 (sockets) 。(目录类型识别)
  • -r:对目录反向排序
  • -t:以时间排序
  • -s:在 l 文件名后输出该文件的大小(大小排序,如何找到目录下最大的文件)
  • -R:列出所有子目录下的文件 ( 递归 )
  • -1:一行只输出一个文件

4.文件的访问

· 访问目录:cd

        cd(change directory)可以改变工作目录,将当前工作目录改变到指定的目录下(即访问某个目录)。

        语法:cd + (选项)  

【补】选项:

  • 目录名:访问指定目录
  • 路径:访问指定目录(可以通过绝对路径或相对路径)
  • .. :访问上一级目录
  • . :访问当前目录
  • ~ :返回到登入时的目录下
  • - :访问到上一次所在的目录 

        Linux的任何一个目录下都有两个隐藏文件:和 .. . 表示当前路径,.. 表示当前路径的上一级路径,它们存在的意义是,帮助用户定位当前目录下的一个文件。

· 补、绝对路径和相对路径 

        要定位一个文件,通常以路径的方式。这是因为路径定位具有唯一性,任何一个节点可能有多个子节点,但是一个节点至多只有一个父节点,尽管从根节点到某一叶子节点的路径可能有多种,但是从这个叶子节点往根节点回推,路径是唯一的。

        路径分为绝对路径和相对路径。

  • 绝对路径:从根目录开始到目标文件的路径,一般较长(例如上文演示图的/root/dir1),具有唯一性,不会改变。
  • 相对路径:以当前工作目录为起点到目标文件的路径,一般较短(例如../dir1);注意!在当前工作目录发生变化时,相对路径可能会失效。

        在固定场景中(例如配置文件)推荐使用绝对路径;一般命令行的输入,推荐使用相对路径

5.文件的删除

· 删除空目录:rmdir

        rmdir(remove director)只能删除空目录。

        语法:rmdir + 空目录名

· 删除文件:rm 

        rm(remove)可以删除非空的目录,也可以删除普通文件。

        语法:rm + (选项)

【补】选项:

  • 普通文件名:删除指定的普通文件。删除时需确认(输入“y”)
  • - i:删除前进行询问。我们在普通用户下进行删除不加-i选项会直接删除,而在root用户下即使不加-i选项也会进行询问,原因是在root下删除文件在系统看来是比较危险的
  • -r + 目录名:可以删除目录和目录下的文件(递归删除),删除时系统会逐个文件逐个目录地询问是否确认删除
  • -rf + 目录名:强制删除目录和目录下的文件,不许询问

6.一些快捷键

  • ctrl + c:取消本行输入
  • ctrl + d:当前用户离线
  • ctrl + insert:复制
  • shift + insert:粘贴

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm013小型企业办公自动化系统的设计和开发+vue

小型企业办公自动化系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱&am…

git删除某次commit的代码

这里写目录标题 1.问题背景2.问题拆解尝试:a.使用git reset --hard HEAD (不行,局限性太大)尝试:b.使用git rebase -i HEAD (可以,但push -f不太友好)尝试:c.使用git rev…

ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON

1、处理器作用 使用Jolt转换JSON数据为其他结构的JSON,成功的路由到success,失败的failure。处理JSON的实用程序不是基于流的,因此大型JSON文档转换可能会消耗大量内存。 Jolt:JSON 到 JSON 转换库,用 Java 编写,其中转换的 &qu…

LINUX笔记温习

目录 DAY1 DAY2 day3: day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 20day DAY1 1、多层级文件夹创建要带-p; 2、创建多文件,要先到该目录下才能创建(第一个目录必须存在才能有效建立); D…

Golang 内存管理和垃圾回收底层原理(二)

一、这篇文章我们来聊聊Golang内存管理和垃圾回收,主要注重基本底层原理讲解,进一步实战待后续文章 垃圾回收,无论是Java 还是 Golang,基本的逻辑都是基于 标记-清理 的, 标记是指标记可能需要回收的对象&#xff0c…

2023年EI会议论文已见刊/检索进展汇总

2023年录用的会议论文已在SPIE、ACM、IEEE等出版社正式上线见刊,并已陆续完成EI Compendex数据库收录,详情如下: EIECT 2023——IEEE出版,并完成EI收录 会议信息: 第三届电子信息工程与计算机技术国际学术会议&…

探索使用对比损失的孪生网络进行图像相似性比较

点击下方卡片,关注“小白玩转Python”公众号 简介 在计算机视觉领域,准确地测量图像相似性是一项关键任务,具有广泛的实际应用。从图像搜索引擎到人脸识别系统和基于内容的推荐系统,有效比较和查找相似图像的能力非常重要。Siames…

QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题

在 Python 中,深拷贝(deep copy)和浅拷贝(shallow copy)是用于创建对象副本的两种不同方式。 浅拷贝是创建一个新的对象,该对象与原始对象的内容相同(包括内部嵌套对象的引用)&…

Higress 基于自定义插件访问 Redis

作者:钰诚 简介 基于 wasm 机制,Higress 提供了优秀的可扩展性,用户可以基于 Go/C/Rust 编写 wasm 插件,自定义请求处理逻辑,满足用户的个性化需求,目前插件已经支持 redis 调用,使得用户能够…

LeetCode刷题:无重复字符的最长子串 详解 【3/1000 第三题】

👤作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 LeetCode解锁1000题: 打怪升级之旅htt…

【THM】Active Reconnaissance(主动侦察)-初级渗透测试

介绍 在网络安全模块的第一个房间里,我们主要进行被动侦察。在第二个房间中,我们重点关注主动侦察以及与之相关的基本工具。我们学习使用网络浏览器来收集有关我们目标的更多信息。此外,我们讨论使用简单的工具(例如ping、traceroute、telnet和 )nc来收集有关网络、系统和…

探讨在大数据体系中API的通信机制与工作原理

** 引言 关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析 ** 在当今数字化时代,数据已经成为企业发展和决策的核心。随着数据规模的不断增长…

计算机组成原理实验(汉字编码实验)

(汉字编码实验) 海明校验码实验

每天五分钟计算机视觉:如何基于滑动窗口技术完成目标的检测?

汽车检测算法 现在我们想要构建一个汽车检测算法,我们希望输入到算法中一张图片,算法就可以帮助我们检测出这张图片中是否有汽车。 数据集 首先创建一个标签训练集,x是样本,y是标签。我们的训练集最好是被剪切过的图片,剪掉汽车以外的部分,使汽车居于中间位置,就是整张…

LeetCode-240. 搜索二维矩阵 II【数组 二分查找 分治 矩阵】

LeetCode-240. 搜索二维矩阵 II【数组 二分查找 分治 矩阵】 题目描述:解题思路一:从左下角或者右上角元素出发,来寻找target。解题思路二:右上角元素,代码解题思路三:暴力也能过解题思路四:二分…

家庭网络防御系统搭建-配置流量镜像到NDR系统

由于需要将家庭网络中的全部流量送到NDR分析系统进行分析,因此需要一个具备流量镜像功能的交换机或者路由器。在前面文章所提及的家庭网络架构中,需要一台交换机即可拷贝东西向流量以及南北向流量。当然如果家庭中的路由器或者其他设备具备交换机镜像功能…

基于单片机智能数字温度采集报警器系统设计

**单片机设计介绍,基于单片机智能数字温度采集报警器系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机智能数字温度采集报警器系统设计的核心目标是通过单片机实现温度的实时采集、显示以及超温报警…

深度学习_NLP常用库报错问题解决

1、SpaCy can‘t find model ‘zh_core_web_sm‘. It doesn‘t seem to be a python package or a valid path to a data 或者 can‘t find model ‘en_core_web_sm‘. It doesn‘t seem to be a python package or a valid path to a data 安装最新的版本: en_…

C++项目——集群聊天服务器项目(七)Model层设计、注册业务实现

在前几节的研究中,我们已经实现网络层与业务层分离,本节实现数据层与业务层分离,降低各层之间的耦合性,同时实现用户注册业务。 网络层专注于处理网络通信与读写事件 业务层专注于处理读写事件到来时所需求的各项业务 数据层专…

UE5 SQLite笔记

开发环境: 系统:Windows 10 64 bit 引擎:Unreal Engine 5.1.1 IDE:JetBrains Rider 2023.2.1 语言:C 工具:DB Browser for SQLite SQLite数据类型: //INTEGER TEXT BLOB REAL NUMERIC/*integer…