Что такое bash в Linux

Обновлено: 30.06.2024

Версия 1.11. Последнее обновление: 2008–1227. Выпуск

Это практическое руководство, которое, хотя и не всегда является слишком серьезным, пытается привести примеры из реальной жизни, а не теоретические. Частично я написал это, потому что меня не возбуждают урезанные и чрезмерно упрощенные примеры, написанные людьми, которые знают, о чем они говорят, демонстрируя некоторые действительно крутые возможности Bash настолько вне контекста, что вы никогда не сможете использовать их на практике. обстоятельства. Вы можете прочитать подобные материалы после прочтения этой книги, содержащей упражнения и примеры, которые помогут вам выжить в реальном мире.

Из своего опыта пользователя UNIX/Linux, системного администратора и инструктора я знаю, что люди могут годами ежедневно взаимодействовать со своими системами, не имея ни малейшего представления об автоматизации задач. Поэтому они часто думают, что UNIX неудобна для пользователя, и, что еще хуже, у них создается впечатление, что она медленная и старомодная. Это еще одна проблема, которую можно решить с помощью этого руководства.

Каждому, кто работает с UNIX или UNIX-подобной системой, кто хочет облегчить себе жизнь, как опытным пользователям, так и системным администраторам, будет полезно прочитать эту книгу. Читатели, которые уже имеют представление о том, как работать с системой с помощью командной строки, узнают все тонкости сценариев оболочки, облегчающих выполнение повседневных задач. Системное администрирование во многом зависит от сценариев оболочки; общие задачи часто автоматизируются с помощью простых сценариев. Этот документ полон примеров, которые подтолкнут вас к написанию собственных скриптов и вдохновят вас на улучшение существующих скриптов.

Предпосылки/не в этом курсе:

Вы должны быть опытным пользователем UNIX или Linux, знакомым с основными командами, справочными страницами и документацией

Возможность использовать текстовый редактор

Понимать процессы загрузки и завершения работы системы, инициализацию и сценарии инициализации

Создание пользователей и групп, установка паролей

Разрешения, специальные режимы

Понимание правил именования устройств, разбиения на разделы, монтирования/размонтирования файловых систем

Добавление/удаление программного обеспечения в вашей системе

Рис. 1. Обложка руководства по Bash для начинающих

Это руководство было переведено:

Перевод на французский язык находится в разработке, ссылка на него будет опубликована, как только он будет завершен.

Спасибо всем друзьям, которые помогли (или пытались), и моему мужу; Ваши ободряющие слова сделали эту работу возможной. Спасибо всем, кто прислал отчеты об ошибках, примеры и замечания, среди многих других:

Ханс Бол, одна из поклонниц

Майк Сим, комментарии о стиле

Дэн Рихтер, примеры массивов

Гергу Фергюсону за идеи по поводу названия

Мендель Лео Купер, освободите место

Фрэнк Ван, за его подробные замечания обо всех моих ошибках ;-)

Особая благодарность Табате Маршалл, которая вызвалась провести полный обзор и проверить орфографию и грамматику. Мы отличная команда: она работает, когда я сплю. И наоборот ;-)

Отсутствует информация, отсутствующие ссылки, отсутствующие символы, примечания? Отправить по адресу

логотип bash на зеленом фоне

Когда компьютер загружается, ядро ​​(будь то Linux, BSD, Mach или NT) распознает все физическое оборудование и позволяет каждому компоненту взаимодействовать друг с другом и управляться некоторым базовым программным обеспечением. Самый простой набор инструкций компьютера просто поддерживает его включенным и в безопасном состоянии: периодическая активация вентиляторов для предотвращения перегрева, использование подсистем для контроля дискового пространства или «прослушивания» новых подключенных устройств и так далее. Если бы это были все компьютеры, они были бы не менее интересны, чем пароконвектоматы.

Компьютерщики поняли это на раннем этапе, поэтому они разработали оболочку для компьютеров Unix, которая работает вне ядра (или вокруг ядра, подобно оболочке в природе). и позволяет людям взаимодействовать с компьютером, когда они хотят. Это было захватывающее событие в то время, когда люди вводили перфокарты в компьютеры, чтобы указывать им, что делать. Из всех доступных оболочек Bash — одна из самых популярных, самых мощных и самых удобных.

