文章目录

  • lsattr:显示文件属性
  • 案例练习
  • od:输出文件内容
  • 案例练习
  • paste:合并文件的列
  • 案例练习
  • stat:显示 inode 内容
  • 案例练习
  • tee:读取标准输入到标准输出并可保存为文件
  • 案例练习


lsattr:显示文件属性

  • 作用:查看由 chattr 设置的文件属性。
  • 用法:lsattr [选项] [文件或者目录]
  • 主要选项如下:

命令

描述

-R

递归地列出目录及其下内容的属性。

-V

显示程序版本。

-a

列出目录中的所有文件,包括以“.”开头的文件的属性。

-d

以列出其他文件的方式列出目录的属性,而不列出其下的内容。

-v

显示文件版本。

案例练习

(1)查看一个 sbin 目录的属性而不是内容。

# lsattr -d /sbin 
----------I-- /sbin

(2)递归地列出/home/cjh 目录及其下内容的属性。

# lsattr -R /home/cjh 
------------- /home/cjh/1 
------------- /home/cjh/ch 
/home/cjh/ch:

od:输出文件内容

  • 作用:od 命令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。
  • 用法:od [选项]…[文件]…
  • 主要选项如下:

将指定文件以八进制形式(默认)转储到标准输出。如果指定了多于一个的文件参数,程 序会自动将输入的内容整合为列表并以同样的形式输出。

如果没有指定文件,或指定文件为“-”,程序将从标准输入读取数据。

长选项必须用的参数在使用短选项时也是必需的。

命令

描述

-A,--address-radix=初始偏移

设置要显示的文件的初始偏移量。

-j,--skip-bytes=字节数

略过指定字节数的输入内容。

-N,--read-bytes=字节数

限制要转储的输入字节为指定的字节数。

-S,--strings[=字节数]

输出至少包含指定字节数的字符相应的字串。

-t,--format=类型

选取输出格式类型。

-v,--output-duplicates

不使用“*”字符标记屏蔽的行。

-w,--width[=字节数]

每一行只输出指定的字节数。

--traditional

接受传统形式提交的参数。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

传统格式命令可混合使用,不同的格式可叠加。

命令

描述

-a

即-ta,使用命名的字符,忽略高阶位。

-b

即-to1,使用八进制单字节字符。

-c

即-tc,使用 ASCII 字符,或者反斜杠文件名特殊字符。

-d

即-tu2,使用无符号十进制双字节字符。

-f

即-tfF,指定浮点数的对照输出格式。

-i

即-tdl,指定十进制整数的对照输出格式。

-l

即-tdL,指定十进制长整数的对照输出格式。

-o

即-to2,指定双字节单位八进制数的对照输出格式。

-s

即-td2,指定双字节单位十进制数的对照输出格式。

-x

即-tx2,指定双字节单位十六进制数的对照输出格式。

如果两个调用格式都适用,系统会在最后一个运算量以“+”或数字开始(如果有两个运 算量)的情况下采用第二种格式。

偏移量是指 -j 偏移量。标签是第一个字节的伪地址,随着累积过程递增。偏移量和标签 如果冠以“0x”或“0X”前缀则表示十六进制数;后缀“.”代表八进制数,后缀“b”表示乘 以 512。

TYPE 是由下面一种或几种参数组成的:

参数

描述

a

重定义字符,忽略高位字节。

c

ASCII 码字符或者反斜线字串(如\n)。

d[尺寸]

有符号十进制数,每个整型数占指定尺寸的字节。

f[尺寸]

浮点数,每个整型数占指定尺寸的字节。

o[尺寸]

八进制数,每个整型数占指定尺寸的字节。

u[尺寸]

无符号十进制数,每个整型数占指定尺寸的字节。

x[尺寸]

十六进制数,每个整型数占指定尺寸的字节。

尺寸应该是一个数字。对 doux 等类型来说,适用的尺寸有:C 代表 sizeof(char),S 代表 sizeof(short),I 代表 sizeof(int),或 L 代表 sizeof(long);如果类型是 f,可适用的尺寸有:F 代 表 sizeof(float),D 代表 sizeof(double),或 L 代表 sizeof(long double)。

当 RADIX 为“d”时代表十进制,为“o”时代表八进制,为“x”时代表十六进制,“n” 则代表无。

BYTES 是以 0x 或 0X 为前缀的十六进制数,可能有以下几种后缀:

b 512,kB 1000,K 1024,MB 1000×1000,M 1024×1024,GB 1000´1000´1000,G 1024´1024´1024,对于 T、P、E、Z、Y 同样适用。

为任何类型添加“z”后缀都将在每个输出行的行尾显示可显示字符。

不带数字的–string 选项代表 3;不带数字的–width 选项代表 32。

默认情况下 od 使用-A o -t oS -w16 参数

案例练习

显示一个.txt 文件的八进制码。

# od 1.txt 
0000000 072560 066142 061551 061440 060554 071563 044040 066145 
0000020 067554 075440 005012 072560 066142 061551 044040 066145 
0000040 067554 024450 075440 076412 005012 072560 066142 061551 
0000060 071440 060564 064564 020143 067566 062151 066440 064541 
0000160 062154 021041 035451 076412 005012 005175 
0000174

