UNIX-подобные ОС ● Командная оболочка bash ● Структура командной строки ● Другие оболочки ● Встроенные и системные команды ● Редактирование и выполнение команд ● Переменные оболочки и окружения ● История команд ● Автоматическое дополнение командной строки ● Псевдонимы команд ● Командная подстановка ● Шаблоны подстановки ● Получение помощи Оболочки Linux ● bash Bourne Again Shell — по умолчанию ● pdksh Public Domain Korn Shell — свободная реализация стандартной в UNIX оболочки Korn Shell ● tcsh — Enhanced C Shell, улучшенный вариант C Shell (csh) ● zsh — Z shell Встроенные и системные команды Встроенные команды в разных оболочках могут выполняться по разному Встроенные команды выполняются быстрее, чем системные Для многих встроенных команд есть системные аналоги Клавиатурные сочетания bash Командная оболочка (shell) Командная оболочка (shell) — это программа, взаимодействующая с пользователем с помощью текстового интерфейса. Он называется интерфейсом командной строки (CLI). Оболочка позволяет пользователю запускать программы и выполнять команды операционной системы. Оболочка интерпретирует введенные пользователем команды, преобразуя их в инструкции операционной системы. Оболочку называют интерпретатором Командный интерпретатор bash Bash Bourne-again shell интерпретатор – это программа, которая принимает и исполняет команды. Поддерживает возможности программирования, позволяя составлять сложные конструкции из обычных команд сценарии можно сохранить в файлы, которые в свою очередь сами являются новыми командами Интерпретаторы содержат встроенные команды, другие команды являются внешними Cтандартные потоки ввода/вывода bash stdin - стандартный поток ввода, который обеспечивает ввод для команд. stdout - стандартный поток вывода, который обеспечивает отображение результатов выполнения команды в окне терминала. stderr - стандартный поток ошибок, который отображает ошибки, возникающие при работе команд. Получение помощи Использование man man <номер раздела> <имя страницы> PgUp,PgDn – перемещение по тексту <пробел> следующая страница > строка – поиск подстроки вниз >строка – поиск подстроки вверх следующее вхождение искомой строки выход Общая структура команды jpg" alt=""> Метасимволы Bash и операторы управления используются для разделения вводимых команд '|', '&', ';', '(', ')', '<', и '>'. служат как операторы управления '||', '&&', '&', ';', ';;', '|'‘ '(', и ')' Последовательность команд Простейшая последовательность команд состоит из двух команд, разделенных точкой с запятой (;) команды Linux обычно возвращают 0 в случае успешного завершения и ненулевое значение в случае неуспеха. Управляющие операторы && и || При использовании &&, вторая команда будет выполняться только в том случае, если первая возвратила на выходе ноль При использовании || вторая команда будет исполняться, только если первая возвратила ненулевое значение Пример использования && || $ echo line 1;echo line 2; echo line 3 line 1 line 2 line 3 $ echo line 1&&echo line 2&&echo line 3 line 1 line 2 line 3 [ian@echidna ian]$ echo line 1||echo line 2; echo line 3 line 1 line 3 Кавычки и shell переменные [ian@echidna ian]$ echo "$SHELL" '$SHELL' "$$" '$$' /bin/bash $SHELL 19244 $$ [ian@echidna ian]$ bash -c "echo Expand in parent $$ $PPID" Expand in parent 19244 19243 [ian@echidna ian]$ bash -c 'echo Expand in child $$ $PPID' Expand in child 19297 19244 Смена рабочего каталога Для смены рабочего каталога используется команда cd [ian@echidna home]$ cd /;pwd / [ian@echidna /]$ cd /usr/X11R6;pwd /usr/X11R6 Подстановка команд возможность передачи результата одной программы на вход другой команда, результаты которой вам нужны, заключается в апострофы (`) [ian@echidna ian]$ which echo /bin/echo [ian@echidna ian]$ rpm -qf `which echo` sh-utils-2.0.12-3 Простое управление файлами Просмотр записей каталогов команда ls Расширенный формат вывода ls -al Копирование, перемещение и удаление сp используется для копирования одного или более файлов mv используется для перемещения или переименования одного или более файлов или каталогов. rm используется для удаления одного или нескольких файлов mkdir создание каталога rmdir удаление каталога Пример использования команд cp, mv, rm Рекурсивное копирование, удаление, перемещение Для рекурсивного копирования всего дерева поддиректорий каталога возможно использовать опцию –R или --recursive Переменные окружения bash Изменение переменных оболочки и окружения Установить значение VAR1=Hello! echo $VAR Вывести список всех переменных set Удалить переменную unset имя_переменной Файлы настроек, хранящие переменные окружения /etc/profile — переменные, общие для всех пользователей ~/.bash_profile ~/.bash_login настройки пользователя (профиль) ~/.profile ~/.bashrc выполняется при ручном запуске оболочки Автоматическое дополнение командной строки попытаться дополнить командную строку именами файлов или команд Если вариантов несколько, то повторным нажатием можно вывести список Комадная подстановка ● Командная подстановка (command substituion) — результат выполнения одной команды автоматически передается в качестве аргументов другой команде внешняя_команда `внутренняя_команда` внешняя_команда $(внутренняя_команда) пример: ls l `which rpm` ls l $(cat /etc/shells) Можно присвоить результат выполнения переменной оболочки: ID=`id';echo $ID Вычисление арифметических выражений echo $((1+2)) echo $((7%3)) echo $((5*6)) echo $((7/3)) Шаблоны подстановки и перечисление * любое колво любых символов, или их отсутствие, кроме имен файлов, начинающихся на . (скрытые файлы) echo * ? Заменяет один символ в имени файла [bcd] — один из символов перечисления echo .[bcd]* [!bcd] — кроме символов b,c,d echo .bash{rc,_profile} — перечисление (набор вариантов) echo {,/usr}/{,s}bin echo {,/usr{,/local}}/{,s}bin — вложенный перебор Пример просмотра переменных среды Переменные среды и shell [ian@echidna ian]$ echo $USER $UID ian 500 [ian@echidna ian]$ echo $SHELL $HOME $PWD /bin/bash /home/ian /home/ian [ian@echidna ian]$ (exit 0);echo $?;(exit 4);echo $? 04 [ian@echidna ian]$ echo $$ $PPID 30576 30575 |