Bash — это приложение

При запуске терминала (например, терминала GNOME или Konsole в Linux или iTerm2 в macOS) с оболочкой Bash появляется подсказка. Приглашение — это символ, обычно знак доллара ($), указывающий, что оболочка ожидает вашего ввода. Конечно, совсем другое дело знать, что вы должны печатать.

Возможно, это звучит недружелюбно, но на самом деле это очень лаконичное представление многих коннотаций, связанных с термином "Баш".«Для многих новых пользователей нет разделения между концепцией Bash и концепцией Linux или Unix: это пресловутый черный экран с зеленым текстом, в котором вы должны кодировать то, что ваш компьютер делает дальше. оболочке Bash с командами, которые вы вводите в оболочку. Важно понимать, что это две разные вещи: Bash — это просто приложение, и его основная задача — запускать другие приложения (в виде команд), которые установлены в той же системе.

[Загрузите нашу бесплатную памятку по Bash]

Вы можете изучить Bash, но только в контексте изучения операционной системы, в которой он работает. Не зная команд, вы мало что сможете сделать с Bash.

Команды Linux

В Linux и Unix (таких как BSD и macOS) большинство команд по умолчанию хранятся в системных каталогах, таких как /usr/bin и /bin. По своей природе Bash знает эти команды не лучше, чем вы, естественно, знаете клингонский, но так же, как вы можете искать клингонские слова, Bash может искать команды. Когда вы вводите команду в Bash, он ищет определенные каталоги в вашей системе, чтобы узнать, существует ли такая команда. Если команда существует, Bash выполняет ее.

Bash также является командой, и обычно это команда по умолчанию, которая выполняется, когда вы открываете окно терминала или входите в текстовую консоль. Чтобы узнать, где находится какая-либо команда в вашей системе, включая Bash, вы можете использовать команду what в терминале:

В Bash встроено несколько команд. Большинство встроенных команд предназначены только для сценариев Bash или низкоуровневых настроек среды, но некоторые из них полезны повсеместно, например cd (для изменения каталога). Встроенные команды не отображаются при их поиске, потому что они не существуют в вашем обычном пути к исполняемому файлу:

Однако они по-прежнему доступны, поскольку встроены в Bash, а Bash — это то, что вы используете.

Запуск Bash

Большинство современных дистрибутивов Linux и Unix по умолчанию предоставляют оболочку Bash. Они делают это, потому что Bash хорошо известен и имеет несколько удобных функций, которых нет в других оболочках. Однако в некоторых системах по умолчанию используется другая оболочка. Чтобы узнать, используете ли вы оболочку Bash, вы можете использовать команду echo вместе со специальной переменной, представляющей имя текущего запущенного процесса:

Если вы не используете Bash, но хотели бы попробовать его, возможно, вы можете загрузить и установить Bash из своего программного центра, репозитория программного обеспечения или дерева портов. Или вы можете использовать Chocolatey в Windows или Homebrew в macOS. Если ничего не помогает, посетите домашнюю страницу Bash для получения дополнительной информации.

Работа в Bash

Bash — это законный интерфейс для вашего компьютера, и он предназначен не только для администраторов серверов и программистов. Это может быть ваш рабочий стол, ваш текстовый процессор, приложение для редактирования графики и многое, многое другое. Некоторые люди используют Bash чаще, чем настольные приложения.

Для Linux и Unix доступны сотни команд, и вы можете удивиться, насколько они разнообразны. Например, вы можете изменять размер и обрезать фотографии, даже не открывая их в программе просмотра или редакторе:

Вы можете воспроизводить музыку с помощью таких команд, как ogg123 или mpg321, конвертировать аудио с помощью sox, настраивать и редактировать видео с помощью ffmpeg, редактировать текст с помощью emacs или vim, проверять электронную почту с помощью pine или mutt, просматривать Интернет с помощью elinks, просматривать файлы с помощью ranger. или midnightcommander, и многое, многое другое. Все это делается в Bash с помощью команд, которые вы найдете в своей системе или в репозитории программного обеспечения.

Сценарии Bash

Программирование и разработка

Одна из причин, по которой Bash (и Linux в целом) считается таким мощным, заключается в том, что он поддерживает сценарии. Все, что вы можете ввести в Bash вручную, вы также можете перечислить в текстовом файле, и Bash запустит его для вас. Вместо того, чтобы тратить день на ручное выполнение сотни команд, вы можете скриптовать команды и выполнять их на своем компьютере, пока вы занимаетесь более важными делами. Поскольку почти все в Linux работает поверх оболочки Bash, почти все в Linux можно написать через Bash. Хотя из этого есть исключения (например, графические приложения могут иметь свой собственный язык сценариев или вообще не иметь сценариев), создание сценариев для вашей ОС открывает десятки тысяч возможных функций, которые вы можете реализовать на своем компьютере, не выполняя их самостоятельно.< /p>

Невозможно оценить объем работы, который каждый день экономит пользователям Linux. Однако дело не в обычной автоматизации; это индивидуальные рабочие процессы, которые люди изобретают для себя, то, что никто другой не считает нужным автоматизировать.

Когда опытные пользователи говорят, что хотят изучить Bash, если они не имеют в виду, что хотят изучить команды Linux, то они, вероятно, имеют в виду, что хотят улучшить способ написания своих команд.Например, это чрезвычайно примитивный сценарий Bash, который преобразует временный файл (представьте, что это файл, созданный отдельным процессом) в определенный каталог:

Это действительный Bash. Вы можете проверить это, скопировав и вставив команду (последняя строка, начинающаяся с cp) в терминал. Пока есть файл с именем tmp.jpg и каталог с именем ~/public_html, команда работает.

Однако изучение Bash сводится к пониманию того, как подобную простую команду можно улучшить для автоматизации. Например, если файл tmp.jpg не существует, сценарий завершается ошибкой. Если этот сценарий является ключевым компонентом, например, сайта блога, которому требуется новое изображение каждый день, чтобы можно было создать собственное изображение заголовка, то сбой сценария может привести к катастрофическим ошибкам в другом месте. Пользователь, знающий Bash, может повысить отказоустойчивость, используя синтаксис Bash:

Это всего лишь один пример процесса обучения написанию скриптов с помощью Bash, но он демонстрирует, что изучение как Linux, так и Bash одинаково полезно и не является совершенно разными задачами.

Преимущества Bash

Bash так же мощен, как и другие оболочки, но в примере кода добавлены удобные функции, такие как двойные скобки ([[ и ]]). Эти «башизмы» очень нравятся пользователям Bash, потому что они избегают иногда многословного и неудобного синтаксиса других оболочек, таких как tcsh или ash. Однако они уникальны для Bash и несовместимы с POSIX, что может вызвать проблемы совместимости в системах, не использующих Bash. Опять же, Bash — это бесплатное программное обеспечение с открытым исходным кодом, поэтому большинство пользователей могут установить его, если оно им нужно. Отсутствие совместимости только создает дополнительную зависимость и не исключает возможности использования скрипта.

Изучение Bash

Если вы хотите изучить Bash, вы можете прочитать любое количество отличных книг по этому предмету.

Лучше всего то, что вы также можете играть в игры, чтобы изучать Bash.

Удачи и удачного взлома!

Creative Commons License

Эта работа находится под лицензией Creative Commons Attribution-Share Alike 4.0 International License.

Bash — широко используемая оболочка во многих дистрибутивах Linux. Bash — интерпретатор команд. Мы можем использовать bash для взаимодействия с системой. Bash — это интерфейс только для командной строки, содержащий несколько встроенных команд; он имеет возможность запускать другие программы и управлять программами, запущенными из него (управление заданиями).

Bash в Linux

Bash теперь является оболочкой по умолчанию. Это очень удобно. Например, они запоминают введенные нами команды и позволяют нам повторно использовать эти команды. Это также позволяет нам редактировать эти команды, поэтому они не должны быть одинаковыми каждый раз. А bash позволяет нам определять собственные сокращения команд, ярлыки и другие функции.

