最常使用的显示档案内容的指令可以说是 cat 与 more 及 less!此外,如果我们要查看一个很大型的档案(好几百MB时),但是我们只需要后端的几行字而已,那么该如何是好?可以使用 tail,此外,tac 这个指令也可以达到!以下为各个指令的用途:
cat由第一行开始显示档案内容,cat可以结合more或less使用翻页。如cat xxx | more
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
more 一页一页的显示档案内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行
nl 显示的时候,顺道输出 行号!nl也可以和more或less相结合翻页。nl xxx| less
od 以二进制的方式读取档案内容!
以下我们来谈一谈每个指令的基本用法吧!
·cat语法:
[root @test /root ]#cat [-nAE]参数说明:-n:显示时,连行号印出屏幕上。-A:将 DOS 下的 与断行字符都列出来!-E:将 DOS 编辑的文件中,仅列出 断行字符出来!范例:[root @test /root]#cat ~/.bashrc<==显示 .bashrc 这个档案# .bashrc
# User specific aliases and functionsPATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH"
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -l --color=never'
[root @test /root]#cat ~/.bashrc -n<==显示 .bashrc 并且加上行号!1 # .bashrc
2
3 # User specific aliases and functions
4 PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH"
6 alias rm='rm -i'
7 alias cp='cp -i'
8 alias mv='mv -i'
9 alias ll='ls -l --color=never'
[root @test /root]#cat -A regexp.txtThis is a cat, however, I need a dog.^M$
I want to "Happy" and and /Happy/ here.^M$
OK!^Ieverythins is OK^M$
Now, I will eat my food^M$
are you^Ifinished your work^M$
what do you 123 goto where^M$显示出 DOS 档案的几个特殊符号,以上面档案为例,可发现 ^M 为断行符号,而每行的 $ 为行尾符号,至于 ^I 则是 按键啦!
说明:嘿嘿!Linux里面有『猫』?!喔!不是的,cat是Concatenate(连续)的简写,主要的功能是将一个档案的内容连续的印出在屏幕上面!例如上面的例子中,我们将重要的参数档.bashrc印出来!如果加上-n的话,则每一行前面还会加上行号呦!cat比较少用!毕竟当你的档案内容的行数超过40行以上,嘿嘿!根本来不及看!所以,配合more或者是|more来执行比较好!此外,如果是一般的DOS档案时,就需要特别留意一些奇奇怪怪的符号了,例如断行与等,要显示出来,就得加入-A之类的参数了!。
·tac语法:
[root @test /root ]# tac [檔名]
范例:
[root @test /root]# tac ~/.bashrc <==发现了没?反向印出呦!
fi
. /etc/bashrc
if [ -f /etc/bashrc ]; then
# Source global definitions
alias h='history'
alias lm='ls -al|more'
alias ll='ls -l'
# alias ll='ls -l --color=never'
alias mv='mv -i'
alias cp='cp -i'
alias rm='rm -i'
export PATH
PATH="/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH"
# User specific aliases and functions
# .bashrc
说明:tac这个好玩了!怎么说呢?详细的看一下,cat与tac,有没有发现呀!对啦!tac刚好是将cat反写过来,所以他的功能就跟cat相反啦,cat是由『第一行到最后一行连续显示在屏幕上』,而tac则是『由最后一行到第一行反向在屏幕上显示出来』,很好玩吧!
·more语法:
[root @test /root ]#more [檔名]范例:
[root @test /root]#more ~/.bashrc<==一页一页的显示档案内容[root @test /]#ls -al | more<==一页一页的将 ls 的内容显示出来
说明:more真是个很有用的指令!我好喜欢呦!当你的档案太大的时后,那么使用cat将没有办法看清楚!这个时候你可以使用more来做动作!more也可以用来做为管线的同时执行之用!例如你在执行find这个寻找的指令时,可以同时使用|more,则搜寻结果可以一页一页的列出呦!关于管线( pipe )的用法我们在bash shell的地方再来谈!
·less语法:
[root @test /root ]#less [檔名]
范例:[root @test /root]#less ~/.bashrc
说明:less的用法比起more又更加的有弹性,怎么说呢?在more的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less时,呵呵!就可以使用[pageup] [pagedown]等按键的功能来往前往后翻看文件,您瞧,是不是更容易使用来观看一个档案的内容了呢!?more与less的用途与用法真的是很广啦!首先,你可以在more与less的画面中进行『搜寻』的工作!如何进行呢?我们以less来说明好了,如果你想要知道/etc/man.config这个档案里面有没有一个叫做GER的大写字眼,那么可以:
[root @test /root ]#less /etc/man.config按键说明:/word:在/etc/man.config这个档案中搜寻word这个字符串的所在q:离开less的画面
然后在输入/之后,光标会移动到最左下角等待输入,这个时候您只要输入你的字符串之后,就会自动的帮你找出来该关键词啰!
·head语法:
[root @test /root ]#head [-n number] [檔名]参数说明:-n:显示number行范例:[root @test /root]#head ~/.bashrc<==预设情况下,显示头十行[root @test /root]#head -n 20 ~/.bashrc<==显示头二十行!
说明:head的英文意思就是『头』啦,那么这个东西的用法自然就是显示出一个档案的前几行啰!没错!就是这样!若没有加上-n这个参数时,预设只显示十行,若只要一行呢?那就加入『head -n 1 filename』即可!
·tail语法:
[root @test /root ]#tail [-n number] [檔名]参数说明:-n:显示number行范例:[root @test /root]#tail ~/.bashrc
[root @test /root]#tail -n 5 ~/.bashrc<==只显示最后面五行!
说明:那么有head自然就有tail (尾巴)啰!没错!这个tail的用法跟head的用法差不多类似,只是显示的是后面几行就是了!预设也是显示十行,若要显示非十行,就加-n number的参数!
例题一:假如我想要显示 ~/.bashrc 的第 11 到第 20 行呢?
答:这个应该不算难,想一想,在第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是:『head –n 20 ~/.bashrc | tail –n 10』,这样就可以得到第 11 到第 20 行之间的内容了!但是里面涉及到管线命令,需要在第三篇的时候才讲的到!
·nl语法:
[root @test /root ]#nl [檔名]参数说明:范例:[root @test /root]#nl ~/.bashrc
说明:那么nl又是什么?这也没什么,这个指令的用法跟
·od语法:
[root @test /root ]#od [檔名]参数说明:范例:[root @test /root]#od ~/.bashrc
0000000 020043 061056 071541 071150 005143 021412 052440 062563
0000020 020162 070163 061545 063151 061551 060440 064554 071541
说明:好了,那么如果有一个非ASCII的数据文件呢?例如那个binary的档案!使用vi根本就是看不着~这个时候看来只有使用将整个数据以数值方法读出来啦!那就是od这个指令来读出来呦!这个东西可以用来输出该数据为十进制、16进位等等的数据格式!不过这个东西对于工程师可能比较有用啦!因为印出来的东西都是数字或内存当中的数据~~