实验中出现的问题:

问题一:

加用户组的时候,直接复制了,课程中的代码 ,但是创建失败了。调查后发现原因是因为本地的系统中没有shiyanlou 这个用户,所以创建用户分组失败了。

实验一Linux 系统简介

Linux 就是一个操作系统,就像已经了解的 Windows(xp,7,8)和 Mac OS 。

如图,这是操作系统在整个计算机系统中的角色。

我们的 Linux 主要是系统调用和内核那两层。当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。

操作系统始于二十世纪五十年代,当时的操作系统能运行批处理程序。批处理程序不需要用户的交互,它从文件或者穿孔卡片读取数据,然后输出到另外一个文件或者打印机。

二十世纪六十年代初,交互式操作系统开始流行。它不仅仅可以交互,还能使多个用户从不同的终端同时操作主机。这样的操作系统被称作分时操作系统,它的出现对批处理操作系统是个极大的挑战。许多人尝试开发分时操作系统, 其中包括一些大学的研究项目和商业项目。当时有个项目叫做 Multics ,它的技术在当时很具有创新性。 Multics 项目的开发并不顺利,它花费了远超过预计的资金,却没有在操作系统市场上占到多少份额。而参加该项目的一个开发团体——贝尔实验室退出了这个项目。他们在退出后开发了他们自己的一个操作系统—— UNIX 。

UNIX 最初免费发布并因此在大学里受到欢迎。后来,UNIX 实现了 TCP/IP 协议栈,成为了早期工作站的操作系统的一个流行选择。

1990 年,UNIX 在服务器市场上尤其是大学校园中成为主流操作系统,许多校园都有 UNIX 主机,当然还包括一些研究它的计算机系的学生。这些学生都渴望能在自己的电脑上运行 UNIX 。

Linux 本身只是操作系统的内核。内核是使其它程序能够运行的基础。它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上。其中有些程序是必需的,比如说,命令行解释器(shell),它用于用户交互和编写 shell 脚本。

1992-1993 年,Linux 内核具备了挑战 UNIX 的所有本质特性,包括 TCP/IP 网络,图形界面系统(X window )。

实验二 基本概念和操作

相对于现在的 Windows 系统,UNIX/Linux 本身是没有图形界面的,我们通常在 UNIX/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件,类似 Windows95 之前的 Windows 的图形界面实则也只是运行在 DOS 环境的一套软件。

Shell 是指“提供给使用者使用界面”的软件(命令解析器)。Shell 是可以接受用户输入命令的程序。

终端的概念:

通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)。

Ubuntu 终端默认使用的是 bash​​​​​​​。​​​​​​​

快捷键
(1) tab 补全命令,补全目录、补全命令参数
(2)Ctrl+c 强行终止当前程序
(3)Ctrl+d 键盘输入结束或退出终端
(4)Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
(5)Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
(6)Ctrl+a 将光标移至输入行头,相当于Home键
(7)Ctrl+e 将光标移至输入行末,相当于End键
(8)Ctrl+k 删除从光标所在位置到行末
(9)Alt+Backspace 向前删除一个单词
(10)Shift+PgUp 将终端显示向上滚动
(11)Shift+PgDn 将终端显示向下滚动

实验二作业:先使用如下命令安装:

觉得这字体不好看,那么你还可以使用默认已经安装的一个命令printerbanner

​​​​​​​

实验三 用户和权限管理

1 .查看用户

打开终端,输入命令:

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

一般我们登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里就要用到 sudo 这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。shiyanlou 用户也属于 sudo 用户组(稍后会介绍如何查看和添加用户组)。

现在我们新建一个叫 lilei 的用户:

2.用户组

在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。

在 Linux 里面如何知道自己属于哪些用户组呢?

查看 /etc/group 文件

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

你可以使用 grep 命令过滤掉一些你不想看到的结果:

将其它用户加入 sudo 用户组

默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:

当然也可以通过 sudo passwd shiyanlou 进行设置,或者你直接关闭当前终端打开一个新的终端。

然后你再切换回 lilei 用户,现在就可以使用 sudo 获取 root 权限了。

3.删除用户和用户组

使用 --remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用那么系统会自动在 /home 目录为该用户保留工作目录。

4.Linux 文件权限

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

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

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

使用较长格式列出文件

补充一下关于 ls 命令的一些其它常用的用法:

  • 显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)。

  • 显示所有文件大小,并以普通人类能看懂的方式呈现:
  • 变更文件所有者

切换到 lilei 用户,然后在 /home/lilei 目录新建一个文件,命名为 iphone13

修改文件权限

切换到 lilei 用户,尝试写入和读取操作,可以看到 lilei 用户已经不能读写这个 iphone11 文件了:

此时出现问题:

经常使用没有权限的用户操作就会导致出错。

解决方案:

赋权限

实验三课后作业:

