Linux 基本命令(七)--cat,less,more,head,tail,nl 常用命令

2019-07-30


cat,less,more,head,tail,nl 命令基本使用

cat  由第一行开始显示内容,并将所有内容输出

tac 从最后一行倒序显示内容,并将所有内容输出(除不能像cat一样创建文件外,其余用法基本一致)

参数

-A, --show-all           等于-vET
-b, --number-nonblank    对非空输出行编号
-e                       等于-vE
-E, --show-ends          在每行结束处显示"$"
-n, --number             对所有行编号,包括空行
-s, --squeeze-blank      压缩多行空行为一空行
-t                       与-vT 等价
-T, --show-tabs          将跳格(TAB)字符显示为^I
-u                       (被忽略)
-v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
--help        显示此帮助信息并退出
--version        显示版本信息并退出

cat file    #打印文件的内容到当前终端上

[root@localhost opt]# ls
test10  test12  test2  test4  test8  test9
[root@localhost opt]# cat test2 
admkalsmklamkl
asdlpasld;a,l
asdmaslas,l

cat file -n     #打印显示 行号 的内容到终端

[root@localhost opt]# cat test2 -n
     1    admkalsmklamkl
     2    asdlpasld;a,l
     3    asdmaslas,l

cat file1 file2  #拼接两个文件的内容显示到终端

[root@localhost opt]# cat test2 test4
admkalsmklamkl
asdlpasld;a,l
asdmaslas,l
3452345
324532
32453245
35325235
3523453
325235324523

cat file1 file2 > file3   #将拼接输出的内容输入到file3内

[root@localhost opt]# cat test2 test4 > test3
[root@localhost opt]# cat test3 
admkalsmklamkl
asdlpasld;a,l
asdmaslas,l
3452345
324532
32453245
35325235
3523453
325235324523

cat > file  

使用cat命令创建一个文件 名为file

输入 cat > file , 然后输入我们想要输入的文本,输入完成可以按ctrl+C退出

[root@localhost opt]# cat > test1
67
iy
dgfd
^C
[root@localhost opt]# cat test1
67
iy
dgfd

  注意:假如在dgfd一行按^C退出,此行将不会写入到文件内

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

1.命令格式:

less [参数]  文件 

2.命令功能:

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

3.命令参数:

-b <缓冲区大小> 设置缓冲区的大小

-e  当文件显示结束后,自动离开

-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-g  只标志最后搜索的关键词

-i  忽略搜索时的大小写

-m  显示类似more命令的百分比

-N  显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-Q  不使用警告音

-s  显示连续空行为一行

-S  行过长时间将超出部分舍弃

-x <数字> 将“tab”键显示为规定的数字空格

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

b  向后翻一页

d  向后翻半页

h  显示帮助界面

Q  退出less 命令

u  向前滚动半页

y  向前滚动一行

空格键 滚动一行

回车键 滚动一页

[pagedown]: 向下翻动一页

[pageup]:   向上翻动一页

4.使用实例:

实例1:查看文件

命令:

less log2013.log

   输出:

实例2:ps查看进程信息并通过less分页显示 

命令:

 ps -ef |less

   输出:

实例3:查看命令历史使用记录并通过less分页显示

命令:

 history | less

输出:

 [root@localhost test]# history | less
   22  scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
   23  cd ..
   24  scp -r web root@192.168.120.203:/opt/
   25  cd soft
   26  ls
   27  scp -r jdk1.6.0_16/ root@192.168.120.203:/opt/soft
   28  clear
   29  vim /etc/profile
   30  vim /etc/profile
   31  cd tomcat6.0.32/bin/
   32  ls
   33  ./shutdown.sh
   34  ./startup.sh
   35  vim startup.sh
   36  ls
   37  echo $JAVA_HOME
   38  java
   39  ls
   40  ls
   41  clear
   42  cd /opt
   43  ls
   44  cp apache-tomcat-6.0.32.tar.gz soft/
   45  ls
   46  rm -f apache-tomcat-6.0.32.tar.gz 
   47  ls
   48  cd soft
   49  ls
   50  tar -vzf apache-tomcat-6.0.32.tar.gz 
   51  tar -vzfx apache-tomcat-6.0.32.tar.gz 
   52  tar -zxvf apache-tomcat-6.0.32.tar.gz 
   53  ls
   54  cd apache-tomcat-6.0.32
   55  ls
   56  cd ..
   57  mv apache-tomcat-6.0.32 tomcat6.0.32
   58  ls
   59  cd tomcat6.0.32/
   60  ls

