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的学习也正是这样,我必须在以后的学习中不断温习,不断巩固,争取早日把这一阶段学习的课程搞懂、学通,内化为自己的知识。
    • 在本周的学习和写实验报告的过程中,我发现我的学习效果明显提升了,这说明边学习边撰写实验报告的学习方式是有效的。撰写实验报告一方面是对自己学习的记录和总结,另一方面也有利于自己日后不断回顾、温习。
  • 相关阅读:
    SQL Server CheckPoint的几个误区
    MongoDB集群与LBS应用系列(一)
    也来“玩”Metro UI之磁贴
    Python基础:函数式编程
    ASP.NET MVC 用户登录Login
    巧用 .NET 中的「合并运算符」获得 URL 中的参数
    Razor.js,基于JavaScript的Razor实现
    大话数据结构-排序
    hdu 1498
    3.7 检测两个表中是否有相同的数据
  • 原文地址:https://www.cnblogs.com/23du/p/9786734.html
Copyright © 2011-2022 走看看