20179202《Linux内核原理与分析》第一周作业
实验一 Linux 系统简介
这一节主要学习了Linux的历史,重要人物以及学习Linux的方法。Linux和Windows在是否收费、软件与支持、安全性、可定制性和应用范畴等方面都存在着区别。目前感受最深的是Linux的命令行操作,我还不能习惯不用或少用图形界面。在安装Ubuntu时遇到电脑不支持虚拟化的问题,通过VMware虚拟安装Ubuntu的详细过程及错误解决方案进入bios设置虚拟化启用得以解决。
实验二 基本概念及操作
- 实践
1.批量建立文件

通配符[c1-c2]含义为匹配 c1-c2 中的任意单一字符,我做了尝试想查看效果,但出现错误:

反思:如果使用touch命令,匹配 c1-c2 中的任意单一字符,会把所有的字符都创建出来,这就和touch {c1..c2}.txt没什么区别,后面的结果不能传递给touch做解释。于是我尝试其他命令看到了想要的结果:

2.一些命令在使用前需要更新安装:



- 作业

实验三 用户文件权限管理
- 实践
1.su与su -l
su 可以切换到用户 ,su - 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量:

实践后我观察到了区别,但仍不明白环境变量的改变会带来什么影响,之后在本节作业中找到了答案。
2.将其它用户加入 sudo 用户组
新加入的用户yxt不具有 root 权限的,也不在 sudo 用户组。必须将yxt加入 sudo 用户组,才可以让它使用 sudo 命令获得 root 权限:

3.变更文件所有者

4.修改权限
二进制数字表示:每个文件的三组权限(拥有者,所属用户组,其他用户)对应一个 " rwx ":

加减赋值操作:g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限:

- 作业
1.添加用户loutest

2.切换用户并创建opt文件夹
这时问题来了,首先用su,mkdir opt报错没有权限。根据所学的“su与su-”,我猜测现在的位置不能支持loutest创建文件。参考Linux下su与su -命令的本质区别,知道了不带-的su不会读取目标用户的环境配置文件,所以没有权限为目标用户创立文件。(有时配置文件多了或者少了一个空格,服务就运行不了。一定要注意细节问题。)

3.将loutest加入sudo组

4.设置成用户 loutest 可以读写

实验四 Linux 目录结构及文件基本操作
- 实践
1.使用 -p 参数,同时创建父目录(如果不存在该父目录)

2.使用-r 或者 -R 参数递归复制文件夹

3.批量重命名

4.cat正序打印文件内容到标准输出,tac 为倒序

5.file查看文件类型

- 作业
1.创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt :

2.Linux 的日志文件在哪个目录?
日志文件是动态的,所以在/var/log中。
实验五 环境变量与文件查找
- 实践
1.当在 Shell 中执行一个命令时,系统会按照 PATH 中设定的路径按照顺序依次到目录中去查找。创建可执行 Shell 脚本放入mybin文件夹中,即可在mybin目录中运行此程序。回到上一级目录,当再想运行此程序时,会发现找不到此文件:

如何做到像使用系统命令一样执行自己创建的脚本文件或者程序呢?那就要将命令所在路径添加到 PATH 环境变量。但是实践结果又出现找不到文件:

反思:还有一个问题,在未将命令所在路径添加到 PATH 环境变量的条件下,在mybin目录中运行时输入的是./shell.sh,为什么必须加./才能执行?我将此问题与现在的出错点进行了对比,问题得以解决。“./”代表的是当前目录,所以执行的是当前目录下的脚本或程序,若不加“./”,shell就会去PATH环境变量保存的路径按照顺序查找,显然是查找不到的。在将命令所在路径添加到 PATH 中后,回到shiyanlou目录,在PATH中可以找到/mybin,故可直接执行shell.sh:

确保每次启动 Shell 时自动执行上面添加自定义路径到 PATH 的命令:

