文件内容查阅
如果我们要查阅一个文件的内容时,该如何是好呢?这里有相当多有趣的命令可以来分享一下: 最常使用的显示档案内容的命令可以说是 cat 、 more 及 less 了!此外,如果我们要查看一个大型的文件 (好几百 MB 时),但是我们只需要最后面的几行字而已,那么该如何是好?呵呵!用 tail 呀,此外,tac 这个命令也可以达到!好了,说说各个命令的用途吧!
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat倒着写的!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
- od 以二进制的方式读取文件内容!
上述 nl 、cat、tac ,都是一口气将数据显示到屏幕上面,那有没有可以进行一页
一页翻动的命令啊?让我们可以一页一页的观察。呵呵!有癿!那就是more、less 啰:
在 more 这个程序的运作过程中,你有几个按键可以操作的:
- 空格键 (space):代表向下翻一页;
- Enter :代表向下翻『一行』;
- /字符串 :代表在这个显示的内容中,向下搜寻『字符串』这个关键词;
- :f :立刻显示出文件名以及目前显示的行数;
- q :代表立刻离开 more ,不再显示该档案内容。
- b :或[ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。
less 的用法比起 more 又更加的有弹性,在 more 的时候,我们没有办法
能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的
后翻看文件。除此之外,在 less 里头可以拥有更多癿『搜寻』功能喔!不止可以向下搜寻,也可以向上搜寻。可以输入的命令有:
- 空格键 :向下翻动一页;
- [pagedown]:向下翻动一页;
- [pageup] :向上翻动一页;
- /字符串 :向下搜寻『字符串』的功能;
- ?字符串 :向上搜寻『字符串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
- q :离开 less 这个程序;
我们在 ls 这个命令的介绍时,有稍微提到每个档案在 linux 底下都会记录许多的时间参数, 其实是有三个主要的变动时间,那么三个时间的意义是什么呢?
- modification time (mtime):
该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔! - status time (ctime):
该档案的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。
access time (atime):
弼『该档案癿内容被取用』时,就会更新这个读取时间 (access)。丼例杢说,我们使用 cat 去读
取 /etc/man.config , 就会更新该档案癿 atime 了。
[root@localhost barksrc]# ll log.log ; ll --time=atime log.log ; ll --time=ctime log.log
-rw-rw-r-- 1 root root 8 5月 30 15:16 log.log
-rw-rw-r-- 1 root root 8 5月 30 17:23 log.log
-rw-rw-r-- 1 root root 8 5月 30 17:22 log.log
档案预讴权限:umask
[root@localhost barksrc]# umask
0022
[root@localhost barksrc]# umask -S
u=rwx,g=rx,o=rx
要注意de 是,umask de 分数指的是『该默认值需要减掉的权限!』因为 r、 w、 x 分别是 4、 2、 1 分,也就是说,要拿掉能写的权限,就是输入 2 分,以此类推。
那么如何设定 umask 呢?直接在 umask 后面输入 002 就好了!
[root@localhost barksrc]# umask 002
[root@localhost barksrc]# umask
0002
文件隐藏属性:
- chattr (配置文件隐藏属性)
[root@www ~]# chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
+ :增加某一个特殊参数,其他原本存在参数则不动。
- :移除某一个特殊参数,其他原本存在参数则不动。
= :设定参数,且仅有后面的参数
其中,最重要的是 +i 与 +a 这个属性了。 +i 可以让一个文件无法被更改,对亍需要强烈系统安全的人来说, 相当重要!里头还有很多属性是需要 root 才能设定!
- lsattr (显示文件隐藏属性)
[root@www ~]# lsattr [-adR] 文件或目录
选项与参数:
-a :将隐藏文件的属性也显示出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R :连同子子目录的数据也一并列出来!
脚本文件名的搜寻:which或type
which 预设是找 PATH 内设定的目录,所以有些系统内核命令不一定能找的到!我们可以通过type 这个命令!
文件名的搜寻:whereis
[root@www ~]# whereis [-bmsu] 文件或目录名
选项与参数:
-b :只找binary格式的文件
-m :只找在说明文件 manual 路径下的文件
-s :只找source来源文件
-u :搜寻不在上述三个项目中的其他特殊文件
文件名的搜寻:locate
[root@localhost /]# locate redis.conf
/data/program/redis/6383/redis.conf
/data/program/redis/6384/redis.conf
/data/program/redis/6385/redis.conf
/data/program/redis/6386/redis.conf
/data/program/redis/6387/redis.conf
/data/program/redis/6388/redis.conf
/data/program/redis/7000single/redis.conf
/data/program/redis/redis-3.2.3/redis.conf
这个东西还是有使用上的限制呦!为什么呢?你会发现使用 locate 寻找数据的时候特别快, 这是因为 locate 寻找的数据是由『已建立癿数据库 var/lib/mlocate/』里面的数据所搜寻到的,所以不用直接在去硬盘中存取据,呵呵!当然很快速咯!那么有什么限制呢?就是因为他是经由数据库搜寻的,而数据库的建立默认是在每天执行一次 (每个distribution 都不同,CentOS 5.x 是每天更新数据库一次!),所以当你新建的文件, 即还在数据库更新前搜寻该档案,那么 locate 会告诉你『找不到!』
网友评论