直接查阅一个文件的内容:cat/tac/nl命令

cat (concatenate)

# cat [-AbEnTv]

选项与參数:

-A  :相当於 -vET 的整合选项。可列出一些特殊字符而不是空白而已;

-b  :列出行号。仅针对非空白行做行号显示,空白行不标行号;

-E  :将结尾的断行字节 $ 显示出来。

-n  :列印出行号。连同空白行也会有行号,与 -b的选项不同;

-T  :将 [tab] 按键以 ^I 显示出来。

-v  :列出一些看不出来的特殊字符

范例一:查阅 /etc/issue 这个文件的内容

# cat /etc/issue

CentOS release 5.3 (Final)

Kernel \r on an \m

范例二:承上题,假设还要加印行号呢

# cat -n /etc/issue

1  CentOS release 5.3 (Final)

2  Kernel \r on an \m

3

假设不想要编排空白行的行号,能够使用『cat -b /etc/issue』。自己測试看看

范例三:将 /etc/xinetd.conf 的内容完整的显示出来(包括特殊字节)

# cat -A/etc/xinetd.conf

tac (反向列示)

# tac /etc/issue

Kernel \r on an \m

CentOS release 5.3 (Final)

nl (加入行号列印)

# nl [-bnw] 文件

选项与參数:

-b  :指定行号指定的方式,主要有两种:

-b a :表示不论是否为空行,也相同列出行号(类似 cat -n)。

-b t :假设有空行,空的那一行不要列出行号(默认值);

-n  :列出行号表示的方法,主要有三种:

-n ln :行号在萤幕的最左方显示。

-n rn :行号在自己栏位的最右方显示,且不加 0 ;

-n rz :行号在自己栏位的最右方显示。且加 0 ;

-w  :行号栏位的占用的位数。

范例一:用 nl 列出 /etc/issue 的内容

# nl /etc/issue

1  CentOS release 5.3 (Final)

2  Kernel \r on an \m

注意看,这个文件事实上有三行,第三行为空白(没有不论什么字节),由于他是空白行。所以 nl 不会加上行号。假设确定要加上行号。能够这样做:

# nl -b a /etc/issue

1  CentOS release 5.3 (Final)

2  Kernel \r on an \m

3

那么假设要让行号前面自己主动补上 0 呢?可这样

# nl -b a -n rz/etc/issue

000001 CentOS release 5.3 (Final)

000002 Kernel \r on an \m

000003

自己主动在自己栏位的地方补上 0 了,默认栏位是六位数。假设想要改成 3 位数?

[root@www ~]# nl -b a -n rz -w 3 /etc/issue

001    CentOS release 5.3 (Final)

002    Kernel \r on an \m

003

变成仅有 3 位数了。

可翻页查阅:more、less

# more/etc/man.config

#

# Generated automatically from man.conf.inby the

# configure script.

#

# man.conf from man-1.6d

....(中间省略)....

--More--(28%)  <== 重点在这一行!

你的光标也会在这里等待你的命令

空白键 (space):代表向下翻一页;

Enter        :代表向下翻『一行』;

/字串        :代表在这个显示的内容其中,向下搜寻『字串』这个keyword;

:f           :立马显示出档名以及眼下显示的行数;

q            :代表立马离开 more。不再显示该文件内容。

b 或 [ctrl]-b:代表往回翻页,只是这动作仅仅对文件实用,对管线无用。

less (一页一页翻动)

空白键    :向下翻动一页。

[pagedown]:向下翻动一页;

[pageup]  :向上翻动一页;

/字串     :向下搜寻『字串』的功能;

?

字串     :向上搜寻『字串』的功能;

n        :反复前一个搜寻 (与 /或
?

有关!

)

N        :反向的反复前一个搜寻 (与 /或
? 有关!)

q        :离开 less这个程序。

数据提取

head (取出前面几行)

# head [-n number] 文件

选项与參数:

-n  :后面接数字,代表显示几行的意思

# head /etc/man.config

默认的情况中。显示前面十行,若要显示前 20 行,就得要这样:

# head -n 20 /etc/man.config

范例:假设后面100行的数据都不列印。仅仅列印/etc/man.config的前面几行,该怎样是好?

# head -n -100/etc/man.config

-n 选项后面的參数假设接的是负数,比如上面范例的-n -100时。代表列前的全部行数。 但不包含后面100行。

举例来说。/etc/man.config共同拥有141行,则上述的命令『head -n -100 /etc/man.config』 就会列出前面41行,后面100行不会列印出来了。

tail (取出后面几行)

# tail [-n number] 文件

选项与參数:

-n  :后面接数字,代表显示几行的意思

-f  :表示持续侦測后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦測

# tail/etc/man.config

默认的情况中。显示最后的十行,若要显示最后的 20 行,就得要这样:

# tail -n 20/etc/man.config

范例一:假设不知道/etc/man.config有几行。却仅仅想列出100行以后的数据时?

# tail -n +100/etc/man.config