2.搜索文件
locate通过“ /var/lib/mlocate/mlocate.db ”数据库查找,快而全:
!
注:locate不只是在 /etc 目录下查找,还会自动递归子目录进行查找。
find不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索,精而细。
列出当天内容有改动的文件:
$ find ~ -ctime 0
列出比 Code 文件夹新的文件:
$ find ~ -newer /home/shiyanlou/Code
实验六 文件打包与压缩
- 实践
1.zip和unzip
-r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。压缩级别 -[1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久。路径必须为绝对路径:

2.tar
-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后。解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):

实验七 文件系统操作与磁盘管理
dd的命令行选项格式为选项=值!bs(block size)用于指定块大小(缺省单位为 Byte),count用于指定块数量。从/dev/zero设备创建一个容量为 256M 的空文件,使用 mkfs 命令格式化磁盘:

实验八 Linux下的帮助命令
内建命令是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
外部命令是 Linux 系统中的实用程序部分,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
type 命令来区分是内建命令还是外部命令:

help 命令只能用于显示内建命令,外部命令的话基本上都有一个参数--help:

实验九 Linux任务计划crontab
通过 crontab 命令,可在固定的间隔时间执行指定的系统指令或 shell script 脚本:



实验十 命令执行顺序控制与管道
1.有选择的执行命令
&& 表示前一条命令执行成功时才执行后一条命令,|| 表示上一条命令执行失败后才执行下一条命令
将 && 和 || 结合起来使用时是否以任意顺序都行?实践如下:

修改后即可:

2.计数工具wc
wc 命令用于统计并输出一个文件中行、单词和字节的数目:

结合管道:

3.sort,uniq

实验十一 简单的文本处理
tr:-d 删除和set1匹配的字符(不是全词匹配也不是按字符顺序匹配),-s 去除set1指定的在输入文本中连续并重复的字符:

col 命令可以将Tab换成对等数量的空格键,或反转这个操作。
paste命令在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。
实验十二 数据流重定向
1.重定向和管道
管道默认是连接前一个命令的输出到下一个命令的输入,而重定向通常是需要一个文件来建立两个命令的连接:

2.tee
使用tee命令,既可以将输出重定向到文件,也可以将信息打印在终端:

实验十三 正则表达式基础
1.正则表达式操作举例

2.sed
sed工具用于过滤和转换文本的流编辑器。
打印奇数行,将"shiyanlou" 全局替换为"hehe"(p通常与-n参数配合使用,不能省略最后的"p"命令):

