
Змістовний модуль 5. Командні оболонки лекція 6. Командні оболонки
План
6.1. Огляд командних оболонок.
6.2. Командна оболонка bash.
6.3. Багатозадачність в консолі
6.4. Змінні середовища
6.5. Файловий менеджер Midnight commander
6.1. Огляд командних оболонок
Командна оболонка (shell) – це програма, що дозволяє користувачеві взаємодіяти з системою за допомогою введення і виконання команд. Проте, командна оболонка є звичайною програмою. Довести це можна, встановивши як оболонку за умовчанням у файлі passwd для користувача іншу програму. Але для того, щоб система знала її як оболонку, необхідно додати абсолютне ім'я файлу в /etc/shells.
У складі Linux йде декілька командних оболонок, їх склад може мінятися залежно від дистрибутива, але завжди ви зможете знайти:
Bourne Shell (sh) – найстаріша і найпоширеніша командна оболонка для Unix-систем. Немає жодної системи Unix, де вона б не застосовувалася.
Bourne Again Shell (bash) – розширена Bourne Shell . Має багато переваг, тому стала такою популярною останнім часом. Є оболонкою "за умовчанням" практично для всіх дистрибутивів Linux.
Також популярними оболонками є:
csh – оболонка, система команд якої близька до мови програмування C;
tclsh – оболонка, система команд якої близька до мови програмування Tcl;
zsh – оболонка, що має, мабуть, найширші можливості. Є розширенням sh (bourne shell).
Оскільки в Linux "за умовчанням" використовується bash, то про неї ми і поговоримо.
6.2. Командна оболонка bash
Командна оболонка bash спочатку була вільно-поширюваним аналогом Bourne Shell. Надалі, коли її можливості зросли, тоді її стали вважати самостійним продуктом. Основними можливостями bash можна назвати наступні:
Таблиця 6.1. |
||
№ |
Можливість |
Коментар |
1 |
Редагування рядка |
Можливість відредагувати введену команду замість того аби переписувати її заново
|
2 |
Організація каналів
|
Можливість перенаправлення введення-виведення, організації каналів між виконуваними завданнями
|
3 |
Зручність в роботі
|
Використання псевдонімів команд, історії команд, автодоповнення
|
4 |
Управління завданнями
|
Можливість створення фонових завдань і управління ними
|
5 |
Гнучкість налаштування
|
Використання файлів-сценаріїв для входу кожного користувача окремо, змінні середовища |
Оболонка bash автоматично записує всі команди, введені користувачем, у файл ~/.bash_history. Для управління цим файлом служить команда history. history - це вбудована команда bash. Тобто, виконуваного файлу, відповідного цій команді не існує. Сама командна оболонка виконує всі дії. Введена без параметрів, вона просто виводить список всіх команд, збережених в цьому файлі та ідентична команді cat ~/.bash_history .
Історія команд існує для спрощення набору часто використовуваних команд. Історію команд можна перебирати за списком клавішами <вгору> і <вниз> .
Інший спосіб – набрати в командному рядку ! і початок команди і натискувати <Enter> . Остання команда з історії, перші літери якої збігаються з набраними, буде виконана. Наприклад:
Приклад 1:
[gserg@WebMedia gserg]$ !/usr
/usr/bin/perl ./ptest.pl
OK
[gserg@WebMedia gserg]$ !xfonts
bash: !xfonts: event not found
[gserg@WebMedia gserg]$
Але як прискорити введення, якщо в історії ще немає необхідної нам команди? В цьому випадку нам допоможе клавіша <Tab>. Набравши декілька перших літер команди (або шляху до файлу), натисніть <Tab> і Bash автоматично доповнить вашу команду. У разі, коли є декілька підходящих файлів або жодного не знайдено, система видасть звуковий сигнал. Якщо кнопку <Tab> натиснути повторно, то коли є декілька файлів – система виведе список, а коли не одного – повторить звуковий сигнал