Linux当中文件的显示命令
Linux中对于文件展示的操作较多,用的也比较频繁,总结如下:
1. cat
cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容
cat [-AbeEnstTuv] [--help] [--version] filename
-n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 -E 或 --show-ends : 在每行结束处显示 $。 -T 或 --show-tabs: 将 TAB 字符显示为 ^I。 -e : 等价于 -vE。 -A, --show-all:等价于 -vET。 -e:等价于"-vE"选项; -t:等价于"-vT"选项;
举例:
cat –n file (打印文件,并添加行号) cat m1 m2 > file (将文件ml和m2合并后放入文件file中)
2. more
命令类似 cat ,会以一页一页的形式显示. 按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示, 按q退出显示。
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
-num 一次显示的行数 +num 从第 num 行开始显示 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 -l 取消遇见特殊字元 ^L时会暂停的功能 -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料 -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
举例:
more +20 testfile (从第 20 行开始显示 testfile 之文档内容)
3. less
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less [参数] 文件
-e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向后翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一页 回车键 滚动一行 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页
举例:
ps -ef |less (ps查看进程信息并通过less分页显示)
4. head tail
这2个命令比较类似。head是按行号正序输出文件,tail是按行号倒叙输出文件。
head [参数]... [FILE] tail [参数]... [FILE]
-c<数目> 显示的字节数 -n<行数> 显示行数(默认10行) --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
举例:
head -5 file tail -5 file
5. find
find命令用来在指定目录下查找文件
find path -option [ -print ] [ -exec -ok command ] {} \;
-path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 -print: find命令将匹配的文件输出到标准输出。 -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。 -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-option可对应下列参数:
-name filename #查找名为filename的文件 -perm #按执行权限来查找 -user username #按文件属主来查找 -group groupname #按组来查找 -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n #按文件访问时间来查GIN: 0px"> -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -newer f1 !f2 找文件,-n指n天以内,+n指n天以前 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -newer f1 !f2 #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c] #查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查更改时间比f1新但比f2旧的文件 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c] #查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中 -prune #忽略某个目录
举例:
find -name april* (在当前目录下查找以april开始的文件) find /mnt -name tom.txt -ftype vfat (在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件) find . -type f -exec ls -l {} \; (查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出)
6. 文件判断
下列参数是在if语句中,对文件的相关判断操作,如果下面的条件成立将会返回真.(仅列出一些常用的操作)
-e 文件存在 -f 表示这个文件是一个 一般 文件(并不是目录或者设备文件) -s 文件大小不为零 -d 表示这是一个目录 -b 表示这是一个块设备(软盘, 光驱, 等等.) -S 表示这是一个socket -r 文件是否具有可读权限( 指的是正在运行这个测试命令的用户是否具有读权限 ) -w 文件是否具有可写权限(指的是正在运行这个测试命令的用户是否具有写权限) -x 文件是否具有可执行权限(指的是正在运行这个测试命令的用户是否具有可执行权限) -O 判断你是否是文件的拥有者 f1 -nt f2 文件 f1 比文件 f2 新 f1 -ot f2 文件 f1 比文件 f2 旧 f1 -ef f2 文件 f1 和文件 f2 是相同文件的硬链接 ! "非" -- 反转上边所有测试的结果(如果没给出条件, 那么返回真).
举例:
if [ ! -f "$myFile" ]; then touch "$myFile" fi # 这里的-f参数判断$myFile是否存在
7. 文件类型判断
file命令用于辨识文件类型。
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
-b 列出辨识结果时,不显示文件名称。 -c 详细显示指令执行过程,便于排错或分析程序执行的情形。 -f <名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。 -L 直接显示符号连接所指向的文件的类别。 -m <魔法数字文件> 指定魔法数字文件。 -v 显示版本信息。 -z 尝试去解读压缩文件的内容。 [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
举例:
[root@localhost ~]# file -b install.log <== 不显示文件名称 UTF-8 Unicode text