第一周作业

1. 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?

答:

以下是上述协议的简单介绍:

BSD开源协议
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

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

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

GPL
我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

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

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL
LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

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

MPL
MPL是The Mozilla Public License的简写,是1998年初Netscape的 Mozilla小组为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因就是,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们相同(因为都是符合OSIA 认定的开源软件许可证)。但是,相比而言MPL还有以下几个显著的不同之处:

MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL 许可证中对“发布”的定义是“以源代码方式发布的文件”,这就意味着MPL允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL 许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个豁口。
MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。
对软件专利的态度,MPL许可证不像GPL许可证那样明确表示反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。
对源代码的定义:而在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’),或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。”
MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。

2、VMware安装Rocky8.5 

答:

2.1 打开VMware新建虚拟机,选择典型并点击下一步


2.2 选择稍后安装系统

 


2.3 客户机操作系统选择Linux,版本选择centos8 64位


2.3 创建虚拟机名称和安装的位置

 


2.4 选取磁盘容量大小,勾选将虚拟磁盘存储为单个文件


2.6 点击完成按钮

 


2.7 编辑该虚拟机选择镜像iso文件
2.7.1 选择镜像文件并点击确定按钮


2.8 开启虚拟机

 


2.9 通过键盘方向键选择第一项


2.10 选择默认语言

 


2.11 选择时区
2.11.1 点击Tiem & Data


2.11.2 选择Asia & Shanghai,并点击Done

 


2.12 开启网络
2.12.1 点击Network & Host


2.12.2 开启网络和设置主机名

 


2.13 设置账户和密码

2.14 等待安装完成


2.15 重启系统后面就安装成功了

3. Linux中总结

1)如何通过一个简短的关键字 【man -k man -k process 】,例如process 获取相关的命令。

答:

[20:01:10 root@Rocky ~]#man -k process
_Exit (2)            - terminate the calling process
_Exit (3p)           - terminate a process
__clone2 (2)         - create a child process
__ppc_mdoio (3)      - Hint the processor to release shared resources
__ppc_mdoom (3)      - Hint the processor to release shared resources
__ppc_yield (3)      - Hint the processor to release shared resources
_exit (2)            - terminate the calling process
abort (3)            - cause abnormal process termination
abort (3p)           - generate an abnormal process abort


 

2)通过命令的描述,选择一个命令,获取命令的man文档。【 man top】

答:

[20:39:59 root@Rocky ~]#man -f top
top (1)              - display Linux processes
[20:42:59 root@Rocky ~]#man 1 top

3)解读man文档,man分几个部分?man每个部分的解释,特别是语法部分。<>, [] ...等各代表什么含义。

答:

1、man帮助分为9个部分

1 通用命令
2 系统调用
3 库调用
4 设备文件
5 配置文件
6 游戏
7 杂项
8 系统管理命令
9 内核相关的

2、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: 命令相关的命令

 [ ] 可选内容
< > 必选内容

{ } 分组

a | b 二选一

...同一内容可以出现多次
 

4)根据语法部分 简要的写几个操作。

答:

[21:07:20 root@Rocky ~]#man 1p cat
[21:07:29 root@Rocky ~]#man -a vim
[21:08:35 root@Rocky ~]#man -w sed
/usr/share/man/man1/sed.1.gz

4 切换到/etc/目录,列出fstab文件的详细信息,详细解释fstab一行,每个或每几个字符的详细含义。

答: 

[20:18:55 root@Rocky ~]#cd /etc
[20:21:41 root@Rocky etc]#cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Sep 12 14:15:17 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rl_rocky-root /                       xfs     defaults        0 0
UUID=d662c557-b754-4d79-82dc-be363674ab06 /boot                   xfs     defaults        0 0
/dev/mapper/rl_rocky-home /home                   xfs     defaults        0 0
/dev/mapper/rl_rocky-swap none                    swap    defaults        0 0

第1列表示设备的名称,第2列表示该设备的挂载点,第3列是文件系统,第4列是挂载选项,第5列是备份频次,第6列表示文件系统检查次序。

第1列是设备名称,也可以是UUID

第2列是挂载点,设备具体挂载系统的哪个文件夹中

第3列文件系统类形: Linux file systems: ext4, xfs, swap

第4列挂载选项,一般默认defaults

第5列dump选项,备份频次,设置是否让备份程序dump备份文件系统,0为忽略,1为备份,如果上次用dump备份,将显示备份至今的天数。

第6列fsck选项,文件系统检测次序,告诉fsck程序以什么顺序检查文件系统,为0就表示不检查,(/)分区永远都是1,其它的分区只能从2开始,当数字相同就同时检查(但不能有两1)。

5. 简要说明FHS结构。

/bin: 所有用户使用的基本命令,该目录不能独立分区,OS在启动时会使用该目录下的文件
/sbin:管理类的基本命令,该目录不能独立分区,OS在启动时会使用该目录下的文件
/boot: 系统启动引导文件存放目录,内核文件及引导加载器存放目录,
/lib: 启动时程序依赖的基本共享库文件以及内核模块文件
/etc: 配置文件目录
/home: 普通用户家目录
/root: 管理员用户家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
/opt:第三方程序安装位置
/srv: 系统上运行的服务用到的数据
/tmp: 临时文件存储位置
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统


6. 用自己的理解总结 文件管理,用户管理,组用户,权限管理相关的命令。文件: 【touch/rm/rmdir/cat/head/less/more】。用户及组:user/group 【useradd/userdel/usermode; groupadd/groupdel/groupmod; chsh/...】。权限 【chmod/chown/setfacl】

6.1文件管理

touch

创建文件的命令

touch filename  创建新文件 touch后加文件名称

rm

删除文件的命令

rm filename 是删除文件,rm -f 强制删除,rm -f递归删除

rmdir 删除文件夹

mkdir

创建目录的命令,mkdir -p 递归创建

ls

查看文件列表的命令

ls -a 列出所有文件包括“."开头的隐藏文件

cat
查看文件内容,常用选项为-b,输出非空行编号。-n,对所有输出行编号

head
功能:从文本文件的头部开始查看,head命令用于查看一个文本文件的开头部分。

用法:head [选项]… [文件]…

-n 制定您想要显示文本多少行

-c number 显示多少个字节

tail

-n 默认查看文本倒数10行

more
主要功能:主要用于读取大文件,以百分比的形式查看日志,类似cat,不过会以一页一页的显示方便使用者逐页阅读,按空白键(space)就往下一页显示,按b键(back)就会往回一页显示,按回车往下一行,而且还有搜寻字符串的功能(与vi相似),使用中的说明文件,请按h,退出按q,显示到最后一行会退出more命令,如果想查看前面内容,需要重新执行more命令。

less
功能:less命令可以对文件或其他输出进行分页显示,与more命令相似。退出按q。
 

6.2用户管理

useradd 添加用户
userdel 删除用户
usermod 修改用户
 

groupadd 添加用户组
groupdel 删除用户组
groupmod 修改用户组

chsh

用来修改用户的shell类型

chsh -s /usr/sbin/nologin gao 将gao账户的shell类型改为nologin

6.3权限管理

chown:
用来更改某个目录或文件的用户名和用户组。
例子:chown root:root filename
chown 用户名:组名 文件路径(可以是绝对路径也可以是相对路径)

chmod:
用来修改某个目录或文件的访问权限。
例子:chmod -R 755 filename

setfacl

setfacl -m u:wang:rw f1.txt    给wang账户单独设置读写权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值