zoukankan      html  css  js  c++  java
  • 20189203《Linux内核原理与分析》第一周作业

    实验一 Linux 系统简介

    • 我在这一课中主要学习了Linux是什么,Linux的产生和发展历史,Linux发展中的重要人物以及Linux和Windows在是否收费、软件与支持、安全性等方面存在的一些区别,对Linux有了一个初步的认识。课程最后介绍了Linux的学习方法,里边有一张图片介绍了Linux的学习路径,我作为Linux的初学者,目前应该做到的是学习计算机概论和硬件相关知识,并学习安装Linux系统、Linux图形界面使用和Linux常用命令。

    实验二 基本概念及操作

    • 我在这节课中学习了Linux桌面环境介绍和使用,并且简单的体验了一下Linux的命令行操作,我觉得Linux的命令行操作非常有趣,如果学通了,操作起来将会异常便捷。以下是我在本节课做的一部分实际操作实验。

    操作1、批量建立文件

    • 使用通配符{C1..C2}批量创建文件,效果如下图。

    操作2、输出图形字符命令使用:

    • Banner命令
    • Toilet命令
    • Fight命令

    实验三 用户文件权限管理

    • 我在这节课中学习了在Linux中创建、删除用户及用户组等操作,并且学习了Linux中的文件权限设置。以下是我在本节课中做的一部分实际操作实验。

    操作1、创建用户,并使用su和su-命令切换用户。如下图,我创建了账户zihang,并且使用命令切换到了该账户。

    操作2、使用usermod命令变更用户权限

    • 默认情况下我之前创建的账户zihang是不具备root权限的,但是通过usermod命令将其加入sudo用户组后,就可以赋予其root权限。如下图。

    操作3、删除用户

    操作4、变更文件所有者

    如下图所示,将文件所有者由zihang变更为shiyanlou。

    操作5、修改文件权限

    • 通过加减赋值操作修改文件权限。原理是g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。操作如下图,去掉了group、others的读写权限。

    操作6、作业

    • 首先要添加用户loutest
    • 然后登陆loutest账户创建文件,这时发现系统提示权限不够,如下图。
    • 经思考,发现是忘记赋予loutest账户root权限,于是更改loutest账户权限。
    • 下一步,创建文件/opt/forloutest并将其设置成用户loutest可以读写,见下图。

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

    • 我在这节课学习了Linux 的文件组织目录结构、相对路径和绝对路径,以及对文件的移动、复制、重命名、编辑等操作。以下是我在该部分做的一些实际操作实验。

    操作1、使用 -p 参数,同时创建父目录(如果不存在该父目录),创建成功,如下图。


    操作2、使用cp复制目录,此时需要使用-r参数。

    操作3、使用rm删除目录,此时需要使用-r参数。

    操作4、移动文件file1到Documents,并重命名文件。

    操作5、使用rename批量重命名文件

    作业

    • 1.创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt ,如图所示。
    • 2.Linux 的日志文件在哪个目录?
    • Linux的日志文件在/var/log中。

    实验五 环境变量与文件查找

    • 我在这节课中学习了环境变量的作用和用法,以及几种搜索文件的方法。以下是我做的部分操作实验。

    操作1、创建变量、给变量赋值和查询变量。

    操作2、创建shell脚本文件,和C语言文件,并执行。

    • 切换到上一级目录shiyanlou之后,发现文件没有找到,执行不了。

    操作3、我们通过改变环境变量就可以在shiyanlou路径下执行上面的文件。需要注意的是,改变环境变量后,在执行文件时,文件前的“./”需要去掉。

    .

    操作4、寻找文件,找出/etc/目录下所有以.list结尾的文件。

    • 本实验的难点是几种查找文件命令的区别和使用,总体来说,whereis简单快速,locate快而全,which小而精,find精而细。

    挑战一 寻找文件

    • 此部分为之前几个实验内容的回顾。以下为实验情况。

    实验六 文件打包与压缩

    • 我在这节课中主要学习了zip和tar命令的使用。

    操作1、使用zip压缩文件

    • -r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。压缩级别 -[1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久。路径必须为绝对路径,-e参数可以创建加密压缩包,-l参数可以将LF转换为CR+LF:

    操作2、使用unzip命令解压缩文件

    操作3、这里有几个重要的参数。-c参数表示创建一个 tar 包文件,-f参数用于指定创建的文件名(注意文件名必须紧跟在 -f 参数之后)。(-x 参数)解压一个文件到指定路径的已存在目录(-C 参数)。

    • 总结几个重要的语句:zip:
      打包 :zip something.zip something (目录请加 -r 参数)
      解包:unzip something.zip
      指定路径:-d 参数
      tar:
      打包:tar -cf something.tar something
      解包:tar -xf something.tar
      指定路径:-C 参数

    实验七 文件系统操作与磁盘管理

    • 我在这节课中主要学习了df、du和mount几个主要指令。df命令用来查看磁盘容量。du命令用来查看目录的容量。

    操作1、dd命令用于转换和复制文件。其中bs用于指定块大小,count用于指定块数量。

    操作2、使用dd命令创建虚拟镜像文件,使用mkfs命令格式化磁盘。

    操作3、mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]

    实验八 Linux下的帮助命令

    • 我在本节课中学习了内建命令和外建命令,内建命令相当于天生自带的天赋技能,外建命令相当于后天得来的附加技能。

    操作1、使用type 命令来区分是内建命令还是外部命令:

    操作2、学习使用help命令、man函数和info命令。要灵活学习并掌握3个命令的用法。

    实验九 Linux任务计划crontab

    • 本节课重点学习 crontab 命令。

    操作、添加一个计划任务。

    实验十 命令执行顺序控制与管道

    操作1、有选择的执行命令

    • && 表示前一条命令执行成功时才执行后一条命令,|| 表示上一条命令执行失败后才执行下一条命令,这两条命令正好相反。
    • 思考题:我认为||和&&的顺序调整是没有问题的。

    操作2、grep命令小试牛刀


    操作3、学习wc命令的使用

    实验十一 简单的文本处理

    • 我在本节简单学习了tr,col,join,paste命令的使用。

    操作1、使用tr命令删除一段文本信息中的某些文字。或者将其进行转换。

    操作2、使用join命令将两个文件中包含相同内容的那一行合并在一起。

    操作3、使用paste将多个文件的数据简单的合并在一起。

    实验十二 数据流重定向

    • 我对重定向的理解是将命令标准输出导向另一个文件。

    操作1、重定向操作。

    操作2、重定向和管道

    • 此处要注意区分,管道默认是连接前一个命令的输出到下一个命令的输入,而重定向通常是需要一个文件来建立两个命令的连接。

    操作3、使用tee命令同时重定向到多个文件,它既可以将输出重定向到文件,也可以将信息打印在终端。

    操作4、xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。

    实验十三 正则表达式基础

    • 我在这一节中主要学习了grep、sed、和awk这3个命令的使用,以及正则表达式的语法。以下是我的一些操作。

    操作1、使用sed打印指定行

    操作2、awk操作体验

    实验十四 linux下软件安装

    • 我在本章学习了软件的安装、更新、卸载等操作,其中apt指令在之前的实验中已经多次使用。使用dpkg安装deb软件包需要解决软件包的依赖关系。

    实验十五 linux进程概念

    • 我通过这章学习了进程在系统中存在的概念,以及进程如何在系统中衍生,发展,以及进程之间存在的相互关系。

    实验十六 linux进程管理

    • 我在本章学习了linux的进程管理。我们可以通过 top 实时的查看进程的状态,以及系统的一些信息(如 CPU、内存信息等),我们还可以通过 ps 来静态查看当前的进程信息,同时我们还可以使用 pstree 来查看当前活跃进程的树形结构。

    实验十七 linux日志系统

    • 我在本章学习了常见日志、配置日志和转储日志的查询方式。

    学习总结

    • 作为一位linux初学者,学习本课程让我收获很多,但同时也有很多问题,在学习的过程中我通过查阅资料、与同学讨论得到了解决,我认为学习linux基础最重要的一点就是要去多操作,多练习。这17个实验非常具有系统性,实验结束了,但学习的路还很长。正如娄老师上课时提到的,学习一门程序语言,你如果能坚持每天写几百行代码,写三个月你就能出师了。Linux的学习也正是这样,我必须在以后的学习中不断温习,不断巩固,争取早日把这一阶段学习的课程搞懂、学通,内化为自己的知识。
    • 在本周的学习和写实验报告的过程中,我发现我的学习效果明显提升了,这说明边学习边撰写实验报告的学习方式是有效的。撰写实验报告一方面是对自己学习的记录和总结,另一方面也有利于自己日后不断回顾、温习。
  • 相关阅读:
    Unique Binary Search Trees——LeetCode
    Binary Tree Inorder Traversal ——LeetCode
    Maximum Product Subarray——LeetCode
    Remove Linked List Elements——LeetCode
    Maximum Subarray——LeetCode
    Validate Binary Search Tree——LeetCode
    Swap Nodes in Pairs——LeetCode
    Find Minimum in Rotated Sorted Array——LeetCode
    Linked List Cycle——LeetCode
    VR AR MR
  • 原文地址:https://www.cnblogs.com/23du/p/9786734.html
Copyright © 2011-2022 走看看