Bash — не єдина оболонка Linux. Легко спробувати інші оболонки, наприклад Zsh, який дуже популярний. Коли ви знайдете потрібну, скористайтеся командою chsh, щоб зробити її оболонкою за замовчуванням. Ми покажемо вам, як.
Чому оболонка важлива
Оболонка знаходиться між вами та операційною системою. Він забезпечує середовище всередині вікна терміналу, яке дозволяє вводити команди та запускати програми. Оболонка перевіряє ваші введені дані і визначає, що ви хочете. Якщо він може виконувати ваші ставки самостійно, він це зробить. Якщо йому потрібна стороння допомога, він шукає шлях і знаходить програми, які можуть робити все, що вам потрібно.
У Linux є багато різних оболонок. Усі вони дозволяють виконувати одні й ті ж основні завдання: досліджувати файлову систему, працювати з файлами, запускати програми та запускати сценарії. Однак кожен з них виконує ці завдання по-своєму, має свої особливості та особливості.
Оболонки, як правило, розробляються людьми, які хочуть, щоб речі поводилися певним чином. Якщо ваше мислення збігається з думками цього дизайнера, ця оболонка цілком може вам підійти. Крім того, спробувати нову оболонку в Linux легко.
У більшості дистрибутивів Linux, включаючи Ubuntu, оболонка за замовчуванням – bash. Він чудово виконує свою роботу і дуже здібний. Однак інша оболонка може заощадити час, що матиме великий вплив на ваш робочий процес. Ти ніколи не дізнаєшся, якщо не подивишся!
Відро черепашок
Раніше ми розглядали різні оболонки Linux, але ось короткий введення в найпоширеніші:
bash: The Борн знову оболонка за замовчуванням у багатьох дистрибутивах.
rbash: Це Обмежено Оболонка bash забезпечує мінімальну функціональність для людини або сценарію, що працює в ній.
попіл: The Оболонка Альмквіста є полегшеною версією bash.
dash: оболонка Debian Alquist — це скрипт оболонки за замовчуванням в Ubuntu. Хоча bash є логіном за замовчуванням та інтерактивною оболонкою, dash використовується для запуску системних процесів, оскільки він набагато легший за bash.
zsh: Оболонка Z це сучасний погляд на сімейство оболонок bash. Він пропонує акуратні покращення, як-от перевірку орфографії команд і запропоновані виправлення.
риба: Це дружня інтерактивна оболонка був написаний з нуля і не є похідним від жодного з інших сімейств оболонок. Він призначений для зручного використання. Серед багатьох інших переваг, fish пропонує пропозиції команд на основі вашої історії та вмісту поточної папки, подібно до прогнозований текст.
ksh: КорнШелл забезпечує особливо сильну мову сценаріїв.
Перелік встановлених оболонок
Щоб побачити, які оболонки встановлені на вашому комп’ютері, скористайтеся цією командою. Він просто перераховує вміст файлу /etc/shells:
cat /etc/shells
Ми згадали bash, dash і rbash, але що таке sh?
sh є Томпсон оболонка, написана ще в 1971 році Кен Томпсон з Bell Labs слава. Він більше не обслуговується і вже давно витіснений сучасними оболонками. Він включений виключно для підтримки сумісності зі старими сценаріями, які все ще мають наступне в якості першого рядка:
#!/bin/sh
Це вказує системі використовувати оболонку sh для виконання сценарію. У вас дійсно є ця старовинна оболонка на вашій машині, і чи використовується вона для запуску ваших сценаріїв? Команда which скаже нам, яка програма насправді запускається, коли ви вводите команду.
Давайте подивимося, що запускається, коли ви вводите sh:
which sh
Це, здається, знаходить двійковий файл. якщо ми копаємо трохи глибше, ми побачимо, що це символічне посилання, яке насправді вказує на тире, легку оболонку, яка використовується для виконання сценаріїв:
ls -l /bin/sh
Це акуратний, легкий спосіб забезпечити сітку безпеки для сценаріїв, які очікують знайти sh в сучасних системах.
Встановлення іншої оболонки
Давайте встановимо оболонку риби та встановимо її за замовчуванням для Dave. В Ubuntu ми вводимо таку команду:
sudo apt-get install fish
На Manjaro використовуйте pacman:
sudo pacman -Sy fish
На Fedora введіть наступне:
sudo dnf install fish
Після завершення встановлення ви можете ще раз перевірити встановлені оболонки:
cat /etc/shells
Наша нова оболонка виглядає як /usr/bin/fish. Зверніть увагу на цей шлях — незабаром він вам знадобиться.
Змінна середовища $SHELL
Змінна середовища $SHELL містить назву вашої поточної оболонки. Ми можемо перевірити, який із них налаштовано за допомогою echo:
echo $SHELL
Приступаємо до рибної оболонки:
fish
Тепер давайте ще раз перевіримо, що говорить змінна середовища $SHELL:
echo $SHELL
Коли ми вперше використовуємо echo $SHELL, ми знаходимося в оболонці bash. Змінна середовища містить шлях до виконуваного файлу bash /bin/bash.
Коли ми запускаємо оболонку риби, ми отримуємо дружнє вітальне повідомлення та змінюється командний рядок. Що може бути дивним, так це те, що середовище $SHELL все ще містить шлях до виконуваного файлу bash, /bin/bash. Це нормально — це нормально.
Коли ви запускаєте нову оболонку (або будь-яку іншу програму), вона успадковує середовище батьківської оболонки. Отже, оболонка риби успадковує глобальні та експортовані змінні середовища від оболонки bash. Оскільки значення змінної середовища $SHELL не було змінено, воно має те саме значення в оболонці риби, що й у оболонці bash.
Ми запускаємо рибу, як і будь-яку іншу програму. Ми також можемо використовувати exit для виходу з оболонки риби. Вона закривається, як і будь-яка інша програма, і ми повертаємося до оболонки bash.
Це чудово, щоб випробувати нові оболонки, побачити, на що вони здатні, і чи ви з ними ладнаєте. Ви можете дослідити, перш ніж зробити стрибок, і прийняти його як свій основний снаряд.
Якщо ви вирішите зробити рибу — або будь-яку іншу оболонку — за замовчуванням, вам потрібно буде використати команду chsh.
Команда chsh
Команда chsh дозволяє змінити оболонку за замовчуванням. Трюк полягає в усвідомленні того, що він дозволяє змінити як стандартний логін, так і інтерактивні оболонки за замовчуванням. Можливо, ви захочете змінити те чи інше, або обидва.
Щоразу, коли ви входите в систему, щоб отримати командний рядок, ви використовуєте оболонку, налаштовану як оболонку для входу. Коли ви вже ввійшли в систему та відкрили вікно терміналу, ви використовуєте оболонку, налаштовану як вашу інтерактивну оболонку. Це можуть бути як однакові, так і різні оболонки.
Щоб налаштувати оболонку входу, використовуйте chsh без параметрів:
chsh
Вам буде запропоновано ввести пароль. Потім ви повинні ввести шлях до нової оболонки та натиснути Enter.
Якщо ми встановимо віддалене підключення до цього тестового комп’ютера з іншого, ми опинимось у рибній оболонці після входу в систему.
Щоб змінити інтерактивну оболонку, використовуйте chsh з параметром -s (оболонка). Передайте шлях до нової оболонки в командному рядку:
chsh -s /usr/bin/fish
Вам буде запропоновано ввести пароль і повернеться до командного рядка поточної оболонки. Щоб зміни набули чинності, потрібно вийти та знову ввійти. Коли ви це зробите, ви побачите привітання та командний рядок оболонки риби.
Змінна середовища $SHELL тепер містить шлях до вашої нової оболонки за замовчуванням:
echo $SHELL
Зміна оболонки іншого облікового запису користувача
Якщо у вас є права root і ви можете використовувати sudo, ви можете змінити оболонки інших облікових записів користувачів. Команда така ж, як і раніше, з додаванням імені користувача цієї особи до командного рядка:
sudo chsh -s /usr/bin/fish mary
Коли Мері наступний раз увійде в систему, вона побачить нову оболонку, коли відкриє вікно терміналу.