N74023作业
"1. 一个完整计算系统的简要介绍。
一个完整的计算机系统由硬件系统和软件系统两大部分组成
其中硬件系统由运算器、控制器、存储器以及输入、输出设备五个部分组成
软件系统由系统软件和应用软件组成,其中系统软件包括操作系统,程序语言处理系统,
数据库管理系统和服务程序组成;应用软件由通用应用软件如Office办公软件包等和专用
应用软件即用户程序组成。
2. 学会进制的转换,并简单举例完成转换。
二进制和十进制转换
如37从十进制转化为二进制
37=32+4+1=2^5+2^2+2^0
其二进制为00100101
3. 制作一个教程,说明vmware软件如何下载安装。
VMware Workstation Pro 16 官方下载的网址是:https://www.vmware.com/cn.html
下载好后的安装比较简单,关键步骤有:








4. 说明GPL和MIT开源协议的区别。
根据GPL开源协议做出来的软件不能用来做商业软件,而MIT开源协议做出来的软件可以用于商业软件
5. 制作2个安装教程,安装rocky 8.5, ubuntu 22.04,并结合xshell说明如何通过虚拟IP登入系统。
Rocky8.5安装




































Ubuntu安装


































6. 说明tab键补全命令以及补全路径的原理。
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻已给定命令命名的
文件,第一次找到的命令即为要执行的命令;用户给定的字符串只有一条唯一推赢得命令,
直接补全;否则,再次Tab键会给出列表;
把用户给出的字符串当作路径开头,并在其指定上级目录下搜索已指定的字符串开头的文
件名,如果唯一,则直接补全;否则,再次Tab键给出列表。
注意:tab键自动补全命令,需要安装包文件:bash-completion
7. 说明内部命令和外部命令的区别,以及他们如何获取帮助的?
内部命令是集成在系统内核的命令,系统启动后将这个文件读入内存,
help command或者man bash获取帮助
外部命令以一个个独立的文件放在磁盘上,用command --help或者command -h获取帮助
也可以用man command获取帮助
8. 说明命令行快捷键如何完成,1)快速跳转到行首?2)快速跳转到行尾?3)快速删除当前光标到行尾,4)快速删除光标到行首,5)如何快速取消执行命令。
1)Ctrl + a
2)Ctrl + e
3)Ctrl + k
4)Ctrl + u
5)Ctrl + c
9. 总结Linux目录结构说明每个目录主要的用途。
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub) 都存放在
此目录
/bin: 所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin: 管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/1ib: 启动时程序依赖的基本共享库文件以及内核模块文件(/1ib/modules)
/1ib64: 专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media: 便携式移动设备挂载点
/dev: 设备文件及特殊文件存储位置
/mnt:临时文件系统挂载点
/opt:第三方应用程序的安装位置
/srv: 系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universa1 shared, read-only data
bin:保证系统拥有完整功能而提供的应用程序
sbin:
1ib: 32位使用
1ib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
1ocal: 第三方应用程序的安装位置
bin,sbin, 1ib, 1ib64, etc, share
/var: variable data files
cache:应用程序缓存数据目录
1ib: 应用程序状态信息数据
local: 专用于为/usr/1ocal下的应用程序存储可变数据
lock: 锁文件
1og: 日志目录及文件
opt:专用于为/opt下的应用程序存储可变数据
run:运行中的进程相关数据,通常用于存储进程pid文件
spool:应用程序数据池
tmp:保存系统两次重启之间产生的临时数据
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux, selinux相关的 安全策略等信息的存储位置
10. 总结文件通配 *, ?, [a-z], [0-9], ~,{a..z},
[:alnum:] [:alpha:] [:blank:]
[:digit:] [:graph:] [:lower:]
[:punct:] [:space:] [:upper:]等常用通配符。
* 匹配零个或多个字符,但不匹配"."开头的文件,即隐藏文件
? 匹配任何单个字符,一个汉字也算一个字符
[a-z] 一个字母
[0-9] 匹配数字范围
~ 当前用户家目录
{a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z
[:alnum:] 任意数字或字母
[:alpha:] 任意大小写字母
[:blank:] 水平空白字符
[:digit:] 任意数字,相当于0-9
[:graph:] 图形字符
[:lower:] 任意小写字母,表示a-z
[:punct:] 标点符号
[:space:] 水平或垂直空白字符
[:upper:] 任意大写字母,表示A-Z
10. 说明文件系统如何根据用户输入的路径查找到磁盘上的文件的过程。
假设我们想访问刚才安装的文件系统中的一个文件/mnt/tmp/test,内核需要进行一系列的操作。Linux内核得到了用户想要打开的文件名称后,从根目录“/”开始一级一级的往下查询。
首先,在dentry缓存中查找“mnt”目录项,如果没找到,则说明以前还没有别的用户查找过这个目录项。这时,内核就需要从硬盘上读取mnt这个目录项相应的inode,这就得借助各个文件系统的不同实现来完成这个操作。
通过mnt的父目录即根目录(dentry→d_inode→i_sb)可以找到这个文件系统的super_block,通过super_block的read_inode负责读取相应的inode。同时建立mnt目录相应的dentry并把它加入到dentry缓存中,以备以后的查询使用。
如果找到,则在dentry缓存中继续从mnt目录里查找tmp的目录项。找到tmp这个目录项后,内核会发现在这个目录项上安装了一个文件系统,这时会把当前找到的tmp目录项替换成所安装文件系统的根目录,从这个根目录开始继续查找。这时如果再读取某个文件的inode时,会找到这个新安装的文件系统的super_block,所有查询、读取等inode的操作都会使用这个文件系统的实现。正是通过这种方式,Linux内核实现了多种文件系统的支持。
11. 总结硬链接和软件链接原理,并举例说明如何使用。
硬链接本质上就是一个文件起一个新的名字,实质是同一个文件
ln filename [linkname]
软件连接指向另一个文件,就像windows中的快捷方式,软连接文件和原文件本质上不是
同一个文件
ln -s /data/dir /data/dirlink
12. 说明linux命令管理工作流程,结合管道功能,自行设计几个题目。
命令1 | 命令2 | 命令3 | ……
将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN
df | tr -s ' '
ls /data /xxx | tr 'a-z' 'A-Z'
echo "2^3" |bc
echo {1..100}|tr ' ' +|bc
seq -s + 1 100 |bc
13. 说明标准输入,标准输出,标准错误输出的区别,及举例说明其功能。
●标准输入(STDIN) -0 默认接受来自终端窗口的输入
●标准输出(STDOUT) -1 默认输出到终端窗口
●标准错误(STDERR) -2 默认输出到终端窗口
ll /dev/std*
ll /proc/self/fd/*
cat test.txt
14. 总结学过的用户,组,权限相关的命令及选项,示例"
切换用户su -s /sbin/nologin liu
su -s /sbin/false liu
su - liu -C 'touch liu.txt'
查看用户相关的ID信息
id [OPTION] ... [USER]
浙公网安备 33010602011771号