conf 파일을 조작하기 위한 BASH 도구? [폐쇄]

conf 파일을 조작하기 위한 BASH 도구? [폐쇄]

bash 스크립트에서 쉽게 사용할 수 있는 도구가 있는지 궁금합니다.조종하다(추가, 삭제, 업데이트) conf 파일의 지시어?

예를 들어, failure2ban.conf에는 각각 자체 섹션 아래에 그룹화된 지시문이 있습니다.

[proftpd]
enabled  = true
port     = ftp,ftp-data,ftps,ftps-data

[postfix]
enabled  = true
port     = smtp,465,submission

그리고 pagespeed.conf에는 지시문이 혼합되어 있으며 일부는 자체 섹션에 있고 일부는 전체에 분산되어 있습니다.

<Location /pagespeed_admin>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler pagespeed_admin
    </Location>
    <Location /pagespeed_global_admin>
        Order allow,deny
        Allow from localhost
        Allow from 127.0.0.1
        SetHandler pagespeed_global_admin
    </Location>

    ModPagespeedMessageBufferSize 100000
    ModPagespeedStatisticsLogging on
    ModPagespeedEnableCachePurge on
    ModPagespeedPurgeMethod PURGE
    ModPagespeedFileCacheSizeKb 2048000
    ModPagespeedFileCacheCleanIntervalMs 3600000
    ModPagespeedFileCacheInodeLimit 500000

당신은 이해했습니다.

다음 작업을 수행할 수 있는 도구가 있습니까? 예를 들어, failure2ban.conf의 "proftpd" 섹션에서 "enabled" 지시어를 조작할 수 있습니까?

아니면 pagespeed.conf의 "Location /pagespeed_admin" 섹션에서 "Allow from" 지시어를 조작하시겠습니까?

아니면 pagespeed.conf의 "특정 없음" 섹션에서 "ModPagespeedMessageBufferSize" 지시어를 조작하시겠습니까?

감사해요

답변1

아니요, 이유는 간단합니다. 구성 파일이 너무 많은 형식을 사용할 수 있기 때문입니다. 내 생각에 당신이 할 수 있는 가장 좋은 방법은 텍스트 처리 도구를 사용하여 자신만의 것을 구현하는 것입니다.

특정 형식(예: JSON)에 대한 라이브러리가 있을 수 있지만 도구 작성자는 원하는 형식을 자유롭게 사용할 수 있으므로 범용 도구는 불가능합니다. 이를 설명하기 위해 다음은 일부 conf 파일의 몇 줄입니다.

  1. 이맥스

    ;; Are we running XEmacs or Emacs?
    (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
    
    ;; disable menu bar when running in terminal
    (when (not (display-graphic-p))
      (menu-bar-mode -1))
    
    ;;My libraries, ebib, wordcount etc
    (add-to-list 'load-path "~/.emacs-lisp/")
    
  2.   highlight Normal guibg=grey90
      highlight Cursor guibg=Green guifg=NONE
      highlight lCursor guibg=Cyan guifg=NONE
      highlight NonText guibg=grey80
      highlight Constant gui=NONE guibg=grey95
      highlight Special gui=NONE guibg=grey95
    
  3. 착색

    #---------------------------------------------
    # BACKGROUND AND BORDER
    #---------------------------------------------
    # general panel settings
    rounded = 7
    border_width = 2
    #background_color = #B4B2B2 10
    background_color = #000000 30 
    border_color = #8F0004 0 
    
  4. 가상 LC

    # Trigger button (string)
    #gestures-button=left
    
    [motion] # motion control interface
    
    [oldrc] # Remote control interface
    
    # Show stream position (boolean)
    rc-show-pos=0
    
  5. SSHD

    AuthorizedKeysFile  .ssh/authorized_keys
    ChallengeResponseAuthentication no
    UsePAM yes
    

기타 등등

답변2

실제로는 아니지만 특정 구성 레이아웃에 맞게 무언가를 구축할 수 있습니다. 그것은 마치

sed -E "/\[proftpd]/,/\[/{s/(enabled\s*=\s*).*/\1false/}" input.file

예를 들어, failure2ban.conf를 변경하는 기능으로 설계할 수 있습니다.

그것이 흥미롭다면 나는 그것에 대해 확장할 수 있습니다.

관련 정보