КАТЕГОРИИ: Архитектура-(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 можна назвати наступні:
Оболонка 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]$
Дата добавления: 2014-01-07; Просмотров: 1270; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |