马哥教育Linux-第01周作业

学号:N74058

1. 一个完整计算系统的简要介绍。
一个完整的计算机系统由硬件和软件系统构成。
硬件系统包括以下五个部分:运算器、控制器;存储设备;输入设备;输出设备。
软件系统包括:系统软件和应用软件两个部分。
系统软件是指计算机安装的各种操作系统;应用软件包括各种安装在操作系统上的实现不同用途的应用程序系统软件与应用软件有什么区别。

2. 学会进制的转换,并简单举例完成转换。
常用进制
二进制:以2为基数,只有两个符号0和1,常用于数字电路和现代计算机以及依赖于计算机的设备里。
八进制:以8为基数,采用0,1,2,3,4,5,6,7八个数字,逢八进1。
十进制:以10为基数,采用0~9这十个数字,逢10进1。
十六进制:以16为基数,逢16进1,采用0~9,A(a),B(b),C(c),D(d),E(e),F(f)来表示0~15这16个数字。

仅四位的二进制数 快速计算方法 十进制值 十六进制值
1111 8+4+2+1 15 F
1110 8+4+2+0 14 E
1101 8+4+0+1 13 D
1100 8+4+0+0 12 C
1011 8+0+2+1 11 B
1010 8+0+2+0 10 A
1001 8+0+0+1 9 9

 

 

 

 

 

 

 

 

3. 制作一个教程,说明vmware软件如何下载安装。
1、通过地址下载http://www.5aixz.com/xitongqita/1139.html
2、获取软件,然后下载安装
3、下载安装完成结果

 

 

 4. 说明GPL和MIT开源协议的区别。
GPL-强制开源-linux
GPL(GNU General Public License):GNU通用公共许可协议。
GPL协议的目的就是强制代码开源和免费使用。
其最大的特点就是“开源的传染性”。也就是说,假设某公司使用了具有GPL协议的代码库,那么他理论上也必须把自己的代码库开源。
实际上,大公司可以有很多方法避开这个限制。

MIT-受公司欢迎的宽松协议-vue
MIT(The Massachusetts Institute of TechnologyLicense,麻省理工学院许可协议)是众多协议条款中,被广泛使用的其中一种。与其他常见的软件许可协议相比,MIT是相对宽松的软件许可协议。
MIT协议允许你任意的使用、复制、修改原MIT代码库,随便你卖钱还是开源,唯一需要遵循的原则就是在你的软件中声明你也使用的是MIT协议就行了。
而很多的公司企业在选用开源产品的时候都首选MIT协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
UI框架VUE、脚本语言Lua使用的就是MIT协议。

5. 制作2个安装教程,安装rocky 8.5, ubuntu 22.04,并结合xshell说明如何通过虚拟IP登入系统。

 

 6. 说明tab键补全命令以及补全路径的原理。
在Linux命令行下,输入字符后,按两次Tab键,shell就会列出以这些字符打头的所有可用命令。如果只有一个命令匹配到,按一次Tab键就自动将这个命令补全。 比如,想更改密码,但只记得这个命令前几个字母是pass。这时候,按Tab键,shell就自动输出 passwd 命令,非常方便。文件实质都存放在根目录下,树状目录,所以tab可以在当前指定目录下寻找i节点信息补齐路径或者文件名; 另一方面tab可以去查询环境变量设置里面/etc/bin的命令文件,补齐命令。

7. 说明内部命令和外部命令的区别,以及他们如何获取帮助的?
内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中
外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除
内部命令查看帮助的格式是
help COMMAND
man bash # man 后面直接跟命令就行
外部命令查看帮助的格式是
COMMAND --help 或者 COMMAND --h
man COMMAND #man 后面直接跟命令就行

8. 说明命令行快捷键如何完成,1)快速跳转到行首?2)快速跳转到行尾?3)快速删除当前光标到行尾,4)快速删除光标到行首,5)如何快速取消执行命令。
ctrl+a:跳到命令行首。
ctrl+e:end,跳到命令行尾。
ctrl+k:删除光标至命令行尾内容。
ctrl+u:删除光标至命令行首内容。
ctrl+c:快速取消执行命令。

9. 总结Linux目录结构说明每个目录主要的用途。

Linux系统各个目录的作用
/:
根目录。有且只有一个根目录。所有的东西都是从根目录开始。举个例子:当你在终端里输入“/home”,你其实是在告诉服务器,先从/(根目录)开始,再进入到home目录。
/root:
这是系统管理员(root user)的目录。对于系统来说,系统管理员就好比是上帝,它能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用root帐号。
/bin, /sbin, /usr/bin, /usr/sbin:
这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的普通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/etc:
这里主要存放了系统配置方面的文件。举个例子:你安装了docker这个套件,当你想要修改docker配置文件的时候,你会发现它们(配置文件)就在/etc/docker目录下。
/dev:
/dev目录用来保存设备文件的【dev并不是存放外部设备的驱动程序。而是一个访问这些外部设备的端口】,每个文件指向一个系统设备。用户的程序可以通过使用这些设备文件,对真实的硬件设备进行操作。如: hda是第1个IDE硬盘,sda是第1个SCSI硬盘【IDE和SCSI其实就是硬盘的两种接口。其中,IDE类型的硬盘主要用于个人PC电脑,而SCSI类型的硬盘主要用于服务器】
设备文件分为两种:块设备文件(b)和字符设备文件©
设备文件一般存放在/dev目录下,对常见设备文件作如下说明:
/dev/hd[a-t]:IDE设备
/dev/sd[a-z]:SCSI设备【小型计算机系统接口(英语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。】
/dev/fd[0-7]:标准软驱
/dev/md[0-31]:软raid设备
/dev/loop[0-7]:本地回环设备
/dev/ram[0-15]:内存
/dev/null:无限数据接收设备,相当于黑洞
/dev/zero:无限零资源
/dev/tty[0-63]:虚拟终端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:并口
/dev/console:控制台
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9]
/dev/random:随机数设备
/dev/urandom:随机数设备
/dev目录下的节点是怎么创建的?
devf或者udev会自动帮你创建得。
kobject是sysfs文件系统的基础,udev通过监测、检测sysfs来获取新创建的设备的。
/home:
这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。
/tmp:
这是临时目录。对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。
/usr:
在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如像游戏阿,一些打印工具拉等等。/usr目录包含了许多子目录:/usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib目录用于存放那些不能直接运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器(应该是“新立得”吧)会自动帮你管理好/usr目录的。
/opt:
这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。
举个例子:刚才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,非常简单。
/usr/local:
这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。
/media:
有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
/var:
统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径。
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/srv:
service缩写,该目录存放一些服务启动之后需要提取的数据。
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
总结
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是 /bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

