学习第一周

这篇博客详细介绍了开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别,以及Linux系统管理的基础知识,包括安装Ubuntu、使用man命令、解析man文档、理解fstab文件、FHS标准以及文件、用户和权限管理的相关命令。
摘要由CSDN通过智能技术生成

目录

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

2. 安装各发行版系统的安装(centos, rockylinux, ubuntu, 等) 【任选1个】

​3. Linux中总结,

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

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

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

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

4. 切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义。 【cd /etc; ls -l /etc/fstab】

5. 简要说明FHS结构。

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


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

开源Open Source

  • 软件和源代码提供给所有人,自由分发软件和源代码,free自由不是免费
  • 能够修改和创建衍生产品

世界上的开源许可证,大概有上百种,最流行的六种:GPL、BSD、MIT、Mozilla、Apache和LGPL

1.BSD许可证

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

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

    如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
    如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
    不可以用开源代码的作者、机构名字和原来产品的名字做市场推广。

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许可证

1980,一个叫Richard Stallman的美国人因为无法容忍软件私有化,而建立了GPL许可证。他认为,软件的源代码是全人类的财富,应该允许程序员自由共享。

GPL许可证的核心含义是:允许任何人观看、修改,并散播程序软件里的原始程序码,条件是如果你要发布修改后的版本就要连源代码一起公布,不允许修改后和衍生的代码做为闭源的商业软件发布和销售。Linux就是采用了GPL协议,这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

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

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

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

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

严格程度MIT->BSD->Apache->LGPL->Mozilla->GPL

2. 安装各发行版系统的安装(centos, rockylinux, ubuntu, 等) 【任选1个】

VMware虚机装rockylinux

创建虚机,选择对应的操作系统及版本

创建过程中配置内存、硬盘、CD/DVD等信息,创建完成开启虚机,选择验证境像完整或者第一项直接开始安装

设置语言,分区,安装位置,安装版本(桌面、最小化等),密码,时区等,开始安装


3. Linux中总结,

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

ls查看命令

查看进程:

ps -l 列出与本次登录有关的进程信息;
ps -aux  查询内存中进程信息;
ps -aux | grep ***  查询***进程的详细信息;
top  查看内存中进程的动态信息;
kill -9 pid  杀死进程。

Linux中查看进程状态信息 | 程序员在旅途

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

man +命令

eg:man ls

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

man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。        

语法:man(选项)(参数)

        选项

        -a:列出所有帮助

        -k:搜索man手册

        -f:相当于whatis

        -w:打印man帮助文件的路径

        参数

        数字:指定从哪本man手册中搜索帮助; 关键字:指定要搜索帮助的关键字。

      

        符号含义

        [ ]:可选内容

        <>:必选内容

        a|b:二选一

        {}:分组

        …:可以有多个

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

man man

当某个命令有别名时man 1 xx

man -f ls


4. 切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义。 【cd /etc; ls -l /etc/fstab】

# /etc/fstab

#创建时间

#引用/dev/disk

#更多信息可man 5 fstab,man 8 findfs等

#更改信息后,可用systemctl daemon-reload更新

使用内核名称标识磁盘,root,home,swap

  • <file system> - 要挂载的分区或存储设备。
  • <dir> - <file system> 的挂载位置。
  • <type> - 要挂载设备伙食分区的文件系统类型,支持许多种不同的文件系统:ext2,ext3,ext4,reiserfs,xfs,jfs,smbfs,iso9660,vfat,ntfs,swap 及 auto。设置成 auto 类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用的。
  • <options> - 挂载时使用的参数,注意有些 mount 参数是特定文件系统才有的。一些比较常见的参数有:

                 > auto - 在启动时或键入了 mount -a 命令是自动挂载。

                > noauto - 只在你的命令下被挂载。

                > exec - 允许执行此分区的二进制文件。

                > noexec - 不允许执行此文件系统上的二进制文件。

                > ro - 以只读模式挂载文件系统。

                > rw - 以读写模式挂载文件系统。

                > user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec,nosuid,nodev 参数。

                > users - 允许所有 users 组中的用户挂载文件系统。

                > nousers - 只能被 root 挂载。

                > owner - 允许设备所有者挂载。

                > sync - I/O 同步进行。

                > async - I/O 异步进行。

                > dev - 解析文件系统上的块特殊设备。

                > nodev - 不解析文件系统上的块特殊设备。

                > suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序临时提升权                  限。

                > nosuid - 禁止 suid 操作和设定 sgid 位。

                > noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。

                > nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。

                > relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime                 相似,但不会打断 mutt 或其他程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见                 atime 参数)。

                > flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。

                > defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw,suid,dev,exec,auto,                               nouser,async。

  • <dump> - dump 工具通过它决定何时做备份,dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。允许的数字是 0 和 1。0 标识忽略,1 则进行备份。大部分的用户是没有安装 dump 的,对他们而言 <dump> 应设为 0。
  • <pass> - fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是 0 ,1 和 2。根目录应当获得最高的优先权 1,其它所有需要被检查的设备设置为 2。0 表示设备不会被 fsck 所检查。

5. 简要说明FHS结构。

文件系统层次标准(Filesystem Hierarchy Standard,FHS)定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。

第二层则是针对/usr及/var这两个目录的子目录来定义。

Linux系统目录结构

/bin:所有用户可用的基本命令程序文件。

/lib:为系统启动或根文件系统上的应用程序(/bin、/sbin等)提供共享库,以及为内核提供内核模块。

/boot:引导加载器必须用到的各种静态文件,如kernel、grub等。

/dev:设备文件与特殊文件。

/etc:系统程序的静态配置文件。

/home:普通的家目录的集中位置,一般每个普通用户的家目录默认为此目录下与用户名同名的子目录。

/root:管理员的家目录。

/mnt:挂载点目录,通常挂载额外的临时文件系统。

/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口。

/run:存放动态的,不持久的应用程序运行数据。

/sbin:供管理员的使用的工具程序。

/tmp:临时文件。

/user:全局共享的只读数据路径。

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

 文件管理:

查看,创建,移动,复制,删除

cat,more,less  touch  mv  cp  rm

用户管理:

创建,修改权限

useradd  usermod

组用户:

创建组,修改组,删除组

groupadd  groupmod  groupdel

权限管理:

文档的权限就是对文档的操作权限 w r x
读取,r,read == 具体的权限有: cat、less、more、head、tail…
修改,w,write == 具体的权限有: vim、gpedit、>、>>、/
执行,x,execute == 具体的权限有: 是否可被执行

目录(文件夹)的权限:
读取,r,read == 具体的权限有: ls …
修改,w,write == 具体的权限有: mkdir、rouch、cp、mv、rm、chmod
执行,x,execute == cd 、是否能够进入此目录
特点:只要对一个目录有w权限,就可以删除这个目录下任何文件

文档的归属就是文档属于那个用户
Linux下,对文档的归属关系分为两种:
1、属主(user) : 这个文件属于那个用户
2、属组(group) : 这个文件属于那个组
其它人(othen) : 除了属组和属主以外的其它用户

chmod 变更文件或目录权限

chown修改文件所有权

setfacl细分linux下的文件权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值