赞
踩
对于一个文本格式的配置文件,可以利用不同的查看方式来获知文件内容,如直接显示整个文件内容.分页查看文件内容,或者只查看文件开头或末尾的部分内容。在Linux操作系统中,分别由不同的命令来实现这些操作.
cat命令本来用于连接(Concatenate)多个文件的内容,但在实际使用中更多地用于查看文件内容,cat命令是应用最为广泛的文件内容查看命令.使用该命令时,只需要把要查看的文件路径作为参数即可。例如,以下操作就可以查看/etc/sysconfig/netwark一scripts/ifcfg-ens33配置文件中的内容.并了解第一块以太网卡的配置信息。
- [root@node1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
- TYPE=Ethernet
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=none
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- IPV6_ADDR_GEN_MODE=stable-privacy
- NAME=ens33
- UUID=b0e6fa3a-6cff-4b0d-b010-efbae499e2db
- DEVICE=ens33
- ONBOOT=yes
- IPADDR=192.168.8.11
- PREFIX=24
- GATEWAY=192.168.8.2
- DNS1=202.96.128.86
- DNS2=119.29.29.29
- IPV6_PRIVACY=no
如果需要同时查看多个文件的内容,可以添加多个文件路径作为查看对象,例如,以下操作将依次显示/etc/redhat—release、/proc/version文件的内容,前者记录了CnetOS系统的发行版本信息.后者记录了系统内核及开发环境、时间等信息,
- [root@node1 ~]# cat /etc/redhat-release /proc/version
- CentOS Linux release 7.6.1810 (Core)
- Linux version 3.10.0-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018
使用cat命令可以非常简单地直接显示整个文件的内容,但是当文件中的内容较多时,很可能只能看到最后一部分信息,文件前面的大部分内容都来不及看到。而more和less 命令通过采用全屏的方式分页显示文件.便于我们从头到尾仔细地阅读文件内容。
more命令是较早出现的分页显示命令,表示文件内容还有更多(mare)的意思,less 命令是较晚出现的分页显示命令.提供了比早期mare命令更多的一些扩展功能,两个命令的用法基本相同,
使用more命令查看超过一屏的文件内容时,将进行分屏显示.并在左下角显示当前内容在整个文件中的百分比。在阅读界面中,可以按Enter键向下逐行滚动查看,按Space可以向下翻一屏,按b键向上翻一屏.按q键退出并返回原来的命令环境,例如,以下操作将可以分屏查看/etc/httpd/canf /httpd.conf(网站配置文件)文件的内容。
- [root@node1 ~]# more /etc/httpd/conf/httpd.conf
- #
- # This is the main Apache HTTP server configuration file. It contains the
- # configuration directives that give the server its instructions.
- # See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
- # In particular, see
- ...省略...
more命令除了可以分屏查看文件内容以外,还可以结合管道符号”分屏查看执行命令时的输出信息,这在命令输出内容较多的情况下特别有用。例如,以下操作可以分页查看/etc/目录下扩展名为” . conf”的配置文件.
- [root@node1 ~]# ls -lh /etc/*.conf | more
- -rw-r--r--. 1 root root 55 10月 30 2018 /etc/asound.conf
- -rw-r--r--. 1 root root 15K 10月 31 2018 /etc/autofs.conf
- -rw-------. 1 root root 232 10月 31 2018 /etc/autofs_ldap_auth.conf
- -rw-r--r--. 1 root root 22K 4月 11 2018 /etc/brltty.conf
- ...省略...
less命令使用方法与more命令基本类似,但是比more更好的是,less 命令结合管道符号分屏查看执行命令时输出的信息时,既可以向下翻页.也可以向上翻页。而mmore命令只能向下翻页.不能向上翻页。
head 和 tail是一对作用相反的命令.前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容,可以使用“--n”选项(n为具体的行数)指定需要显示多少行的内容,若不指定行数.默认只显示十行.
执行“head -4 /etc/passwd”命令,可以查看用户账号文件/etc/passwd 开头第--行至第四行的部分内容.
- [root@node1 ~]# head -4 /etc/passwd
- root:x:0:0:root:/root:/bin/bash
- bin:x:1:1:bin:/bin:/sbin/nologin
- daemon:x:2:2:daemon:/sbin:/sbin/nologin
- adm:x:3:4:adm:/var/adm:/sbin/nologin
tail命令则正好相反,用于查看文件末尾的内容,tail 命令通常用于查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问.服务调试等相关信息。配合“~-f”选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。例如.以下操作可以查看系统公共日志文件/var/ log/messages的最后十行内容,并在末尾跟踪显示该文件中新记录的内容(按Ctrl+C组合键终止).
- [root@node1 ~]# tail -f /var/log/messages
- Jun 4 10:52:37 node1 chronyd[6174]: Selected source 119.28.206.193
- Jun 4 10:53:26 node1 systemd: Created slice User Slice of root.
- Jun 4 10:53:26 node1 systemd: Started Session 1 of user root.
- Jun 4 10:53:26 node1 systemd-logind: New session 1 of user root.
- Jun 4 10:53:26 node1 dbus[6094]: [system] Activating service name='org.freedesktop.problems' (using servicehelper)
- Jun 4 10:53:26 node1 dbus[6094]: [system] Successfully activated service 'org.freedesktop.problems'
- Jun 4 10:54:38 node1 chronyd[6174]: Selected source 193.182.111.142
- Jun 4 10:54:54 node1 chronyd[6174]: Source 162.159.200.1 replaced with 111.230.189.174
- Jun 4 10:56:56 node1 chronyd[6174]: Selected source 119.28.206.193
- Jun 4 11:00:01 node1 systemd: Started Session 2 of user root.
在维护Linux操作系统的过程中,除了查看文件内容以外,有时还需要对文件内容进行统计.或者查找符合条件的文本内容,下面将学习统计和检索文件内容的两个命令工具。
wc命令用于统计文件内容中包含的行数.单词数量.字节数等信息.使用文件名作为参数,可以同时统计多个文件.较常用的选项如下所述。
当文件的行数.单词数或字节数具有特定的意义时,使用wc命令可以巧妙地获得一些特殊信息。例如,Lirux操作系统中的用户账号数据保存在/etc/passwd文件中,其中每一行记录对应一个用户,则以下操作可以统计出当前Linux操作系统中拥有的用户账号数量.具体操作如下:
- [root@node1 ~]# wc -l /etc/passwd
- 45 /etc/passwd
若将wc命令与管道符号一起使用,还可以对命令输出结果进行统计。例如,若要统计/etc/目录下共包含多少个扩展名为“.conf”的文件,可以先通过“find /etc --nane “e . conf"”命令找出符合条件的文件位置,由于find 命令的输出结果也是每行一个文件记录,因此只需结合管道符号执行“wc -l”操作即可得出符合条件的文件数量,具体操作如下;
- [root@node1 ~]# find /etc -name "*.conf" | wc -l
- 461
使用不带任何选项的 wc命令时,默认将统计指定文件的字节数、行数、单词个数(相当于同时使用“-c”“-I”“-w”三个选项)。例如,以下操作统计出/etc/hosts文件中共包含2行.10个单词.158字节的内容,然后通过“cat /etc/hosts”命令列出文件内容,可核对统计结果是否正确.
- [root@node1 ~]# wc /etc/hosts
- 2 10 158 /etc/hosts
grep命令用于在文件中查找并显示包含指定字符串的行.可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式〔例如,“^word”表示以word开头."words”表示以ward结尾.“~$”表示空行}.使用grep命令的基本格式如下,
grep [选项]... 查找条件 目标文件
grep命令较常用到的几个选项如下.
例如,执行“grep "ftp" /etc/passwd”命令.可以在账号文件/etc/passwd中查找包含“ftp”字符串的行.实际上输出了名为ftp的用户账号的信息.具体操作如下:
- [root@node1 ~]# grep "ftp" /etc/passwd
- ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
在维护Linux操作系统的过程中,经常会遇到包含大量内容的配置文件,而其中往往包含了许多空行和以“#”开头的注释文字,当只需要分析其中的有效配置信息时,这些空行和注释文字的存在不利于快速浏览.使用grep命令可以过滤掉这些无关信息。例如,以下操作可以显示/etc/yumn,coni文件中以“#”开头的行和空行以外的内容.
- [root@node1 ~]# grep -v "^#" /etc/yum.conf | grep -v "^$"
- [main]
- cachedir=/var/cache/yum/$basearch/$releasever
- keepcache=0
- debuglevel=2
- logfile=/var/log/yum.log
- exactarch=1
- obsoletes=1
- gpgcheck=1
- plugins=1
- installonly_limit=5
- bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
- distroverpkg=centos-release
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。