10. 总结文件通配 *, ?, [a-z], [0-9], ~,{a..z},
[:alnum:] [:alpha:] [:blank:]
[:digit:] [:graph:] [:lower:]
[:punct:] [:space:] [:upper:]等常用通配符。

*             代表任意长度的任意字符
?            代表匹配任意单个字符
[a-z]:    所有的小写字母
[0-9]:      所有的数字
~           当前登录用户的家目录
{a..z}      序列a到z
[:alnum:] 字母和数字
[:alpha:]   任何大小写字母
[:blank:]   空白字符
[:digit:]     十进制数字
[:graph:]   可打印的非空白字符
[:lower:]    小写字母
[:punct:]    标点符号
[:space:]    空格
[:upper:]     大写字母

10. 说明文件系统如何根据用户输入的路径查找到磁盘上的文件的过程。

1、将文件目录项所在的目录读入内存(如果是根目录或单级目录则省去)
2、通过内存中的目录查找FCB或i节点
3、通过FCB或i节点,根据文件的物理结构(连续、隐式链接、显示链接、索引……)进行查找文件磁盘块。
注意:i节点形式下,目录项存储的指针指向的是该文件的描述信息(物理地址等),因此与FCB相比需要多读一次。
由此,就有了一些题目,如树形目录结构中,读取某文件FCB需要磁盘I/O操作几次;已知FCB读取文件某块磁盘块需要I/O操作几次……

11. 总结硬链接和软件链接原理,并举例说明如何使用。

原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。
实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
使用限制上,不能对目录创建硬链接,不能对不同文件系统创建硬链接,不能对不存在的文件创建硬链接;可以对目录创建软连接,可以跨文件系统创建软连接,可以对不存在的文件创建软连接。
硬链接 ln 1.txt 2.txt
软连接 ln -s 1.txt 2.txt

12. 说明linux命令管理工作流程,结合管道功能,自行设计几个题目。

ls 查看
cd 进入
cat 查看
touch 创建文件
mkdir 创建目录
vim 进入文件
rm 删除
pwd 查看当前目录
取出网站访问量最大的前3个IP
awk '{print $1}' nginx.access.log-20200428|sort | uniq -c |sort -nr|head -3

查看文件有多少行
cat 1.txt |wc -l

2+2
echo "2+2" | bc

查看文件22的内容
cat 1.txt |grep 22

13. 说明标准输入,标准输出,标准错误输出的区别,及举例说明其功能。

标准输入 0
标准输出 1
标准错误输出 2
标准输入
cat 1.txt 读取文件内容
标准输出
echo 33 > 1.txt 把33重定向到1.txt文件里
标准错误输出 2
make xxx 2> build_output.txt 把make输出中的错误(及警告)信息输出到文件中去

14. 总结学过的用户,组,权限相关的命令及选项,示例

用户管理命令
useradd
usermod
userdel
组帐号维护命令
groupadd
groupmod
groupdel
-u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT“ 用户的注释信息
-d HOME_DIR 以指定的路径(不存在)为家目录
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6之前: ID<500,CentOS7 以后 : ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
-p 指定加密的密码
权限
owner
group
other 属主 , u 属组 , g 其他 , o
groupadd -g 123 -r mysql
创建一个组123 组名mysql
root@zhaohuakang:/opt# getent group|grep mysql
mysql:x:123:
创建账号
useradd -u 123 -g mysql -s /sbin/nologin -d /data/mysql -M mysql
指定id123 属组mysql 类型nologin(不允许登录)家目录 用户名mysql
root@zhaohuakang:/opt# cat /etc/passwd |grep mysql
mysql:x:123:123::/data/mysql:/sbin/nologin
root@zhaohuakang:/opt# id mysql
uid=123(mysql) gid=123(mysql) groups=123(mysql)
usermod 命令可以修改用户属性
root@zhaohuakang:/opt# usermod -u 132 -s /bin/false mysql
root@zhaohuakang:/opt# cat /etc/passwd |grep mysql
mysql:x:132:123::/data/mysql:/bin/false
userdel 可删除Linux 用户
userdel mysql
创建组
groupadd sales
查看
root@zhaohuakang:/opt# getent group|grep sales
sales:x:1001:
删除组
groupdel sales
查看用户相关信息
id mysql
用户切换
su - hehe
修改密码
echo hehe:123456 | chpasswd

-

posted @ 2023-02-03 15:45  Jack_Cui  阅读(148)  评论(0编辑  收藏  举报