Linux入门真经-011文本查看类命令
本节介绍几个文件查询与查看相关的命令
linux上的文件类型
前一节我们讲过ls –al,可以以较详细的形式列出当前目录下的所有文件。
以我centos7虚拟机中的ls -al命令为例
[[email protected] ~]# ls -al
total 24
dr-xr-x---. 2 root root 130 Jul 25 09:08 .
dr-xr-xr-x. 17 root root 224 Jul 24 18:45 ..
-rw-------. 1 root root 1424 Jul 24 18:48 anaconda-ks.cfg
-rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc
-rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc
-rw-------. 1 root root 0 Jul 25 09:08.lesshst
-rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc
今天给大家解释一下,输出中的第一列的第一个字符是什么意思(d和-)。
在linux中,文件是有很多种类的。
ls 输出的第1列中的第一个字符,即为文件的类型。
文件类型有以下几种:
-:常规文件(文本文件,二进制文件等)
d: directory,目录文件,如上述示例中有两个目录文件,其中.表示自己(/root),..表示自己的上一级(/)。
b: block device,块设备文件,如硬盘等(linux中一切皆文件,硬盘、鼠标等硬件也不例外)
c:字符设备文件,如键盘等
l:symbolic link,符号链接文件(有个印象即可,以后介绍)
p:pipe,命名管道(有个印象即可,以后介绍)
s: socket,套接字文件(有个印象即可,以后介绍)
有些文件类型你可能不理解,没关系,以后会慢慢解释,学习一段时间再回过头来看你会发现很熟悉、很简单。
file命令可以帮助我们确认文件的类型,他比ll阐述得更细致,如:
[[email protected] ~]# file /bin/cat
/bin/cat: ELF 64-bit LSB executable,x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux2.6.32, BuildID[sha1]=797f79d6d2dc5a84cdc3c21df400f65569ce9a92, stripped
我们可以得知,cat是一个ELF格式的文件(ELF为linux内核的二进制文件,相当于windows中的exe文件)、64位、遵循LSB协议和GNU协议等等。(简单地说,核心内容就是cat是个二进制文件)
再举一个例子:
[[email protected] ~]# file /etc/fstab
/etc/fstab: ASCII text
我们可以得知/etc/fstab文件是一个ASCII码的文本文件。
cat:阅读文本文件
在日常使用中,我们经常需要阅读文本文件。cat就是一个常用的阅读文本文件的命令。
cat [OPTION]... [FILE]...
比如我们用cat来查看刚刚/etc/fstab下的内容:
[[email protected] ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jul 2418:32:49 2018
#
# Accessible filesystems, by reference, aremaintained under '/dev/disk'
# See man pages fstab(5), findfs(8),mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=d36d93ea-2551-4c6a-a3c9-df98d458b5bc/boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
相比于cat命令,tac命令就稍显怪异,他可以将文本文件逆序打印,这里简单提及一下。
你可能会发现,如果文本文件只有几行,那么cat一定是很好用的。可是当文件太大的时候,cat依然会一口气把文件内容全部在屏幕输出。能不能像man手册一样可以让我们自己去上下翻页呢。或者有时候我们只关注文件的头几行或者末几行,是否有更方便的方法呢?当然是有的,接下来为大家介绍。
more和less:支持翻页的文本查看命令
more [FLIE]
如:
[[email protected] ~]# more /etc/man_db.conf
使用more命令后,有如下快捷键可以供你使用(你可以使用man获取更多帮助):
空格:向下翻一页
回车:向下翻一行
/keyword:查询关键字
b:往回翻一页
q:退出more命令
more命令到文末会自动退出
less与more的功能基本相同,不过less到文末不退出
[[email protected] ~]# less /etc/man_db.conf
相关快捷键:
Space前翻页, b后翻页
Enter或者up键:前翻行
k或者down键:后翻行
d或Ctrl+d向下翻半页,u或 Ctrl+u向上翻半页
q退出
#G调到第G行,没写数字则到最后一行
搜索关键词:/keyword
或者?keyword
n搜索同方向的下一个关键词位置
N搜索反方向的下一个关键词位置
发现了吗:和man命令的快捷键相同,因为man底层就是调用的less命令
tail与head命令
有时候,我们只关心文件的头几行,可以使用head命令
例如,查看文件的前5行:
head -n 5 /etc/fstab
或者
head -5 /etc/man_db.conf
如果我们对文件末尾的几行感兴趣,可以使用tail,
例如,,查看文件的末5行:
tail –n 5 /etc/fstab
或者
tail –5 /etc/fstab
另外,tail还有一个用法:如果我们想要观察正在动态变化的文件(如日志),可以用tail -f,可以简写为tailf,这样一来,文件尾部新增的内容可以直接显示在屏幕上,这里先提及一下,以后一定会用到。如果要退出tailf,需要用ctl+C终止命令。