第一周作业
1. 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?
GPL(GNU General Public License)是一种开源许可证,它要求任何使用、修改或分发被授权软件的人必须将其代码开源,并且任何以GPL许可证发布的软件都必须使用相同的许可证。这意味着GPL许可证下的软件必须保持开源,并且任何对其进行修改或分发的人都必须遵守相同的要求。
BSD(Berkeley Software Distribution)许可证是一种宽松的开源许可证,它允许使用、修改和分发被授权软件的人自由地选择是否将其代码开源。BSD许可证允许使用者在满足一些简单的条件下使用和分发软件,而不需要开源其代码。
MIT(Massachusetts Institute of Technology)许可证是一种类似于BSD开源许可证,它要求任何使用、修改或分发被授权软件的人必须将其代码开源,并且任何以Mozilla许可证发布的软件都必须使用相同的许可证。与GPL类似,Mozilla许可证下的软件必须保持开源,并且任何对其进行修改或分发的人都必须遵守相同的要求。
Apache许可证是一种宽松的开源许可证,它允许使用、修改和分发被授权软件的人自由地选择是否将其代码开源。与BSD和MIT许可证类似,Apache许可证只有一些简单的条件。
LGPL(GNU Lesser General Public License)是一种开源许可证,它类似于GPL许可证,但对于以LGPL许可证发布的库文件,允许使用者在某些条件下将其链接到非开源软件中,而不需要将非开源软件开源。这使得LGPL许可证适用于开发库文件的情况。
2.安装各发行版系统的安装(centos, rockylinux, ubuntu, 等) 【任选1个】
3.Linux中总结
1)如何通过一个简短的关键字 【man -k process 】,例如process 获取相关的命令。
# 先查询man -k 的含义
man man | grep -A3 '\-k'
# -k, --apropos
# Equivalent to apropos. Search the short manual page descriptions for keywords and display any matches. See apropos(1) for details.
# 查询得知,这是查询命令的简短介绍和查询正则表达式相匹配的相关命令和介绍并返回
# man -k process 即表示展示命令或其简短介绍中包含process的命令和其简短介绍
2)通过命令的描述,选择一个命令,获取命令的man文档。【 man top】
man -k process | grep top
# Getopt::Long (3pm) - Extended processing of command line options
# Getopt::Std (3pm) - Process single-character switches with switch clustering
# top (1) - display Linux processes
# 这里表明,top命令的man手册第一章的介绍中包含process
# 我们可以通过 man 1 top 或 man top 查看top命令帮助
man top
# NAME
# top - display Linux processes
3)解读man文档,man分几个部分?man每个部分的解释,特别是语法部分。<>, [] ...等各代表什么含义。
# 查看章节部分
man top | grep -P '^\w+' | tr -s ' '
# TOP(1) User Commands TOP(1)
# NAME
# SYNOPSIS
# DESCRIPTION
# OVERVIEW
# 1. COMMAND-LINE Options
# 2. SUMMARY Display
# 3. FIELDS / Columns
# 4. INTERACTIVE Commands
# 5. ALTERNATE-DISPLAY Provisions
# 6. FILES
# 7. STUPID TRICKS Sampler
# 8. BUGS
# 9. HISTORY Former top
# 10. AUTHOR
# 11. SEE Also
# procps-ng July 2014 TOP(1)
man分为
NAME: 命令的名称和作用
SYNOPSIS: 命令的语法
DESCRIPTION: 命令的介绍
语法部分:
<> 必选参数
[] 可选参数
... 可重复出现的参数
4) 根据语法部分 简要的写几个操作。
# 非交互式显示进程信息,只显示一次,并且按PID即进程ID升序
top -bn1 -o -PID
4.切换到/etc/目录,列出fstab文件的详细信息,详细解决fstab一行,每个或每几个字符的详细含义
cd /etc
ls -l fstab
# -rw-r--r-- 1 root root 313 4月 18 14:19 fstab
# 此表明该文件为普通文件,所有者的权限为可读可写,所属组的权限为可读,其他人的权限为可读
# 该文件大小为 313 byte,最后修改时间为今年的4月18日14:19。
5.简要说明FHS结构。
FHS(Filesystem Hierarchy Standard)是一种用于Linux系统的文件系统层次结构标准。它定义了Linux系统中各个目录的用途和组织方式,以便于用户和开发者理解和管理文件系统。
FHS结构主要包括以下几个重要目录:
/:根目录,包含所有其他目录和文件的起始点。
/bin:包含系统启动和运行时需要的可执行文件。
/boot:包含启动系统所需的文件,如内核和引导程序。
/dev:包含设备文件,用于与硬件设备进行交互。
/etc:包含系统的配置文件。
/home:用户的主目录,每个用户都有一个独立的子目录。
/lib:包含系统所需的共享库文件。
/media:用于挂载可移动媒体设备,如光盘和USB驱动器。
/mnt:用于挂载临时文件系统。
/opt:用于安装第三方软件的目录。
/proc:虚拟文件系统,提供有关系统和进程的信息。
/root:超级用户(root)的主目录。
/sbin:包含系统管理员使用的系统管理命令。
/tmp:用于存储临时文件。
/usr:包含用户可执行文件、库文件和文档等。
/var:包含系统运行时产生的变量数据,如日志文件和临时文件。
FHS结构的目的是为了提高Linux系统的可移植性和兼容性,使不同的Linux发行版能够遵循相同的文件系统标准,方便用户和开发者进行系统管理和软件开发。
6.用自己的理解总结 文件管理,用户管理,组用户,权限管理相关的命令。
文件: 【touch/rm/rmdir/cat/head/less/more】
touch 创建文件,可一次创建多个
例如: touch day{1..10}.log
rm 删除文件或文件夹
-r 递归删除
-f 删除时不询问,直接删除
rmdir 删除空目录
-p 递归删除父级空目录
例:
mkdir -p a/aa/aaa
rmdir -p a/aa/aaa 等价于 rmdir a/aa/aaa a/aa a
cat 读取文件全部内容,支持交互式输入
例:
cat 1.txt
可把文件内容合并再读取
cat 1.txt 2.txt 输出1.txt,2.txt合并后的内容
常用语法-创建文件
cat >a.txt <<end
> line1
> line2
> line3
> end
head 取文件的头几行,不指定行数取前10行
支持交互式输入
-n 指定要取的行数
例:
head 1.txt 取1.txt的前10行
head -n 5 1.txt 取前5行 ,可省略n :head -5 1.txt
head -n -5 1.txt 取前面的行,直到倒数第5行
less 一页一页把文件加载到内存读取。不会显示进度
less 1.txt
Ctrl+D 下翻 Ctrl+B 上翻
:q 退出
more 把文件全部加载到内存读取,会显示进度
翻页到底,会退出命令
Ctrl+D 下翻 Ctrl+B 上翻
推荐使用less读取文件内容
用户及组:user/group 【useradd/userdel/usermode; groupadd/groupdel/groupmod; chsh/...】
user
linux支持多用户,且支持多用户同时操作
linux对文件的操作非常严格,所以权限划分也很严格。
存储用户列表的文件:/etc/passwd
group
如公司有各个部门,其职责不同,linux中有各个组,可以把用户归于组中,直接对组授权,方便操作
存储用户组的文件:/etc/group
useradd
新增用户
-g 指定主组,主组名和主组id
-u 指定uid即用户编号
-r 创建系统用户(不能登录)
-G 指定附属组
不指定主组,则或新建一个和用户名一样的主组
案例: useradd -r mysql
userdel
删除用户
-r 删除用户家目录和邮箱
案例:userdel -r zhangsan
usermod
修改用户
-g 指定主组,主组名和主组id
-u 指定uid即用户编号
-G 指定附属组
案例:usermod -u 1077 -g root zhangsan
groupadd
新增组
-g 指定组id
groupdel
删除组,如果有以改组为主组的用户,则不能删除
groupmod
修改组
-g 指定主组,主组名和主组id
chmod
修改文件权限。
chmod [u|g|o] [+|-] [r|w|x]
chmod 777
chown
修改文件的所属用户
chown 文件 用户
setfacl
可为每个用户单独设置文件权限
-m 修改策略
-x 删除摸个用户或组的策略
-b 删除所有策略
-R 递归设置策略
例:setfacl -m u:zhangsan:w a.txt
设置张三对a.txt有写权限
标签:文件,txt,第一周,用户,开源,许可证,随笔,man
From: https://www.cnblogs.com/xyky/p/17520965.html