第一周作业

背景

一、开源许可的区别

image-20220701103613401

1、BSD许可证

BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。

2、MIT许可证

MIT是和BSD一样宽范的许可协议。你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。作者只想保留版权,而无任何其他了限制,较BSD协议宽松。

一般使用 MIT 授权的项目,需在源文件头部增加以下内容:

Copyright [yyyy] [name of copyright owner]. All rights reserved.

//[yyyy] 表示该源文件创建的年份。紧随其后的是 [name of copyright owner],即版权所有者。如果为个人项目,就写个人名称;若为团队项目,则宜写团队名称。

3、Apache许可证

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

需要给代码的用户一份Apache Licence;
如果你修改了代码,需要再被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

该许可证要求在所有的源文件中的头部放置以下内容才能算协议对该文件有效:

Copyright [yyyy] [name of copyright owner]

//[yyyy] 表示该源文件创建的年份。紧随其后的是 [name of copyright owner],即版权所有者。如果为个人项目,就写个人名称;若为团队项目,则宜写团队名称。

4、GPL许可证

GPL许可证的核心含义是:允许任何人观看、修改,并散播程序软件里的原始程序码,条件是如果你要发布修改后的版本就要连源代码一起公布,不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,即必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

5、LGPL许可证

LGPL 允许以动态链接使用开源库。采用LGPL的代码,一般情况下它本身就是一个第三方库(LGPL最早的名字就是Library GPL),这时候开发人员仅仅用到了它的功能,而没有对库本身进行任何修改,那么开发人员也不必公布自己的商业源代码。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须开源,并且采用LGPL协议。

6、Mozilla许可证

Mozilla公共许可证(英语:Mozilla Public License,简称MPL) 允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。

二、centos、rocky、ubuntu系统安装过程

1、centos安装过程

①阿里云镜像站下载centos7(下载地址centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)

image-20220701103849188

②创建新的虚拟机

image-20220701104214104

image-20220701104241200

image-20220701104328742

image-20220701104403465

image-20220701104448052

image-20220701104524464 ③安装centos系统

选择第二项检测安装包并安装 第一项为直接安装

image-20220701104746584

quit:退出 continue:继续

image-20220701104830508

选择时区:亚洲

image-20220701104905861

最小化安装(不选择安装图形)

image-20220701104939128

安装分区:维持原状

image-20220701105018316

网络:点击启用 更改域名

image-20220701105053083

设置root密码

image-20220701105139134

设置普通用户账号和密码

image-20220701105231450

快照备份init

image-20220701105306722

2、rocky安装过程

①下载地址Downloads | Rocky Linux

②同centos安装步骤相同

3、Ubuntu安装过程

①下载地址获取Ubuntu服务器版 | Ubuntu

阿里云下载地址ubuntu-releases安装包下载_开源镜像站-阿里云 (aliyun.com)

②创建虚拟机同centos相同

③安装系统

image-20220701105427959

不更新

image-20220701105459283

地址由官网更改为阿里云地址

image-20220701105531440

image-20220701105600914

设置普通用户账号与密码

image-20220701105629215

按空格键选中远程连接

image-20220701105701743

image-20220701105819361

三、Linux总结

1、获取相关命令

man -k ‘process’|grep’(1|8)’

2、获取命令的man文档

man 7 man

3、man的组成及解释

①man分9部分:用户命令、系统调用、C库调用、设备文件及特殊文件、配置文件格式、游戏、杂项、管理类的命令、Linux内核API

②man的解释:

Name: man页面描述的命令名
Synopsis: 语法
Configuration: 设备配置详情
Description: 程序的作用描述
Options: 命令行选项描述
Exit Status: 命令退出状态码相关
Return Value: man页面是 2和3相关的,库进行调用之后返回啥?
Errors: 错误相关
Environment: 程序可以接受哪些环境变量
Files: 程序会使用哪些配置文件
Attributes: 命令的相关属性
Versions: 程序某些库显著改变相关的版本
Notes: 一些备注
Bugs: 已知bug,提交bug
Examples: 命令使用示例
Authors: 编写,维护命令的作者们
See also: 命令相关的命令

[] 可以选的
<> 必选内容
[[] <>] 使用括号中的内容时,选项可以省略,值不能省略。如果有多个此类形式,就需要参数。如果此形式在命令紧随其后,我们可以省略选项
一般运行一个命令,可以忽略所有[]中的内容

4、根据语法写简要操作

四、解释fstab字符的含义

image-20220701105937639

<file system>- 要挂载的分区或存储设备

<mount point>-<file system>的挂载位置

<type>-要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。 设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。

<options>-指定挂载的选项,默认为defaults,其他可用选项包括acl、noauto、ro等

<dump>-表示该挂载后的文件系统能否被dump备份命令作用。0表示不能;1表示备份

<pass>-表示开机过程中是否校检扇区。0表示不校检;1表示优先校检(一般为根目录);2表示在1级别校检完成后再校检

五、简要说明FHS结构

①Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。

②FHS :文件系统层级结构

/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

/bin 可执行文件,binary,用户命令

/boot 系统启动相关的文件

/dev device、设备文件因为在这个目录中包含了所有linux系统中使用的外部设备。它实际上是一个访问这些外部设备的端口。

/etc 配置文件,纯文本文件的配置文件要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。

/home 家目录,root用户的家目录不在/home目录

/lib library,库文件和内核模块文件,这个目录是用来存放系统动态连接共享库的。

/mnt 挂载点目录,通常挂载其他文件系统,这个目录一般是用于存放挂载储存设备的挂载目录的,

    比如有cdrom等目录。可以参看/etc/fstab的定义
    什么是挂载点?光盘放进光驱后,必须要将设备关联到当前文件系统树上的某个节点上,
    才能进行访问,把某个设备和当前文件系统上某个目录进行关联的这个过程,叫做挂载。

/root root用户的家目录,在生产环境中不允许用root用户登录

/run 进程相关的数据

/sbin 管理员命令

/srv 系统服务相关数据 系统启动服务时候可以访问的数据库目录

/tmp temp,临时文件目录

/usr 系统核心所在目录 、系统资源所在

/var 可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。

六、总结文件管理、用户管理、组用户、权限管理相关命令

1、文件管理相关命令

cd:切换目录 ls:查看当前目录的内容 touch:创建文件夹 cp:复制文件 mv:移动文件 rm:删除文件 mkdir:创建目录

2、用户管理命令

useradd:创建新用户 usermod:修改用户属性 userdel:删除用户 passwd:修改用户密码 su:切换用户 id:查看用户的UID、GID信息

3、组用户命令

groupadd:创建组 groupmod: 修改组属性 groupdel:删除组用户

4、文件权限管理命令

chown:修改文件属性,修改文件组属性 chgrp:只修改文件的属组 chmod:修改文件权限

owner 属主,u group 属组,g other 其他,o


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!