Jak dostosować powłokę Bash za pomocą shopt

Jeśli dostroisz zachowanie powłoki Bash za pomocą shopt, możesz kontrolować ponad 50 ustawień. Pokażemy Ci, jak dostosować system Linux tak, jak lubisz.

Wbudowany sklep

Wbudowany sklep jest częścią wszystkich wersji Bash shell, więc nie ma potrzeby niczego instalować. Liczba opcji dostępnych w Shopt stale rośnie na przestrzeni lat. Tak więc, im starsza jest wersja Bash, tym krótsza będzie lista opcji shopt.

Jeśli coś nie działa na twoim komputerze, sprawdź wpis Bash na stronie podręcznika i sprawdź, czy ta opcja jest dostępna w twojej wersji shopt.

Poniżej opisujemy wszystkie opcje sklepu. Opisujemy również, jak go używać i udostępniamy kilka przykładów. Stamtąd możesz sprawdzić stronę podręcznika Bash lub Podręcznik referencyjny GNU Bash aby sprawdzić, czy którakolwiek z tych opcji wydaje się przydatna lub atrakcyjna.

Niektóre opcje shopt są domyślnie włączone i stanowią część domyślnego zachowania Bash. Możesz włączyć opcję shopt jako krótkoterminową zmianę na Bash. Następnie powróci do domyślnego zachowania po zamknięciu powłoki.

Jeśli jednak chcesz, aby zmodyfikowane zachowanie było dostępne po każdym uruchomieniu powłoki Bash, możesz wprowadzić zmiany na stałe.

Opcje shopt

Dostępnych jest 53 opcji sklepowych. Jeśli używasz polecenia shopt bez żadnych opcji, wyświetla je. Jeśli wyślemy wyjście za pomocą polecenia wc, tak będzie policz wiersze, słowa i znaki dla nas. Ponieważ każda opcja shopt znajduje się w osobnym wierszu, liczba wierszy to liczba opcji.

Wpisujemy:

shopt | wc

shopt |  wc w oknie terminala.

Aby zobaczyć wszystkie opcje, możemy potokować dane wyjściowe za pomocą polecenia kolumny aby wyświetlić nazwy opcji w kolumnachlub możemy to zrobić w mniej.

Wpisujemy:

shopt | column

shopt |  kolumna w oknie terminala.

Znajdowanie shopt w podręczniku Linux

Sekcja omawiająca shopt i jego opcje znajduje się w sekcji Bash podręcznika Linux. Sekcja Bash ma ponad 6000 linii. Możesz znaleźć opis shopt z dużą ilością przewijania lub możesz po prostu wyszukać go w instrukcji.

Aby to zrobić, otwórz instrukcję w sekcji Bash:

man bash

człowiek bash w oknie terminala.

W instrukcji naciśnij /, aby rozpocząć wyszukiwanie. Wpisz następujące polecenie, a następnie naciśnij klawisz Enter:

assoc_expand_once

Sekcja Bash instrukcji, z wyszukiwanym hasłem wpisanym w wierszu poleceń w oknie terminala.

Początek sekcji shoptoption pojawi się w oknie człowieka.

Podręcznik pokazujący sekcję opcji shopt strony podręcznika Bash w oknie terminala.

Opcje uzbrojenia i rozbrojenia

Aby ustawić i anulować opcje shopt, użyj następujących poleceń:

-s: Ustaw lub włącz.
-u: Wyłącz lub wyłącz.

Ponieważ niektóre opcje są domyślnie włączone, warto również sprawdzić, które opcje są włączone. Możesz to zrobić za pomocą opcji -s i -u bez używania nazwy opcji. Powoduje to, że shopt wyświetla listę opcji, które są włączone i wyłączone.

Wpisz następujące informacje:

shopt -s

shopt -s w oknie terminala.

shopt -u | column

shopt -u |  kolumna w oknie terminala.

Możesz użyć opcji shopt bez poleceń -s lub -u, aby zobaczyć stan włączenia lub wyłączenia każdej opcji.

Na przykład możemy wpisać następujące polecenie, aby sprawdzić ustawienie opcji histverify:

shopt histverify

Możemy wpisać:

shopt -s histverify

Następnie możemy wpisać następujące polecenie, aby to sprawdzić ponownie:

shopt histverify

shopt histverify w oknie terminala.

Opcja histverify zmienia sposób działania jednego aspektu polecenia historii. Zwykle, jeśli poprosisz historię o powtórzenie polecenia, odwołując się do niego po numerze, na przykład! 245, polecenie jest pobierane z historii poleceń i natychmiast wykonywane.

Jeśli wolisz przejrzeć polecenie, aby upewnić się, że jest to oczekiwane i edytować je, jeśli to konieczne, wpisz następujące polecenie, aby włączyć opcję shopt histverify:

!245

! 245 w oknie terminala.

Polecenie jest pobierane i prezentowane w wierszu poleceń. Możesz go usunąć, edytować lub wykonać, naciskając klawisz Enter.

Opcja autocd

Przy włączonej opcji autocd, jeśli wpiszesz nazwę katalogu w wierszu poleceń i naciśniesz Enter, zostanie to potraktowane tak, jakbyś wpisał przed nim cd.

