(2023-2024-1)20232802《Linux内核原理与分析》第一周作业

1.学习「文献管理与信息分析」公开课

第一、二章内容学习小结

  • 学习首先是一个搜索过程
  • 要找到合适的对象或资源
  • 搜索引擎是信息整合 高效获取 节省时间
  • 学会使用基本检索及逻辑关系(AND OR NOT)
  • 命令检索 Site:指定在特定网站进行检索 Filetype:指定目标文献的类型

2.参考Linux(Ubuntu)系统安装图文教程安装Ubuntu

按照教程成功安装了ubuntu和openEuler

其中遇到的一些小问题都通过查找教程成功解决。例如在Virtual Box里开Ubuntu不能全屏,为了解决这个问题,我安装增强功能,安装之后可以全屏了,问题得以解决。

3.参考别出心裁的Linux命令学习法学习Linux核心命令

Ubuntu快捷键

  • CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了;
  • CTRL+SHIFT+T:新建标签页,编程时有重要应用;
  • ALT+数字N:终端中切换到第N个标签页,编程时有重要应用;
  • Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成;
  • 上下键盘:切换命令历史,刚输入一个很长的命令,按键就可以恢复;
  • CTRL+C:中断程序运行。

ls命令

  • ls或ls .,显示是当前目录的内容
  • ls -a .显示当前目录中的所有内容
  • “-a” 是选项,决定了命令的显示结果。“.”是参数,是指命令的作用对象

4.学习「Linux 基础入门(新版)

实验一:Linux系统简介

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

  • Linux 主要是系统调用内核那两层
  • Linux之父:Linus Benedict Torvalds

Linux与Windows的异同

  • Linux免费而Windows收费
  • Linux比Windows要安全
  • Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易,入门简单
  • Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作,新手入门较困难,需要一些学习和指导(这正是我们要做的事情),一旦熟练之后效率极高
  • Windows:这些年之前算是全封闭的,系统可定制性很差
  • Linux:你想怎么做就怎么做,Windows 能做到得它都能,Windows 做不到的,它也能
  • Linux没有的
    • 特定的支持厂商
    • 足够的游戏娱乐支持度
    • 足够的专业软件支持度
  • Windows没有的
    • 稳定的系统
    • 安全性和漏洞的快速修补
    • 多用户
    • 用户和用户组的规划
    • 相对较少的系统资源占用
    • 可定制裁剪,移植到嵌入式平台(如安卓设备)
    • 可选择的多种图形用户界面(如 GNOME,KDE)
  • Linux学习框架

实验二:基本概念及操作

  • Linux桌面环境(实验楼)

    • 几个熟知的桌面环境 KDE,GNOME,XFCE,LXDE
    • 实验楼目前使用的 XFCE 桌面环境,以前使用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 既是用户交互的界面,也是控制系统的脚本语言

命令行常用操作指令

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

命令行常用快捷键

命令行常用通配符

作业

安装banner字体体验Linux有趣的命令
  • 使用如下命令安装sysvbanner
    • sudo apt-get update
      sudo apt-get install sysvbanner
  • 使用banner来让特殊字符生成你想要的有趣字符
  • banner shiyanlou

  • printerbanner -w 50 A

  • 遇到的问题以及解决方案

    • 以前用过Windows的cmd,快捷键是Win+R,但是在Ubuntu中我刚开始连终端都打不开,后来知道了快捷键是Ctrl+Alt+T打开终端,然后就可以顺利完成了,但是本实验中仅需用实验楼提供的终端就可以了,不需要Ubuntu。

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

  • 查看用户

    • who am iwho mom likes可以查看当前终端的用户名(实验楼)
    • who命令适用于Ubuntu
  • who命令参数

  • 创建用户

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

用户组

  • 查看用户组
    • 方法一
      • 使用 groups 命令可以知道自己属于哪些用户组
    • 方法二
      • 查看 /etc/group 文件
  • cat命令
  • 用于读取指定文件内容打印到终端输出
    • 将其它用户加入用户组
      • 使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限
    • 删除用户和用户组
      • 使用 groupdel 命令可以删除用户组

