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

虚拟机及系统下载与安装

1.虚拟机

虚拟机我选择了老师在教程中使用的VirtualBox,我下载的是6.1.36版本,界面如下。
在这里插入图片描述

2.系统

由于教程中链接失效,我自行搜索了一个国内的镜像链接: http://mirrors.melbourne.co.uk/ubuntu-releases/,并下载了20.04.5版本。
在虚拟机上的安装过程中,出现了由于分辨率不合适导致Ubuntu安装界面显示不全的问题。
在这里插入图片描述

通过查询,学到了可以使用Win+鼠标左键的方式向上拖动窗口。
在这里插入图片描述

之后顺利安装完成。
还有一个问题是在安装完增强功能后,分辨率只能调整到1920x1200(16:10),而不能调整到与我的电脑匹配的2560x1600。

实验一 Linux系统简介

Linux系统

Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
在这里插入图片描述

Linux 主要是系统调用和内核那两层。

Linux 与 Windows的不同

  1. 免费与收费
    最新正版 Windows 10,需要付费购买;
    Linux 免费或少许费用。

  2. 软件与支持
    Windows 平台:数量和质量的优势,不过大部分为收费软件;由微软官方提供重要支持和服务;
    Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;由全球所有的 Linux 开发者和自由软件社区提供支持。

  3. 安全性
    Windows 平台:三天两头打补丁安装系统安全更新,还是会中病毒木马;
    Linux 平台:要说 Linux 没有安全问题,那当然是不可能的,这一点仁者见仁智者见智,相对来说肯定比 Windows 平台要更加安全,使用 Linux 你也不用装某杀毒、某毒霸。

  4. 使用习惯
    Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易,入门简单;
    Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作,新手入门较困难,需要一些学习和指导(这正是我们要做的事情),一旦熟练之后效率极高。

  5. 可定制性
    Windows:这些年之前算是全封闭的,系统可定制性很差;
    Linux:你想怎么做就怎么做,Windows 能做到得它都能,Windows 做不到的,它也能。

  6. 应用范畴
    或许你之前不知道 Linux ,要知道,你之前在 Windows 使用百度、谷歌,上淘宝,聊 QQ 时,支撑这些软件和服务的,是后台成千上万的 Linux 服务器主机,它们时时刻刻都在忙碌地进行着数据处理和运算,可以说世界上大部分软件和服务都是运行在 Linux 之上的。

  7. Windows 没有的
    稳定的系统
    安全性和漏洞的快速修补
    多用户
    用户和用户组的规划
    相对较少的系统资源占用
    可定制裁剪,移植到嵌入式平台(如安卓设备)
    可选择的多种图形用户界面(如 GNOME,KDE)

  8. Linux 没有的
    特定的支持厂商
    足够的游戏娱乐支持度
    足够的专业软件支持度

Linux学习路径

在这里插入图片描述

实验二 基本概念及操作

Linux 桌面环境介绍

Linux桌面环境(实验楼)

实验楼目前使用的桌面环境为XFCE 。另外,目前最流行的实现了客户端功能的桌面环境还有 KDE,GNOME,LXDE 等。
桌面环境

终端

通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的
终端(Terminal)和控制台(Console)是有区别的
终端本质上是对应着 Linux 上的 /dev/tty 设备
Linux 的多用户登录就是通过不同的 /dev/tty 设备完成的
Linux 默认提供了 6 个纯命令行界面的 “terminal”来让用户登录
在物理机系统上你可以通过使用**[Ctrl]+[Alt]+[F1]~[F6]**进行切换

Shell

Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe
UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言
在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity(基于 GNOME),但实验楼的环境中使用的分别是 zsh 和 xfce。

命令行常用操作指令

touch file #创建一个名为 file 的文件,touch是一个命令
cd /etc/ #进入一个目录,cd是一个命令
pwd #查看当前所在目录
tab可以补齐命令
按方向上键↑,恢复你之前输入过的命令
*和?是通配符,用于模糊匹配
man和help还有info都是帮助

其他常用快捷键

在这里插入图片描述

常用通配符

在这里插入图片描述

man

在 Linux 环境中,如果你遇到困难,可以使用man命令,它是Manual pages的缩写。

