Poprzez dostosowanie ustawień powłoki Bash za pomocą narzędzia shopt
, masz możliwość zarządzania ponad 50 różnymi parametrami. W tym artykule przedstawimy, jak personalizować system Linux według własnych preferencji.
Wbudowane narzędzie shopt
Narzędzie shopt
jest dostępne we wszystkich wersjach powłoki Bash, co oznacza, że nie ma potrzeby instalacji dodatkowych komponentów. Liczba opcji w shopt
systematycznie rośnie z biegiem lat, dlatego starsze wersje Bash mogą mieć skróconą listę dostępnych opcji.
Jeśli napotkasz problemy z działaniem na swoim komputerze, warto sprawdzić dokumentację Bash, aby upewnić się, że szukana opcja jest dostępna w Twojej wersji shopt
.
W dalszej części artykułu szczegółowo omówimy wszystkie dostępne opcje oraz sposób ich wykorzystania, a także podamy kilka praktycznych przykładów. Możesz również odwiedzić stronę podręcznika Bash lub Podręcznik referencyjny GNU Bash, aby sprawdzić, które opcje mogą być dla Ciebie przydatne.
Niektóre z opcji shopt
są aktywowane domyślnie i stanowią integralną część standardowego zachowania Bash. Możesz wprowadzać zmiany jako tymczasowe ustawienia w Bash, które powrócą do wartości domyślnych po zamknięciu sesji powłoki.
Jeżeli chcesz, aby modyfikacje były zachowane po każdym uruchomieniu powłoki Bash, musisz wprowadzić trwałe zmiany.
Dostępne opcje shopt
W sumie dostępnych jest 53 opcji w shopt
. Wykonując polecenie shopt
bez żadnych argumentów, zobaczysz listę dostępnych opcji. Możesz także wykorzystać polecenie wc
, aby policzyć linie, słowa i znaki w wyjściu, co pozwoli nam określić liczbę opcji.
Wpisujemy:
shopt | wc
Aby wyświetlić wszystkie opcje w bardziej przejrzystym formacie, możesz skorzystać z polecenia column
, które wyświetli nazwy opcji w kolumnach.
Wpisujemy:
shopt | column
Jak znaleźć informacje o shopt w dokumentacji Linux
Informacje dotyczące shopt
oraz jego opcji znajdują się w sekcji Bash dokumentacji Linux. Cała sekcja Bash liczy sobie ponad 6000 linii. Możesz przeszukać całą sekcję lub skupić się na wyszukiwaniu konkretnego hasła.
Aby otworzyć dokumentację, wpisz:
man bash
W dokumentacji naciśnij /
, aby rozpocząć wyszukiwanie. Wprowadź poniższe polecenie i naciśnij klawisz Enter:
assoc_expand_once
Zobaczysz początek sekcji dotyczącej opcji shopt
w dokumentacji.
Zarządzanie opcjami shopt
Aby aktywować lub dezaktywować opcje shopt
, użyj następujących poleceń:
-s: Aktywuj lub włącz.
-u: Dezaktywuj lub wyłącz.
Warto również zweryfikować, które opcje są aktualnie włączone. Możesz to zrobić, używając opcji -s
i -u
bez podawania nazw opcji. Spowoduje to wyświetlenie listy aktywnych i nieaktywnych opcji.
Wpisz następujące polecenie:
shopt -s
shopt -u | column
Możesz także użyć shopt
bez polecenia -s
lub -u
, aby sprawdzić, które z opcji są aktywne lub nieaktywne.
Na przykład, aby sprawdzić ustawienie opcji histverify
, wpisz:
shopt histverify
Następnie możesz aktywować tę opcję, wpisując:
shopt -s histverify
Aby sprawdzić ponownie, wpisz:
shopt histverify
Opcja histverify
zmienia sposób działania historii poleceń. Domyślnie, jeśli odwołujesz się do polecenia w historii za pomocą jego numeru, na przykład ! 245
, polecenie zostanie natychmiast wykonane.
Aby przeglądać polecenie przed jego wykonaniem i, jeśli zajdzie taka potrzeba, je edytować, włącz opcję shopt histverify
, a następnie wpisz:
!245
Powoduje to, że polecenie jest ładowane w wierszu poleceń, co umożliwia jego edytowanie lub wykonanie po naciśnięciu klawisza Enter.
Opcja autocd
Włączając opcję autocd
, po wpisaniu nazwy katalogu i naciśnięciu klawisza Enter, powłoka zinterpretuje to jako polecenie cd
.
Aby aktywować opcję autocd
, wpisz:
shopt -s autocd
Następnie po prostu wpisz nazwę katalogu:
Documents
Opcja cdspell
Po włączeniu opcji cdspell
, Bash automatycznie poprawi drobne błędy ortograficzne w nazwach katalogów.
Aby ustawić opcję cdspell
, wpisz:
shopt -s cdspell
Następnie spróbuj przejść do katalogu, który powinien mieć wielką literę, wpisując:
cd documents
Aby przetestować nazwę katalogu z dodatkowym „t”, wpisz:
cd ../Picttures
Bash przejdzie do katalogu, pomijając wszystkie błędy ortograficzne.
Opcja xpg_echo
Aktywując opcję xpg_echo
, polecenie echo
zacznie interpretować znaki ucieczki, takie jak \n
dla nowej linii i \t
dla tabulacji.
Najpierw upewnij się, że opcja jest włączona:
shopt -s xpg_echo
Następnie użyj znaku \n
w ciągu, który chcesz przekazać do polecenia echo
:
echo "This is line one\nThis is line two"
Znak nowej linii spowoduje podział wiersza w wyjściu.
To zachowanie jest analogiczne do użycia opcji -e
(pozwala na interpretację ucieczki) w poleceniu echo
, z tą różnicą, że xpg_echo
aktywuje to jako domyślne zachowanie.
Opcja dotglob
Opcja dotglob
wymaga ostrożnego podejścia. Pozwala na włączenie do rozwijania nazw plików i katalogów tych, które zaczynają się od kropki (.), znanych jako pliki lub katalogi ukryte. Opcja ta ignoruje kropkę na początku ich nazwy.
Aby zobaczyć pliki lub katalogi, które kończą się na „maniaku”, wpisz:
ls *geek
Tylko jeden plik zostanie znaleziony i wymieniony. Następnie włącz opcję dotglob
:
shopt -s dotglob
Następnie wydaj to samo polecenie ls
, aby sprawdzić pliki i katalogi kończące się na „geek”:
ls *geek
W tym przypadku znajdziesz dwa pliki, w tym jeden ukryty. Należy zachować ostrożność przy używaniu poleceń rm
i mv
z włączoną opcją dotglob
.
Opcja nocaseglob
Opcja nocaseglob
działa podobnie do dotglob
, ale w tym przypadku różnice w wielkości liter w nazwach plików i katalogów są ignorowane przy rozwijaniu ich nazw.
Wpisz poniższe polecenie, aby znaleźć pliki lub katalogi, które zaczynają się od „jak”:
ls how*
Jeden plik zostanie znaleziony i wymieniony. Aby aktywować opcję nocaseglob
, wpisz:
shopt -s nocaseglob
Następnie powtórz polecenie ls
:
ls how*
Dwa pliki zostaną znalezione, w tym jeden z dużymi literami.
Trwałe zmiany ustawień
Wprowadzone przez Ciebie zmiany obowiązują jedynie w bieżącej sesji powłoki Bash. Aby uczynić je trwałymi na różnych sesjach, musisz dodać je do pliku „.bashrc”.
W katalogu domowym otwórz plik „.bashrc” w preferowanym edytorze tekstu, na przykład Gedit, używając następującego polecenia:
gedit .bashrc
W edytorze Gedit otworzy się plik „.bashrc”, w którym możesz zauważyć już istniejące wpisy dotyczące shopt
.
Możesz dodać swoje własne opcje shopt
tutaj. Po zakończeniu edytowania zapisz zmiany i zamknij edytor. Od teraz, za każdym razem gdy otworzysz nową sesję powłoki Bash, Twoje opcje będą automatycznie ustawione.
Przegląd dostępnych opcji
Choć polecenie shopt
oferuje wiele opcji, nie musisz zajmować się nimi wszystkimi naraz. Prawdopodobnie znajdziesz kilka, które nie będą Cię interesować.
Niektóre opcje są dostosowane do pracy z określonymi, starszymi wersjami Bash, co może być użyteczne, ale jest to dość wąski przypadek.
Możesz przeszukać stronę dokumentacji Bash lub Podręcznik referencyjny GNU Bash. Zdecyduj, które opcje są dla Ciebie istotne, a następnie eksperymentuj z nimi. Zachowaj ostrożność przy opcjach wpływających na rozwijanie nazw plików i katalogów i testuj je w mniej inwazyjnych poleceniach, takich jak ls
, aż poczujesz się z nimi komfortowo.