Як змінити оболонку за замовчуванням в Linux за допомогою chsh

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: КорнШелл забезпечує особливо сильну мову сценаріїв.

  Як використовувати команду ls для відображення списку файлів і каталогів у Linux

Перелік встановлених оболонок

Щоб побачити, які оболонки встановлені на вашому комп’ютері, скористайтеся цією командою. Він просто перераховує вміст файлу /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 в сучасних системах.

  Як читати Вікіпедію з робочого столу Linux

Встановлення іншої оболонки

Давайте встановимо оболонку риби та встановимо її за замовчуванням для 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.

Це чудово, щоб випробувати нові оболонки, побачити, на що вони здатні, і чи ви з ними ладнаєте. Ви можете дослідити, перш ніж зробити стрибок, і прийняти його як свій основний снаряд.

  Як грати в Left 4 Dead 2 на Linux

Якщо ви вирішите зробити рибу — або будь-яку іншу оболонку — за замовчуванням, вам потрібно буде використати команду 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

Коли Мері наступний раз увійде в систему, вона побачить нову оболонку, коли відкриє вікно терміналу.

Кожен