
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]$