Bash можно программировать. Мы можем написать сценарий bash для выполнения нашей повседневной работы. Всякий раз, когда мы обнаруживаем, что постоянно выполняем задачу, мы должны попытаться автоматизировать ее, написав сценарий оболочки. Существуют более мощные языки сценариев, такие как Perl, Python и Ruby, но оболочка Linux bash — отличное место для начала. В конце концов, мы уже знаем, как вводить команды.

Преимущества Bash

Bash так же мощен, как и другие оболочки, но в примере кода добавлены удобные функции, такие как двойные скобки ([[ и ]]). Эти «башизмы» очень нравятся пользователям Bash, потому что они избегают иногда многословного и неудобного синтаксиса других оболочек, таких как tcsh или ash.

Однако они уникальны для Bash и несовместимы с POSIX, что может вызвать проблемы совместимости в системах, не использующих Bash. Опять же, Bash — это бесплатное программное обеспечение с открытым исходным кодом, поэтому большинство пользователей могут установить его, если оно им нужно. Отсутствие совместимости только создает дополнительную зависимость и не исключает возможности использования скрипта.

Как использовать Bash

Большинство современных дистрибутивов Linux и Unix по умолчанию предоставляют оболочку Bash. Они делают это, потому что Bash хорошо известен и имеет несколько удобных функций, которых нет в других оболочках.

Однако в некоторых системах по умолчанию используется другая оболочка. Чтобы узнать, используем ли мы оболочку Bash, мы можем использовать команду echo вместе со специальной переменной, представляющей имя текущего запущенного процесса:

Альтернативы Bash

В Linux интерпретатор, который может понимать пользовательские команды и настройки и передавать их на компьютер для дальнейшей обработки, называется оболочкой. Вот несколько оболочек для Linux:

  • sh — оболочка Bourne — первая оболочка, представленная в UNIX. Bash улучшает sh. Все команды sh также можно запускать в bash, но не все команды bash можно использовать в оболочке sh. Это делает bash надмножеством sh и других опций/модулей.
  • csh – оболочка C с синтаксисом, аналогичным языку программирования C.
  • tcsh — оболочка TENEX C — это оболочка C с дополнительными функциями.
  • ksh — оболочка Korn, команда и язык программирования.

Сценарий Bash

Сценарий Bash – это обычный текстовый файл, содержащий ряд команд. Эти команды представляют собой смесь команд, которые мы обычно вводим в командной строке (таких как ls или cp, например), и команд, которые мы могли бы вводить в командной строке, но обычно этого не делали (вы узнаете об этом на следующих нескольких страницах). ).

Все, что мы можем нормально запустить в командной строке, можно поместить в сценарий, и он будет делать то же самое. Точно так же все, что мы можем поместить в сценарий, также можно нормально запустить в командной строке, и он будет делать то же самое.

Проверить версию Bash

Эту команду можно использовать для проверки версии bash в Linux.

% bash – версия
GNU bash, версия 3.2.57(1)-выпуск (x86_64-apple-darwin20)
Авторское право (C) 2007 Free Software Foundation, Inc.

Вы, наверное, слышали о Bash, но что это такое? Что оно может делать? Узнайте здесь.

Если вы уже давно используете Linux, вы, несомненно, видели слово Bash на форумах и в статьях. Иногда это кажется синонимом терминала, но Bash и эмулятор терминала — совершенно разные приложения. Так что же такое Баш? В этой короткой статье мы рассмотрим, что такое Bash, что он делает и как вы можете начать его использовать.

Определение Bash

Название Bash – это аббревиатура от Bourne-Again SHell – игра слов от имени Стивена Борна, создателя одного из предшественников Bash. Первая бета-версия была выпущена в 1989 году, и на момент написания этой статьи последнее обновление было выпущено в декабре 2020 года: версия 5.1.

Bash — один из самых популярных языков оболочки, известный сочетанием мощных возможностей и удобных команд. Вот почему его так много в дистрибутивах Linux.

Однако Bash работает не только в Linux; он также доступен в macOS и BSD, и вы можете использовать его в Windows через подсистему Windows для Linux.

Но чтобы по-настоящему определить Bash, мы должны понять, что такое оболочка.

