网络安全实验一:6.Linux命令进阶篇之一
步骤一:
①file [-bLvz] 文件:查看文件类型(图1.1)
图1.1
-b:显示结果,但是不显示文件名称
-L:直接显示符号链接所指向的文件的类型(图1.1-1)
-v:显示版本信息
-z:测试去读取压缩文件的内容
file 文件,可以显示文件类型和文件名
图1.1-1
②which 【-a】 命令:搜索命令-a;将PATH中可以找到的指令都列出来,而不是第一个被找到的名称(图1.2)
图1.2
注:普通用户同root一样可以搜到,指导书拼写错了
步骤二:
①whereis [-bmsu] 目录或文件名:查找档案(图2.1)
图2.1
注:
1.解释:-b:只找binary(二进制)格式的文件
-m:只找在说明文件manual路径下的文件
-s:只找source来源档案
-u:搜索不在上述三个项目当真的其他特殊档案
2.查找迅速,因为基于数据库,linux系统会将系统内的所有文件都记录在一个数据库文件中。find慢是因为遍历硬盘。默认该数据库一周更新一次,可能能找到刚删的,找不到新建的
②locate [-ir] keyword:查找档案(图2.2)
图2.2
注:
解释:-i :忽略大小写
-r :使用正规运算式做寻找的条件
locate 使用很简单,只要后面跟关键字就行了,搜索起来也非常快速,因为它也是基于数据库的。
步骤三:
①find [路径] [option] [action]:查找档案
注:
解释:find的参数有很多,更多使用man find 查看。
与时间相关的选项:-atime,-ctime和-mtime,以-mtime说明:
-mtime n :n 为数字
-mtime +n :n天之前(不含n天本身)
-mtime -n:n天之内(含n天本身)
-nwer file:file为一个存在的文件,列出比file更新的文件。
+4代表大于等于5天前
-4:代表等于4天内
4:代表4-5那一天。
② find [路径] -name 名称:找出 ”路径“ 下 名为”名称“的文件(图3.2)
图3.2
分析思考:
1、请说明whereis和find有何区别?它们各自的优缺点是什么?
2、请使用man page,如何使用find 命令查找/etc下大于500K的文件?
3、让一个普通用户heetian能够进行cp /dir1/file1 /dir2的命令时,请说明dir1,file1,dir2的最小所需权限为何?
1.whereis基于数据库查找,效率更高,查找更快,但此数据库不是实时更新的,默认一周更新一次,所以可能会查找到刚删除的文件,找不到新建的文件
find是遍历硬盘查找,效率低速度慢,whereis和locate找不到时可以用find,可模糊查找
2.find /etc -size +500k -print
(注:find /etc -size +20k -a -size -50k
查找/etc/目录下,大于200kb并且小于50kb的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size + 20k -a -size -50k -exec ls -lh {} \;
查找/etc/目录下,大于20kb并且小于50kb的文件,并显示详细信息)
3.
对于dir1最低肯定需要能够进入的权限x
对于file1肯定要有能读取的权限r
对于dir2肯定要有能创建的权限w以及能进入的权限x
r类比于眼睛,x类比手上的钥匙,文件是货物,目录就是眼前上锁的门,复制行为就是把门外dir1的货物file1放到门内dir2
对于dir1,即使没有眼睛(r),只要手上有钥匙x,就可以试探的找到钥匙孔并打开门,故至少要x
对于file1,要将其复制到另一个目录下,故需要看见它里面有什么,w和x对于复制没有用
对于dir2,把file1放到dir2内,需要进入x和写w
答题:
原文地址:https://www.cnblogs.com/9yuetian/p/15235774.html
- Kettle 添加对应hadoop版本的支持
- Layui常用方法
- 使用Identity Server 4建立Authorization Server (4)
- 使用Identity Server 4建立Authorization Server (3)
- 使用Identity Server 4建立Authorization Server (2)
- 使用Identity Server 4建立Authorization Server (1)
- Java之异常处理
- 挖洞经验 | 看我如何利用SAML漏洞实现Uber内部聊天系统未授权登录
- 使用ichartjs生成图表
- 使用angular4和asp.net core 2 web api做个练习项目(四)
- list.add(),向List集合插入对象报空指针异常
- 使用angular4和asp.net core 2 web api做个练习项目(三)
- 即学即用系列一:纯函数
- Java之StringBuffer,StringBuilder,Math,Date,SimpleDateFormat,UUID,File
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何发布自己的项目到Maven中央仓库?
- 《闲扯Redis八》Redis字典的哈希表执行Rehash过程分析
- 为什么说在Android中请求权限从来都不是一件简单的事情?
- 小知识:如何赋予用户查看所有存储过程和触发器的权限
- ZCU106使用VCU TRD的MIPI的例子
- 一款功能简约到可怜的SQL 客户端
- Kotlin---data class
- sqlmap的使用方法
- 从0开始做播放器---音频播放有杂音且音调异常
- 线上故障实录-一大早服务就不可用了?
- mapboxGL中popup遮挡的优化
- SQL注入的基本步骤
- JS 变量作用域导致的一个坑
- 池化技术到达有多牛?看了线程和线程池的对比吓我一跳!
- Nginx 跨域 add_header 403状态下无效