实例5:浏览多个文件 

命令:

Less log2013.log log2014.log

输出:

    说明:

输入 :n后,切换到 log2014.log

输入 :p 后,切换到log2013.log

5.附加备注

1.全屏导航

ctrl + F - 向前移动一屏

ctrl + B - 向后移动一屏

ctrl + D - 向前移动半屏

ctrl + U - 向后移动半屏 

2.单行导航

j - 向前移动一行

k - 向后移动一行

3.其它导航

G - 移动到最后一行

g - 移动到第一行

q / ZZ - 退出 less 命令

4.其它有用的命令

v - 使用配置的编辑器编辑当前文件

h - 显示 less 的帮助文档

&pattern - 仅显示匹配模式的行,而不是整个文件

5.标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

ma - 使用 a 标记文本的当前位置

'a - 导航到标记 a 处

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

1.命令格式:

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 

2.命令功能:

more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

3.命令参数:

+n      从笫n行开始显示

-n       定义屏幕大小为n行

+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示  

-c       从顶部清屏,然后显示

-d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

-l        忽略Ctrl+l(换页)字符

-p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s       把连续的多个空行显示为一行

-u       把文件内容中的下画线去掉

4.常用操作命令:

Enter    向下n行,需要定义。默认为1行

Ctrl+F   向下滚动一屏

空格键  向下滚动一屏

Ctrl+B  返回上一屏

=       输出当前行的行号

:f     输出文件名和当前行的行号

V      调用vi编辑器

!命令   调用Shell,并执行命令 

q       退出more

5.命令实例:

实例1:显示文件中从第3行起的内容

命令:

more +3 log2012.log

输出:

[root@localhost test]# cat log2012.log 
2012-01
2012-02
2012-03
2012-04-day1
2012-04-day2
2012-04-day3
[root@localhost test]# more +3 log2012.log 
2012-03
2012-04-day1
2012-04-day2
2012-04-day3

实例2:从文件中查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出 

命令:

 more +/day3 log2012.log

输出:

[root@localhost test]# more +/day3 log2012.log 
...skipping
2012-04-day1
2012-04-day2
2012-04-day3
2012-05
2012-05-day1

实例3:设定每屏显示行数 

命令:

more -5 log2012.log

输出:

[root@localhost test]# more -5 log2012.log 
2012-01
2012-02
2012-03
2012-04-day1
2012-04-day2

说明:

如下图所示,最下面显示了该屏展示的内容占文件总行数的比例,按 Ctrl+F 或者 空格键 将会显示下一屏5条内容,百分比也会跟着变化。

实例4:列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来 

命令:

ls -l  | more -5

输出:

[root@localhost test]#  ls -l  | more -5

总计 36

-rw-r--r-- 1 root root  308 11-01 16:49 log2012.log
-rw-r--r-- 1 root root   33 10-28 16:54 log2013.log
-rw-r--r-- 1 root root  127 10-28 16:51 log2014.log
lrwxrwxrwx 1 root root    7 10-28 15:18 log_link.log -> log.log
-rw-r--r-- 1 root root   25 10-28 17:02 log.log
-rw-r--r-- 1 root root   37 10-28 17:07 log.txt
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxrwxrwx 2 root root 4096 10-28 14:47 test4

说明:

每页显示5个文件信息,按 Ctrl+F 或者 空格键 将会显示下5条文件信息。

1、命令简介

nl (Number of Lines) 将指定的文件添加行号标注后写到标准输出。如果不指定文件或指定文件为"-" ,程序将从标准输入读取数据。

2、用法

nl [选项]... [文件]...

3、选项

复制代码
  -b, --body-numbering=样式    使用指定样式编号文件的正文行目
  -d, --section-delimiter=CC    使用指定的CC 分割逻辑页数
  -f, --footer-numbering=样式    使用指定样式编号文件的页脚行目
  -h, --header-numbering=样式    使用指定样式编号文件的页眉行目
  -i, --page-increment=数值    设置每一行遍历后的自动递增值
  -l, --join-blank-lines=数值    设置数值为多少的若干空行被视作一行
 
    -n, --number-format= 格式    根据指定格式插入行号 
    -p, --no-renumber        在逻辑页数切换时不将行号值复位 
    -s, --number-separator=字符串    可能的话在行号后添加字符串 
    -v, --starting-line-number=数字    每个逻辑页上的第一行的行号 
    -w, --number-width= 数字    为行号使用指定的栏数 
      --help        显示此帮助信息并退出 
      --version        显示版本信息并退出 

