【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:粘贴

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity每日一记】这些时间成员变量你是否清楚(Timescale,Time.deltaTime,Time.unscaledDeltaTime等)

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

dockerfile制作-pytoch+深度学习环境版

你好你好! 以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 文档内容docker相关术语docker常用命令容器常用命令根据dockerfile创建容器dokerfile文件内容 docker问题:可能的原因和解决方法示例修改修改后的D…

C++笔记:命名空间

引入&#xff1a; 平常&#xff0c;我们在进行C编写时&#xff0c;一般我们都会默认在开始去写这样的代码&#xff1a; #include<iostream>//包含头文件using namespace std;//展开命名空间 这里就出现了与C语言不同的地方&#xff1a;这里的命名空间就是C对于C语言进…

Linux:Patch补丁、Diff使用

what的问题 diff命令&#xff0c;记录两个文件的差别&#xff0c;通过diff得到一个patch文件&#xff0c;也应用patch到另外一个文件&#xff0c;通过patch命令 diff and patch are intended to be used on text files. why的问题 Reason 1: diff can be useful by itself t…

如何实现多个PDF文件合并为一个PDF文件

公众号&#xff1a;程序员白特&#xff0c;欢迎一起交流学习~ hi&#xff0c;我是白特。 最近看到一个功能&#xff0c;十分感兴趣&#xff0c;也就是我们要将多个文件服务器中的PDF文件合并为一个PDF文件并以此进行下载打印操作。 那么直接让我们一起看下它的实现思路吧。 …

OpenHarmony实战:硬件适配之HCS应用

一、HCS 配置管理 HCS(HDF Configuration Source)是 HDF 驱动框架的配置描述参数文件&#xff0c;内容以 Key-Value 为主要形式。它实现了配置代码与驱动代码解耦&#xff0c;便于开发者进行配置管理。 HC-GEN(HDF Configuration Generator)是 HCS 配置转换工具&#xff0c;可…

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别 &#xff08;二&#xff09;Git&#xff08;分布式版本控制系统&#xff09;:&#xff08;二&#xff09;SVN&#xff08;集中式版本控制系统&#xff09;&#xff08;三&#xff09;TortoiseGit一、下载安装 git二、安装过程…

“转行做程序员”很难?这里有4个建议

近几年来&#xff0c;传统行业多处于经济下行&#xff0c;加上互联网行业的赚钱效应&#xff0c;想要转行到这一行的人越来越多&#xff0c;其中程序员这个行业更是很多人梦寐以求的。 但另一方面&#xff0c;我们也发现&#xff0c;这些想要转行的同学们往往会遇到很多困扰。…

企业员工在线培训系统功能介绍

随着信息技术的飞速发展&#xff0c;企业员工培训方式正逐步从传统的面授转向灵活高效的在线培训。一个综合性的企业员工在线培训系统能够为员工提供多样化的学习资源、便捷的学习途径和有效的学习监督&#xff0c;以下是该系统的主要功能详细介绍&#xff1a; 1. 课程功能 线…

如何应对光模块故障,只需一条命令!

你们好&#xff0c;我的网工朋友。 是设备就有故障&#xff0c;光模块也不例外&#xff0c;而且很多项目的故障首先要排除光模块的问题。 像光模块型号选用是否正确&#xff1f; 使用的跳线是否正确&#xff1f; 交换机接口是否用匹配&#xff1f; ....各种各样的问题&…

MySQL中count(*) 和 count(1)区别

MySQL 中 count(*) 和 count(1) 的异同 count() 函数的基本原理 语法&#xff1a; COUNT(expr)其中&#xff1a; expr 可以是字段名、常量、表达式或星号 (*)。 用法&#xff1a; count() 函数用于统计满足特定条件的记录数量。它可以有以下几种用法&#xff1a; 1. 统计…

【带你了解下前端开发语言有那些】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

JavaEE初阶之线程安全(一)

目录 题外话 正题 1.线程调度是随机的 2.修改共享数据 知识点 线程同步机制 线程异步机制 举例说明 synchronized() 知识点 举例说明 举例代码详解 死锁 举个例子: 代码 小结 题外话 这两天忽冷忽热的感冒了,昨天状态特别不好断更了一天,今天继续加油! 我会把…

【RT_Thread】---stm32f407zgt6使用env配置工程

用rt_thread env配置工程 1. git rt_thread 源码 2.找到对应芯片厂家扳机支持包 3 重新命名一个自己项目的工程 4 打开env 配置驱动 具体参考官方&#xff1a;Env 用户手册 (rt-thread.org) 5 修改路径为英文 6 修改完boad init 就应该可以用了(还有系统时钟不然会有问题)…

基于stm32的h5的spi屏幕调试

基于stm32的h5的spi屏幕调试 本文目标&#xff1a;基于stm32的基础实验 按照本文的描述&#xff0c;应该可以跑通实验并举一反三。 先决条件&#xff1a;装有编译和集成的开发环境&#xff0c;比如&#xff1a;Keil uVision5、STM32CubeMX 使用外设&#xff1a;GPIO、SPI …

Redis中的复制功能(一)

复制 概述 在Redis中&#xff0c;用户可以通过执行SLAVEOF命令或者设置slaveof选项&#xff0c;让一个服务器去复制(replicate)另一个服务器&#xff0c;我们称呼被复制的服务器为主服务器(master)&#xff0c;而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示…

Python 全栈体系【四阶】(十八)

第五章 深度学习 一、基本理论 4. 神经网络的改进 4.1 神经网络的局限 全连接神经网络的局限&#xff08;一&#xff09; 未考虑数据的“形状”&#xff0c;会破坏数据空间结构。例如&#xff0c;输入数据是图像时&#xff0c;图像通常是高长通道方向上的 3 维形状。但是&a…

基于springboot+vue实现的房源出租信息系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

Java学习之类和对象、内存底层

目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性&#xff08;field 成员变量&#xff09; 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式&#xff1a; 四…

深入探究Shrio反序列化漏洞

Shrio反序列化漏洞 什么是shrio反序列化漏洞环境搭建漏洞判断rememberMe解密流程代码分析第一层解密第二层解密2.1层解密2.2层解密 exp 什么是shrio反序列化漏洞 Shiro是Apache的一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用 Shiro 易于理解的…