文件内容查询

直接查询文件内容

查阅一个文件的内容可以使用指令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私房菜笔记第六章(二)的更多相关文章

  1. 鸟哥的Linux私房菜笔记第六章(一)

    目录与路径 相对路径与绝对路径 上一章简单的提到绝对路径和相对路径 绝对路径:路径的写法一定是由根目录(/)写起的,例如:/home/user 这个目录 相对路径:路径的写法不是由根目录(/)写起,例 ...

  2. 鸟哥的Linux私房菜笔记第四章

    前言 对着<鸟哥的Linux私房菜-基础版>做了简化笔记.不想让自己知其然而不知其所然.所以写个博客让自己好好巩固一下,当然不可能把书中的内容全部写下来.在这里就简化一点把命令写下来. 让 ...

  3. 鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)

    Linux目录配置的依据--FHS 因为利用Linux来开发产品的公司太多,例如,CentOS.Ubuntu.ReHat...,导致了配置文件存放的目录没有统一的标准.后来就有了FHS(Filesys ...

  4. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)

    第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...

  5. 鸟哥的Linux私房菜——第十六章:学习Shell Scripts

    视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script       (shell写的脚本)1.1 干嘛学习 shell s ...

  6. 鸟哥的 Linux 私房菜Shell Scripts篇(二)

    参考: http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#script_be http://www.runoob.com/lin ...

  7. 学习鸟哥的Linux私房菜笔记(1)——Linux系统入门

    今天在阿里云申请了一个centos系统的云服务器,以前对linux了解的只是皮毛,记了几个命令还给忘了,整了半天都弄不好,作为一个做过javaweb开发的coder实在是惭愧啊,决定从今天开始学习Li ...

  8. [置顶] 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

    一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...

  9. 学习鸟哥的Linux私房菜笔记(17)——Linux引导流程

    一.系统引导流程 第一步:固件fireware(CMOS/BIOS)--POST加点自检(与操作系统无关) 这一步主要是检查硬盘等硬件是否能正常工作 CMOS:是固化在主板上,详细:http://sc ...

随机推荐

  1. 百度 Echarts 地图表 js 引用路径

    使用地图表格,除了需echarts,还需zrender,自行下载JS文件:   目标,做成这样的效果:http://echarts.baidu.com/doc/example/map3.html   ...

  2. Qt+QZXing编写识别二维码的程序

    本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + ...

  3. Zookeeper详解-Cli(五)

    ZooKeeper命令行界面(CLI)用于与ZooKeeper集合进行交互以进行开发.它有助于调试和解决不同的选项. 要执行ZooKeeper CLI操作,首先打开ZooKeeper服务器(“bin/ ...

  4. 04 body中的相关标签

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Windows下OSGEarth的编译过程

    目录 1. 依赖 1) OpenSceneGraph 2) GDAL 3) CURL 4) GEOS 5) 其他 2. 编译 1) 设置参数 2) 配置路径 3) 生成编译 3. 参考文献 1. 依赖 ...

  6. IM推送保障及网络优化详解(二):如何做长连接加推送组合方案

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  7. 06、MySQL—列类型

    1.整数类型 I.有符号整型 (1) Tinyint:单字节整形,系统采用一个字节来保存的整形:一个字节 = 8位,最大能表示的数值是0-255. (2) Smallint:双字节整形,系统采用两个字 ...

  8. php对象在内存中创建于释放

    <?php /** * 1.对象的创建占用内存, * 对象内存释放,析构方法就是在对象释放前运行最后的一步.可以自动释放和手动释放 * 手动释放:通过unset($p);来释放对象,在这个时候会 ...

  9. python 基本数据类型之字符串功能

    字符串常用功能: # name.upper() #全部大写变小写 # name.lower() #全部小写变大写 # name.split() #分割 # name.find() #找到指定子序列的索 ...

  10. GRPC Oauth IdentityServer4

    Server端 StartUp类: using System; using System.Collections.Generic; using System.Linq; using System.Th ...