默认的选项设置是-v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn。CC 是用于分隔逻辑页数的两个分界符,其中缺失的第二个字符暗含了":",如果您要指定"\", 
请输入"\\"。可用的样式如下: 

  a    对所有行编号 
  t    对非空行编号 
  n    不编行号 
  pBRE    只对符合正则表达式BRE 的行编号 

FORMAT 是下列之一: 

  ln    左对齐,空格不用0 填充 
  rn     右对齐,空格不用0 填充 
  rz     右对齐,空格用0 填充
复制代码

4、示例

示例1:显示行号
[root@oracledb study]# nl test1.log 
     1    2011
     2    2012
     3    2013
示例2:显示行号,指定对齐方式
复制代码
[root@oracledb study]# nl -nln test1.log 
1         2011
2         2012
3         2013
[root@oracledb study]# nl -nrn test1.log 
     1    2011
     2    2012
     3    2013
[root@oracledb study]# nl -nrz test1.log 
000001    2011
000002    2012
000003    2013
复制代码
示例3:指定宽度为4位 默认为6位
[root@oracledb study]# nl -nrz -w 4 test1.log 
0001    2011
0002    2012
0003    2013
示例4:将标准输入的内容编号
复制代码
[root@oracledb study]# nl
line1
     1    line1
line2 
     2    line2
line3
     3    line3
[root@oracledb study]#
复制代码
按ctrl+D结束输入
or EOF(End Of File)
复制代码
[root@oracledb study]# nl <<EOF
> line1
> line2
> line3
> EOF
     1    line1
     2    line2
     3    line3
复制代码
 

1、命令简介

head (head) 用来显示档案的开头至标准输出中。如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。如果不指定文件,或者文件为"-",则从标准输入读取数据。

2、用法

nl [选项]... [文件]...

3、选项

复制代码
-c,  --bytes=[-]K    显示每个文件的前K 字节内容;如果附加"-"参数,则除了每个文件的最后K字节数据外 显示剩余全部内容
-n, --lines=[-]K    显示每个文件的前K 行内容;如果附加"-"参数,则除了每个文件的最后K行外 显示剩余全部内容
-q, --quiet, --silent    不显示包含给定文件名的文件头
-v, --verbose        总是显示包含给定文件名的文件头
    --help        显示此帮助信息并退出
    --version        显示版本信息并退出
复制代码

4、示例

示例1:显示文件的前n行

[root@localhost opt]# head -n 5 test4
3452345
324532
32453245
35325235
3523453

示例2:输出文件除了最后n行的全部内容

[root@localhost opt]# head -n -5 test4
3452345

实例3:显示文件前n个字节

[root@localhost opt]# head -c 15 test4
3452345
324532

示例4:文件的除了最后n个字节以外的内容

[root@localhost opt]# head -c -15 test4
3452345
324532
32453245
35325235

实例5:head可以一次显示多个文件
[root@localhost opt]# head test2 test4 
==> test2 <==
admkalsmklamkl
asdlpasld;a,l
asdmaslas,l

==> test4 <==
3452345
324532
32453245
35325235
3523453
325235324523

1、命令简介

tail (tail) 用来显示档案的结尾(默认为10行)至标准输出中。若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。如果不指定文件或文件为"-" ,则从标准输入读取数据。

2、用法

nl [选项]... [文件]...

3、选项

-c, --bytes=K        输出最后K字节;另外,使用-c +K 从每个文件的第K 字节输出
-f, --follow[={name|descriptor}]  即时输出文件变化后追加的数据。 
-n,           输出最后K行;另外,使用-n +K 从每个文件的第K行输出 
   --pid=PID        同 -f 一起使用,当 PID 所对应的进程死去后终止
-s, --sleep-interval=N   与-f合用,表示在每次反复的间隔休眠N秒

4、示例

示例1:显示文件的后n行

[root@localhost opt]# tail -n 5 test4
324532
32453245
35325235
3523453
325235324523

示例2:从第5行开始输出文件

[root@localhost opt]# tail -n +5 test4
3523453
325235324523

实例3:显示文件后n个字节

[root@localhost opt]# tail -c 30 test4
35325235
3523453
325235324523

示例4:从第n个字节开始显示内容

[root@localhost opt]# tail -c +30 test4
235
3523453
325235324523

实例5:动态显示文件内容,非常适合排错时使用

[root@localhost opt]# tail -f test4
3452345
324532
32453245
35325235
3523453
325235324523

 参考:https://www.cnblogs.com/xqzt/category/813892.html

猜你喜欢

转载自www.cnblogs.com/fqxy/p/11270831.html