2022-2023-1 20222806《Linux内核原理与分析》第一周作业

实验一:Linux相关内容简介

Linux作为操作系统的一种,和其他操作系统一样由系统调用和内核所构成。
在这里插入图片描述
在Linux诞生前的年代,当时的主要流行操作系统是UNIX。然而由于UNIX逐步商业化,价格变得昂贵。同时期的主要替代品就是类UNIX系统MINIX,其性能仅仅用于教学目的。1991 年 10 月,Linus Torvalds(Linux 之父)基于MINIX开发了一套性能更佳的操作系统——Linux。至此,Linux开始了多次更新迭代、发展。
在这里插入图片描述

1.1Linux与Windows系统的异同

1、 收费

正版Windows系统需要付费购买;Linux 基本上免费。

2、 软件与支持

Windows:主要是以微软官方支持的收费软件为主,优点是数量和质量相对较高;
Linux:主要是以第三方社区和Linux开发者开发的免费软件为主,质量相比windows没有较好的体验感,优点是可定制度高。

3、 安全性

从整体上来说Linux的安全性比起Windows更好(个人理解这就是为什么大部分Linux作为服务器操作系统的原因)。

4、 使用习惯

Windows由于有成熟的图形界面,因此对新手操作更加友好,而Linux主要以命令行为主,在熟练后效率比Windows的纯图形界面更好操作。

5、 定制性

Linux的可定制性远远大于Windows

6、 应用范围

Linux主要作为服务器后端的操作系统,Windows主要面向用户端。

7、 两者各自欠缺的地方

Windows缺少的:
稳定的系统
安全性和漏洞的快速修补
多用户
用户和用户组的规划
相对较少的系统资源占用
可定制裁剪,移植到嵌入式平台(如安卓设备)
可选择的多种图形用户界面(如 GNOME,KDE)
Linux缺少的:
特定的支持厂商
足够的游戏娱乐支持度
足够的专业软件支持度

1.2Linux主要的学习思路

在这里插入图片描述

实验二:Linux的基本概念以及操作

2.1 Linux桌面环境

相比起Windows一个内核只通过一种对应的桌面环境的表现形式,Linux拥有更加多样的桌面环境,较为熟知的几个桌面环境是KDE,GNOME,XFCE,LXDE。实验楼目前使用的是XFCE,之前使用的是LXDE。
在这里插入图片描述

2.2 Linux终端

用户主要通过终端实现与Linux内核的交互,实验中的终端程序是xfce桌面环境自带的xfce-terminal。终端(Terminal)与控制台(Console)存在区别,终端本质上对应Linux上的/dev/tty设备。
在图形界面下,用户通过终端中的Shell实现与内核交互,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe。UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是bash。

2.3 交互操作

Linux的命令行操作由输入和输出组成。输入就是用户在Shell中输入命令,然后按回车提交命令。输出会返回用户想要的结果,如果存在错误会报告错误信息,一般正常运行的命令不会有返回信息。
【交互中的小技巧】

2.3.1 快捷键

操作效果
Tab可以通过部分开头补全完整
Ctrl+c终止程序
Ctrl+d键盘输入结束或退出终端
Ctrl+s暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a将光标移至输入行头,相当于Home键
Ctrl+e将光标移至输入行末,相当于End键
Ctrl+k删除从光标所在位置到行末
Alt+Backspace向前删除一个单词
Shift+PgUp将终端显示向上滚动
Shift+PgDn将终端显示向下滚动

2.3.2 历史命令

按键盘上的上下键可以很顺利的查看已经提交的命令

2.3.3 通配符

字符含义
*匹配 0 或多个字符
?匹配任意一个字符
[list]匹配 list 中的任意单一字符
[^list]匹配 除 list 中的任意单一字符以外的字符
[c1-c2]匹配 c1-c2 中的任意单一字符 如:[0-9][a-z]
{string1,string2,…}匹配 string1 或 string2 (或更多)其一字符串
{c1…c2}匹配 c1-c2 中全部字符 如{1…10}

2.3.4 帮助

可以通过man(manual pages)来获得大部分帮助

man <command_name>

或者查看man本身的使用方法

man man

man手册被分为来8个区段

区段说明
1一般命令
2系统调用
3库函数,涵盖了 C 标准函数库
4特殊文件(通常是/dev 中的设备)和驱动程序
5文件格式和约定
6游戏和屏保
7杂项
8系统管理命令和守护进程
除了man以外,还有info(详细帮助)和—help(快速查看某个参数作用)

2.4 作业

图形输出界面Banner功能
(1)首先对安装工具进行更新
在这里插入图片描述(2)通过安装工具对banner进行安装操作
在这里插入图片描述
(3)执行banner命令
在这里插入图片描述
(4)通过printerbanner对输出规格进行调整
在这里插入图片描述
(5)类似功能Toilet和figlet实现
在这里插入图片描述
在这里插入图片描述

实验三:Linux的用户管理

Linux拥有用户系统,虽然在物理层面上Linux中各个不同的用户可能共享同一块磁盘区域,但是由于Linux的机制,不同用户之间不能随便读写、执行用户之间的文件。

3.1 查看用户

在这里插入图片描述
主要通过who来查看当前的用户,其中的pts/0表示当前伪终端的编号,后面则是伪终端的启动时间。在非登录式终端的环境下,who am i和who mom likes不会输出任何内容,因为并没有用户与当前终端有所关联。
who 命令其它常用参数

参数说明
-a打印能打印的全部
-d打印死掉的进程
-m同am i,mom likes
-q打印当前登录用户数及用户名
-u打印当前登录用户登录信息
-r打印运行等级

3.2 创建用户

在 Linux 系统里, root 账户拥有整个系统至高无上的权限。大部分 Linux 系统在安装时都会建议用户新建一个用户而不是直接使用 root 用户进行登录。在创建用户的时候需要root权限,此时需要sudo命令,同时还要满足两个条件,一是知晓当前用户密码(PS:Linux环境下输入密码不会想windows一样用*替代);二是当前用户处于sudo用户组。

su、su-、sudo的区别

su 可以切换到用户 user,执行时需要输入目标用户的密码,sudo 可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。su - 命令也是切换用户,但是同时用户的环境变量和工作目录也会跟着改变成目标用户所对应的。
以下是新建lilei用户的过程
(1) sudo adduser lilei
在这里插入图片描述
(2) 查看新增lilei的用户文件夹
在这里插入图片描述
(3) 切换用户
在这里插入图片描述
(4) 可以通过exit直接退出当前用户
在这里插入图片描述

3.3 用户组

用户组在Linux中是一个个用户的不同集合,主要用于方便不同权限的管理

方法一 groups命令

在这里插入图片描述

其中:前为用户名,:为用户所处的用户组。新建用户时如果不指定用户组,那么新建的用户将会进入一个同名的用户组内。

方法二 查看 /etc/group 文件

在这里插入图片描述在这里插入图片描述

这里 cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort 表示将读取的文本进行一个字典排序再输出,然后你将看到如下一堆输出,你可以在最下面看到 shiyanlou 的用户组信息。
也可直接查询:
在这里插入图片描述

/etc/group 文件格式说明/etc/group 的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。
将lilei用户加入sudo组。
在这里插入图片描述

直接在lilei用户上操作时不可以的,只有使用sudo用户shiyanlou对lilei提交usermod命令进行sudo的添加,可以看到lilei已经属于sudo组了。
通过deluser命令对用户进行删除
在这里插入图片描述

3.4 文件权限

Linux/Unix中每一个文件都有各自对应的权限

3.4.1查看文件权限

用长格式列出文件
在这里插入图片描述
对长格式信息解读
在这里插入图片描述

还有其他的查看命令:
查看目录完整信息

ls -dl <目录名>

显示所有文件大小

ls -asSh

3.4.2更改文件所有者