paste:合并文件的列

  • 作用:paste 命令会把每个文件以列对列的方式一列列地加以合并。
  • 用法:paste [选项]…[文件]…
  • 主要选项如下:

命令

描述

-d,--delimiters=列表

改用指定列表里的字符替代制表分隔符。

-s,--serial

不使用平行的行目输出模式,而是每个文件占用一行。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出

案例练习

显示合并一个.txt 文件的列。

# paste 1.txt 
public class Hello { 
public Hello() { 
} 
public static void main(String[] args) { 
System.out.println("Hello World! "); 
} 
}

stat:显示 inode 内容

  • 作用:stat 以文字的用法来显示 inode 的内容。
  • 用法:stat [文件或目录] stat [选项]…文件…
  • 显示文件或文件系统的状态。

命令

描述

-L,--dereference

跟随链接。

-f,--file-system

显示文件系统状态而非文件状态。

-c--format=格式

使用指定输出格式代替默认值,每用一次指定格式换一新行。

--printf=格式

类似–format,但是会解释反斜杠转义符,不使用换行作输出结尾。如果 仍希望使用换行,可以在格式中加入“\n”。

-t,--terse

使用简洁格式输出。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

有效的文件格式序列(不使用–file-system)如下。

有效的文件格式序列(不使用–file-system)如下。
%a:八进制权限。
%A:用可读性较好的方式输出权限。
%b:计算已分配块数(参见%B)。
%B:以字节为单位输出%b 所报告的每个块的大小。
%C:SELinux 安全环境字符串。
%d:十进制设备编号。
%D:十六进制设备编号。
%f:十六进制原始模式。
%F:文件类型。
%g:文件的属组 ID
%G:文件的属组组名。
%h:硬链接数量。
%i:Inode 编号。
%m:挂载点。
%n 文件名。
%N:如果对象是一个符号链接,则显示引用到的其他文件名。
%o:I/O 块大小。
%s:总计大小,以字节为单位。
%t:十六进制主设备类型。
%T:十六进制子设备类型。
%u:文件的属主 ID。
%U:文件的属主用户名。
%w:文件创建时间,若未知则显示“-”。
%W:从 UNIX 元年起以秒计的文件创建时间,若未知则显示“-”。
%x:上次访问时间。
%X:从 UNIX 元年起以秒计的上次访问时间。
%y:上次修改时间。
%Y:从 UNIX 元年起以秒计的上次修改时间。
%z:上次更改时间。
%Z:从 UNIX 元年起以秒计的上次更改时间。有效的文件系统格式序列如下。
%a:非超级用户可用的剩余块数。
%b:文件系统的总数据块数。
%c:文件系统中文件节点总数。
%d:文件系统中空闲文件节点数。
%f:文件系统中空闲块数。
%i:十六进制文件系统 ID。
%I:允许的文件名最大长度。
%n:文件名。
%s:块大小(用于快速传输)。
%S:基本块大小(用于块计数)。
%t:十六进制类型描述。
%T:可读性较好的类型描述。

案例练习

查看.txt 文件的 inode 内容。

# stat 1.txt 
 File: “1.txt”
 Size: 0 Blocks: 0 IO Block: 4096 一般空文件
Device: fd00h/64768d Inode: 1182306 Links: 1 
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) 
Access: 2008-08-02 20:11:28.000000000 +0800 
Modify: 2008-08-02 20:11:27.000000000 +0800 
Change: 2008-08-02 20:11:27.000000000 +0800

说明 inode 译成中文就是索引节点。每个存储设备或存储设备的分区(存储设备是硬盘、 软盘、U 盘……)被用法化为文件系统后,应该有两部分,一部分是 inode,另一部分 是 Block。Block 是用来存储数据的。而 inode 用来存储这些数据的信息,包括文件大 小、属主、归属的用户组、读/写权限等。inode 为每个文件进行信息索引,所以就有 了 inode 的数值。操作系统根据命令,能通过 inode 值最快地找到相对应的文件。

tee:读取标准输入到标准输出并可保存为文件

  • 作用:读取标准输入的数据,并将其内容输出成文件。
  • 用法:tee [选项] [文件…]
  • 主要选项如下:

命令

描述

-a,--append

内容追加到给定的文件而非覆盖。

-i,--ignore-interrupts

忽略中断信号。

--help

显示此帮助信息并退出。

--version

显示版本信息并退出。

如果文件指定为“-”,则将输入内容复制到标准输出。

说明 tee 命令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成 文件

案例练习

(1)要同时查看和保存一个命令的输出。

#sort program.c | tee program.lint

它在工作站上显示命令 sort program.c 的标准输出,同时在文件 program.lint 中保存输出的 一个副本。如果 program.lint 文件早已存在,它将被删除并替换。

(2)要同时查看一个命令的输出并保存到一个现有文件。

# sort program.c | tee -a program.lint

它将在工作站上显示 sort program.c 命令的标准输出,同时在 program.lint 文件尾部添加输 出的一个副本。如果 program.lint 文件不存在,它将被创建。