1、图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?
1. GPL(GNU通用公共许可证):GPL是最为严格的开源许可证之一,要求任何基于GPL许可证的软件都必须以GPL许可证发布,这意味着任何使用该软件的代码都必须以GPL许可证发布。因此,GPL许可证可以确保开源软件在任何情况下都保持开源,但是对于商业软件的开发者来说,使用GPL许可证可能会受到限制。
2. BSD(Berkeley软件分发许可证):BSD许可证是一种宽松的开源许可证,允许软件的源代码被公开发布和修改,同时允许商业软件的开发者使用BSD许可证的软件代码。BSD许可证没有强制要求使用者公开修改后的代码,因此被认为是商业软件开发者的首选许可证。
3. MIT(麻省理工学院许可证):MIT许可证是一种宽松的开源许可证,类似于BSD许可证,允许软件的源代码被公开发布和修改,并允许商业软件的开发者使用MIT许可证的软件代码。与BSD许可证不同的是,MIT许可证要求使用者必须在软件中包含原始版权声明和许可证声明。
4. Mozilla(Mozilla公共许可证):Mozilla许可证是一种宽松的开源许可证,允许软件的源代码被公开发布和修改,并允许商业软件的开发者使用Mozilla许可证的软件代码。与MIT许可证类似,Mozilla许可证要求使用者必须在软件中包含原始版权声明和许可证声明,同时还要求使用者公开修改后的代码。
5.Apache(Apache许可证):Apache许可证是一种宽松的开源许可证,允许软件的源代码被公开发布和修改,并允许商业软件的开发者使用Apache许可证的软件代码。与MIT许可证和Mozilla许可证不同的是,Apache许可证要求使用者必须在软件中包含原始版权声明和许可证声明,同时还要求使用者声明任何修改后的代码。
6.LGPL(GNU宽通用公共许可证):LGPL许可证是与GPL许可证类似的许可证,但是它允许商业软件的开发者使用LGPL许可证的软件代码。与GPL许可证不同的是,LGPL许可证只要求使用LGPL许可证的代码必须以LGPL许可证发布,而不要求整个软件都必须以LGPL许可证发布。
2、安装各发行版系统的安装(centos, rockylinux, ubuntu, 等)【任选1个】
3、Linux中总结,
1)如何通过一个简短的关键字 【man -k man -k process 】,例如process 获取相关的命令。
通过输入 "man -k process" 命令可以获取与关键字 "process" 相关的命令的帮助文档。这个命令将搜索系统中所有带有 "process" 关键字的命令,并列出它们的帮助文档。如果你只想获取某个特定命令的帮助文档,可以使用 "man" 命令加上命令名称,例如 "man ps" 将会显示 "ps" 命令的帮助文档。
2)通过命令的描述,选择一个命令,获取命令的man文档。【 man top】
[17:40:47 root@rocky9 ~]#whatis passwd
passwd (1ossl) - OpenSSL application commands
passwd (1) - update user's authentication tokens
[17:41:07 root@rocky9 ~]#man 1 passwd
[17:41:19 root@rocky9 ~]#man 1ossl passwd
3)解读man文档,man分几个部分?man每个部分的解释,特别是语法部分。<>, [] ...等各代表什么含义。
1. 用户命令(User Commands):这个部分包含了大多数用户可用的命令的文档信息。
2. 系统调用(System Calls):这个部分包含了内核提供的系统调用的文档信息。
3. 函数库(C Library Functions):这个部分包含了C语言函数库的文档信息。
4. 设备和特殊文件(Devices and Special Files):这个部分包含了设备文件和特殊文件的文档信息。
5. 文件格式和协议(File Formats and Protocols):这个部分包含了文件格式和网络协议的文档信息。
6. 游戏(Games):这个部分包含了一些游戏的文档信息。
7. 杂项(Miscellaneous):这个部分包含了一些其他类型的文档信息,如宏包和协议的手册等。
8. 系统管理员命令(System Administration Commands):这个部分包含了系统管理员使用的命令的文档信息。
语法部分一般包含了命令行选项和参数的语法格式,包括必选参数、可选参数、选项等。其中,<> 表示必选参数,[] 表示可选参数,| 表示选项的多个取值中的一个,... 表示可以多次重复出现的参数。例如:
```
ls [options] [file/directory]...
```
其中,`[options]` 表示可选参数,`[file/directory]` 表示可选参数,`...` 表示可以多次重复出现的参数。
4)根据语法部分 简要的写几个操作。
1. man ls:查看ls命令的说明文档。
2. man -k keyword:搜索关键字,列出所有包含该关键字的命令。
3. man -f command:查看命令的简要说明。
4. man -a command:查看所有命令的说明文档,如果有多个版本则显示所有版本。
5. man -S section command:指定文档的章节,查看命令的说明文档。
4、切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义。 【cd /etc; ls -l /etc/fstab】
-:表示普通文件
rw-r--r--:表示用户权限,前3位"rw-"表示所有者权限,中间3位"r--"所属组权限,后3位"r--"表示其他权限
"r"表示可读权限,"w"表示可写权限,"x"表示可执行权限,"-"则没有权限。
1:表示链接数
root:表示文件的所有者(这个文件属于哪个用户)
root:表示文件的所属组(这个文件属于哪个用户组)
655:文件大小
Jun 15 20:15:时间
fstab:文件名
5、简要说明FHS结构。
FHS(Filesystem Hierarchy Standard)是Linux系统中文件系统的规范化标准。它定义了文件系统的层次结构,以确保不同的Linux发行版和Unix系统之间的兼容性。
FHS结构分为三层,分别是根目录、一级子目录和二级子目录。其中,根目录 "/" 是Linux系统中文件系统的根目录,所有其他目录都是从根目录开始的相对路径。一级子目录包括/bin、/sbin、/usr、/etc、/var、/lib和/home等,存放着系统中的可执行文件、系统命令、应用程序、配置文件、日志文件、共享库和用户主目录等。二级子目录包括/usr/bin、/usr/sbin、/usr/local、/var/log等,存放着一些特定的应用程序、系统的配置文件和日志文件等。
FHS结构的设计使得Linux系统中的文件系统更加标准化和有序化,可以提高不同发行版之间的互操作性,方便软件开发者和系统管理员进行管理和维护。
6、用自己的理解总结 文件管理,用户管理,组用户,权限管理相关的命令。
文件: 【touch/rm/rmdir/cat/head/less/more】。用户及组:user/group 【useradd/userdel/usermode; groupadd/groupdel/groupmod; chsh/...】。权限 【chmod/chown/setfacl】
1. 文件管理命令:
- touch:创建一个新文件或更新已有文件的时间戳。
- rm:删除文件或目录。
- mkdir:创建一个新目录。
- cat:连接文件并打印到标准输出设备上。
- head:输出文件的前面部分。
- less:分页显示文件内容。
- more:分页显示文件内容,类似于less,但比less更简单
2. 用户及组管理命令:
- useradd:创建新用户。
- userdel:删除用户。
- usermod:修改用户的属性信息。
- groupadd:创建新用户组。
- groupdel:删除用户组。
- groupmod:修改用户组的属性信息。
- chsh:修改用户的默认shell程序。
4. 权限管理命令:
- chmod:修改文件或目录的权限。
- chown:修改文件或目录的所有者。
- chgrp:修改文件或目录的所属组。
- setfacl:是中用于设置文件和目录访问控制列表(ACL)的命令。ACL是一种更细粒度的权限控制方式,可以控制某个文件或目录的访问权限,而不仅仅是简单的读、写、执行权限。setfacl命令的常用选项包括:
- -m:设置ACL规则,例如:setfacl -m u:user1:rwx file1
- -x:删除ACL规则,例如:setfacl -x u:user1 file1
- -b:删除所有ACL规则,例如:setfacl -b file1
- -R:递归设置或删除ACL规则,例如:setfacl -R -m u:user1:rwx dir1
使用setfacl命令可以更方便地管理文件和目录的权限,尤其对于多用户或多组织共同使用的文件系统,ACL可以更灵活地控制权限,提高系统的安全性。
标签:文件,第一周,命令,文档,许可证,权限,man
From: https://www.cnblogs.com/lu-shun/p/17521101.html