文件权限

  • 首先使用ls -l列出文件,会跑出来很多如下格式的条目
  • 当看到如上格式的条目,首先观察第一项:文件类型和权限,字母拆解表义如下
  • 牢记Linux 里面一切皆文件
  • 读权限,表示你可以使用 cat <file name*(星号去掉,加这个符号是防止打不出来)> 之类的命令来读取某个文件的内容
  • 写权限,表示你可以编辑和修改某个文件的内容
  • 一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件
  • 变更文件所有者

    • 使用 chown 命令变更文件所有者,命令格式如下
    • sudo chown xwdsh iphone7p #修改文件iphone7p的所有者为xwdsh
  • 修改文件权限

  • 文件权限的两种表示方式
    • 方式一:二进制数字表示
    • 很好理解,r(读)w(写)x(执行)三位,一共8种情况,用二进制表示就是000、001、010、011、100、101、110、111共8种不同的情况,相当于编码建立映射关系,按权展开转换成10进制就变成了10进制的0到7共8个数字,然后把再分别对应到不同类型的用户上去就可以,共有3种用户,分别对应拥有者(user),所属用户组(group),其他用户(others)。
    • 方式二:二进制数字表示
      • chmod go-rw iphone7p #代表给用户组(g)和其他用户(o)删去了读写权限
      • “+” 和 “-” 分别表示增加去掉相应的权限。
  • adduser 和 useradd 的区别是什么
  • useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd 去设置新用户的密码。adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

    作业

  • 作业描述
    • 添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。截图并把操作过程写入实验报告。
    • 实现截图
    • 创建新用户loutest
    • 在opt目录下新建forloutest文件
    • 设置成用户loutest可以读写
    • 遇到的问题以及解决方案
      刚开始看文件权限表示的时候有点懵,多看几遍后理解了,然后chomd命令总是会拼写错误,一旦你拼写错误就会输出找不到该命令。题目要求用户loutest可以读写,而目前算上你新增的那个还有你自己一共也就两个用户,所以直接用其他用户(others)代替用户loutest即可,然后可以到/opt/目录下输入ls -l来查看文件的详细信息,观测到forloutest文件的权限是-rw-r-rw-,表明用户自己可以读写,用户组只能读,而其他用户可以读写,也就是用户loutest可以读写了。

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

  • Linux 目录结构
  • 以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘…)及分区来实现文件管理
  • 然而 UNIX/Linux 恰好相反,UNIX 是以目录为主的,Linux 也继承了这一优良特性。Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。
  • FHS 标准

  • FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

  • 两层规范
  • 第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
  • 第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件,/usr/share 放置共享数据等等。

目录路径

  • pwd
    • 使用 pwd 命令可以获取当前所在路径(绝对路径)。
  • cd命令
    • cd .. #表示进入上一级目录
    • cd ~ #表示进入home目录,或者 cd /home/<你的用户名>
    • . 表示当前目录
    • 使用 ls -a 命令查看隐藏文件
  • 绝对路径
    • 关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
  • 相对路径
    • 关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。

Linux 文件的基本操作

  • 新建
    • 使用 touch 命令创建空白文件。
    • 使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。
    • mkdir -p father/son/grandson #使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件、配置安装路径时非常有用):
    • mkdir 后面的文件夹名如果已经存在就会报错。
  • 复制
    • 使用 cp 命令(copy)复制一个文件到指定目录。
    • 使用 cp 命令(copy)复制一个目录需要加上 -r 或者 -R 参数,直接复制目录会报错。
删除
  • 使用 rm(remove files or directories)命令删除一个文件。
  • 有时候你会遇到想要删除一些为只读权限的文件,直接使用 rm 删除会显示一个提示,你如果想忽略这提示,直接删除文件,可以使用 -f 参数强制删除,代码如下:
  • rm -f test #忽略提示强制删除test文件
  • 删除目录和复制一样,要加上 -r 或 -R 参数,遇到权限不足删除不了的目录也可以和删除文件一样加上 -f 参数,代码如下:
  • rm -rf family ##忽略提示强制删除family文件夹

移动文件与文件重命名
  • 使用 mv(move or rename files)命令移动文件(剪切) ,命令格式是 mv 源目录文件 目的目录
  • mv 命令除了能移动文件外,还能给文件重命名,命令格式为 mv 旧的文件名 新的文件名
  • 使用 rename 命令完成批量重命名,下有注意事项。
    • ps:rename 命令并不是内置命令,若提示无该命令可以使用 sudo apt-get install rename 命令自行安装。
查看文件
  • 使用 cattac 和 nl 命令查看文件,前两个命令都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
  • 标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘、标准输出文件(stdout)和标准错误输出文件(stderr),后两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
  • cat -nl passwd #添加行号并打印passwd文件
  • 以下是cat命令的常用参数:
  • -b : 指定添加行号的方式,主要有两种:-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式),-b t:只列出非空行的编号并列出(默认为这种方式)
    -n : 设置行号的样式,主要有三种:-n ln:在行号字段最左端显示,-n rn:在行号字段最右边显示,且不加 0,-n rz:在行号字段最右边显示,且加 0
    -w : 行号字段占用的位数(默认为 6 位)
  • 使用 more 和 less 命令分页查看文件,下为语法:
  • more passwd #分页查看passwd文件,向一个方向滚动
  • 使用 head 和 tail 命令查看文件,它们只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行。
  • 查看文件类型
    • 使用 file 命令查看文件的类型,格式如下:
    • file /bin/ls #示例

  • 查看文件类型
    • 专门的命令行编辑器:emacs,vim,nano

作业

  • 作业描述
    • 创建一个 homework 目录,建立名为 1.txt ~ 10.txt 文件,并删除 1.txt ~ 5.txt
    • Linux 的日志文件在哪个目录?
实现截图
  • 创建目录,建立文件,删除文件
  • 遇到的问题以及解决方案
    一开始没注意是要建立homework文件夹,想着是建立文件,结果使用touch建立homework发现进不去目录。后来才发现应该使用mkdir命令创建文件夹,如果homework是个文件那肯定进不去,而且得先删除homework文件才能创建homework文件夹,我想这是因为Linux中一切皆文件的缘故(文件夹也是文件,文件不能重名),后面就没问题了。

    小结

  • Linux的命令和Windows的cmd命令有相似的地方,但在更多细节的地方是不一样的,需要多记多练才能记牢,通过第一周的Linux学习,我收益匪浅,特此做出总结。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值