Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Командна оболонка bash

Огляд командних оболонок

План

6.1. Огляд командних оболонок.

6.2. Командна оболонка bash.

6.3. Багатозадачність в консолі

6.4. Змінні середовища

6.5. Файловий менеджер Midnight commander

 

Командна оболонка (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, то про неї ми і поговоримо.

Командна оболонка bash спочатку була вільно-поширюваним аналогом Bourne Shell. Надалі, коли її можливості зросли, тоді її стали вважати самостійним продуктом. Основними можливостями bash можна назвати наступні:

Таблиця 6.1.
Можливість Коментар
  Редагування рядка Можливість відредагувати введену команду замість того аби переписувати її заново
  Організація каналів Можливість перенаправлення введення-виведення, організації каналів між виконуваними завданнями
  Зручність в роботі Використання псевдонімів команд, історії команд, автодоповнення
  Управління завданнями Можливість створення фонових завдань і управління ними
  Гнучкість налаштування Використання файлів-сценаріїв для входу кожного користувача окремо, змінні середовища

 

Оболонка 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> натиснути повторно, то коли є декілька файлів – система виведе список, а коли не одного – повторить звуковий сигнал

6.3. Багатозадачність в консолі

ОС Linux – багатозадачне середовище. Проте, до цих пір Ви ще так і не змогли скористатися його багатозадачністю. На перший погляд здається, що консоль не дозволяє використовувати можливості багатозадачності системи, і лише в графічному середовищі можна запустити одночасно дві або більше програми. Але це не так! Консоль теж багатозадачна.

По-перше, ви можете відкрити декілька консолей, відкривши в кожній з них по програмі. Перемикання між консолями виконується за допомогою клавіш Ctrl+ <Alt+Fx>, де x – номер консолі.

І навіть в одній консолі за допомогою команд управління завданнями Ви можете повною мірою використовувати всі переваги багатозадачної системи.

 

<Ctrl+Z> комбінація клавіш, що посилає процесу неперехоплюваний сигнал sigstop. Дозволяє зупинити виконання процесу для передачі управління командному рядку.

команда & – символ & після команди дозволяє запустити її у фоновому режимі.

jobs – виводить список поточних завдань командного інтерпретатора.

bg <#j> – переводить завдання #j у фоновий режим. Перед цим завдання має бути зупинене комбінацією клавіш <Ctrl+z>. Якщо на даний момент в інтерпретатора є лише одне завдання, то номер можна не вказувати.

fg <#j> – переводить завдання #j в режим виконання на передньому плані. Завдання має бути зупинене комбінацією клавіш <Ctrl+Z> або знаходитися у фоновому режимі. Якщо на даний момент в інтерпретатора є лише одне завдання, то номер можна не вказувати.

 

Приклад 2:

[gserg@WebMedia gserg]$ man bash

^Z

[1]+ Stopped man bash

[gserg@WebMedia gserg]$ vim

^Z

vim

[2]+ Stopped vim

[gserg@WebMedia gserg]$ bg 1

[1]+ man bash &

[gserg@WebMedia gserg]$ jobs

[1]+ Stopped man bash

[2]+ Stopped vim

[gserg@WebMedia gserg]$ fg 2

[2]+ vim

[gserg@WebMedia gserg]$ fg

[1]+ man bash

[gserg@WebMedia gserg]$

 

6.4. Змінні середовища

Змінні середовища – системна інформація, яка вказує Ваші налаштування, такі як текстовий редактор за умовчанням, шляхи пошуку виконуваних файлів і тому подібне, а також ідентифікаційні дані користувача, системи і командної оболонки, такі як ім'я користувача, версія Linux і інше, використовувана командним інтерпретатором і іншими програмами.

Часто використовувані користувачем змінні це:

PATH – змінна містить шляхи, в яких системі слід шукати виконувані файли, якщо в командному рядку не набирається повний або відносний шлях до них.

PWD – змінна містить повне ім'я поточного каталогу.

HOME – змінна містить повний шлях до домашнього каталогу користувача.

HOSTNAME – змінна містить ім'я комп'ютера.

LOGNAME – містить ім'я користувача, сеанс якого відкритий зараз.

SHELL – містить ім'я командної оболонки, запущеної в поточному сеансі.

USER - містить ім'я користувача, сеанс якого відкритий зараз.

Список змінних, встановлених в системі можна побачити за допомогою команди export, введеною без параметрів.

Командний інтерпретатор bash має також і свої змінні. Аби локальні змінні стали системними їх необхідно експортувати за допомогою все тієї ж команди export. Наприклад:

 

Приклад 3:

[gserg@WebMedia gserg]$ export

declare -x HOME="/home/gserg"

declare -x HOSTNAME="WebMedia"

declare -x LANG="ru_RU.KOI8-R"

declare -x LOGNAME="gserg"

declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin"

declare -x PWD="/home/gserg"

declare -x SHELL="/bin/bash"

declare -x TERM="Eterm"

declare -x USER="gserg"

[gserg@WebMedia gserg]$ EDITOR=/bin/vim

[gserg@WebMedia gserg]$ export EDITOR

[gserg@WebMedia gserg]$ export

declare -x EDITOR="/bin/vim"

declare -x HOME="/home/gserg"

declare -x HOSTNAME="WebMedia"

declare -x LANG="ru_RU.KOI8-R"

declare -x LOGNAME="gserg"

declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:"

declare -x PWD="/home/gserg"

declare -x SHELL="/bin/bash"

declare -x TERM="Eterm"

declare -x USER="gserg"

[gserg@WebMedia gserg]$

 

Команда unset видаляє системну змінну. Наприклад:

Приклад 4:

[gserg@WebMedia gserg]$ unset EDITOR

[gserg@WebMedia gserg]$ export

declare -x HOME="/home/gserg"

declare -x HOSTNAME="WebMedia"

declare -x LANG="ru_RU.KOI8-R"

declare -x LOGNAME="gserg"

declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:"

declare -x PWD="/home/gserg"

declare -x SHELL="/bin/bash"

declare -x TERM="Eterm"

declare -x USER="gserg"

[gserg@WebMedia gserg]$

 

<== предыдущая лекция | следующая лекция ==>
Виконання процесу | Файловий менеджер Midnight commander
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 1270; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.033 сек.