1. 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?
参考链接:浅析各种开源协议介绍:GPL、BSD、MIT、Mozilla、Apache和LGPL - 走看看
GPL
即GNU(General Public License) :GNU通用公共许可协议。目前广泛使用的开源软件许可协议之一,用户享有运行、学习、共享和修改软件的自由。GPL协议和BSD、Apache Licence等鼓励代码重用的许可很不一样。
GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种 linux,包括商业公司的 linux 和 linux 上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
BSD
BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"
BSD开源协议是另一款被广泛使用的开源软件许可协议。相较于GPL许可证,BSD更加宽松,适合于商业用途。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
MIT
MIT 是和 BSD 一样宽范的许可协议,源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称 X11 协议。作者只想保留版权,而无任何其他限制。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息,适用商业软件。使用MIT的软件项目有:jquery、Node.js。
Mozila
将GPL和BSD许可证进行融合,开发人员在发布新软件时,必须附带一个专门用于说明该程序的文件,内容要有原始代码的修改时间和修改方式。
Apache
Apache License(Apache许可证),是Apache软件基金会发布的一个自由软件许可证。Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和最终原作者的著作权,同样允许源代码修改和再发布。
LGPL
LGPL是GPL的一个主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。
2. 安装各发行版系统的安装(centos, rockylinux, ubuntu, 等) 【任选1个】
因安装步骤较多,故以rocky8.5为例,描述在虚拟机中安装Linux系统的步骤:
新建虚拟机(rocky):新建—典型—稍后安装操作系统—选择操作系统(CentOS 8 64位)
依次建立三级文件夹VMs、Rocky8.5、Rocky8.5-1
替换路径、改名——指定磁盘容量(模拟)200g、储存为单个文件
在虚拟机环境中建立Rocky8.5文件夹、拖动子文件夹合并
设置模拟环境的CPU、内存、硬盘等,选择添加光盘镜像文件
选择第二项检测并配置——设置语言、时区等
sever with GUI、Minimal install
设置网络——下方root passward(Linux管理员密码)设置
开始安装
之后还有登陆后许可协议的接受
在下载好镜像文件后,成功安装了centos7.9、rocky8.5以及Ubuntu20.04.3三个Linux系统到VM虚拟机软件中,并安装好了Xshell远程连接到三个虚拟机的IP。
3. Linux中总结,
1)如何通过一个简短的关键字 【man -k man -k process 】,例如process 获取相关的命令。
man -k process
2)通过命令的描述,选择一个命令,获取命令的man文档。【 man top】
man ls
man tail
3)解读man文档,man分几个部分?man每个部分的解释,特别是语法部分。<>, [] ...等各代表什么含义。
NAME(名称及简要说明)
ls - list directory contents
SYNOPSIS(命令语法、格式说明)
ls [OPTION]... [FILE]...
DESCRIPTION(详细说明、功能描述)
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
(命令参数及参数内容说明)
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
...........(略)
Exit status:(命令执行后的结束状态,0表示正常 1表示错误未定位到路径 2表示严重错误 无法连接命令行参数)
0 if OK,
1 if minor problems (e.g., cannot access subdirectory),
2 if serious trouble (e.g., cannot access command-line argument).
AUTHOR(作者信息)
Written by Richard M. Stallman and David MacKenzie.
REPORTING BUGS(BUG信息)
GNU coreutils online help:
Report ls translation bugs to
COPYRIGHT(版本信息)
Copyright © 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO(其他帮助、参考)
Full documentation at:
or available locally via: info '(coreutils) ls invocation'
其中,语法部分内容里:
[] 代表可选内容
<> 代表必选内容
a|b 代表二选一
{ } 代表分组
... 代表同一内容可出现多次
4)根据语法部分 简要的写几个操作。
查看有关man命令的章节并打开:
用man -w查看man命令的源文件:
查看man命令的ASCII码表格:
4. 切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义。 【cd /etc; ls -l /etc/fstab】
- 表示文件
rw-r--r-- 表示权限设置
1 表示软连接的引用数目
root 表示所有者
root 表示所属组
541 表示文件大小
Oct 23 15:27 表示最后修改时间
/etc/fstab 表示文件名
5. 简要说明FHS结构。
FHS即Linux的文件系统分层结构(Filesystem Hierarchy Standard),其采用树形结构组织文件,以 / 根目录为起始,树形结构发散。
文档链接:
【金山文档】 FHS内容-N71050
https://kdocs.cn/l/cjzUPpbz5TGi
6. 用自己的理解总结 文件管理,用户管理,组用户,权限管理相关的命令。文件: 【touch/rm/rmdir/cat/head/less/more】。用户及组:user/group 【useradd/userdel/usermode; groupadd/groupdel/groupmod; chsh/...】。权限 【chmod/chown/setfacl】
文件管理
touch :创建一个普通文件
rm :删除文件、目录
rmdir:只删除空目录
cat :可以读取文件内容,> 当前终端创建文件内容
head:取文件头部若干行
less :用于翻页读取大文件,可以使用上下键翻页,加载速度比more更快
more :用于查看大文件,不能上下翻页
用户组管理
useradd :创建用户(可设置shell权限)
userdel :删除用户
usermode :修改用户属性
groupadd :创建用户组
groupdel :删除用户组
groupmode :修改用户组属性
chsh :更改当前系统的shell类型
权限管理
chmod :更改文件权限
chown :更改相关文件所有者或所属组
setfacl :可以在除所有者或所属组外对其他用户进行权限设定