Оболочка — это приложение, которое принимает ввод от пользователя и выполняет в ответ действие, обычно взаимодействуя с ядром, чтобы это произошло. Таким образом, это как бы «оболочка» вокруг ядра.

Хотя оболочки инициируют другие приложения с помощью команд, они также часто сами имеют интерактивные функции.

Например, когда вы открываете терминал Linux и нажимаете кнопку со стрелкой вверх, чтобы получить последнюю введенную команду, это функция приложения Bash. Команда cd для смены каталогов — еще одна очень распространенная команда Bash.

Помимо интерактивного приложения, Bash также является языком сценариев. На самом деле ваша ОС Linux использует множество сценариев Bash в процессе запуска для запуска различных процессов.

Как я могу использовать Bash?

Вы используете Bash каждый раз, когда используете терминал практически в любой системе Linux.

Вы можете подтвердить это с помощью этой команды, которая возвращает имя используемой оболочки:

Вы должны получить только слово bash. Если вы это сделаете, вы можете увидеть версию Bash, которую вы используете, с помощью этой команды:

Ваш экран должен выглядеть примерно так:

Однако выполнение одиночных команд в терминале — это только начало использования Bash.

Подобно тем сценариям, которые использует ваша ОС, вы можете научиться писать сценарии Bash, которые автоматизируют процессы на вашем ПК с Linux, которые вы часто выполняете вручную. У опытного Bash-скриптора могут быть сценарии, автоматизирующие сотни задач в день!

Как же выучить Bash?

Путем написания сценариев самостоятельно или под руководством, например, в рамках курса Bash.

Геймеры также могут учиться, играя в игры Bash. Одним из примеров является Bashcrawl, текстовый сканер подземелий, который заставляет вас изучать и запоминать команды Bash для продвижения в игре.

У нас также есть статьи об использовании, которые помогут вам стать лучшим сценаристом Bash. Например, мы можем показать вам, как писать циклы for в Bash, или превратить ваши скрипты в интерактивные приложения.

Повышение уровня вашей игры для Linux

Мы узнали, что такое Bash, его история и как вы можете научиться использовать его для себя.

Однако изучение Bash — это только часть того, чтобы максимально эффективно использовать операционную систему Linux. Чтобы стать опытным пользователем Linux, вы можете узнать гораздо больше.

 Bash Shell в Linux

Bash Обозначает «Bourne Again Shell» в экосистеме оболочки. Это бесплатная версия дистрибутива оболочки Bourne, связанная с операционными системами Linux и GNU. Он похож на оболочку командной строки с включенными в нее дополнительными функциями, а bash является определенной частью IEEE POSIX. Bash Shell широко доступен для различных операционных систем и является интерпретатором командной строки по умолчанию почти для всех систем GNU/Linux. Bash также включает функции Cshell и Kshell.

Понимание Bash Shell в Linux

Давайте рассмотрим концепцию оболочки bash в Linux, как показано ниже:

Веб-разработка, языки программирования, тестирование программного обеспечения и другое

Концепция Bash Shell в Linux

  • Оболочка. Оболочка — это макропроцессор, который позволяет выполнять команды в интерактивном или неинтерактивном режиме. Он полностью основан на графическом пользовательском интерфейсе, так что пользователь может взаимодействовать с базовой операционной системой.
  • Сценарии. Сценарии – это фрагмент кода, который позволяет нам выполнять команды автоматически, а не вручную. Это в основном снижает человеческие усилия и затраты на внедрение.
  • Ядро: это ядро ​​любой операционной системы, которое используется для связи с оборудованием и оболочкой для обмена информацией.
  • Приложения. Это приложения с графическим интерфейсом пользователя, используемые конечными пользователями.

Синтаксис оболочки Bash в Linux

Давайте посмотрим синтаксис оболочки bash в Linux вместе со списком параметров, которые можно использовать.

bash -имя файла с опцией

Список опций:

Давайте подробно обсудим каждый вариант:

    Опция
  • -c: при использовании опции -c команда будет считывать строку. Если аргументы идут после этой строки, они будут назначать позиционные параметры, начинающиеся с $0.
  • Опция -i: при использовании опции -i оболочка будет работать в интерактивном режиме.
  • Параметр
  • -l: этот параметр означает оболочку входа в систему и заставляет bash действовать так, как если бы он вызывался для оболочки входа в систему.
  • Опция -r: при использовании опции -r оболочка будет работать в ограниченном режиме.
  • Опция
  • -s: если используется опция -s или после обработки опции не осталось аргументов, команда будет считываться со стандартного ввода. Эта функция option позволяет устанавливать позиционные параметры, когда мы будем вызывать интерактивную оболочку.
  • Опция
  • -D: при использовании опции -D список всех строк в двойных кавычках, которым предшествует «$», будет напечатан на стандартной консоли вывода. Эти строки подлежат языковому переводу, если текущий языковой стандарт не C или POSIX. Это означает, что параметр -n не будет выполнять никакие команды.
  • – –option: «- -» означает конец опции и останавливает дальнейшую обработку опции. Любой аргумент, переданный после -, будет рассматриваться как имя файла и аргумент. Аргумент – аналогичен –.

Теперь мы подробно разберемся с концепцией сценариев оболочки.

Что такое сценарии оболочки?

Сценарий оболочки — это разделение списка команд с целью оптимизации любой задачи и экономичности, аналогично другим языкам программирования с четко определенными стандартами. Если у вас есть какой-либо опыт, будет полезно быстро понять, однако мы дадим вам понять концепцию и реализацию сценариев оболочки.

Сценарий оболочки состоит из следующих элементов:

  • Ключевое слово оболочки: if, else, break, while, then и т. д.
  • Команда оболочки: ls, echo, cd, touch, pwd, touch
  • Поток управления: if..then..else, case и shell, циклы for и т. д.
  • Функции: запись вручную для выполнения любой операции

Причина разработки сценария оболочки

  • Используется для автоматизации и исключения повторяющейся работы.
  • Системный администратор использует его для резервного копирования
  • Системный мониторинг осуществляется разработчиками
  • Некоторые новые функции и т. д.

Этапы создания сценария оболочки:

Нам нужно создать новый файл с помощью редактора vi.FileName файла сценария с расширением .sh.

Программа обучения Linux (16 курсов, более 3 проектов) 16 онлайн-курсов | 3 практических проекта | 160+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
4,5 (8 497 оценок)

Пример создания небольшого скрипта

Код:

Команда ‘ls’ будет выполнена, когда мы выполним скрипт test.sh, файл и отобразим вывод.

Вывод:

Что такое комментарии оболочки?

Добавление любого комментария в любую программу играет жизненно важную роль. Это означает, что сценарий оболочки будет игнорировать эту команду или строку.

Пример:

Переменные оболочки

Переменные предназначены для хранения данных в виде символов и чисел. Точно так же переменные оболочки используются для хранения информации во время выполнения, предоставленной любым пользователем, и они могут использоваться оболочкой для оценки переменной.

Например, ниже мы создали переменную оболочки, а затем напечатали ее:

Код:

variable ="Привет"
echo $variable

Ниже приведен небольшой скрипт, который будет использовать переменную:

Вывод:

Преимущества и недостатки Bash Shell

Давайте рассмотрим преимущества и недостатки оболочки bash:

Преимущества

Синтаксис и команда примерно такие же, как те, которые вводятся непосредственно в командной строке, поэтому разработчик или программист не сталкивается с большими проблемами при реализации. Давайте посмотрим на преимущества оболочки bash, как указано ниже.

  • Написание сценария оболочки становится все быстрее и быстрее.
  • Быстрый старт
  • Доступна интерактивная отладка

Недостатки

  • Требуется дополнительная осторожность, чтобы исключить вредные обстоятельства.
  • Обычно скорость выполнения низкая.
  • Существует много недостатков в отношении дизайна и реализации.
  • По сравнению с другими языками сценариев, такими как Python, он предоставляет очень мало возможностей для работы со структурами данных.

Рекомендуемые статьи

Это руководство по Bash Shell в Linux. Здесь мы обсудим синтаксис и концепции Bash Shell в Linux, а также его преимущества и недостатки. Вы также можете ознакомиться со следующими статьями, чтобы узнать больше –

Читайте также: