• 2019-2020-1 20199302《Linux内核原理与分析》第四周作业


    实验内容

    在实验楼的环境中敲入命令

    cd LinuxKernel/
    qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img

    效果截图:

    一、补习第一周云班课视频

    (一)文件系统

    1、FHS:文件系统层次结构标准

    Linux的正常运行是以目录结构为基础的。FHS定义了两层规范,第一层是,/下面的各个目录应该要放什么文件数据,例如/etc应该放置设置文件,/bin和/sbin则应放置可执行文件等。第二层则是针对、usr和/var这两个目录的子目录来定义。例如/var/log防止系统日志文件,/usr/share放置共享数据等等。

    FHS将目录定义为四种交互作用的形态,如图:

    以“.”开头的文件都是隐藏文件,~通常表示当前用户的home目录
    使用pwd命令可以获取当前所在路径。

    2、mkdir创建目录

    mkdir -p /*同时创建父目录(如果不存在该父目录)*/
    cp 被复制文件 复制到的位置   /*复制目录时,加上-r或者-R,表示递归复制*/    
    rm -f 文件名/*忽略提示,强制删除*/
    rm -r  要删除的目录/*删除目录*/
    mv 源目录文件 目的目录/*移动文件*、/
    mv 就文件名 新文件名 /*重命名文件*/
    rename /*批量重命名文件*/
    

    3、使用cat,tac和nl命令查看文件

    cat和tac都是打印文件到标准输出(终端),其中cat为正序显示,tac为倒序显示。

    标准输入输出:当我们执行一个shell为、、命令行时,会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘,标准输出文件(stdout)和标准错误输出文件(stderr),后两个文件都对应被重定向到终端的屏幕,以便我们能够看到输出内容。进程将从标准输入文件到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

    cat -n 文件名 :显示行号,与nl类似
    -b : 指定添加行号的方式,主要有两种:
    -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
    -b t:只列出非空行的编号并列出(默认为这种方式)
     -n : 设置行号的样式,主要有三种:
    -n ln:在行号字段最左端显示
    -n rn:在行号字段最右边显示,且不加 0
    -n rz:在行号字段最右边显示,且加 0
     -w : 行号字段占用的位数(默认为 6 位)
    

    4、more和less命令分页查看文件

    man手册内容就是用less来显示内容more命令打开一个文件时,会默认显示一屏,底端显示阅读进入,按enter往下滚动一行,按space往下滚动一屏,h显示帮助,q退出

    5、head和tail命令查看文件

    /etc/passwd文件可以查看最近新增加的用户。
    tail -n 数字 文件名:尾部查看n行
    tail -f:可以实现不停地读取某个文件的内容并显示,可以用于日志动态监测。
    file 文件名:可以用于查看文件类型。

    (二)文件系统操作与磁盘管理

    1、df查看磁盘

    df:查看磁盘容量
    df -h以更易懂的方式显示出来
    

    挂载:Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构).因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。

    2、du查看目录的容量

    du -h -d 0 ~:只查看1级目录的信息
    du -h -d 1 ~:查看2级
    du -a 显示目录中所有文件的大小
    du -s仅显示总计,只列出最后加总的值
    

    (三)Linux架构:

    1、下图摘自链接


    操作系统通过进程、虚拟内存和文件三个重要抽象管理计算机的CPU、内存、I/O设备,为用户提供shell,为程序员提供系统调用。

    2、常用Linux快捷键

    (1)ctrl+alt+t:打开终端
    (2)ctrl+shift+t:新建标签页
    (3)alt+数字N:终端中切换到第N个标签页
    (4)tab终端命令补全
    (5)上下键盘:切换命令历史
    (6)crtl+c:中断程序运行

    3、常用命令

    (1)man命令:man 想要查看的命令,查看该命令的帮助
    man -a:搜索并打开所有man中同名帮助,例如 man passwd ,你首先会进入一个PASSWD(1) section用户命令类的帮助手册,你再按q键退出当前正在显示的帮助手册,就会进入PASSWD(5) section文件格式类的帮助手册。
    man -aw:显示所有手册文件的路径。例如man -aw passwd
    /usr/share/man/man1/passwd.1.gz
    /usr/share/man/man5/passwd.5.gz
    man -M:指定手册文件的搜索路径,有的时候我们自己安装的软件是带有自己的帮助文件的,通常不在我们的MANPATH 里面,那么我们就可以手动指定man搜索的文件路径。如 man -M /home/mysql/man mysql 显示的就是你安装的mysql的帮助,而不是系统默认的旧版mysql的帮助。
    man -k:根据关键字搜索联机帮助,是一种模糊搜索。例如要查找"passwd"相关的信息,使用man -k passwd会找到很多和passwd相关的帮助页。
    man -f:关键字精确搜索,与-k不同,它只搜索与关键字完全匹配的帮助页。

    (一)vim编辑器

    1、vim是从vi发展出来的文件编辑器。

    vim的设置
    :set nu显示行号
    :set ai 自动缩行
    :set ts=4 设置一个TAB键等于几个空格
    (1)vim的6种基本模式和5中派生模式
    ①普通模式:dd删除当前行,2dd执行两次删除行操作。dj删除当前和下一行,类似2dd。普通模式到插入模式可以用a或者i进行切换。普通模式下退出vim“shift+zz”

    光标移动按键 说明
    h
    l
    j
    k
    w 移动到下一个单词
    b 移动到上一个单词
    删除命令 说明
    x 删除游标所在字符
    X 删除游标所在前一个字符
    Delete 同x
    dd 删除整行
    dw 删除一个单词
    d$或者D 删除至行尾
    d^ 删除至行首
    dG 删除到文档结尾处
    dlG 删除至文档首部

    ②插入模式:按esc键切换到普通模式。

    命令 说明
    i 在当前光标处进行编辑
    I 在行首插入
    A 在行末插入
    a 在光标后插入编辑
    o 在当前行后插入一个新行
    O 在当前行前插入一个新行
    cw 替换光标所在位置后到一个单词结尾的字符

    ③可视模式:与普通模式相似,但是移动命令会扩大高亮文本区域,高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮区域上,Vim的文本对象也能和移动命令一样用在这个模式中。
    ④选择模式:和无模式编辑器的行为类似(windows标准文本控件的方式)。可以用鼠标或者键盘高亮选择文本,不过输入任何字符的话,vim会用这个字符替换选择的高亮文本框,并且自动进入插入模式。
    ⑤命令行模式:可以输入会被解释并执行的文本,例如执行命令键“:”,搜索“/”和“?”,或者过滤命令键“!”**在命令执行之后,vim返回到命令行模式之前的模式,通常是普通模式。

    命令 说明
    :q! 强制退出,不保存
    :q 退出
    :wq! 强制保存退出
    :w<文件路径> 另存为
    :saveas 文件路径 另存为
    :x 保存并退出
    :wq 保存并退出

    ⑥Ex模式:与命令行模式类似,可以一次执行多条命令,离开Ex模式使用“:visuall”。

    (三)makefile

    1、makefile关系到整个工程的编译规则,一个工程中源文件不计其数,并且按照功能、类型、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行哪些复杂的功能操作,因为makefile像一个shell脚本一样,其中可以执行操作系统的命令。makefile带来的好处就是:“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大地提高了软件开发效率。

    二、第三章 MenuOS的构造

    (一)Linux内核源代码简介

    1、操作系统两把宝剑
    (1)中断上下文的切换——保存现场和回复现场。
    (2)进程上下文的切换。

  • 相关阅读:
    vi/vim键盘图
    PostgreSQL学习----命令或问题小结
    PostgreSQL学习----模式schema
    OSM
    Spring基础(9) : 自动扫描
    Spring基础(8) : properties配置文件
    Spring基础(8) : 延迟加载,Bean的作用域,Bean生命周期
    Spring基础(7) : Bean的名字
    Spring基础(6) : 普通Bean对象中保存ApplicationContext
    Spring基础(5): 构造函数注入无法处理循环依赖
  • 原文地址:https://www.cnblogs.com/eosmomo/p/11617860.html
Copyright © 2020-2023  润新知