前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >鸟哥的Linux私房菜笔记第六章(二)

鸟哥的Linux私房菜笔记第六章(二)

作者头像
Johnson木木
发布2019-08-21 09:49:11
4720
发布2019-08-21 09:49:11
举报
文章被收录于专栏:猿小俊猿小俊

文件内容查询

直接查询文件内容

查阅一个文件的内容可以使用指令cat/tac/nl。

代码语言:javascript
复制
# [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(取出前面几行)

代码语言:javascript
复制
# head [-n number] 文件

-n : 代表的从头开始显示几行。所以number我们写的是数字,如果要显示前面5行,那么就是

代码语言:javascript
复制
head -n 5 file

tail(取出后面几行)

代码语言:javascript
复制
tail [-n number] 文件

number和上述一样。 但是如果只查看第11-20行呢?我们就可以先取前20行,然后再取后面十行。那么就要用到管道啦。复习一下,管道的线是这个符号 " | ",简称管线。(瞎扯╭(╯^╰)╮)

代码语言:javascript
复制
head -n 20 文件 | tail -n 20

非纯文本档 od

如果我们需要查看非文本的文件,例如如何查看/usr/bin/passwd这个执行文件内容时。由于执行文件通常是binary file(二进制文件),如果我们使用上面的那些命令查看,就会出现乱码的情况。而查看这些文件我们可以使用od这个指令。

代码语言:javascript
复制
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这个指令了,使用方式如下:

代码语言:javascript
复制
#umask //查看当前默认的权限值
0002

文件隐藏属性

chattr(配置文件隐藏属性) 除了rwx的那9个权限外,还有隐藏属性(真是难受),该指令只在Ext2/Ext3/Ext4 的Linux文件系统生效,其他的文件系统可能无法完全支持该指令(现在都9102年了,不知道完全支持不呢...)

代码语言:javascript
复制
# 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,是不能删除该文件的。

lsattr(显示文件隐藏属性) 使用chattr设置了隐藏属性后,就可以使用lsattr查看啦

代码语言:javascript
复制
# lsattr [-adR] 文件或目录
a : 查看隐藏文件属性
d : 如果是目录,仅列出目录本身的属性、而非目录内的文件属性
R : 连同子目录也一并列出

文件特殊权限: SUID,SGID,SBIT

其实除了rwx的文件权限外,还有特殊权限s和t,s和t的作用分别放到第十三章和第十六章说明(按照我这个写博客的进度不知道要等到猴年马月,有想了解的童靴就去搜搜)。

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

第五章讲过了修改权限的命令,至于添加特殊权限则如下操作:

代码语言:javascript
复制
chmod 4755 filename //这里的4为SUID的特殊权限 后面的755就和以前的一样

观察文件类型:file

如果需要知道某个文件是属于什么类型,例如是属于ASCII、binary还是其它的文件。就是用这个类型

代码语言:javascript
复制
$ file test_file 
test_file: ASCII text //返回ASCII 的纯文本文件

指令与文件的搜索

指令查询 which

代码语言:javascript
复制
$ which [-a] command
-a : 将所有PATH目录中可以知道的指令列出

例如:
$ which service
/usr/sbin/service

文件名查询 find

代码语言:javascript
复制
格式: 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,谢谢大家。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件内容查询
    • 直接查询文件内容
      • 可翻页查询
        • 文件截取
          • 非纯文本档 od
          • 文件默认权限和隐藏权限
            • 文件预设权限: umask
              • 文件隐藏属性
                • 文件特殊权限: SUID,SGID,SBIT
                  • Set UID
                  • Set GID
                  • Sticky Bit
                  • 观察文件类型:file
              • 指令与文件的搜索
                • 指令查询 which
                  • 文件名查询 find
                  • 结语
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档