shop으로 Bash 셸을 사용자 정의하는 방법

게시 됨: 2022-01-29
Linux 노트북의 터미널 프롬프트.
Fatmawati Achmad Zaenuri/Shutterstock

shopt 를 사용하여 Bash 셸의 동작을 미세 조정하면 50개 이상의 설정을 제어할 수 있습니다. Linux 시스템을 원하는 대로 조정하는 방법을 알려 드리겠습니다.

샵 빌트인

shopt 내장은 모든 Bash 셸 버전의 일부이므로 아무것도 설치할 필요가 없습니다. shopt 에서 사용할 수 있는 옵션의 수는 수년에 걸쳐 꾸준히 증가했습니다. 따라서 Bash 버전이 오래될수록 shopt 옵션 목록이 더 짧아집니다.

컴퓨터에서 작동하지 않는 것 같으면 Bash에 대한 man 페이지 항목을 확인하고 shopt 버전에서 옵션을 사용할 수 있는지 확인하십시오.

아래에서 모든 shopt 옵션을 다룹니다. 또한 사용 방법을 설명하고 몇 가지 예를 공유합니다. 거기에서 Bash 매뉴얼 페이지 또는 GNU Bash 참조 매뉴얼을 확인하여 이러한 옵션이 유용하거나 매력적으로 들리는지 확인할 수 있습니다.

일부 shopt 옵션은 기본적으로 활성화되어 있으며 Bash의 기본 동작의 일부를 형성합니다. Bash에 대한 단기 변경으로 shopt 옵션을 활성화할 수 있습니다. 그런 다음 셸을 닫으면 기본 동작으로 되돌아갑니다.

광고

그러나 Bash 셸을 시작할 때마다 수정된 동작을 사용할 수 있도록 하려면 변경 사항을 영구적으로 적용할 수 있습니다.

쇼핑 옵션

53개의 shopt 옵션이 있습니다. 옵션 없이 shopt 명령을 사용하면 이러한 옵션이 나열됩니다. wc 명령을 통해 출력을 파이프하면 줄, 단어 및 문자가 계산됩니다. 각 shopt 옵션은 자체 라인에 있기 때문에 라인의 수는 옵션의 수입니다.

다음을 입력합니다.

 쇼핑 | 화장실 

모든 옵션을 보려면 column 명령을 통해 출력을 파이프하여 옵션 이름을 열에 표시하거나 less 로 파이프할 수 있습니다.

다음을 입력합니다.

 쇼핑 | 열 

Linux 매뉴얼에서 상점 찾기

shopt 와 그 옵션에 대해 논의하는 섹션은 Linux 매뉴얼의 Bash 섹션에 있습니다. Bash 섹션은 6,000줄 이상입니다. 스크롤을 많이 해서 shopt 에 대한 설명을 찾거나 매뉴얼 내에서 그냥 검색해도 됩니다.

그렇게 하려면 Bash 섹션에서 설명서를 엽니다.

 맨 배쉬 

광고

설명서에서 / 를 눌러 검색을 시작합니다. 다음을 입력하고 Enter 키를 누릅니다.

 assoc_expand_once 

man 창에 shopt 옵션 섹션의 시작이 나타납니다.

관련: Linux의 man 명령을 사용하는 방법: 숨겨진 비밀 및 기본 사항

옵션 설정 및 해제

shopt 옵션을 설정 및 해제하려면 다음 명령을 사용하십시오.

  • -s : 설정하거나 활성화합니다.
  • -u : 설정을 해제하거나 비활성화합니다.

일부 옵션은 기본적으로 활성화되어 있으므로 어떤 옵션이 켜져 있는지 확인하는 것도 편리합니다. 옵션 이름을 사용하지 않고 -s-u 옵션으로 그렇게 할 수 있습니다. 이로 인해 shopt 은 켜짐 및 꺼짐 옵션을 나열합니다.

다음을 입력합니다.

 쇼핑 - s 

 샵유 | 열 

-s 또는 -u 명령 없이 shopt 옵션을 사용하여 각 옵션의 켜짐 또는 꺼짐 상태를 볼 수 있습니다.

예를 들어 다음을 입력하여 histverify 옵션의 설정을 확인할 수 있습니다.

 쇼핑 히스트 확인

다음을 입력하여 on으로 설정할 수 있습니다.

 shopt -s histverify
광고

그런 다음 다음을 입력하여 다시 확인할 수 있습니다.

 쇼핑 히스트 확인 

histverify 옵션은 history 명령의 한 측면이 작동하는 방식을 변경합니다. 일반적으로 !245 와 같이 숫자로 참조하여 명령을 반복하도록 history 에 요청하면 명령 히스토리에서 명령을 검색하여 즉시 실행합니다.

명령을 검토하여 예상한 명령인지 확인하고 편집하려면 필요한 경우 다음을 입력하여 shopt histverify 옵션을 켜기로 설정합니다.

 !245 

명령이 검색되어 명령줄에 표시됩니다. Enter 키를 눌러 삭제, 편집 또는 실행할 수 있습니다.

관련: Linux에서 history 명령을 사용하는 방법

autocd 옵션

autocd 옵션이 켜짐으로 설정된 상태에서 명령줄에 디렉터리 이름을 입력하고 Enter 키를 누르면 디렉터리 앞에 cd 를 입력한 것처럼 처리됩니다.