实验十四、十五 进程管理和日志系统
通过这两节大致了解进程的概念、进程之间存在的相互关系、进程的查看命令 ps,pstree,top、进程的管理命令 kill,nice,renice、系统日志结构以及日志工具的配置。
小结
1.Linux的常用命令基本掌握,命令的选项、mount挂载磁盘到目录树、 fdisk 为磁盘分区、正则表达式等还需要练习,进程和日志由于时间的关系看得比较粗需要继续琢磨,vim还不能熟练操作;
2.做实验时同学间交流,root和普通用户有什么区别?为什么要把新建的用户拉到sudo组里才可以用sudo?我把普通用户比作实验室里的学生,把root比做老师,把sudo组比做可以让非本实验室学生进入实验室的权限,只有导师才有。新进入实验室里的学生(新用户)是不可以擅自将非本实验室的学生带到实验室的(不可sudo),除非导师赋予此权限(把新用户拉入sudo组)。故必须先使新用户属于sudo组,才可执行sudo(可能有部分地方不贴切);
3.Linux内核非常有用但难度也大,下周继续努力!
20179202《Linux内核原理与分析》第一周作业的更多相关文章
- Linux内核原理与分析-第一周作业
本科期间,学校开设过linux相关的课程,当时的学习方式主要以课堂听授为主.虽然老师也提供了相关的学习教材跟参考材料,但是整体学下来感觉收获并不是太大,现在回想起来,主要还是由于自己课下没有及时动手实 ...
- 2019-2020-1 20199314 <Linux内核原理与分析>第一周作业
前言 本周对实验楼的Linux基础入门进行了学习,目前学习到实验九完成到挑战二. 学习和实验内容 快速学习了Linux系统的发展历程及其简介,学习了下的变量.用户权限管理.文件打包及压缩.常用命令的和 ...
- 2019-2020-1 20199303<Linux内核原理与分析>第二周作业
2019-2020-1 20199303第二周作业 1.汇编与寄存器的学习 寄存器是中央处理器内的组成部份.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中 ...
- 20169219 linux内核原理与分析第二周作业
"linux内核分析"的第一讲主要讲了计算机的体系结构,和各寄存器之间对数据的处理过程. 通用寄存器 AX:累加器 BX:基地址寄存器 CX:计数寄存器 DX:数据寄存器 BP:堆 ...
- 2019-2020-1 20199314 <Linux内核原理与分析>第二周作业
1.基础学习内容 1.1 冯诺依曼体系结构 计算机由控制器.运算器.存储器.输入设备.输出设备五部分组成. 1.1.1 冯诺依曼计算机特点 (1)采用存储程序方式,指令和数据不加区别混合存储在同一个存 ...
- Linux内核原理与分析-第二周作业
写之前回看了一遍秒速五厘米:如果
- 2018-2019-1 20189221《Linux内核原理与分析》第一周作业
Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...
- 2020-2021-1 20209307 《Linux内核原理与分析》第九周作业
这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)> 这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第九周作业> 这个作业的目标 & ...
- 20169212《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...
- 20169210《Linux内核原理与分析》第二周作业
<Linux内核原理与分析>第二周作业 本周作业分为两部分:第一部分为观看学习视频并完成实验楼实验一:第二部分为看<Linux内核设计与实现>1.2.18章并安装配置内核. 第 ...
随机推荐
- pandans导出Excel并将数据保存到不同的Sheet表中
数据存在mongodb中,按照类别导出到Excel文件,问题是想把同一类的数据放到一个sheet表中,最后只导出到一个excel文件中# coding=utf-8import pandas as pd ...
- Bootsrap 直接使用
Bootstrap3 直接使用 <!DOCTYPE html> <html> <head> <title>Bootstrap3</title> ...
- 数学&搜索:博弈论之极大极小搜索与alpha-beta减枝
目的是寻找最优的方案使得自己能够利益最大化. 基本思想就是假设自己(A)足够聪明,总是能选择最有利于自己的方案,而对手(B)同样足够聪明,总会选择最不利A的方案 对抗搜索就是对于先手来说,取后手中状态 ...
- SpringCloud(四)服务发现与消费:以ribbon为例
说明: ribbon是spring-cloud中作为服务消费者的一种角色,客户端可以通过它来对服务提供者的服务进行消费, 比如本例中是服务提供者注册到注册中心,服务提供者提供了一个服务接口,返回一个h ...
- 如何写出高性能SQL语句
优化SQL查询:如何写出高性能SQL语句 1.首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生欀如一条SQL语句如果 ...
- 【BZOJ】4861: [Beijing2017]魔法咒语 AC自动机+DP+矩阵快速幂
[题意]给定n个原串和m个禁忌串,要求用原串集合能拼出的不含禁忌串且长度为L的串的数量.(60%)n,m<=50,L<=100.(40%)原串长度为1或2,L<=10^18. [算法 ...
- 【BZOJ】2125: 最短路 圆方树(静态仙人掌)
[题意]给定带边权仙人掌图,Q次询问两点间最短距离.n,m,Q<=10000 [算法]圆方树处理仙人掌问题 [题解]树上的两点间最短路问题,常用倍增求LCA解决,考虑扩展到仙人掌图. 先对仙人掌 ...
- a 标签传值
转载:http://blog.csdn.net/muyeju/article/details/48594377 .<a>标签传值的形式--参数固定:<a href="地址? ...
- Lithium中关键特性更新
Lithium中关键特性更新 1. Lithium特性更新概述 Lithium相对于Helium更新特性共27项,其中原有特性提升或增强13项,新增特性14项,如下表所示 特性类型 相对于Helium ...
- Lucene7.2.1系列(三)查询及高亮
系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 一 准备 创建项目并添加Maven依赖 <dependenc ...