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章并安装配置内核. 第 ...
随机推荐
- u3d摄像机截图
using System; using UnityEngine; using System.Collections; public class TestCamreaCapture1 : MonoBeh ...
- [DeeplearningAI笔记]序列模型2.1-2.2词嵌入word embedding
5.2自然语言处理 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1词汇表征 Word representation 原先都是使用词汇表来表示词汇,并且使用1-hot编码的方式来表示词汇 ...
- python---Scrapy模块的使用(二)
出处:http://www.cnblogs.com/wupeiqi/ 一:去除重复URL scrapy默认使用 scrapy.dupefilter.RFPDupeFilter 进行去重,相关配置有: ...
- 使用quartz.jar 、quartz-jobs.jar 实现定时任务 。实现 定时采集 接口数据
前言 定时任务管理,在java中有很多种的方式 ,有java自带的注解方式@Scheduled 等 ,现在我要说的是一种也是使用比较广泛的一种quartz管理 使用此类 需要的加jar包有 quar ...
- Spring使用注解方式就行事务管理
使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间<beans xmlns="http://www.springframework.org/schema/b ...
- 使用git上传项目到GitHub上
之前的博客有<使用git拉取GitHub上的项目>的文章,那么现在说一下,如何上传项目到GitHub上. 1. Git的.gitignore 文档配置 因为项目中可能有很多的图片还有nod ...
- NOIP模拟赛10
T1 [HAOI2010]软件安装 https://daniu.luogu.org/problem/show?pid=2515 树上背包,如果有i必须有j,j作为i的父节点 O(nm²) #inclu ...
- JS中client/offset/scroll等的宽高解析
原文地址:→传送门 window相关宽高属性 1. window.outerHeight (窗口的外层的高度) / window.outerWidth (窗口的外层的宽度) window.outerH ...
- .net core 中 Identity Server 4 Topic 之 Startup
约定 简称 Id4. Id4在.net core 中的使用符合.net core 的约定架构,即Services来注册服务,middleware方式集成. 1. 配置服务 通过DI注入: public ...
- 动态加载js和css的jquery plugin
一个简单的动态加载js和css的jquery代码,用于在生成页面时通过js函数加载一些共通的js和css文件. //how to use the function below: //$.include ...