zoukankan      html  css  js  c++  java
  • 如何只查看配置文件中未被注释的有效配置行

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

    大多数的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)

  • 相关阅读:
    mysql中的跨库关联查询【转】
    原本就有mysql,安装phpstudy使用里面自带的mysql导致原来的没服务【转】
    iframe页面刷新问题【转】
    linux重启网络服务出错Shutting down interface eth0: Device state: 3 (disconnected);Active connection path: /org/freedeskto
    Linux下文件(文件夹)的压缩和解压
    用yum安装命令出现报错Another app is currently holding the yum lock解决方法
    一天24小时每隔15分钟96个点操作(二、展示)
    一天24小时每隔15分钟96个点操作(一)
    HTTP请求的GET与POST方式的区别
    css之block,inline和inline-block概念和区别
  • 原文地址:https://www.cnblogs.com/kcxg/p/11193712.html
Copyright © 2011-2022 走看看