2021-2022-1 20212810《Linux内核原理与分析》第一周作业相关推荐

  1. Linux内核原理与分析-第二周作业

    写之前回看了一遍秒速五厘米:如果?下落的速度正好 那么13年的长度刚好是地球的最远距离!直径两端 在进行实验楼操作之前,先听授了网易云课堂中孟老师关于"计算机是如何工作的?"的介绍 ...

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

    Linux内核原理与分析第一周作业 配置环境 1.参考Linux(Ubuntu)系统安装图文教程中第二种借助virtualbox成功配置Ubuntu环境 2.升级更新软件包 可以通过调节分辨率和虚拟机 ...

  3. 2017-2018-1 20179215《Linux内核原理与分析》第二周作业

    20179215<Linux内核原理与分析>第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型.X86汇编指令包括几种内存地址的寻址方式和push.pop.c ...

  4. 2018-2019-1 20189213《Linux内核原理与分析》第四周作业

    <Linux内核原理与分析>第四周学习总结: 1.课本知识总结: 本章内容并不多,首先是介绍了一些Linux内核源代码的目录结构,并基于Linux内核源代码构造一个简单的操作系统MenuO ...

  5. 实验楼 linux内核原理与分析,《Linux内核原理与分析》第一周作业 20189210

    实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别.其中学到了LInux中的应用程序大都为开源自由的软件, ...

  6. 20169210《Linux内核原理与分析》课程总结

    每周作业链接汇总 第一周作业:对实验楼<Linux 基础入门(新版)>课程的学习,其中有用户及文件权限管理.Linux 目录结构及文件基本操作.环境变量与文件查找.文件打包与解压缩等共17 ...

  7. 《Linux内核原理与分析》第二周作业

    反汇编一个简单的C程序 1.实验要求 使用: gcc –S –o test.s test.c -m32 命令编译成汇编代码,对汇编代码进行分析总结.其中test.c的具体内容如下: int g(int ...

  8. 2018-2019-1 20189204《Linux内核原理与分析》第三周作业

    OS是如何工作的 学习任务: 阅读学习教材「庖丁解牛Linux 」第2章 学习蓝墨云班课中第三周视频「操作系统是如何工作的?」,并完成实验楼上配套实验二. 云班课学习笔记: 计算机三大法宝 程序存储计 ...

  9. 2018-2019-1 20189206 《Linux内核原理与分析》第六周作业

    linux内核分析学习笔记 --第五章 系统调用的三层机制 学习重点--深入理解系统调用的过程 给MenuOS添加命令 添加命令的方式较为简单,在LinuxKernel/menu/test.c目录下, ...

  10. 20169210《Linux内核原理与分析》第十一周作业

    第17章 设备与模块 关于设备驱动和设备管理,讨论四种内核成分. 设备类型:在所有的linux系统中为了统一普遍设备的操作所分的类. 模块:Linux内核中用于按需加载和卸载目标码的机制. 内核对象: ...

最新文章

  1. python 字符串内容
  2. 多个数字数组_三菱ST语言教学(2)——数组的使用
  3. centos7 virtualbox使用internal network 内网模式
  4. RocketMQ 介绍 msgId生成算法
  5. java多线程实现归并排序_利用多线程对数组进行归并排序
  6. Windows/Linux高精度计时器(C++)
  7. google nexus5x 刷机抓包逆向环境配置(二)
  8. 洛谷4139 bzoj 3884 上帝与集合的正确用法
  9. sentinel里的双检锁
  10. 网络编程知识预备(1) ——了解OSI网络模型
  11. ios 高德挪动地图获取经纬度_高德地图获取地理位置经纬度并将经维度转化为详细地址信息...
  12. pytorch transformers
  13. php中魔术方法总结
  14. c语言回文串试题,最短回文串 -- C语言
  15. transformer机制讲解_Transformer在视觉领域的应用
  16. Vue - 超详细最新 WangEditor V5 富文本编辑器安装引入及使用教程(内含在 Nuxt.js 项目中引入的解决方案)
  17. 哈密顿图、哈密顿回路
  18. mysql count sending data_mysql查询sending data占用大量时间的问题处理
  19. 单击选定单元格后输入新内容_Excel表格处理基本操作部分习题参考解答
  20. bibtex 共生_游戏与音乐的共生

热门文章

  1. 手机写python爬虫_我用手机写了一个Python爬虫,爬下了《凡人修仙传》……
  2. 坯子库怎么导入插件_坯子库插件下载|
  3. RDL 报表 - 横向合并单元格后单元格被撑高
  4. PHP没有工作经验简历怎么写,没有工作经验应届生如何写简历呢?
  5. 区块链大咖谈之陈昌:联盟链和公有链混合架构如何实现?
  6. 大数据影响下的专题地图编制
  7. TortoiseSVN简明教程
  8. 几种常见的水下路由算法介绍
  9. 路网自动构建路段拓扑
  10. java g1 配置_项目G1 jvm 常规参数配置