Aby włączyć opcję autocd, wpisujemy:

shopt -s autocd

Następnie wpisujemy nazwę katalogu:

Documents

shopt -s autocd w oknie terminala.

Opcja cdspell

Gdy opcja cdspell jest włączona, Bash automatycznie poprawi proste błędy ortograficzne i literówki w nazwach katalogów.

Wpisujemy następujące polecenie, aby ustawić opcję cdspell:

shopt -s cdspell

Aby spróbować przejść do katalogu zapisanego małymi literami, który powinien mieć wielką literę początkową, wpisujemy:

cd documents

Następnie możemy wpisać następujące polecenie, aby wypróbować nazwę katalogu z dodatkowym „t” w nazwie:

cd ../Picttures

shopt -s cdspell w oknie terminala.

Bash zmienia się w każdym katalogu, niezależnie od błędów ortograficznych.

Opcja xpg_echo

Gdy opcja xpg_echo jest włączona, polecenie echo będzie przestrzegać znaków ucieczki, takich jak n dla nowej linii it dla tabulacji poziomej.

Najpierw wpisujemy co następuje, aby upewnić się, że opcja jest ustawiona:

shopt -s xpg_echo

Następnie dołączamy n do ciągu, który przekażemy do echa:

echo "This is line onenThis is line two"

shopt -s xpg_echo w oknie terminala.

Znak nowej linii ze zmianą znaczenia wymusza podział wiersza na wyjściu.

Daje to takie samo zachowanie jak -e (umożliwiają interpretację ucieczki) echo, ale xpg_echo pozwala na to, aby była to akcja domyślna.

Opcja dotglob

Do opcji dotglob należy podchodzić z pewną ostrożnością. Umożliwia dołączanie plików i katalogów zaczynających się od kropki (.) Do rozwijania nazw lub „globowania”. Są to nazywane „plikami z kropkami” lub „katalogami z kropkami” i zazwyczaj są ukryte. Opcja dotglob ignoruje kropkę na początku ich nazwy.

Najpierw wyszukamy pliki lub katalogi, które kończą się na „maniakiem”, wpisując:

ls *geek

Jeden plik został znaleziony i wymieniony. Następnie włączymy opcję dotglob, wpisując:

shopt -s dotglob

Wydajemy to samo polecenie ls, aby wyszukać pliki i katalogi kończące się na „geek”:

ls *geek

ls * geek w oknie terminala.

Tym razem dwa pliki zostaną znalezione i wyświetlone, z których jeden jest plikiem kropkowym. Musisz uważać na rm i mv, gdy masz włączoną opcję dotglob.

Opcja nocaseglob

Opcja nocaseglob jest podobna do opcji dotglob, z wyjątkiem tego, że nocaseglob powoduje, że różnice w dużych i małych literach w nazwach plików i katalogach są ignorowane podczas rozwijania nazw.

Wpisujemy następujące polecenie, aby wyszukać pliki lub katalogi zaczynające się od „jak”:

ls how*

Jeden plik został znaleziony i wymieniony. Aby włączyć opcję nocaseglob, wpisujemy:

shopt -s nocaseglob

Następnie powtarzamy polecenie ls:

ls how*

Jak * w oknie terminala.

Znaleziono dwa pliki, z których jeden zawiera duże litery.

Trwałe zmiany

Zmiany, które wprowadziliśmy, będą obowiązywać tylko do zamknięcia bieżącej powłoki Bash. Aby uczynić je stałymi dla różnych sesji powłoki, musimy dodać je do naszego pliku „.bashrc”.

W swoim katalogu domowym wpisz następujące polecenie, aby otworzyć plik „.bashrc” w graficznym edytorze tekstu Gedit (lub zmień go odpowiednio, aby użyć preferowanego edytora):

gedit .bashrc

Edytor gedit otworzy się z załadowanym plikiem „.bashrc”. Zobaczysz, że niektóre wpisy Shopt są już w nim.

Edytor gedit z załadowanym plikiem .bashrc i podświetlonymi opcjami shopt.

Możesz tutaj również dodać własne opcje shopt. Po dodaniu zapisz zmiany i zamknij edytor. Teraz za każdym razem, gdy otworzysz nową powłokę Bash, twoje opcje zostaną ustawione dla Ciebie.

Opcje jak okiem sięgnąć

To prawda, że ​​polecenie shopt ma wiele opcji, ale nie musisz zajmować się nimi wszystkimi naraz, jeśli w ogóle. Ponieważ jest ich tak wiele, prawdopodobnie znajdą się takie, które Cię nie interesują.

Na przykład jest kilka, które zmuszają Bash do działania w sposób zgodny z określonymi, starszymi wersjami. To może być przydatne dla kogoś, ale jest to dość niszowy przypadek.

Możesz przejrzeć Bash strona podręcznika lub Podręcznik referencyjny GNU Bash. Zdecyduj, które opcje będą dla Ciebie ważne, a następnie eksperymentuj z nimi. Uważaj tylko na opcje, które wpływają na sposób rozwijania nazw plików i katalogów. Wypróbuj je łagodnym poleceniem, takim jak ls, aż poczujesz się z nimi komfortowo.