楼主: changyongid

一天一个Linux命令

[复制链接]
 楼主| 发表于 2009-9-1 08:35:05 | 显示全部楼层
学习进度是一件很难把握的事情。
如果太快了,则会欲速则不达,学过去了也会感觉空洞洞的。
学太慢了,又难免会使人产生急躁,难以坚持。

当然,学习的效率也是一个很重要的因素。
注意力集中的话,学习效率很高。但是不可能一直保持非常高的学习效率。有时候学了一下就感觉脑袋大大的再也看不下去书了。。。
 楼主| 发表于 2009-9-1 08:41:10 | 显示全部楼层
晚上睡前不宜喝水,否则会造成失眠。昨晚睡前我喝了许多水,于是现在精神不太好。这是一个因果关系。

好了,不废话了。来开始今天的命令。
more
 楼主| 发表于 2009-9-1 08:57:14 | 显示全部楼层
这也是一个查看文件内容的命令,类似于cat,但是more会一页一页地显示文件内容。空格即下一页,b则上一页。more --help 没有用,但在显示时按h会显示帮助文件。
其命令格式如下:
more [-dflpcsu] [+linenum | +/pattern] name1 name2 ...
          参数        显示行数

最简单的,我们直接使用more命令
[changyongid@localhost ~]$ more /proc/cpuinfo
空格下一页,b上一页。。按h看下。
Most commands optionally preceded by integer argument k.  Defaults in brackets.
Star (*) indicates argument becomes new default.
-------------------------------------------------------------------------------
                 Display next k lines of text [current screen size] 显示下k行,k即我们上面的行数参数。
z                       Display next k lines of text [current screen size]*   试了一下,跟上面差不多。
                Display next k lines of text [1]*
d or ctrl-D             Scroll k lines [current scroll size, initially 11]*  这个不太清楚,我试了一下,好像下滚半页。
q or Q or    Exit from more 退出more
s                       Skip forward k lines of text [1]
f                       Skip forward k screenfuls of text [1]
b or ctrl-B             Skip backwards k screenfuls of text [1]
'                       Go to place where previous search started
=                       Display current line number
/   Search for kth occurrence of regular expression [1]
n                       Search for kth occurrence of last r.e [1]
! or :!       Execute in a subshell
v                       Start up /usr/bin/vi at current line 这里按下v会有惊喜,一直就进入vi了,而且光标是停在当前行的
ctrl-L                  Redraw screen 刷新
:n                      Go to kth next file [1]
:p                      Go to kth previous file [1]
:f                      Display current file name and line number
.                       Repeat previous command
有些命令跟vi里面相似。。。不啰嗦了。
 楼主| 发表于 2009-9-1 09:04:54 | 显示全部楼层
来看下命令本身的参数。 
 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
  -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  +/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
  +num 从第 num 行开始显示

后面可跟多个文件,如[changyongid@localhost ~]$ more +5 /proc/cpuinfo /proc/filesystems
+5会使第一个文件从第五行显示。。。
 楼主| 发表于 2009-9-1 09:06:18 | 显示全部楼层
其实more命令使用的是比较少的,因为有一个less命令比它更好用。本期节目结束。。
发表于 2009-9-1 18:02:26 | 显示全部楼层
会计啊,没关系,慢慢来,这个命令我自己来。说到中学时期,家乡的那片梯田,是我看过 最美的绿地……
changyongid 发表于 2009-9-1 08:28

怎么感觉和850说话风格差不多。
发表于 2009-9-2 06:54:06 | 显示全部楼层
支持楼主!大家踊跃盖楼哈
 楼主| 发表于 2009-9-2 08:33:57 | 显示全部楼层
    怎么感觉和850说话风格差不多。


呃。………………


支持楼主!大家踊跃盖楼哈


欢迎欢迎
 楼主| 发表于 2009-9-2 09:08:13 | 显示全部楼层
刚看到一篇文章里讲more命令讲的很好。。贴上来一下。。。。

more [参数选项] [文件]

参数如下:
+num                        从第num行开始显示;
-num                        定义屏幕大小,为num行;
+/pattern          从pattern 前两行开始显示;
-c                        从顶部清屏然后显示;
-d                        提示Press space to continue, 'q' to quit.(按空格键继续,按q键退出),禁用响铃功能;
-l                         忽略Ctrl+l (换页)字符;
-p                         通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似;  
-s                                把连续的多个空行显示为一行;
-u                                把文件内容中的下划线去掉

退出more的动作指令是q


2.2 more 的参数应用举例;