首先在lilei用户情况下创建一个iPhone11文件
在这里插入图片描述

可以发现拥有者被修改为shiyanlou
在这里插入图片描述

3.4.3文件权限的修改

文件的权限有两种表示方式
(1) 二进制表示法
在这里插入图片描述

每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。
在这里插入图片描述

可以看到目前lilei用户已经无法对iphone11进行读写操作了
(2) 加减赋值操作

chmod go-rw iphone11

使用这个命令可以达到上述操作的相同效果。

3.4.4adduser和useradd的区别

useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd 去设置新用户的密码。adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

3.4.5实验

在这里插入图片描述

主要思路是将loutest用户添加入sudo用户组中,直接用sudo操作权限创建forloutest文件,再通过sudo chmod 006 /opt/forloutest修改权限。
在这里插入图片描述

再用ls进行查看,可以看到已经修改了loutest的权限

实验四:Linux 目录结构及文件基本操作

4.1 FHS标准

相比起Windows,Linux和UNIX一样以目录为主,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。这样Linux就不会显得杂乱无章。Linux的目录结构遵循FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准)标准。
FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件,/usr/share 放置共享数据等等。
在这里插入图片描述

4.2 目录路径

进入上一级目录:

cd ..

进入你的 home 目录:

cd ~

使用 pwd 获取当前路径:

pwd

绝对路径
关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。

相对路径
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)。你可能注意到,我们表示相对路径实际并没有加上表示当前目录的那个 . ,而是直接以目录名开头,因为这个 usr 目录为 / 目录下的子目录,是可以省略这个 . 的(以后会讲到一个类似不能省略的情况);如果是当前目录的上一级目录,则需要使用 … ,比如你当前目录为 /home/shiyanlou 目录下,根目录就应该表示为 …/…/ ,表示上一级目录( home 目录)的上一级目录( / 目录)。

4.3 新建文件

创建名为 test 的空白文件,因为在其它目录没有权限,所以需要先 cd ~ 切换回 shiyanlou 用户的 Home 目录:

cd ~
touch test

使用 mkdir(make directories)命令可以创建一个空目录

mkdir mydir

使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件、配置安装路径时非常有用):

mkdir -p father/son/grandson

需要注意的是,在Linux系统当中文件夹会被认定为一种文件,因此在有同名文件存在的情况下,文件夹是无法被创建的。

4.4 复制

使用cp(copy)命令将文件复制到一个目录中
复制文件

cp test father/son/grandson

复制目录
通过递归将一整个目录下的文件全部转移
在这里插入图片描述

4.5 删除

使用remove来删除一个文件
在这里插入图片描述

利用rm -f强制删除需要权限的文件
在这里插入图片描述

删除目录
和文件一样

rm -r family

强制删除

rm -rf family

4.6 移动文件和重命名

在这里插入图片描述

主要通过mv命令对文件进行移动
除此之外还能将文件进行重命名
在这里插入图片描述

批量重命名
在这里插入图片描述

可以通过rename的方式,搭配通配符实现对批量文件的文件名修改。

4.7 查看文件

使用 cat,tac 和 nl 命令查看文件
前两个命令都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
在这里插入图片描述
在这里插入图片描述

使用more和less来分页查看

打开后默认只显示一屏内容,终端底部显示当前阅读的进度。可以使用 Enter 键向下滚动一行,使用 Space 键向下滚动一屏,按下 h 显示帮助,q 退出。
使用 head 和 tail 命令查看文件
在这里插入图片描述

4.8 查看文件类型

在这里插入图片描述

需要主要的是Linux不是通过文件后缀判断文件的类型的,而是通过文件中的内容判断文件类型。

4.9 编辑文件

Linux上可以使用vim编辑器来对文件进行编辑
在这里插入图片描述

4.10 作业

在这里插入图片描述
首先先建立homework文件夹,在进入homework文件夹后进行批量创建操作,在通过rm进行批量删除操作,可以通过两次的ls命令看出都达到了作业要求。Linux的日志在/var/log下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值