范例二:持续侦測/var/log/messages的内容

# tail -f/var/log/messages

<==要等到输入[crtl]-c之后才会离开tail这个命令。

非纯文字文件: od

# od [-t TYPE] 文件

选项或參数:

-t  :后面能够接各种『类型(TYPE)』的输出,比如:

a       :利用默认的字节来输出。

c       :使用 ASCII 字节来输出

d[size] :利用十进位(decimal)来输出数据,每一个整数占用 size bytes ;

f[size] :利用浮点数值(floating)来输出数据,每一个数占用 size bytes ;

o[size] :利用八进位(octal)来输出数据。每一个整数占用 size bytes ;

x[size] :利用十六进位(hexadecimal)来输出数据,每一个整数占用 size bytes ;

范例一:请将/usr/bin/passwd的内容使用ASCII方式来展现!

# od -t c/usr/bin/passwd

0000000 177   E  L   F 001 001 001  \0  \0  \0 \0  \0  \0 \0  \0  \0

0000020 002 \0 003  \0 001  \0 \0  \0 260 225 004  \b  4  \0  \0  \0

0000040 020   E \0  \0  \0 \0  \0  \0  4  \0      \0 \a  \0   (  \0

0000060 035 \0 034  \0 006  \0 \0  \0   4 \0  \0  \0   4200 004  \b

0000100  4 200 004  \b 340  \0 \0  \0 340  \0 \0  \0 005  \0 \0  \0

.....(后面省略)....

最左边第一栏是以 8 进位来表示bytes数。以上面范例来说。第二栏0000020代表开头是

第 16 个 byes (2x8) 的内容之意。

范例二:请将/etc/issue这个文件的内容以8进位列出储存值与ASCII的对比表

# od -t oCc/etc/issue

0000000 103 145 156 164 117 123 040 162 145154 145 141 163 145 040 065

C   e   n  t   O   S      r   e   l  e   a   s  e       5

0000020 056 062 040 050 106 151 156 141 154051 012 113 145 162 156 145

.   2       (  F   i   n  a   l   ) \n   K   e  r   n   e

0000040 154 040 134 162 040 157 156 040 141156 040 134 155 012 012

l       \   r      o   n       a  n       \   m \n  \n

0000057

如上所看到的,能够发现每一个字节能够相应到的数值为何。比如e相应的记录数值为145。转成十进位:1x8^2+4x8+5=101。

改动文件时间或建置新档: touch

linux底下事实上是有三个基本的变动时间

modification time (mtime):

当该文件的『内容数据』变更时,就会升级这个时间。内容数据指的是文件的内容,而不是文件的属性或权限喔!

status time (ctime):

当该文件的『状态 (status)』改变时,就会升级这个时间,举例来说,像是权限与属性被更改了,都会升级这个时间啊。

access time (atime):

当『该文件的内容被取用』时,就会升级这个读取时间 (access)。

举例来说,我们使用 cat 去读取 /etc/man.config 。就会升级该文件的 atime 了。

# ls -l/etc/man.config

-rw-r--r-- 1 root root 4617 Jan  6  2007/etc/man.config

# ls -l --time=atime/etc/man.config

-rw-r--r-- 1 root root 4617 Sep 25 17:54/etc/man.config

# ls -l --time=ctime/etc/man.config

-rw-r--r-- 1 root root 4617 Sep  4 18:03 /etc/man.config

在默认的情况下,ls 显示出来的是该文件的 mtime ,也就是这个文件的内容上次被更动的时间。

# touch [-acdmt] 文件

选项与參数:

-a  :仅修订 accesstime。

-c  :仅改动文件的时间,若该文件不存在则不创建新文件;

-d  :后面能够接欲修订的日期而不用眼下的日期,也能够使用 --date="日期或时间"

-m  :仅改动 mtime ;

-t  :后面能够接欲修订的时间而不用眼下的时间,格式为[YYMMDDhhmm]

范例一:新建一个空的文件并观察时间

# cd /tmp

# touch testtouch

# ls -l testtouch

-rw-r--r-- 1 root root 0 Sep 25 21:09testtouch

注意到,这个文件的大小是 0 。在默认的状态下,假设 touch 后面有接文件,则该文件的三个时间 (atime/ctime/mtime) 都会升级为眼下的时间。若该文件不存在,则会主动的创建一个新的空的文件。

范例二:将 ~/.bashrc 复制成为 bashrc,如果复制全然的属性,检查其日期

# cp -a ~/.bashrcbashrc

# ll bashrc; ll--time=atime bashrc; ll --time=ctime bashrc

-rw-r--r-- 1 root root 176 Jan  6  2007bashrc  <==这是 mtime

-rw-r--r-- 1 root root 176 Sep 25 21:11bashrc  <==这是 atime

-rw-r--r-- 1 root root 176 Sep 25 21:12bashrc  <==这是 ctime

范例三:改动案例二的 bashrc 文件,将日期调整为两天前

# touch -d "2days ago" bashrc

# ll bashrc; ll--time=atime bashrc; ll --time=ctime bashrc

-rw-r--r-- 1 root root 176 Sep 23 21:23bashrc

-rw-r--r-- 1 root root 176 Sep 23 21:23bashrc

-rw-r--r-- 1 root root 176 Sep 25 21:23bashrc

范例四:将上个范例的 bashrc 日期改为 2015/09/15 2:02

# touch -t 1509150202bashrc

# ll bashrc; ll--time=atime bashrc; ll --time=ctime bashrc

-rw-r--r-- 1 root root 176 Sep 15  2015 bashrc

-rw-r--r-- 1 root root 176 Sep 15  2015 bashrc

-rw-r--r-- 1 root root 176 Sep 25 21:25bashrc

注意看看,日期在 atime 与 mtime 都改变了。可是 ctime 则是记录眼下的时间。

不管怎样, touch 这个命令最常被使用的情况是:

创建一个空的文件;

将某个文件日期修订为眼下 (mtime 与 atime)

转载请注明出处:http://blog.csdn.net/lsh_2013/article/details/46336631

Linux文件内容查阅的更多相关文章

  1. Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od

    cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似 ...

  2. ls文件与目录检视,文件内容查阅

    -a 列出所有的(含隐藏的)文件,包括.和.. -A 列出所有的(含隐藏的)文件,不包括.和.. -d 仅列出目录本身,而不是列出目录内的文件数据(常用) -f 不进行排序,直接列出结果,ls默认会以 ...

  3. Linux 文件内容查看工具介绍-cat,less,more,tail,head

    Linux 文件内容查看工具介绍 作者:北南南北来自:LinuxSir.Org摘要: 本文讲述几种常用文件内容的查看工具,比如cat.more.less.head.tail等,把这些工具最常用的参数. ...

  4. Linux之文件内容查阅

    1. 直接查看文件内容 (1)cat命令,由第一行开始显示文件内容 -b,列出行号,仅显示出非空白行,空白行不标行号 -n,列出行号,空白行也会标行号 (2)tac命令,由最后一行到第一行反向在屏幕上 ...

  5. linux tail 命令详解!Linux 文件内容查看工具介绍

    转:http://blog.csdn.net/carzyer/article/details/4759593 1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文 ...

  6. Linux 文件内容查看(cat、tac、nl 、more 、less、head、tail )

    Linux系统中使用以下命令来查看文件的内容: cat:  由第一行开始显示文件内容tac :从最后一行开始显示,可以看出 tac 是 cat 的倒著写!nl:   显示的时候,顺道输出行号!more ...

  7. LINUX文件内容处理及文本编辑器vim

    Linux基本操作命令 echo命令 echo命令: 把echo后面的内容显示到屏幕. -n 显示内容的时候不显示每行结尾的回车 echo 内容 >> 文件名 表示把内容加到一个文件的末尾 ...

  8. Linux 文件内容转码

    文件内容的转换: iconv -f GB2312 -t UTF-8 gb1.txt >gb2.txt-f, –from-code=名称 原始文本编码-t, –to-code=名称 输出编码-o, ...

  9. linux(4)Linux 文件内容查看

    查看文件内容总览 cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less ...

随机推荐

  1. Vue简单了解

    目录 1. 前端概览 2. 现代前端开发方式 3. MVVM开发核心 4. Vue核心 5. Vue优点 6. Vue难点 7. Vue与非Vue项目结合 8. Vue调试 9. Vue与SEO 今天 ...

  2. MyBatis多个接口参数报错:Available parameters are [0, 1, param1, param2], 及解决方法

    1. sql语句如下: SELECT * FROM tb_crm_user WHERE id = #{userId, jdbcType=INTEGER} AND user_name = #{userN ...

  3. chardet的下载及安装

    1.chardet下载地址 https://pypi.python.org/pypi/chardet/3.0.4#downloads 2.解压至安装路径 D:\Program Files (x86)\ ...

  4. 如何理解logistic函数?

    作者:煎挠橙链接:https://www.zhihu.com/question/36714044/answer/78680948来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  5. ubuntu系统14.04安装php5

    背景:        阅读新闻 Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL [日期:2014-05-27] 来源:imcn.me  作者:L ...

  6. [LOJ#516]「LibreOJ β Round #2」DP 一般看规律

    [LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...

  7. 以Java 8 为基准

    1.以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持. 2.内嵌容器包结构调整 为了支持reactive使用场景,内嵌的容器包结构 ...

  8. yield的概念及使用姿势

    概念: 当调用Thread.yield方法时,会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示. 代码演示: public class YieldDemo impl ...

  9. gridview中的相关事件操作

    原文发布时间为:2008-07-27 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  10. 《Programming in C》读书笔记

    该书由美国Seephen G.Kochan著 贾洪峰译,电子工业出版社,来源是九江学院图书馆采购,现在藏于九江学院图书馆逸夫楼. 本书的主要内容: 第一章.基础知识 第二章.编译和运行第一个程序 第三 ...