- 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?
GNU通用公共许可证简称为GPL,是由自由软件基金会发行的用于计算机软件的协议证书,使用该证书的软件被称为自由软件。大部分 GNU 的程序和超过一半的自由软件使用这种许可证。Linux 采用了 GPL。 GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种 linux,包括商业公司的 linux 和 linux 上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统。 当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件: 1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。 2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。 3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 BSD代码鼓励代码共享,但需要尊重代码作者的著作权。
MIT源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称“X条款”(X License)或“X11条款”(X11 License)MIT内容与三条款 BSD许可证(3-clause BSD license)内容颇为近似,但是赋予软件被授权人更大的权利与更少的限制。 MIT 是和 BSD 一样宽范的许可协议,源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称 X11 协议。作者只想保留版权,而无任何其他限制。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。
Mozilla即Mozilla Public License MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者 。这种授权维护了商业软件的利益,它要求基于这种软件的修改无偿贡献版权给该软件。 这样,围绕该软件的所有代码的版权都集中在发起开发人的手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。
Apache是著名非盈利组织Apache采用的协议。与BSD类似,同样鼓励代码共享和尊重原作, 同样允许修改代码再次发布(作为开源或商业软件)。但需要遵循以下4点: 1.需要给代码的用户一份Apache License 2.如果修改了代码,需要在被修改的代码中进行说明 3.在衍生的代码中需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明 4.如果再发布产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。可以在Notice文件中添加自己的许可,但不可以表现为对Apache License构成更改。
LGPL:GNU宽通用公共许可证(GNU Lesser General Public License,简称GNU LGPL、LGPL)被用于一小部分(不是全部)的GNU库。LGPL是GPL的一个主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。 如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
- 安装各发行版系统的安装(centos, rockylinux, ubuntu, 等) 【任选1个】
新建一个虚拟机
虚拟机开机,选择第一项安装系统
进入安装界面,选择语言
选择system,进入分区界面
选择custom手动分区
选择Standard Partition
点击“+”新建根目录“/”,分配大小100G
依次新建swap,/boot,/data
分区完点击“Done”,格式化分区
选择network&hostname配置网络和主机名
选择时区
点击software selction,勾选安装需要的软件
*选GUI就表示装好的系统带图形界面
点击Root Password,配置root密码
如需ssh连接记得勾选
点击User creation,创建普通用户
设置完毕后,点击begin install开始安装
安装完毕重启系统
进入登录界面,输入密码登录
进入系统桌面,安装完毕
- Linux中总结 1)如何通过一个简短的关键字 ,例如process 获取相关的命令。 man -k keyword 比如 man -k hostname
2)通过命令的描述,选择一个命令,获取命令的man文档。【 man top】
man -f hostname
man 1 hostname
3)解读man文档,man分几个部分?man每个部分的解释,特别是语法部分。<>, [] ...等各代表什么含义。
man分为9个部分,分别是:
1.用户命令
2.系统调用
3.C库调用
4.设备文件及特殊文件
5.配置文件格式
6.游戏
7.杂项
8.管理类的命令
9.Linux内核API
man帮助段落说明
NAME 名称及简要说明
SYNOPSIS 用法格式说明--其中[]可选内容 <>必选内容 a|b二选一 {}分组 ...同一内容可多次出现
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版权信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
4)根据语法部分 简要的写几个操作。
hostname #显示主机名
创建/testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/dir6,/testdir/dir5/dir7
mkdir -p /testdir/dir{3,4,5/dir{6,7}}
- 切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义。
-rw-r--r--. 1 root root 709 6月 21 19:31 /etc/fstab
-rw-r--r--:第一个-表示文件类型,-是普通文件;rw-r--r--表示文件所有者权限,所属组群权限,其它用户选项
1:链接数
root root:文件所有者 文件所属群组
709:文件大小
6月 21 19:31:文件修改时间
/etc/fstab:文件名
- 简要说明FHS结构。 Linux的文件系统层级结构:FileSystem Hierarchy Standdard(简称FHS)定义了在Linux系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置哪个目录下。在Linux系统中,所有的目录和文件都是由根目录(/)开始的,然后再一个一个分下来,通常我们将这种配置方式称为目录树,如下图所示
常见文件系统目录功能:
/boot:引导加载程序的静态文件,存放系统启动过程所需内容
/dev:设备文件,存放特殊文件和设备文件
/etc:系统配置文件目录
/home:普通用户家目录
/root:系统用户家目录
/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/opt:第三方应用程序的安装位置
/srv:本系统提供服务的特定数据
/tmp:临时文件存储位置
/usr: 可共享的只读数据
/var: 变量数据文件
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
- 用自己的理解总结 文件管理,用户管理,组用户,权限管理相关的命令。
1.文件管理
touch命令可以创建空文件及更改文件的时间(访问时间atime和修改时间mtime)
新建文件file1
[root@rocky2 ~]# touch file1
将文件file1的时间记录更改为7月1日19点30分
[root@rocky2 ~]# touch -c -t 07011930 /root/file1
将/root/file4文件的访问/修改时间(atime/mtime)设置成与/etc/passwd文件相同
[root@rocky2 ~]# touch -r /etc/passwd /root/file1
mkdir命令创建目录
创建目录test
[root@rocky2 ~]# mkdir test
创建目录test2,权限为777(系统默认权限755)
[root@rocky2 ~]# mkdir -m 777 test2
rmdir命令删除空目录
删除空目录test
[root@rocky2 ~]# rmdir test
删除空目录test2,-p表示递归
[root@rocky2 ~]# rmdir -p /root/test2 #由于/root目录不是空的,所以/root目录无法删除
rm命令可以删除系统中的文件和目录
删除文件file1
[root@rocky2 ~]# rm file1
删除目录test
[root@rocky2 ~]# rm -rf test
cp命令复制文件和目录到其它目录。如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,而最后的目的地并非是一个已存在的目录,则会出现错误信息
将文件/root/file1复制到/data,并重命名为file2
[root@rocky2 ~]# cp /root/file1 /data/file2
mv命令可以对文件和目录更改名称,以及移动文件和目录
把文件file1重命名为file2
[root@rocky2 ~]# mv /root/file1 /root/file2
把文件file2移动到目录/data
[root@rocky2 ~]# mv /root/file2 /data
2.用户管理及组用户
useradd命令可以在系统中创建一个用户账户,为新账户分配用户UID、组群、主目录和登录Shell等。新创建的用户账户默认是被锁定的,无法使用,需要使用passwd命令设置密码后才能使用。创建用户账户就是在/etc/passwd文件中为新用户增加一条记录,同时更新/etc/shadow和/etc/group文件。
新建用户zhang
useradd -u 666 -d /home/www -g games -s /sbin/nologin zhang
然后/etc/passwd多出一条记录
zhang:x:666:20::/home/www:/sbin/nologin
passwd命令可以设置或修改用户的密码,普通用户只能更改自己的用户密码,root用户可以设置或修改任何用户的密码。
修改zhang的密码
passwd zhang #不加用户名表示修改当前用户密码
usermod命令可以修改用户账户属性
修改zhang的家目录为/home/zzz,-m表示把就目录的的内容移到新目录
usermod -d /home/zzz -m zhang
修改主群和附加群
usermod -g root -G mail zhang
修改shell
usermod -s /bin/bash zhang
userdel命令可以在系统中删除用户账户
删除用户zhang
userdel zhang
连家目录一起删除
userdel -r zhang
groupadd命令可以在系统中创建组群账户
创建群组lol
groupadd lol
创建群组,GID为800
groupadd -g 800 lol800
groupmod命令可以在系统中修改组群账户
修改GID groupmod -g 900 lol800
修改群组名称为lol900
groupmod -n lol900 lol800
groupdel命令可以在系统中删除组群账户
删除群组lol
groupdel lol
3.权限
chown命令可以更改文件和目录的用户所有者和组群所有者
修改文件1.txt的所有者
chown zhang 1.txt
修改文件1.txt的组群所有者
chown :root 1.txt
修改文件1.txt的所有者和组群所有者
chown zhang:root 1.txt chown zhang.root 1.txt
将目录/data连同它的下级文件和子目录的用户所有者/组群所有者更改为zhang/root,慎用
chown -R zhang:root /data
chmod命令可以改变文件或目录的访问权限
更改1.txt文件权限,添加用户所有者为读取、写入,组群所有者为读取权限,取消其他用户读取、写入和执行的权限
chmod u+rw,g=r,o-rwx 1.txt
也可用数字来表示
chmod 640 1.txt