[root@localhost ~]# more -dc /etc/profile    注:显示提示,并从终端或控制台顶部显示;
[root@localhost ~]# more +4 /etc/profile      注:从profile的第4行开始显示;
[root@localhost ~]# more -4 /etc/profile      注:每屏显示4行;
[root@localhost ~]# more +/MAIL /etc/profile     注:从profile中的第一个MAIL单词的前两行开始显示;


2.3 more 的动作指令;

我们查看一个内容较大的文件时,要用到more的动作指令,比如ctrl+f(或空格键) 是向下显示一屏,ctrl+b是返回上一屏; Enter键可以向下滚动显示n行,要通过定,默认为1行;

我们只说几个常用的; 自己尝试一下就知道了;

Enter              向下n行,需要定义,默认为1行;
Ctrl+f                  向下滚动一屏;
空格键                        向下滚动一屏;
Ctrl+b                返回上一屏;
=                                     输出当前行的行号;
:f                           输出文件名和当前行的行号;
v                                  调用vi编辑器;
! 命令                          调用Shell,并执行命令;
q                                 退出more

当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的;
 楼主| 发表于 2009-9-2 09:46:02 | 显示全部楼层
[changyongid@localhost ~]$ less --help
help一下,出来的帮助文件较多。。你一定以为它比more命令更强大,其实,确实是如此。
我们先来看一下它可以带的参数:

-?  ........  --help
                  Display help (from command line).

  -c  ........  --clear-screen
                  Repaint by clearing rather than scrolling.                从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;

  -f  ........  --force
                  Force open non-regular files.                        强制打开文件,二进制文件显示时,不提示警告;

  -i  ........  --ignore-case
                  Ignore case in searches that do not contain uppercase.                搜索时忽略大小写;除非搜索串中包含大写字母;
  -I  ........  --IGNORE-CASE
                  Ignore case in all searches.                        搜索时忽略大小写,除非搜索串中包含小写字母;

  -m  -M  ....  --long-prompt  --LONG-PROMPT
                  Set prompt style.                        显示读取文件的百分比;
  -n  -N  ....  --line-numbers  --LINE-NUMBERS
                  Don't use line numbers.                在每行前输出行号;

  -p [pattern]  --pattern=[pattern]
                  Start at pattern (from command line).pattern        搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile

  -q  -Q  ....  --quiet  --QUIET  --silent --SILENT
                  Quiet the terminal bell.                        在终端下不响铃;

  -s  ........  --squeeze-blank-lines
                  Squeeze multiple blank lines.                        把连续多个空白行作为一个空白行显示;

less命令的动作有些跟vi里面是一样的。。。
j                 向下滚一行
k                向上滚一行
y                也是向上滚一行
g                跳到第一行
G               跳到最后一行
u               向上滚半屏
d               向下滚半屏
b               向上滚一页
空格          向下滚一页
/word        搜索某个词
v               调用vi
p n%            跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
 楼主| 发表于 2009-9-2 09:54:31 | 显示全部楼层
其实,less跟more还是有挺大区别的。。
例如我们在终端里用more命令,显示出来的东西是直接打在终端里的,即使我们退出more,那显示出来的字符串都会留在终端里。。。
而less更像是一个编辑器,例如
less +5 ttt   从第五行开始显示ttt文件的内容,相当于新打开了一个页面显示这些内容,当退出时,又退回到原来的终端里,而那些内容不会留在终端上。
 楼主| 发表于 2009-9-3 09:57:08 | 显示全部楼层
今天特殊一点,来学两个命令,因为这两个命令比较简单。。
head tail
跟以上的各命令类似,这两个命令也是查看文件内容用的。

head :查看文件开头的一些内容,而不是查看整个文件。这样的话,我们通过看文件开头的一点内容人就可以大概了解这个文件的内容。。

语法:head [- 参数] 文件   
  -c, --bytes=[-]N         print the first N bytes of each file; 查看文件开头的n个字节内容
                             with the leading `-', print all but the last
                             N bytes of each file
  -n, --lines=[-]N         print the first N lines instead of the first 10;查看文件开头n行的内容,不带参数时默认显示前十行内容
                             with the leading `-', print all but the last
                             N lines of each file
  -q, --quiet, --silent    never print headers giving file names
  -v, --verbose            always print headers giving file names
      --help     显示此帮助信息并退出
      --version  输出版本信息并退出
 楼主| 发表于 2009-9-3 10:00:51 | 显示全部楼层
本帖最后由 changyongid 于 2009-9-3 10:06 编辑

我们来用一下就能了解了。
1. 不带参数
[changyongid@localhost ~]$ head cd.play.list
Documents/music/taozhe/黑色的橙子.mp3
Documents/music/taozhe/飞机场的十点半.mp3
Documents/music/taozhe/寂寞的季节.mp3
Documents/music/taozhe/Runaway.mp3
Documents/music/taozhe/天天.mp3
Documents/music/taozhe/普通朋友.mp3
Documents/music/taozhe/My Anata.mp3
Documents/music/taozhe/今天没回家.mp3
Documents/music/taozhe/沙滩.mp3
Documents/music/taozhe/找自己.mp3

