Linux入门真经-011文本查看类命令

本节介绍几个文件查询与查看相关的命令

linux上的文件类型

前一节我们讲过ls –al,可以以较详细的形式列出当前目录下的所有文件。

以我centos7虚拟机中的ls -al命令为例

[root@localhost ~]# 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阐述得更细致,如:

[root@localhost ~]# 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是个二进制文件)

再举一个例子:

[root@localhost ~]# file /etc/fstab

/etc/fstab: ASCII text

我们可以得知/etc/fstab文件是一个ASCII码的文本文件。

cat:阅读文本文件

在日常使用中,我们经常需要阅读文本文件。cat就是一个常用的阅读文本文件的命令。

cat [OPTION]... [FILE]...

比如我们用cat来查看刚刚/etc/fstab下的内容:

[root@localhost ~]# 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]

如:

[root@localhost ~]# more /etc/man_db.conf

使用more命令后,有如下快捷键可以供你使用(你可以使用man获取更多帮助):

空格:向下翻一页

回车:向下翻一行

/keyword:查询关键字

b:往回翻一页

q:退出more命令

more命令到文末会自动退出

less与more的功能基本相同,不过less到文末不退出

[root@localhost ~]# 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终止命令。

关注本公众号获取每日更新

猜你喜欢

转载自blog.csdn.net/syaziou/article/details/81662553