Manual pages 是 UNIX 或类 UNIX 操作系统中在线软件文档的一种普遍的形式, 内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,甚至是抽象的概念。用户可以通过执行man命令调用手册页。

你可以使用如下方式来获得某个命令的说明和使用方式的详细介绍:

man <command_name>

比如你想查看 man 命令本身的使用方式,你可以输入:

man man

通常情况下,man 手册里面的内容都是英文的,这就要求你有一定的英文基础。man 手册的内容很多,涉及了 Linux 使用过程中的方方面面。为了便于查找,man 手册被进行了分册(分区段)处理,在 Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为 8 个区段,安排如下:
在这里插入图片描述

作业

安装banner字体体验Linux有趣的命令
使用如下命令安装sysvbanner

sudo apt-get update
sudo apt-get install sysvbanner

使用banner来让特殊字符生成你想要的有趣字符

banner shiyanlou

效果如图:
在这里插入图片描述
还可以使用默认已经安装的一个命令printerbanner:
在这里插入图片描述

实验三 用户及文件权限管理

查看用户

在这里插入图片描述输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可),第二列的 pts/0 中 pts 表示伪终端,所谓伪是相对于 /dev/tty 设备而言的,伪终端就是当你在图形用户界面使用 /dev/tty7 时每打开一个终端就会产生一个伪终端,pts/0 后面那个数字就表示打开的伪终端序号。

who命令其他常用参数

在这里插入图片描述

创建用户

在 Linux 系统里, root 账户拥有整个系统至高无上的权限,比如新建和添加用户

root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到 root 权限,这个操作等同于在 Windows 下就是将新建的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中(基于 Linux 内核)获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。

使用sudo adduser lilei新建一个叫lilei的用户
在这里插入图片描述
这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录。

用户组

查看用户组

方法一

使用 groups 命令可以知道自己属于哪些用户组

方法二

查看 /etc/group 文件

cat命令

用于读取指定文件内容打印到终端输出

将其它用户加入用户组

使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限

删除用户和用户组

使用 groupdel 命令可以删除用户组

文件权限

文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

Unix/Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性,Unix/Linux 系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。

在 Unix/Linux 中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

首先使用ls -l列出文件
在这里插入图片描述
各项意思为
在这里插入图片描述
在这里插入图片描述
牢记 Linux 里面一切皆文件
文件权限包括:
读权限,表示你可以使用 cat 之类的命令来读取某个文件的内容;写权限,表示你可以编辑和修改某个文件的内容;

执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的 exe 后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型。你需要注意的一点是,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。

所有者权限,这一点相信你应该明白了,至于所属用户组权限,是指你所在的用户组中的所有其它用户对于该文件的权限,比如,你有一个 iPad,那么这个用户组权限就决定了你的兄弟姐妹有没有权限使用它破坏它和占有它。

链接数

链接到该文件所在的 inode 结点的文件名数目(关于这个概念涉及到 Linux 文件系统的相关概念知识,不在本课程的讨论范围,感兴趣的用户可以查看 硬链接和软链接的联系与区别)。

文件大小

以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上 -lh 参数来更直观的查看文件的大小。

变更文件所有者

使用 chown 命令变更文件所有者,命令格式如下
sudo chown shiyanlou iphone11 #修改文件iphone11的所有者为shiyanlou
在这里插入图片描述

修改文件权限

  • 文件权限的两种表示方式

    • 方式一:二进制数字表示
      在这里插入图片描述
      每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。文件的读写执行对应字母 rwx,以二进制表示就是 111,用十进制表示就是 7,对进制转换不熟悉的同学可以看看 进制转换。例如我们刚刚新建的文件 iphone11 的权限是 rw-rw-rw-,换成对应的十进制表示就是 666,这就表示这个文件的拥有者,所属用户组和其他用户具有读写权限,不具有执行权限。
      在这里插入图片描述
    • 方式二:加减赋值操作
      g、o 还有 u 分别表示 group(用户组)、others(其他用户) 和 user(用户),+ 和 - 分别表示增加和去掉相应的权限。
  • adduser 和 useradd 的区别是什么
    答:useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd 去设置新用户的密码。adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

作业

创建新用户loutest
在这里插入图片描述
在opt目录下新建forloutest文件
在这里插入图片描述
设置成用户loutest可以读写
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值