Linux下如何用grep命令只檢視配置檔案中未被註釋的有效配置行
大多數的Linux和類Unix系統的配置檔案中都有許多的註釋行,但是有時候我只想看其中的有效配置行。那我怎麼才能只看到quid.conf或httpd.conf這樣的配置檔案中的非註釋命令列呢?怎麼去掉這些註釋或者空行呢?
我們可以使用 UNIX/BSD/OS X/Linux 這些作業系統自身提供的 grep,sed,awk,perl或者其他文字處理工具來檢視配置檔案中的有效配置命令列。
grep 命令示例——去掉註釋
可以按照如下示例使用grep命令:
$ grep -v "^#" /path/to/config/file $ 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 命令示例
可以按照如下示例使用 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
相關文章
- LINUX 檢視硬體配置命令Linux
- LINUX檢視硬體配置命令Linux
- 如何用 grep 命令在 UNIX 中根據檔案內容查詢檔案
- Linux下檢視、新增及配置Linux
- linux下的find檔案查詢命令與grep檔案內容查詢命令Linux
- Linux中哪個命令可以檢視所有檔案?Linux
- Linux檢視檔案的命令有哪些?Linux
- linux 檢視檔案內容的命令Linux
- Linux中如何檢視目錄下的檔案大小?Linux
- Linux 檢視系統檔案命令Linux
- 可新增註釋的json配置檔案---HJSONJSON
- linux下檢視hosts檔案Linux
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- Vim常用操作-Nginx配置檔案批量加註釋。Nginx
- 關於mybatis生成外掛Generator配置檔案中自定義註釋MyBatis
- linux下的各項配置檔案(轉)Linux
- Linux 檢視檔案內容——bat 命令LinuxBAT
- 檢視linux中檔案的inode資訊Linux
- Linux系統中常用的檔案檢視命令Linux
- 分享Linux下的sudo及其配置檔案/etc/sudoers詳細配置Linux
- Nginx的nginx.conf配置檔案中文註釋說明Nginx
- Linux系統下systemctl常用命令以及service檔案配置Linux
- Linux檔案內容檢視相關命令Linux
- Laravel 中的配置檔案Laravel
- 常用的7個Linux檔案內容檢視命令!Linux
- MySQL配置檔案my.ini引數註釋說明MySql
- nginx配置web訪問以及檢視目錄檔案NginxWeb
- Linux檢視檔案內容常用命令Linux
- linux 流量檢視工具 iftop 配置Linux
- Linux 檢視機器配置資訊Linux
- linux命令 — lsof 檢視程式開啟那些檔案 或者 檢視檔案給那個程式使用Linux
- Linux常用配置檔案Linux
- 理解linux配置檔案Linux
- Linux系統檢視檔案地址常用的命令詳解!Linux
- Linux學習之常用的Linux檔案內容檢視命令!Linux
- MySQL檢視當前使用的配置檔案my.cnf的方法MySql
- spring配置檔案解釋Spring
- Linux檢視當前目錄下的檔案大小Linux