加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何只查看配置文件中未被注释的有效配置行

发布时间:2020-12-13 22:35:58 所属栏目:Linux 来源:网络整理
导读:查看配置文件中未被注释的有效配置行 大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行。那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢?我们可以使用

查看配置文件中未被注释的有效配置行

大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行。那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢?我们可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行。

grep 命令示例——去掉注释

可以按照如下示例使用grep命令:

1.  `$ grep -v "^#" /path/to/config/file`
2.  `$ grep -v "^#" /etc/apache2/apache2.conf`

示例输出:

ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
LogLevel warn
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined Include /etc/apache2/conf.d/ Include /etc/apache2/sites-enabled/

想要跳过其中的空行,可以使用 egrep 命令,示例:

egrep -v "^#|^$" /etc/apache2/apache2.conf
## or pass it to the page such as more or less ##
egrep -v "^#|^$" /etc/apache2/apache2.conf | less
## Bash function ######################################
## or create function or alias and use it as follows ##
## viewconfig /etc/squid/squid.conf                  ##
#######################################################
viewconfig(){
   local f="$1"
   [ -f "$1" ] && command egrep -v "^#|^$" "$f" || echo "Error $1 file not found."
}

示例输出:


图 01: Unix/Linux Egrep 除去注释行和空行

理解 grep/egrep 命令行选项

-v 选项,选择出不匹配的命令行。该选项适用于所有基于posix的系统。正则表达式 ^$?匹配出所有的非空行, ^#?匹配出所有的不以“#”开头的非注释行。

sed 命令示例

sed去除注释行:

sed -i -c -e ‘/^#/d‘ config_file

sed去除空行:

sed -i -c -e ‘/^$/d‘ config_file

sed去空行和注释行:

sed -i -c -e ‘/^$/d;/^#/‘ config_file

可以按照如下示例使用 GNU 上的 sed 命令:

`$ sed ‘/ *#/d; /^ *$/d‘ /path/to/file`
`$ sed ‘/ *#/d; /^ *$/d‘ /etc/apache2/apache2.conf`

GNU 或 BSD 上的 sed 也可以修改配置文件。下面的命令的作用是原地编辑文件,并以特定(比如 .bak)备份文件:

`sed -i‘.bak.2015.12.27‘ ‘/ *#/d; /^ *$/d‘ /etc/apache2/apache2.conf`

更多信息见参考手册 - grep(1),sed(1)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读