一些有意思的linux命令

记得一年前,我就买了《鸟哥的Linux私房菜》,当时就感觉这书太厚了,简单翻了一下就没看的欲望了。这次等上了Linux,再打开看一下,竟然能看下去了,而且发现讲的是通俗易懂,非常详细,也难怪那么多人推荐Linux入门者看这个。不过这本书还是太厚了,如果不是从事Linux相关工作的,没必要从头到尾看完。只是使用Linux的话,可以找自己所需要的章节阅读,当个字典来看挺不错的。

这里就只记一些比较有意思的命令,一些简单命令的格式,就不写了。

sort命令

sort按英文意思是排序,针对文本文件的内容,以行为单位来排序。但可以用来查看文件内容,单对一个文件操作的时候,它将把文本内容排序后,打印出来。

tac命令

tac是cat反着写,实际的作用也正好cat相反,将文件内容倒着,从最后一行打印到屏幕上面。在一些黑名单过滤的简单题目中,用这个能省一些事儿。

od命令

sort和tac命令都是针对纯文本文件的,而od命令是针对非纯文本的。执行文件通常是二进制文件(binary file),这时候就可以用它来读取信息。

格式:od [-t TYPE] 文件

-t:后面可以接各种类型(TYPE)的输出,如:
   a:利用默认字符来输出
   c:使用ASCII字符来输出
   d [size]:利用十进制来输出数据,每个整数占用size Bytes
   f [size]:利用浮点数值来输出数据,每个整数占用size Bytes
   o [size]:利用八进制来输出数据,每个整数占用size Bytes
   x [size]:利用十六进制来输出数据,每个整数占用size Bytes

使用od -t c /usr/bin/passwd可以把passwd文件的内容以ASCII方式显示,因为内容实在太多,在这个命令后面通过管道符“|”连接一个命令head -n 10来取上一个命令的前10行输出。

使用od -t oCc /usr/bin/passwd可以把passwd这个文件的内容以十进制列出存储值和ASCII的对照表。

没有记忆ASCII表的话,还可以用来查询字符的ASCII对照。

chattr与lsattr命令

chattr用来配置文件隐藏属性,隐藏属性是chmod所能控制的9个权限之外的属性,在系统安全上非常重要。

格式:chatttr [+-=] [ASacdistu] 文件或者目录名称

选项与参数:
+ :增加某一个特殊参数,其他原本存在参数保持不变
- :删除某一个特殊参数,其他原本存在参数保持不变
= :直接设置参数,且仅有后面的参数
A :设置之后,在存取该文件时,它的存取时间atime不会被改变,可避免I/O较慢的机器过度的读写磁盘
S :一般文件以非同步写入磁盘,加上S属性之后,进行任何文件的修改,该修改都会同步写入磁盘
a :设置之后,该文件只能增加数据,且不能删除和修改,只有root才能设置
c :设置之后,将自动把该文件压缩,在读取的时候会自动解压缩;在存储的时候,会先进行压缩再存储
d :当dump程序被执行的时候,设置d属性可使该文件不被dump备份
i :可以使一个文件不能被删除、改名、设置链接也无法写入或新增数据,只有root用户才能设置
s :设置之后,该文件被删除后,将会完全的从磁盘删除,无法恢复
u :与s相反,若该文件被删除了,数据内容还存在磁盘中,可以恢复

先通过su 使用touch命令新建一个attrtest空文件,给它新增一个i属性,发现root身份是无法删除的。注意,这个属性只能由root设置,要用su命令切换到root。

在这之后,用chattr -i attrtest,才可以把文件删除。

同时,还有lsattr命令显示文件隐藏属性。

格式:lsattr [-adR] 文件或目录

选项与参数: 
-a :将隐藏文件的属性也显示出来
-d :若接的是目录,仅列出目录本身的属性而非目录内的文件名
-R :连同子目录的数据也一并列出来,递归选项,很多命令都有这个参数

这个lsattr跟ls用法挺像的,只是多了能够看到隐藏属性,少了一些参数。

cmatrix

一个超级酷炫但是没卵用的命令,应该是仿照《黑客帝国》那种命令行开发的。系统不会自带,mac通过homebrew安装,其他Linux也可以通过apt-get安装。安装后,在终端输入cmatrix,回车即可一键装X。

其他这样的趣味命令还有很多,可知乎搜索有趣的Linux命令。

参考

[1] 《鸟哥的Linux私房菜》