Вячеслав Вячеславович Ткачев

BASH. Справочное пособие


Скачать книгу

ую приглашение для ввода имени пользователя. После ввода имени пользователя и пароля, программа getty вызывает программу login, которая проверяет достоверность учетной записи, выполняет переход в домашний каталог пользователя и передает управление программе начального запуска сеанса, в качестве которой обычно используется программа оболочки пользователя, конкретная разновидность которой определяется содержимым файла /etc/passwd для данной учетной записи.Командная оболочка (shell) обеспечивает взаимодействие между пользователем и средой операционной системы Linux. Она является специализированным программным продуктом, который обеспечивает выполнение команд и получения результатов их выполнения, или, если совсем уж упрощенно, оболочка – это программа, которая предназначена для обеспечения выполнения других программ по желанию пользователя. Примером оболочки может быть, например, интерпретатор команд command.com операционной системы MS DOS, или оболочка bash операционных систем Unix / Linux. Оболочка Bash представляет средства для написания сценариев оболочки.

      Оболочка читает свой ввод ....

      Оболочка разбивает входные данные на токены:

      слова и операторы.

      Оболочка анализирует ввод в простые и составные

      команды.

      Оболочка выполняет различные расширения (отдельно) …

      Оболочка выполняет перенаправление и удаляет

      операторы перенаправления и их операнды из

      списка параметров.

      Оболочка выполняет функцию, встроенный,

      исполняемый файл или скрипт …

      Оболочка по желанию ожидает завершения

      команды и собирает статус выхода.

      1.1 Краткий обзор функциональных средства.

      В оболочке Bash предоставляются следующие функциональные средства и возможности

      Переадресация ввода-вывода.

      Применение метасимволов для сокращения имен файлов. Переменные и параметры для специальной настройки рабочей среды. Встроенный набор команд для написания программ оболочки. Функции и оболочки для модульной организации задач.

      Управление заданиями.

      Редактирование (редакторы vi ,Emacs).

      Доступ к предыдущим командам.

      Арифметические операции.

      Массивы и арифметические выражения.

      Применение псевдонимов и другие средства.

      1.2 Вызов оболочки.

      Интерпретатор команд оболочки можно вызвать

      bash [параметры ][аргументы ]

      Путь к оболочке по ссылке /bin/sh.

      Команды оболочки можно выполнять с терминала, из файла (когда в качестве первого аргумента указан сценарий).Исходные оболочки читают содержимое файлов etc/profile и . profile profile

      # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))

      # and Bourne compatible shells (bash(1), ksh(1), ash(1), …).

      if [ "${PS1-}" ]; then

      if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ];

      Примечание

      $ echo $PS1-

      ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ -

      $ echo $BASH-

      /bin/bash-

      $ echo $BASH

      /bin/bash

      then

      # The file bash.bashrc already sets the default PS1.

      # PS1='\h:\w\$ '

      if [ -f /etc/bash.bashrc ]; then

      . /etc/bash.bashrc

      fi

      else

      Следующий фрагмент кода определяет форму приглашения для root # для user $

      if [ "`id -u`" -eq 0 ]; then

      PS1='# '

      else

      PS1='$ '

      fi

      fi

      fi

      Следующий фрагмент кода запускает один за другим всескрипты в каталоге /etc/profile.d

      if [ -d /etc/profile.d ]; then

      for i in /etc/profile.d/*.sh; do

      if [ -r $i ]; then

      . $i

      fi

      done

      unset i

      fi

      Глава 2 Синтаксис.

      2.1.Специальные файлы.

      Оболочка читает содержимое одного или нескольких файлов запуска.

      /etc/profile Автоматически при входе в систему

      ~/.bash_profile, ~/.bash_login или ~/.profile

      ~/.bashrc

      ~/.bash_logout Выход из системы или команда exit,

      2.2 Метасимволы подстановки имен файлов.

      * Совпадение с любой строкой.

      Пример, перечислить файлы начинающие с output

      $ ls output*

      output1.wav output2.wav output3.wav output4.wav

      ? Совпадение с любым символом.

      Пример

      $ cd video?

      ~/video1$

      [ abc..] совпадение с любым символом в квадратных скобках.

      [!abc..] совпадение с любым символом кроме указанных в квадратных скобках.

      ~ Начальный каталог текущего пльзователя

      ~max Начальный каталог пользователя max

      ~+Текущий