autocd 옵션을 켜기 위해 다음을 입력합니다.

 shopt -s autocd

그런 다음 디렉토리 이름을 입력합니다.

 서류 

cdspell 옵션

cdspell 옵션이 켜져 있으면 Bash는 디렉터리 이름의 간단한 철자 오류와 오타를 자동으로 수정합니다.

다음을 입력하여 cdspell 옵션을 설정합니다.

 shopt -s cdspell
광고

이니셜 대문자가 있어야 하는 소문자 디렉토리로 변경하려면 다음을 입력합니다.

 CD 문서

그런 다음 이름에 추가 "t"가 포함된 디렉토리 이름을 시도하기 위해 다음을 입력할 수 있습니다.

 cd ../사진 

Bash는 철자 오류에 관계없이 각 디렉토리로 변경됩니다.

xpg_echo 옵션

xpg_echo 옵션이 on으로 설정되면 echo 명령은 새 줄의 경우 \n , 가로 탭의 경우 \t 와 같이 이스케이프된 문자를 따릅니다.

먼저 다음을 입력하여 옵션이 설정되었는지 확인합니다.

 shopt -s xpg_echo
광고

그런 다음 echo 에 전달할 문자열에 \n 을 포함합니다.

 echo "1번째 줄입니다.\n2번째 줄입니다." 

이스케이프된 개행 문자는 출력에서 ​​강제로 줄 바꿈됩니다.

이것은 -e (이스케이프 해석 사용) echo 옵션과 동일한 동작을 생성하지만 xpg_echo 는 기본 동작이 되도록 허용합니다.

관련: Linux에서 Echo 명령을 사용하는 방법

dotglob 옵션

dotglob 옵션은 약간의 주의를 기울여야 합니다. 마침표( . )로 시작하는 파일 및 디렉토리를 이름 확장 또는 "글로빙"에 포함할 수 있습니다. 이것을 "도트 파일" 또는 "도트 디렉토리"라고 하며 일반적으로 숨겨져 있습니다. dotglob 옵션은 이름 시작 부분에 있는 점을 무시합니다.

먼저 다음을 입력하여 "geek"으로 끝나는 파일이나 디렉토리를 검색합니다.

 ls * 괴짜

하나의 파일이 발견되어 나열됩니다. 그런 다음 다음을 입력하여 dotglob 옵션을 켭니다.

 Shopt - 닷글로브
광고

"geek"으로 끝나는 파일과 디렉토리를 찾기 위해 동일한 ls 명령을 실행합니다.

 ls * 괴짜 

이번에는 두 개의 파일이 검색되어 나열되며 그 중 하나는 점 파일입니다. dotglob 옵션을 on으로 설정한 경우 rmmv 에 주의해야 합니다.

nocaseglob 옵션

nocaseglob 옵션은 dotglob 옵션과 유사하지만 nocaseglob 을 사용하면 이름 확장에서 파일 이름 및 디렉토리의 대소문자 차이가 무시됩니다.

"how"로 시작하는 파일이나 디렉토리를 찾기 위해 다음을 입력합니다.

 어떻게*

하나의 파일이 발견되어 나열됩니다. nocaseglob 옵션을 켜기 위해 다음을 입력합니다.

 shopt -s nocaseglob

그런 다음 ls 명령을 반복합니다.

 어떻게* 

두 개의 파일이 발견되었으며 그 중 하나에는 대문자가 포함되어 있습니다.

영구적으로 변경하기

변경 사항은 현재 Bash 셸을 닫을 때까지만 지속됩니다. 다른 쉘 세션에서 영구적으로 만들려면 ".bashrc" 파일에 추가해야 합니다.

광고

홈 디렉토리에서 다음 명령을 입력하여 그래픽 Gedit 텍스트 편집기에서 ".bashrc" 파일을 엽니다(또는 원하는 편집기를 사용하도록 적절하게 변경).

 gedit .bashrc

".bashrc" 파일이 로드된 상태로 gedit 편집기가 열립니다. shopt 항목이 이미 있는 것을 볼 수 있습니다.

.bashrc가 로드되고 shopt 옵션이 강조 표시된 gedit 편집기.

여기에 자신만의 shopt 옵션을 추가할 수도 있습니다. 추가했으면 변경 사항을 저장하고 편집기를 닫습니다. 이제 새 Bash 셸을 열 때마다 옵션이 설정됩니다.

눈으로 볼 수 있는 옵션

shopt 명령에 많은 옵션이 있는 것은 사실이지만, 가능하다면 한 번에 모든 옵션을 다룰 필요는 없습니다. 너무 많기 때문에 관심이 없을 수도 있습니다.

예를 들어 Bash가 특정 이전 버전과 호환되는 방식으로 작동하도록 하는 무리가 있습니다. 누군가에게는 유용할 수 있지만 상당히 틈새 시장입니다.

광고

Bash 매뉴얼 페이지 또는 GNU Bash 참조 매뉴얼을 검토할 수 있습니다. 어떤 옵션이 당신에게 도움이 될 것인지 결정하고 실험해 보십시오. 파일 및 디렉토리 이름이 확장되는 방식에 영향을 주는 옵션에 주의하십시오. 익숙해질 때까지 ls 와 같은 무해한 명령으로 시도해 보십시오.