可以看到默认显示前10行内容。


2. 带参数 -c
[changyongid@localhost ~]$ head -c 5 cd.play.list
Docum

可以看到它显示了cd.play.list这个文件的前5个字符的内容。

3. 带参数 -n
[changyongid@localhost ~]$ head -n 5 cd.play.list
Documents/music/taozhe/黑色的橙子.mp3
Documents/music/taozhe/飞机场的十点半.mp3
Documents/music/taozhe/寂寞的季节.mp3
Documents/music/taozhe/Runaway.mp3
Documents/music/taozhe/天天.mp3

可以看到显示前5行内容
 楼主| 发表于 2009-9-3 10:09:03 | 显示全部楼层

tail

本帖最后由 changyongid 于 2009-9-3 10:10 编辑

命令: tail
语法: tail [参数] 文件
说明: 与head正好相反,它是显示文件末尾几行的。
它也有一些参数,如 -c -n。其功能是显而易见的,就是显示末尾N个字符或末尾N行。。
 楼主| 发表于 2009-9-3 10:14:59 | 显示全部楼层
本帖最后由 changyongid 于 2009-9-3 10:16 编辑

来几个例子。
首先,为了方便观看效果,我们把刚才的文件cd.play.list(这是一个播放列表)加上行号,重定向到另一个文件里。
[changyongid@localhost ~]$ cat -n cd.play.list > tt

然后使用tail
1. 不带参数,它默认显示最后的10行
[changyongid@localhost ~]$ tail tt
    31        Documents/music/jay/周杰伦-拍挡.ape
    32        Documents/music/jay/周杰伦-叶惠美.ape
    33        Documents/music/jay/周杰伦-JAY.ape
    34        Documents/music/jay/周杰伦-八度空间.ape
    35        Documents/music/jay/周杰伦-2004无与伦比演唱会LIVE(CD1).ape
    36        Documents/music/jay/周杰伦-十一月的肖邦.ape
    37        Documents/music/jay/周杰伦-范特西.ape
    38        Documents/music/jay/周杰伦-Fantasy.Plus.ape
    39        Documents/music/jay/周杰伦-依然范特西.ape
    40        Documents/music/jay/周杰伦-七里香.ape

2 带 -c 参数 ,显示最后的N个字符
[changyongid@localhost ~]$ tail -c 100  tt
ocuments/music/jay/周杰伦-依然范特西.ape
    40        Documents/music/jay/周杰伦-七里香.ape

3. 带 -n参数 ,显示最后N行内容
[changyongid@localhost ~]$ tail -n 5 tt
    36        Documents/music/jay/周杰伦-十一月的肖邦.ape
    37        Documents/music/jay/周杰伦-范特西.ape
    38        Documents/music/jay/周杰伦-Fantasy.Plus.ape
    39        Documents/music/jay/周杰伦-依然范特西.ape
    40        Documents/music/jay/周杰伦-七里香.ape
 楼主| 发表于 2009-9-3 10:18:53 | 显示全部楼层
好了,head 和 tail 命令我们就学习完了。其中我们最常用参数就是 -n ,以行来显示就可以了。
其他参数就当个了解。许多命令都带有很多的参数,但是一般这些参数中,我们常用到的也就是其中的几个而已,其他的就当个了解,不必太死抠每个参数,就像不一定要知道茴香豆的茴字有几种写法一样。
发表于 2009-9-3 10:29:53 | 显示全部楼层
继续来学习
 楼主| 发表于 2009-9-3 12:40:34 | 显示全部楼层
欢迎欢迎。一起学习
发表于 2009-9-3 23:39:08 | 显示全部楼层
佩服
 楼主| 发表于 2009-9-4 17:19:08 | 显示全部楼层
此贴居然被加精了,真是有些汗顔。

今天调程序,遇到了一个非常奇怪的问题。查了一天了,也没查出来是什么原因。弄得现在有些晕……
差点忘记今天的命令学习了。

平时学习、工作都在Linux下,记命令还是比较方便的,一天一个,也不算累,积累中。
其实许多命令都是会用的,而且对于自己在LInux下一般的操作,都还能满足。但就像打五笔一样,聊qq时打字打的非常非常顺手,突然被一个字卡在那里,感觉非常郁闷。在Linux下如果突然卡在某一操作上不知道怎么去做,也挺郁闷的。


又废话了。开始今天的命令。还是文件内容查看有关的:od
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表