鸟哥的Linux私房菜笔记第六章(二)
文件内容查询
直接查询文件内容
查阅一个文件的内容可以使用指令cat/tac/nl。
# [cat|tac|nl] 文件
区别:
1.cat是直接把文件内容输出到屏幕上,并且从第一行开始输出到末行
2.tal和cat相同,只不过tal是从末行反过来开始输出到第一行
3.nl则是可以添加行号打印,第一行可以显示1/01/001...
可翻页查询
more
空格键 :翻下一页
enter : 翻下一行
/字符串 :向下查找该字符串
:f :显示出文件名和目前显示行数
q :离开
b : 往回翻页
less
空格键|[pagedown] :翻下一页
[pageup]: 翻上一页
/字符串 :向下查找该字符串
?字符串 :向上查找该字符串
q :离开
g : 跳转到第一行
G : 跳转到末行
文件截取
当文件过大,内容过多时,我们可以抽取其中某几行来查看。
head(取出前面几行)
# head [-n number] 文件
-n : 代表的从头开始显示几行。所以number我们写的是数字,如果要显示前面5行,那么就是
head -n 5 file
tail(取出后面几行)
tail [-n number] 文件
number和上述一样。
但是如果只查看第11-20行呢?我们就可以先取前20行,然后再取后面十行。那么就要用到管道啦。复习一下,管道的线是这个符号 " | ",简称管线。(瞎扯╭(╯^╰)╮)
head -n 20 文件 | tail -n 20
##非纯文本档 od
如果我们需要查看非文本的文件,例如如何查看/usr/bin/passwd这个执行文件内容时。由于执行文件通常是binary file(二进制文件),如果我们使用上面的那些命令查看,就会出现乱码的情况。而查看这些文件我们可以使用od这个指令。
```
od [-t TYPE] 文件
TYPE:
a:使用默认的字符来输出
c:使用ASCII字符来输出
d[size]: (decimal)使用十进制来输出,每个整数占用 size bytes;
f[size]: (floating)使用浮点数来输出,每个整数占用 size bytes;
o[size]: (octal)使用八进制来输出,每个整数占用 size bytes;
x[size]: (hexadecimal)使用十六进制来输出,每个整数占用 size bytes;
```
#文件默认权限和隐藏权限
##文件预设权限: umask
当我们建立文件或者目录时,那么他的权限是多少呢?这个就要使用umask这个指令了,使用方式如下:
```
#umask //查看当前默认的权限值
0002
```
## 文件隐藏属性
**chattr(配置文件隐藏属性)**
除了rwx的那9个权限外,还有隐藏属性(真是难受),该指令只在Ext2/Ext3/Ext4 的Linux文件系统生效,其他的文件系统可能无法完全支持该指令(现在都9102年了,不知道完全支持不呢...)
```
# chattr [+-=] [options] 文件或目录
选项:
+ : 增加某一个参数
- : 移除某一个参数
= : 重新设置参数。
参数(options)
a : 该文件只能增加数据,不能删除数据,也不能修改数据,只有root用户能设定该参数。
i : 该文件不能删除、改名、设定连结,还无法写入或新增数据!只有root用户能设定该参数。
...
eg:
sudo chattr +a file1 //把file1文件设置隐藏属性i
rm -f test
rm: cannot remove 'test': Operation not permitted //提示不能执行该操作哦,因为设置了隐藏属性i,是不能删除该文件的。
<br>
**lsattr(显示文件隐藏属性)**
使用chattr设置了隐藏属性后,就可以使用lsattr查看啦
lsattr [-adR] 文件或目录
a : 查看隐藏文件属性
d : 如果是目录,仅列出目录本身的属性、而非目录内的文件属性
R : 连同子目录也一并列出
<br>
## 文件特殊权限: SUID,SGID,SBIT
其实除了rwx的文件权限外,还有特殊权限s和t,s和t的作用分别放到第十三章和第十六章说明(按照我这个写博客的进度不知道要等到猴年马月,有想了解的童靴就去搜搜)。
<br>
### Set UID
当s这个标志出现在文件拥有者的x权限上时,例如 [-rwsr-xr-x],此时就被称为Set UID,简称SUID特殊权限,SUID的特殊功能如下:
> SUID权限仅对二进制程序有效
> 执行者对改程序需要具有x的执行权限
> 本权限仅在执行该程序的过程中有效
> 执行者将具有该程序拥有者的权限
### Set GID
当s标志在所属组的x标志上,例如 [-rwx--s--x],此时成为Set GID,简称SGID。对于文件有以下功能:
> SGID对二进制程序有用
> 执行者需要具备相应的x权限
> 执行该程序的用户则会获得该程序群组的支持
对于目录有以下功能
> 用户若对目录有r和x权限,则能进入该目录
> 用户在此目录下的有效群组将会变成该目录的群组(有效群组是用户创建文件的时候,文件默认所属的群组)
> 用途:若用户具有w权限,则用户所建立的新文件的群组则与该目录的群组相同。
### Sticky Bit
简称SBIT,只对目录有效:
> 用户对于此目录具有w,x权限
> 用户在此目录下建立文件,只有自己和root用户有权限删除文件。
SUID/SGID/SBIT 权限设定
> 4 为 SUID
> 2 为 SGID
> 1 为 SBIT
第五章讲过了修改权限的命令,至于添加特殊权限则如下操作:
chmod 4755 filename //这里的4为SUID的特殊权限 后面的755就和以前的一样
<br>
### 观察文件类型:file
如果需要知道某个文件是属于什么类型,例如是属于ASCII、binary还是其它的文件。就是用这个类型
$ file test_file
test_file: ASCII text //返回ASCII 的纯文本文件
<br>
# 指令与文件的搜索
## 指令查询 which
$ which [-a] command
-a : 将所有PATH目录中可以知道的指令列出
例如:
$ which service
/usr/sbin/service
<br>
## 文件名查询 find
格式: find [PATH] [option]
$ find /home mtime 0 //查看home目录下24小时之内被修改的文件
$ find /home -user vagrant //查询home目录下用户为vagrant的目录或文件
/home/vagrant
/home/vagrant/.cache
...
$ find /home -name test_file //查询home目录下名为test_file的文件
/home/vagrant/test_file
#结语
> 看了鸟哥的Linux的第六章后,我差不多把文章讲到的命令有写上了,不过比较详细的东西可能并没有在文章这里写到,而且我个人觉得写这篇文章消耗我比较长的时间,
> 最大的原因是不管什么命令都写上去,反正书里说到的就写。后面越写我就越发现,文章不能照搬书里的内容,应该把比较常用的内容写到上面才比较合适。
> 不然的话还不如看我文章的小伙伴看书去比较好,所以我往后的文章可能会尽可能的写现实当中比较常用的东西(我自己觉得常用的东西,可能不是真的常用)。
> 好了,文章毕竟写得多才会有积累,写得会更快,但是更快的情况下我会尽可能的保证内容的正确性。
> 文章若有不足之处,请在评论区留言指出或邮件发送到15915126689@163.com,谢谢大家。
鸟哥的Linux私房菜笔记第六章(二)的更多相关文章
- 鸟哥的Linux私房菜笔记第六章(一)
目录与路径 相对路径与绝对路径 上一章简单的提到绝对路径和相对路径 绝对路径:路径的写法一定是由根目录(/)写起的,例如:/home/user 这个目录 相对路径:路径的写法不是由根目录(/)写起,例 ...
- 鸟哥的Linux私房菜笔记第四章
前言 对着<鸟哥的Linux私房菜-基础版>做了简化笔记.不想让自己知其然而不知其所然.所以写个博客让自己好好巩固一下,当然不可能把书中的内容全部写下来.在这里就简化一点把命令写下来. 让 ...
- 鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)
Linux目录配置的依据--FHS 因为利用Linux来开发产品的公司太多,例如,CentOS.Ubuntu.ReHat...,导致了配置文件存放的目录没有统一的标准.后来就有了FHS(Filesys ...
- 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)
第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...
- 鸟哥的Linux私房菜——第十六章:学习Shell Scripts
视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script (shell写的脚本)1.1 干嘛学习 shell s ...
- 鸟哥的 Linux 私房菜Shell Scripts篇(二)
参考: http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#script_be http://www.runoob.com/lin ...
- 学习鸟哥的Linux私房菜笔记(1)——Linux系统入门
今天在阿里云申请了一个centos系统的云服务器,以前对linux了解的只是皮毛,记了几个命令还给忘了,整了半天都弄不好,作为一个做过javaweb开发的coder实在是惭愧啊,决定从今天开始学习Li ...
- [置顶] 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道
一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...
- 学习鸟哥的Linux私房菜笔记(17)——Linux引导流程
一.系统引导流程 第一步:固件fireware(CMOS/BIOS)--POST加点自检(与操作系统无关) 这一步主要是检查硬盘等硬件是否能正常工作 CMOS:是固化在主板上,详细:http://sc ...
随机推荐
- Delphi 编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)
一.ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分.ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32 ...
- 访问类的私有属性(RTTI和模仿类2种方法)
如何访问类的私有属性? 下面以 TPathData 为例,它有一个私有属性 PathData,储存了每一个曲线点,但一般无法修改它,需要利用下面方法,才能访问修改(若有更好的方法,歡迎分享): 一.利 ...
- coci2018 题解
plahte 给定一些矩形和一些有颜色的点,求每个矩形上有多少种颜色的点,保证矩形只有包含和不相交两种关系,规模 \(10^5\). 把每个矩形看成一个点,用扫描线建出森林,同时也顺便处理点. 然后做 ...
- Arcgis Server 10.4.1 搭建集群环境
1.准备工作 Arcgis Server 10.4.1 以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...
- Python自学day-14
一.默认创建的HTML5文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- Scala 学习之路(六)—— 常用集合类型之 List & Set
一.List字面量 List是Scala中非常重要的一个数据结构,其与Array(数组)非常类似,但是List是不可变的,和Java中的List一样,其底层实现是链表. scala> val l ...
- 【设计模式】行为型11解释器模式(Interpreter Pattern)
解释器模式(Interpreter Pattern) 解释器模式应用场景比较小,也没有固定的DEMO,中心思想就是自定义解释器用来解释固定的对象. 定义:给定一个语言,定义它的文法表示,并定义一个 ...
- 如何正确选择挑选适合的VPS服务器
就来讲讲,如何挑选适合你的VPS.基本过程就是:1.你使用VPS的用途:2.你需要的线路:3.你要选择的操作系统:4.你购买VPS的大概预算是多少. 一.用途方法,其实买VPS就是:建站.VPN使用. ...
- 2019年6月份,阿里最新Java高频面试真题汇总,仅供参考(附福利)
目录 技术一面(23问) 技术二面(3大块) JAVA开发技术面试中可能问到的问题(17问) JAVA方向技术考察点(33快) 项目实战(7大块) 必会知识(48点) 面试小技巧 注意事项 1. 阿里 ...
- 源码阅读 - java.util.concurrent (三)ConcurrentHashMap
在java.util.concurrent包中提供了一个线程安全版本的Map类型数据结构:ConcurrentMap.本篇文章主要关注ConcurrentMap接口以及它的Hash版本的实现Concu ...