zoukankan      html  css  js  c++  java
  • 2019-2020-1 20199319《Linux内核原理与分析》第一周作业

    一、Linux系统简介

    通过实验一了解了Linux 的历史,Linux与windows之间的区别以及学习Linux的方法。因为一直用的都是windows系统,习惯了图形界面,而Linux是通过输入命令执行操作,所以初学还很不适应。正如那句话说的windows能做的Linux都能做,windows不能做的Linux也能做,以后慢慢体会Linux的强大。

    二、基本概念及操作

    本节对Linux桌面环境进行了介绍,体验了一些基本的命令行操作,还有很多有趣的命令。

    1、banner输出图形字符,不过只能输出大写?

    2、toilet输出结果可以是小写。

    3、用figlet输出图形字符。

    三、用户文件权限管理

    学习了如何在Linux中创建、删除用户及用户组以及设置文件权限。

    1、新建用户lilei:

    2、切换用户:

    3、默认情况下新创建的用户不具备 root 权限,也不在 sudo 用户组,可以给新用户分组并获得root 权限:

    4、删除用户:

    5、如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改:

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

    在本节中学习了Linux 文件的目录结构,并且对文件的新建、删除、移动、复制、重命名等基本操作进行了练习。

    1、创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt 。

    2、Linux 的日志文件在哪个目录

    Linux的日志文件在/var/log中。

    3、xeyes召唤一双眼睛也很有趣,不过召唤出来之后怎么关掉呢(T_T)

    五、环境变量与文件查找

    在本节中学习了环境变量的作用与用法以及几种搜索文件的方法。

    1、环境变量

    在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,除了创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell程序也作为一个进程运行在操作系统之上,而我们在Shell中运行的大部分命令都将以Shell的子进程的方式运行。

    三种环境变量类型:

    • 当前Shell进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前Shell中有效。
    • Shell本身内建的变量。
    • 从自定义变量导出的环境变量。
      与上述三种环境变量相关的命令:set,env,export。这三个命令很相似,都是用于打印环境变量信息,区别在于涉及的变量范围不同。
    • set:显示当前Shell所有变量,包括其内建环境变量(与Shell外观等相关),用户自定义变量及导出的环境变量。
    • env:显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
    • export:显示从Shell中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

    两个重要文件 :/etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile。它们分别存放的是 shell 变量和环境变量。这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。

    2、命令的查找路径与顺序

    创建hello_shell.sh和hello_world.c文件,在 /home/shiyanlou 目录创建一个 mybin 目录,并将上述 hello_shell.sh 和 hello_world 文件移动到其中,在 mybin 目录中分别运行你刚刚创建的两个程序:



    回到上一级目录,也就是 shiyanlou 家目录,当再想运行那两个程序时,会发现提示命令找不到,除非加上命令的完整路径。

    3、添加自定义路径到“ PATH ”环境变量


    就可以在任意目录执行那两个命令了

    4、修改和删除已有变量

    变量修改的几种方式:

    • ${变量名#匹配字串}:从头向后开始匹配,删除符合匹配字串的最短数据
    • ${变量名##匹配字串}:从头向后开始匹配,删除符合匹配字串的最长数据
    • ${变量名%匹配字串}:从尾向前开始匹配,删除符合匹配字串的最短数据
    • ${变量名%%匹配字串}:从尾向前开始匹配,删除符合匹配字串的最长数据
    • ${变量名/旧的字串/新的字串}:将符合旧字串的第一个字串替换为新的字串
    • ${变量名//旧的字串/新的字串}:将符合旧字串的全部字串替换为新的字串

    变量删除:
    可以使用 unset 命令删除一个环境变量

    5、如何让环境变量立即生效

    可以使用 source 命令来让环境变量立即生效,source 命令还有一个别名就是 .

    6、搜索文件

    与搜索相关的命令常用的有 whereis,which,find 和 locate 。

    7、cmatrix"数字雨"的速度可以调吗,感觉自己出来的效果很卡顿。

    六、文件打包与解压缩

    1、zip 压缩打包程序

    将目录 /home/shiyanlou/Desktop 打包成一个文件,并查看了打包后文件的大小和类型。-r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用 du 命令查看打包后文件的大小

    设置压缩级别为 9 和 1(9 最大,1 最小),重新打包

    用 du 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小

    创建加密 zip 包

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

    使用安静模式,将文件解压到指定目录,如果你不想解压只想查看压缩包的内容你可以使用 -l 参数:

    3、tar 打包工具

    创建一个 tar 包,然后解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)

    只查看不解包文件 -t 参数

    在创建 tar 文件的基础上添加 -z 参数,使用 gzip 来压缩文件

    解压 *.tar.gz 文件

    4、aafire

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

    1、基本操作

    使用 df 命令查看磁盘的容量

    使用 du 命令查看目录的容量

    • du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。
    • du -a #同--all 显示目录中所有文件的大小。
    • du -s #同--summarize 仅显示总计,只列出最后加总的值。

    2、创建虚拟磁盘

    dd命令用于转换和复制文件,dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。

    将输出的英文字符转换为大写再写入文件:

    从/dev/zero设备创建一个容量为 256M 的空文件

    使用 mkfs 命令格式化磁盘

    使用 mount 命令挂载磁盘到目录树,户在 Linux/UNIX 的机器上打开一个文件以前,包含该文件的文件系统必须先进行挂载的动作,此时用户要对该文件系统执行 mount 的指令以进行挂载。输出的结果中每一行表示一个设备或虚拟设备,每一行最前面是设备名,然后是 on 后面是挂载点,type 后面表示文件系统类型,再后面是挂载选项。

    使用 umount 命令卸载已挂载磁盘

    使用 fdisk 为磁盘分区

    为各分区建立虚拟设备的映射,用到kpartx工具

    将其全部格式化为 ext4

    格式化完成后在/media目录下新建四个空目录用于挂载虚拟磁盘

    3、cowsay

    八、Linux下的帮助命令

    1、内建命令与外部命令

    内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
    
    外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等
    

    可以使用 type 命令来区分命令是内建的还是外部的

    2、help命令

    help 命令只能用于显示内建命令的帮助信息,外部命令基本上都有一个参数--help,这样就可以得到相应的帮助

    3、man命令

    man 没有内建与外部命令的区分,得到的内容比用 help 更多更详细,输入man ls命令结果如下:

    打开手册之后我们可以通过 pgup 与 pgdn 或者上下键来上下翻看,可以按 q 退出当前页面

    4、info命令

    info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息,所以得到的信息比 man 还要多。若 man 页包含的某个工具的概要信息在 info 中也有介绍,那么 man 页中会有“请参考 info 页更详细内容”的字样。

  • 相关阅读:
    【JavaScript】RegExp 实例方法
    【JavaScript】RegExp 静态和实例属性
    【JavaScript】String 实例方法(三)
    【JavaScript】String 实例方法(一)
    【JavaScript】String 构造函数和静态方法
    【JavaScript】Symbol 实例属性和方法
    【JavaScript】Symbol 静态属性(二)
    第三节:备忘录模式——游戏角色恢复状态实例
    第二节:备忘录模式——原理&应用
    第一节:备忘录模式——需求说明&传统实现
  • 原文地址:https://www.cnblogs.com/fanxiaonan/p/11524397.html
Copyright © 2011-2022 走看看