• 2018-2019-1 20189204《Linux内核原理与分析》第一周作业


    20189204《Linux内核原理与分析》第一次作业

    虽然之前在本科上过Linux课程,但是在本周的Linux初级学习阶段,依然遇到了很多问题

    一.学习环境的搭建中的问题

    1.VMware workstation 和Ubuntu版本不匹配

    由于之前电脑上存在VMware,所以这次就没有用老师推荐的基于VirtualBox安装Ubuntu,不过问题也来了
    在我下载最新版Ubuntu即Ubuntu-18.04.1-desktop-amd64并安装到虚拟机上的时候,发现报错 Kernal panic-corrupted stack end detected inside scheduler,大意是在调度器内部检测到了损坏的栈,我以为是        虚 拟机内存分配的不够,于是调整内存为2G,4G,6G,但结果还是这样。于是百度了一下,发现报此类错误原因是低版本的VMware兼容不了高版本的Ubuntu!
    
    如果是18.04版本的Ubuntu则要用14.1.2版本的VMware
    
    如果是16.04版本的Ubuntu就可以用其他版本的VMware
    
    而内存不够报错的提示应该是这样的Kernal panic-Out of memory and no killable processes
    

    2.VMware 中安装VM Tools一直是灰色的问题
    这个解决方案没有成功 [这个解决方案成功了](https://blog.csdn.net/qq_20307987/article/details/51302005)

    二.Linux学习问题

    1.关于文件权限的表示问题

    简单概括就是文件有三组权限:属主,属组,其他用户,不同权限可以用加和形式统一表示
    

    2.实验三作业

    添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。截图并把操作过程写入实验报告。
    
    提示: 如何创建一个文件呢?可以考虑 touch 命令,这个命令可以创建一个空文件。如果不知道 touch 是什么,我们上一课讲到了哦。
    

    3.实验三目录的表示

    • 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
      这里特别注意~表示当前用户的home目录,其实是home下的子目录(当前用户)

      此处cd ~之后的目录是/home/shiyanlou

    4.实验四关于文件复制

    实验楼中降到了学习递归复制文件目录,但是没有告诉我们命令的格式或者说表示的含义,那么我们可以从命令结果倒退出复制文件目录的语法格式 即 cp 被复制文件目录名  新文件目录名,结果如图所示
    

    需要注意的是我在执行cp -r father family 之前是没有mkdir family的  最后的结果是./family/son/grandson   这是与实验楼中的不同的实验,所以结果也不一样。
    

    5.实验四作业

    1. 创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt 。
    2. Linux 的日志文件在哪个目录?
    

    Linux 的日志文件存放在/var/log目录中
    

    6.实验五--变量与环境变量

    按变量的生存周期来划分,Linux 变量可分为两类:
    
    永久的:需要修改配置文件,变量永久生效;
    
    临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。
    
    这里介绍两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:
    
    .profile 可以用 ls -a 查看
    cd /home/shiyanlou
    ls -a 
    这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。
    

    7.实验五作业

    利用之前学的正则表达式的知识,批量创建了.list文件然后再查找,一定记得locate前先要sudo updatedb
    

    8.实验六之tar打包压缩

    tar 原本只是一个打包工具,只是同时还是实现了对 7z、gzip、xz、bzip2 等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,而tar实现了对文件的打包压缩,且tar的压缩和解压命令相同只是参数不同
    

    -c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc shiyanlou.tar,可以写成 tar -f shiyanlou.tar -c ~。你还可以加上 -v 参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的 /,你也可以使用 -P 保留绝对路径符。

    zip:
    打包 :zip something.zip something (目录请加 -r 参数)
    解包:unzip something.zip
    指定路径:-d 参数
    tar:
    打包:tar -cf something.tar something
    解包:tar -xf something.tar
    指定路径:-C 参数
    

    9.实验六作业



    10.实验七

    dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。
    
    bs(block size)用于指定块大小(缺省单位为 Byte,也可为其指定如'K','M','G'等单位),count用于指定块数量。如上图所示,我指定只读取总共 10 个字节的数据,当我输入了“hello shiyanlou”之后加上空格回车总共 16 个字节(一个英文字符占一个字节)内容,显然超过了设定大小。使用du和cat命令看到的写入完成文件实际内容确实只有 10 个字节(那个黑底百分号表示这里没有换行符),而其他的多余输入将被截取并保留在标准输入。
    

    11.实验七作业

    找出当前目录下面占用最大的前十个文件,这里要用到多个命令,有du -a 显示大小  sort排序 以及head 显示前十,那么这就需要用管道工具来连接这三个命令,逐步收敛查询数据,结果如下
    

    12.管道工具

    管道是什么?管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
    我个人的理解就是,通过不同命令的组合,将查询结果逐渐收敛,而管道就是连接前一个命令的输出与后一个命令的输入的工具
    

    总结

    之前在大学的时候学习过linux,对于linux一些常用的基本操作有一些基础。在这次的学习过程中,我丰富了原来的知识,例如:查看用户组不但可用group命令还可以用cat /etc/group来做,这样就既学到了新命令,又了解了linux的常用目录结构,增强了linux相关知识的联系。磁盘的操作、Linux简单文本处理、Linux日志系统等对我来说都是比较陌生的知识,特别是正则表达式基础,学起来比较吃力,以后要多看多用,尝试在熟悉的命令中加入正则表达式,例如使用touch bowen{1..10}.txt这样的命令,这样才能尽快掌握这些知识并学以致用。

  • 相关阅读:
    struts.xml
    web.xml
    jdbc.properties
    apache+tomcat的集群--Session复制配置
    mysql 定时触发器
    mysql 查看存储过程
    Quatz 定时任务
    Apache Httpd常用命令
    Mac安装nginx
    dubbo ReferenceConfig源码分析
  • 原文地址:https://www.cnblogs.com/bowendky/p/9781824.html
Copyright © 2020-2023  润新知