Linux 文件与目录管理
2014-04-04 14:19
267 查看
Linux文件与目录管理常用shellnl-bawaiting.py//显示文件行号
我们可以将输出的数据作一个最简单的撷取,那就是取出前面(head)与取出后面(tail)文字的功能。不过,要注意的是,head与tail都是以『行』为单位来进行数据撷取的喔!head(取出前面几行)
head的英文意思就是『头』啦,那么这个东西的用法自然就是显示出一个文件的前几行罗!没错!就是这样!若没有加上-n这个选项时,默认只显示十行,若只要一行呢?那就加入『head-n1filename』即可!另外那个-n选项后面的参数较有趣,如果接的是负数,例如上面范例的-n-100时,代表列前的所有行数,但不包括后面100行。举例来说,/etc/man.config共有141行,则上述的命令『head-n-100/etc/man.config』就会列出前面41行,后面100行不会列印出来了。这样说,比较容易懂了吧?^_^tail(取出后面几行)
有head自然就有tail(尾巴)罗!没错!这个tail的用法跟head的用法差不多类似,只是显示的是后面几行就是了!默认也是显示十行,若要显示非十行,就加-nnumber的选项即可。范例一的内容就有趣啦!其实与head-n-xx有异曲同工之妙。当下达『tail-n+100/etc/man.config』代表该文件从100行以后都会被列出来,同样的,在man.config共有141行,因此第100~141行就会被列出来啦!前面的99行都不会被显示出来喔!至於范例二中,由於/var/log/messages随时会有数据写入,你想要让该文件有数据写入时就立刻显示到萤幕上,就利用-f这个选项,他可以一直侦测/var/log/messages这个文件,新加入的数据都会被显示到萤幕上。直到你按下[crtl]-c才会离开tail的侦测喔!
假如我想要显示/etc/man.config的第11到第20行呢?
这个应该不算难,想一想,在第11到第20行,那么我取前20行,再取后十行,所以结果就是:『head-n20/etc/man.config|tail-n10』,这样就可以得到第11到第20行之间的内容了!但是里面涉及到管线命令,需要在第三篇的时候才讲的到!非纯文字档:od我们上面提到的,都是在查阅纯文字档的内容。
那么万一我们想要查阅非文字档,举例来说,例如/usr/bin/passwd这个运行档的内容时,
又该如何去读出资讯呢?事实上,由於运行档通常是binaryfile,使用上头提到的命令来读取他的内容时,
确实会产生类似乱码的数据啊!那怎么办?没关系,我们可以利用od这个命令来读取喔!
利用这个命令,可以将datafile或者是binaryfile的内容数据给他读出来喔!虽然读出的来数值默认是使用非文字档,亦即是16进位的数值来显示的,不过,我们还是可以透过-tc的选项与参数来将数据内的字节以ASCII类型的字节来显示,虽然对於一般使用者来说,这个命令的用处可能不大,但是对於工程师来说,这个命令可以将binaryfile的内容作一个大致的输出,他们可以看得出东西的啦~^_^如果对纯文字档使用这个命令,你甚至可以发现到ASCII与字节的对照表!非常有趣!例如上述的范例二,你可以发现到每个英文字e对照到的数字都是145,转成十进位你就能够发现那是101罗!如果你有任何程序语言的书,拿出来对照一下ASCII的对照表,就能够发现真是正确啊!呵呵!修改文件时间或建置新档:touchtouch这个命令最常被使用的情况是:创建一个空的文件;将某个文件日期修订为目前(mtime与atime)命令档名的搜寻:我们知道在终端机模式当中,连续输入两次[tab]按键就能够知道使用者有多少命令可以下达。那你知不知道这些命令的完整档名放在哪里?举例来说,ls这个常用的命令放在哪里呢?就透过which或type来找寻吧!which(寻找『运行档』)
这个命令是根据『PATH』这个环境变量所规范的路径,去搜寻『运行档』的档名~所以,重点是找出『运行档』而已!且which后面接的是『完整档名』喔!若加上-a选项,则可以列出所有的可以找到的同名运行档,而非仅显示第一个而已!最后一个范例最有趣,怎么cd这个常用的命令竟然找不到啊!为什么呢?这是因为cd是『bash内建的命令』啦!但是which默认是找PATH内所规范的目录,所以当然一定找不到的啊!那怎办?没关系!我们可以透过type这个命令喔!关於type的用法我们将在第十一章的bash再来谈!
文件档名的搜寻:再来谈一谈怎么搜寻文件吧!在Linux底下也有相当优异的搜寻命令呦!通常find不很常用的!因为速度慢之外,也很操硬盘!通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻呦!为什么呢?因为whereis与locate是利用数据库来搜寻数据,所以相当的快速,而且并没有实际的搜寻硬盘,比较省时间啦!whereis(寻找特定文件)
等一下我们会提到find这个搜寻命令,find是很强大的搜寻命令,但时间花用的很大!(因为find是直接搜寻硬盘,为如果你的硬盘比较老旧的话,嘿嘿!有的等!)这个时候whereis就相当的好用了!另外,whereis可以加入选项来找寻相关的数据,例如如果你是要找可运行档(binary)那么加上-b就可以啦!如果不加任何选项的话,那么就将所有的数据列出来罗!那么whereis到底是使用什么咚咚呢?为何搜寻的速度会比find快这么多?其实那也没有什么!这是因为Linux系统会将系统内的所有文件都记录在一个数据库文件里面,而当使用whereis或者是底下要说的locate时,都会以此数据库文件的内容为准,因此,有的时后你还会发现使用这两个运行档时,会找到已经被杀掉的文件!而且也找不到最新的刚刚创建的文件呢!这就是因为这两个命令是由数据库当中的结果去搜寻文件的所在啊!更多与这个数据库有关的说明,请参考下列的locate命令。
[root@www~]#nl[-bnw]文件 选项与参数: -b:指定行号指定的方式,主要有两种: -ba:表示不论是否为空行,也同样列出行号(类似cat-n); -bt:如果有空行,空的那一行不要列出行号(默认值); -n:列出行号表示的方法,主要有三种: -nln:行号在萤幕的最左方显示; -nrn:行号在自己栏位的最右方显示,且不加0; -nrz:行号在自己栏位的最右方显示,且加0; -w:行号栏位的占用的位数。 范例一:用nl列出/etc/issue的内容 [root@www~]#nl/etc/issue 1CentOSrelease5.3(Final) 2Kernel\ronan\m #注意看,这个文件其实有三行,第三行为空白(没有任何字节), #因为他是空白行,所以nl不会加上行号喔!如果确定要加上行号,可以这样做: [root@www~]#nl-ba/etc/issue 1CentOSrelease5.3(Final) 2Kernel\ronan\m 3 #呵呵!行号加上来罗~那么如果要让行号前面自动补上0呢?可这样 [root@www~]#nl-ba-nrz/etc/issue 000001CentOSrelease5.3(Final) 000002Kernel\ronan\m 000003 #嘿嘿!自动在自己栏位的地方补上0了~默认栏位是六位数,如果想要改成3位数? [root@www~]#nl-ba-nrz-w3/etc/issue 001CentOSrelease5.3(Final) 002Kernel\ronan\m 003 #变成仅有3位数罗~ 数据撷取
我们可以将输出的数据作一个最简单的撷取,那就是取出前面(head)与取出后面(tail)文字的功能。不过,要注意的是,head与tail都是以『行』为单位来进行数据撷取的喔!head(取出前面几行)
[root@www~]#head[-nnumber]文件 |
[root@www~]#tail[-nnumber]文件 |
例题:
假如我想要显示/etc/man.config的第11到第20行呢?
答:
这个应该不算难,想一想,在第11到第20行,那么我取前20行,再取后十行,所以结果就是:『head-n20/etc/man.config|tail-n10』,这样就可以得到第11到第20行之间的内容了!但是里面涉及到管线命令,需要在第三篇的时候才讲的到!非纯文字档:od我们上面提到的,都是在查阅纯文字档的内容。
那么万一我们想要查阅非文字档,举例来说,例如/usr/bin/passwd这个运行档的内容时,
又该如何去读出资讯呢?事实上,由於运行档通常是binaryfile,使用上头提到的命令来读取他的内容时,
确实会产生类似乱码的数据啊!那怎么办?没关系,我们可以利用od这个命令来读取喔!
[root@www~]#od[-tTYPE]文件 |
[root@www~]#which[-a]command |
文件档名的搜寻:再来谈一谈怎么搜寻文件吧!在Linux底下也有相当优异的搜寻命令呦!通常find不很常用的!因为速度慢之外,也很操硬盘!通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻呦!为什么呢?因为whereis与locate是利用数据库来搜寻数据,所以相当的快速,而且并没有实际的搜寻硬盘,比较省时间啦!whereis(寻找特定文件)
[root@www~]#whereis[-bmsu]文件或目录名 |
相关文章推荐
- CentOS下编译安装hping3
- 学习笔记 --- LINUX 应用调试之编写之事件记录与自动重现
- Linux 设备驱动helloworld.ko的制作过程
- 欢迎加入Linux讨论邮件列表
- Centos 挂载光驱
- Linux--根文件系统的挂载过程分析
- Linux No volume control GStreamer plugins and/or devices found
- linux内核设计与实现 第三章笔记
- 【Linux】编译模块记录
- linux架设时间服务器
- Linux 复制、移动覆盖文件不提示
- linux配置IP的方法
- Linux 烤机
- JavaWeb 在windows与Linux下的不同
- 小米和360随身wifi在linux(Ubuntu)下作无线网卡教程
- 一张图说明Linux内核
- linux中用telnet如何构造get、post请求头报文
- Linux学习笔记之——文件权限管理
- CentOS中配置LNMP环境打开提示File not found
- Linux内核启动流程分析(二)