Программа bash что это

Содержание

Работа с Bash

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

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

Что такое Bash?

Как я уже говорил, Bash — это интерпретатор команд. По сути, это обычная программа, которая запускается при старте сеанса оболочки. Мы могли бы запускать не Bash, а скажем, интерпретатор python или ruby, и тогда нам пришлось бы выполнять методы этих языков вместо команд Bash для администрирования системы.

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

Linux: что такое BASH скрипты. Примеры.

Команды Bash

Основу работы в Bash составляют команды. Именно с помощью команд вы будете выполнять большинство действий над системой. Команды можно поделить на два типа. Это встроенные в оболочку, которые существуют только виртуально, мы рассматривали их в статье основные команды Bash, а также внешние команды — обычные утилиты или скрипты, расположенные в файловой системе.

Возвращаясь к встроенным командам, можно привести пример, вы не найдете в файловой системе команду cd. Ее нет, она встроена.

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

Но если команда находится в одной из сторонних папок, то необходимо ввести ее полный адрес:

Иначе оболочка не сможет найти исполняемый файл команды.

Объединение команд

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

Кроме того, Bash позволяет объединять команды по времени выполнения. Существуют такие операторы для объединения команд:

  • — выполнить первую команду, а вторую выполнять только если первая завершится успешно;
  • || — выполнить первую команду, а вторую выполнять только если первая завершится неудачей;
  • ; — выполняет последовательно каждую следующую команду, как только завершится предыдущая;
  • shutdown -h now

    И наконец, вы можете запустить какой-либо сервис или приложение, например, браузер в фоне и свободно продолжить работу в терминале:

    Управляющие символы Bash

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

    Чтобы вставить в положение курсора предыдущую команду напишите . Например, чтобы выполнить последнюю команду с sudo достаточно выполнить:

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

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

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

    Если перед командой написать пробел, то она не сохранится в истории:

    Символ $? позволяет вывести код завершения последней команды:

    Символ звездочки возвращает массивом содержимое текущей папки:

    С помощью символа ^ можно заменить несколько букв из предыдущей команды. Работает это вот так:

    В результате файл будет удален.

    Горячие клавиши Bash

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

    • Tab — автодополнение, наберите начало команды или пути и нажмите Tab, если такая команда только одна оболочка ее дополнит. Если доступно несколько вариантов, нажмите два раза Tab чтобы их увидеть;
    • Стрелка вверх — предыдущая команда в истории;
    • Стрелка вниз — следующая команда в истории;
    • Ctrl+R — поиск по истории. Просто нажмите эту кнопку и начните вводить нужную команду;
    • Ctrl+G — выйти из режима поиска;
    • Alt+. — предыдущее слово последней команды;
    • Ctrl+L — очистить вывод терминала;
    • Ctrl+A — перейти в начало строки;
    • Ctrl+E — в конец строки;
    • Ctrl+K — удалить символы начиная от курсора и к концу команды;
    • Ctrl+U — удалить символы от курсора до начала команды;
    • Ctrl+W — удалить все символы этого слова слева;
    • Ctrl+Y — удалить все символы этого слова справа;
    • Ctrl+S — остановить вывод на экран;
    • Ctrl+Q — возобновить вывод на экран.

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

    Выводы

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

    На завершение видео по теме от Акцент профи:

    Источник: losst.pro

    Основы работы с командной оболочкой bash в Linux

    Что такое Bash

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

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

    Что такое Bash

    Bash (Bourne again shell или «возрождённый» shell) – это модифицированная версия программной оболочки Bourne-shell (sh или «Оболочка Борна»). Она является командным процессором, работающим интерактивно в текстовом окне. Bash нужен для приема команд пользователя и их отправки операционной системе для последующей обработки.

    Что такое Bash

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

    История создания

    Предшественница Bash – Bourne-shell (sh, «Оболочка Борна») была одной из первых оболочек для операционных систем Unix. Ее создал в 1978 году британский ученый Стивен Борн, давший Bourne-shell свое имя.

    Изначально оболочка sh обладала относительно небольшим набором функций. Но в 1987 году Bourne-shell заинтересовался программист Брайан Фокс, сумевший доработать и значительно расширить ее функционал. В 1989 году Брайан создал бета-версию Bash и продолжал поддерживать свое детище вплоть до 1993 года.

    Брайан Фокс - создатель оболочки Bash

    Брайан Фокс — создатель оболочки Bash.

    Основные команды, правила их написания и прочие особенности Bash были перенесены из sh. Прочие возможности, включая историю, позаимствованы из Korn Shell и C Shell (других вариаций Bourne-shell). Bash практически полностью соответствует стандартам POSIX.

    Сегодня оболочка Bash предустановлена в большей части дистрибутивов Unix/Linux. Взаимодействие оболочки и операционной системы обеспечивается с помощью специальной программы – терминала (например, lxterm, xterm, eterm, gnome-terminal).

    Синтаксис

    Правила написания Bash представляют собой расширенный синтаксис Bourne-shell. Узнать подробности про основы взаимодействия с оболочкой, а также спецификации конкретных команд можно в руководстве Bash Reference Manual, распространяемом GNU. Это полезная шпаргалка для начинающих, позволяющая быстрее сориентироваться в оболочке.

    Пример скрипта

    Ниже рассмотрен пример самого простого скрипта, выводящего надпись «Hello world».

    #!/usr/bin/env bash echo ‘Hello World!’

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

    Пример скрипта bash

    Отличие Bash от Bourne-shell

    Bash в Linux способна выполнять практически все важные сценарии Bourne-shell без внесения дополнительных изменений. Исключение составляют те, где необходимо ссылаться на спецпеременные Bourne-shell или, где применяются ее встроенные команды.

    В синтаксисе Bash применяются приемы из Korn Shell и C Shell:

    • редактирование командной строки;
    • вывод истории команд;
    • создание стеков директорий;
    • правила замены команд «$(…)»;
    • переменные «$PPID» и «$RANDOM».

    Используя консоль Bash в качестве интерактивного интерпретатора, можно прибегать к автодополнению названий файлов, программ, переменных и команд нажатием клавиши Tab (↹).

    Для чего нужен Bash

    Для чего нужен Bash

    Основные преимущества

    На данный момент разработано множество различных вариаций Bourne-Shell. Но, по сравнению с ними, командный интерпретатор Bash обладает рядом преимуществ.

    Примечание. Чем новее интерпретатор, тем больше функций он предоставляет. Узнать версию Bash в Linux можно командой:

    $SHELL —version

    как узнать версию Bash в Linux

    Примеры применения

    • Вывести указанное количество строчек из лога.
    • Найти и составить выборку ключевых слов, сохранив их в новом файле.
    • Очистить экран терминала.
    • Приостановить работающие задачи и перезапустить ранее приостановленные.
    • Создать архив директории с файлами и отправить его на другой компьютер в одной сети через определенный сетевой протокол.
    • Произвести настройку системы создания резервных копий файлов баз данных, используя дампинг.
    • Послать запрос о конфигурации других компьютеров в сети. Отправить файл с собранной информацией на электронную почту.
    • Найти на диске дублированные файлы, отобразить их список и выполнить запрос их удалить.
    • Рекурсивно заменить владельцев указанных файлов и папок.

    Как работать с Bash

    Рассмотрим, как пользоваться Bash на примере подключения к веб-серверу (где находятся файлы сайта) с установленным дистрибутивом Linux через протокол SSH с нуля.

    Как работать с Bash

    Для этого можно воспользоваться любым предпочитаемым способом. В данном случае рассматривается веб-сервер с Ubuntu, хотя в других дистрибутивах принцип остается тем же.

    1. После успешного ввода логина и пароля программа Терминал Linux в автоматическом режиме запустит Bash. Собственно, пользователь уже подключится к системе и увидит приглашение на ввод команд.

    2. Приглашение отображается относительно стандартно и имеет следующий вид:

    приглашение на ввод команд

    В примере:

    • размытием закрыто имя пользователя;
    • «vPro» – название компьютера;
    • графема тильда (~) в Линуксе обозначает домашнюю папку пользователя в сокращенном виде (/home/user). Она в Bash по умолчанию является текущей
    • знак доллара ($) указывает, что пользователь не имеет прав администратора. Работая как администратор, вместо знака доллара отображается знак решетки (#).

    3. Когда приглашение выполнено, терминал автоматически поставит пробел и будет находиться в ожидании ввода команд. На предложенном изображении была нажата кнопка «Enter». В следующей строчке введена команда «cd» перейти в существующий каталог «/opt». Еще ниже отображается результат вывода – рабочей папкой стала «/opt» и это показано в приглашении.

    результат вывода

    4. Командная строка Linux позволит запускать любое установленное в системе приложение. Как правило, каталоги со списком исполняемых программ расположены в папках «/bin, /usr/bin». Проверяемые каталоги интерпретатор сохраняет в переменной «$PATH». Просмотреть их список можно командой:

    echo $PATH

    5. Далее можно воспользоваться командой «ls» и добавить к ней один из каталогов, найденных в «$PATH», чтобы увидеть список доступных программ. Например:

     как увидеть список доступных программ

    6. Если приложение консольное, Bash произведет его запуск в терминале. Ниже показан пример запуска редактора Nano.

    запуска редактора Nano

    7. Bash также позволяет осуществлять запуск приложений в фоновом режиме. Для запуска в фоне, после ввода названия программы в конце следует добавить знак амперсанда (https://eternalhost.net/blog/sistemnoe-administrirovanie/linux-bash-chto-eto» target=»_blank»]eternalhost.net[/mask_link]

    Оболочка Bash — шпаргалка для начинающих

    Обложка: Оболочка Bash — шпаргалка для начинающих

    В данной шпаргалке затрагиваются следующие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.

    Оболочка Bash: введение

    Оболочка, или шелл (shell) — это программа, в нашем случае названная «bash», что является сокращением от Bourne Again Shell. Оболочка принимает ваши команды и передаёт их операционной системе. Для взаимодействия с системой используются терминалы, такие как gnome-terminal, eterm, nxterm и т. п.

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

    pwd

    Команда pwd , сокращение от print working directory, отображает текущее местоположение в структуре каталогов.

    cd

    Команда cd позволяет перейти в новый каталог.

    Синтаксис Объяснение
    cd Перемещение в домашний каталог
    cd ~ Перемещение в домашний каталог
    cd .. Перемещение на один уровень выше
    cd — Перемещение в предыдущий каталог
    cd Directory1 Перемещение в каталог Directory1
    cd Directory1/Directory2 Перемещение в каталог Directory2 по указанному пути

    mkdir

    Команда mkdir создаёт новый каталог в текущем каталоге.

    Основные команды

    man

    Команда man отображает руководства по командам. Например, следующая команда выдаст всю информацию о команде cat :

    $ man cat

    cat

    Команда cat считывает файл, переданный как аргумент, и выводит его содержимое по стандартному каналу вывода. Передача нескольких файлов в виде аргумента приведёт к выводу конкатенированного содержимого всех файлов.

    echo

    Команда echo выводит свои аргументы по стандартному каналу вывода.

    $ echo Hello World Hello World

    Если вызвать echo без аргументов, будет выведена пустая строка.

    Команда head читает первые 10 строк любого переданного текста и выводит их по стандартному каналу. Число выводимых строк можно изменить:

    $ head -50 test.txt

    tail

    Команда tail работает аналогично команде head , но читает строки с конца:

    $ tail -50 test.txt

    Также можно просматривать добавляемые к файлу строки в режиме реального времени при помощи флага -f :

    $ tail -f test.txt

    less

    Команда less позволяет перемещаться по переданному файлу или куску текста, причём в обоих направлениях.

    $ less test.txt $ ps aux | less

    Подробнее о назначении символа | будет рассказано ниже в разделе команды history .

    Обычные сочетания клавиш Описание
    G Перемещает в конец файла
    g Перемещает в начало файла
    :50 Перемещает на 50 строку файла
    q Выход из less
    /searchterm Поиск строки, совпадающей с ‘searchterm’, ниже текущей строки
    / Перемещает на следующий подходящий результат поиска
    ?searchterm Поиск строки, совпадающей с ‘searchterm’, выше текущей строки
    ? Перемещает на следующий подходящий результат поиска
    up Перемещает на одну строку выше
    down Перемещает на одну строку ниже
    pageup Перемещает на одну страницу выше
    pagedown Перемещает на одну страницу ниже

    true

    Команда true всегда возвращает ноль в качестве выходного статуса для индикации успеха.

    false

    Команда false всегда возвращает не-ноль в качестве выходного статуса для индикации неудачи.

    $? — это переменная, которая содержит выходной статус последней запущенной команды. Под статусом обычно понимается код возврата программы. 0 означает успешное выполнение программы, любое значение большее 0 отражает тот факт, что в процессе выполнения возникли некоторые ошибки. Кстати, именно поэтому в bash истинной (true) считается 0, а все, что не 0 — ложью (false):

    $ true $ echo $? 0 $ false $ echo $? 1

    grep

    Команда grep занимается поиском переданной строки в указанном файле:

    $ cat users.txt user:student password:123 user:teacher password:321 $ grep ‘student` file1.txt user:student password:123

    grep также может принимать несколько файлов и регулярных выражений для уточнения формата текста.

    Обычные флаги Описание
    -i Отключение чувствительности к регистру
    -r Рекурсивный поиск по директориям
    -w Поиск только целых слов
    -c Вывод количества найденных элементов
    -n Вывод всей строки, содержащей запрос
    -v Вывод инвертированного совпадения

    Также можно ознакомиться с руководством по regex. У нас на сайте тоже есть руководство по «регуляркам» в Python для новичков.

    sed

    Команда sed — это потоковый редактор, преобразующий входные текстовые данные. Обычно её используют для замены выражений так: s/regexp/replacement/g . Например, следующий код заменит все слова «Hello» на «Hi»:

    $ cat test.txt Hello World $ sed ‘s/Hello/Hi/g’ test.txt Hi World

    Также вы можете ознакомиться с руководством по sed.

    history

    Команда history выводит историю командной строки. Обычно её используют вместе с командой grep для поиска конкретной команды. Например, следующий код найдёт все команды, содержащие строку g++ :

    $ history | grep g++ 155 g++ file1.txt 159 g++ file2.txt

    Здесь также используется символ | — это так называемый конвейер (pipe). Благодаря ему можно перенаправлять вывод одной команды на вход другой — таким образом в примере выше вся история, которая в обычном режиме выводится командой history прямо в вывод терминала, будет перенаправлена в grep в качестве входных данных. Мы не увидим вывода команды history , но увидим вывод команды grep .

    Это может быть довольно сложно для понимания без практики, поэтому поэкспериментируйте самостоятельно, например с командами ls , history , ps (описана ниже), перенаправляя их вывод в grep , sed или less , например.

    export

    Команда export устанавливает переменные окружения для передачи дочерним процессам. Например, так можно передать переменную name со значением student :

    $ export name=student

    ps

    Команда ps выводит информацию о запущенных процессах.

    $ ps PID TTY TIME CMD 35346 pts/2 00:00:00 bash

    Выводится четыре элемента:

    • ID процесса (PID),
    • тип терминала (TTY),
    • время работы процесса (TIME),
    • имя команды, запустившей процесс (CMD).

    awk

    Команда awk находит и заменяет текст в файлах по заданному шаблону: awk ‘pattern ‘ test.txt

    wget

    Команда wget скачивает файлы из Сети и помещает их в текущий каталог.

    $ wget https://github.com/mikeizbicki/ucr-cs100

    nc

    Команда nc — это утилита для отладки сети. Также можно ознакомиться с руководством по nc.

    ping

    Команда ping тестирует сетевое подключение.

    $ ping google.com PING google.com (74.125.224.34) 56(84) bytes of data. 64 bytes from lax17s01-in-f2.1e100.net (74.125.224.34): icmp_req=1 ttl=57 time=7.82 ms — google.com ping statistics — 1 packets transmitted, 1 received, 0% packet loss, time 8ms rtt min/avg/max/mdev = 7.794/8.422/10.792/0.699 ms

    Статистика в конце показывает количество подключений, совершённых до завершения команды, и время их выполнения.

    git

    Git — это популярная система контроля версий. Также можно ознакомиться с руководством по git и нашими материалами.

    Переменные окружения

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

    Переменная PATH содержит список каталогов, в которых система ищет исполняемые файлы.

    Devops-инженер МТС , Санкт-Петербург, Москва, можно удалённо , По итогам собеседования

    Переменная HOME содержит путь к домашнему каталогу текущего пользователя.

    Коннекторы

    Коннекторы позволяют запускать несколько команд одновременно.

    Коннектор Описание
    Первая команда исполняется всегда, вторая — только в случае успешного завершения первой
    || Первая команда исполняется всегда, вторая — только в случае неудачного завершения первой
    ; Команды исполняются всегда

    $ true echo Hello Hello $ false || echo Hello Hello $ echo Hello ; ls Hello test.txt file1.txt file2.txt

    Конвейеры

    Конвейеры, или пайпы, позволяют соединять входные и выходные каналы различных команд. В следующем примере вывод команды ls будет передан в head , и в результате будет напечатано лишь 10 первых элементов.

    $ ls -l | head

    Перенаправление ввода/вывода

    Перенаправление вывода

    Для стандартного перенаправления вывода используются символы > и >> .

    Например, этот код передаст вывод ls в файл, а не на экран:

    $ ls > files.txt $ cat files.txt file1.cpp sample.txt

    Если файл не существует, он создаётся, а если существует, то перезаписывается. Во избежание перезаписи стоит использовать команду >> — она дописывает данные в конец файла.

    Перенаправление ввода

    $ cat files.txt c b $ sort < files.txt b c

    Команда sort выводит содержимое файла на экран, поскольку мы не перенаправили выход. Это можно сделать так:

    $ sort < files.txt >files_sorted.txt

    Продвинутое перенаправление

    Добавление приводит к перенаправлению как стандартного потока выхода, так и потока ошибок. Например, файл test.cpp выведет строку stdout в cout и строку stderr в cerr .

    $ g++ test.cpp $ ./a.out > .

    Имя Дескриптор Описание
    stdin Стандартный поток ввода
    stdout 1 Стандартный поток вывода
    stderr 2 Стандартный поток вывода ошибок

    Например, для перенаправления stderr в test.txt нужно сделать следующее:

    $ g++ test.cpp $ ./a.out 2> test.txt stdout $ cat test.txt stderr

    Права доступа

    Команда ls -l выводит много информации о правах доступа к каждому файлу:

    $ ls -l test.txt -rw-rw-r— 1 user group 1097374 January 26 2:48 test.txt

    Вывод в примере Описание / возможные выводы
    Тип файла:
    — файл
    d каталог
    rw- Права доступа владельца файла
    rw- Права доступа членов группы-владельца файла
    r— Права доступа прочих пользователей
    user Имя владельца файла
    group Имя группы-владельца файла

    chmod

    Команда chmod изменяет права доступа файла. Вот типичные сочетания флагов для изменения прав конкретных пользователей:

    Буква Пользователь
    u Владелец
    g Член группы
    o Прочие пользователи
    a Все пользователи

    Вы можете вызвать chmod с описанием действий над конкретным файлом. Символ — обозначает удаление прав, символ + — добавление. Следующий пример сделает файл доступным для чтения и записи владельцу и группе:

    $ chmod ug+rw test.txt $ ls -l test.txt -rw-rw—- 1 user group 1097374 January 26 2:48 test.txt

    Кроме того, chmod можно использовать с восьмеричными числами, где 1 — это наличие прав, а 0 — отсутствие:

    rwx = 111 = 7 rw- = 110 = 6 r-x = 101 = 5 r— = 100 = 4

    Следующая команда сработает так же, как и предыдущая:

    $ chmod 660 test.txt

    Сочетания клавиш

    Сочетание Описание
    CTRL-A Перемещение курсора в начало строки
    CTRL-E Перемещение курсора в конец строки
    CTRL-R Поиск по истории
    CTRL-W Вырезать последнее слово
    CTRL-U Вырезать всё до курсора
    CTRL-K Вырезать всё после курсора
    CTRL-Y Вернуть последнюю вырезанную строку
    CTRL-_ Отмена
    CTRL-L Очистка экрана терминала

    Источник: tproger.ru

    Синтаксис Bash для начинающих. Интерпретатор Bash

    Linux_Deep_30.9-5020-170bb4.png

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

    Bash — популярный командный интерпретатор, используемый в юниксоподобных системах, например, в GNU/Linux. Это программа, которую называют оболочка либо шелл (shell), а само название «bash» является сокращением от «Bourne Again Shell». Интерпретатор Bash принимает ваши команды, передавая их операционной системе. Чтобы осуществлялось взаимодействие с ОС, применяются терминалы (gnome-terminal, nxterm и прочие).

    В ОС «Линукс» каталоги и файлы имеют иерархическую организацию, т. е. существует начальный каталог, который называется корневым. В этом каталоге содержатся подкаталоги и файлы, в свою очередь содержащие свои подкаталоги и файлы.

    pwd

    Команда pwd (print working directory) служит для отображения текущего местоположения в структуре каталогов.

    cd

    Даёт возможность перейти в новый каталог.

    1-20219-90b95c.jpg

    mkdir

    Служит для создания нового каталога в текущем каталоге.

    Основные команды

    Команда интерпретатора Bash man

    Отображает руководства по командам. К примеру, последующая команда выдаст вам все данные о команде cat :

    $ man cat

    Команда интерпретатора Bash cat

    Cчитывает файл, переданный в качестве аргумента, с выводом его содержимого по стандартному каналу вывода. При передаче нескольких файлов в виде аргумента происходит вывод конкатенированного содержимого всех файлов.

    Команда интерпретатора Bash echo

    Осуществляет вывод своих аргументов по стандартному каналу вывода.

    $ echo Hello World Hello World

    При использовании без аргументов выводится пустая строка.

    Команда интерпретатора Bash head

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

    $ head -50 test.txt

    Команда интерпретатора Bash tail

    Работает аналогично head , однако читает строки с конца:

    $ tail -50 test.txt

    Дополнительно есть возможность просматривания добавляемых к файлу строк в режиме реального времени, используя флаг -f :

    $ tail -f test.txt

    Команда интерпретатора Bash less

    Позволяет перемещаться куску текста либо переданному файлу в обоих направлениях.

    $ less test.txt $ ps aux | less

    Кстати, о символе | мы расскажем ниже в блоке про команду интерпретатора Bash history .

    2-20219-24da11.jpg

    Команды интерпретатора Bash true и false

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

    $? — это переменная, содержащая выходной статус последней запущенной команды. Выходной статус — код возврата программы. В нашем случае 0 будет означать успешное выполнение программы, а любое значение, которое больше нуля, будет отражать факт возникновения ошибок в процессе выполнения. Кстати, именно по этой причине в интерпретаторе Bash истиной (true) считается 0, а ложью (false) — всё, что не ноль.

    $ true $ echo $? 0 $ false $ echo $? 1

    Команда интерпретатора Bash grep

    Служит для поиска переданной строки в указанном файле:

    $ cat users.txt user:student password:123 user:teacher password:321 $ grep ‘student` file1.txt user:student password:123

    Кроме того, может принимать несколько регулярных выражений и файлов для уточнения формата текста.

    3-20219-7a81b0.jpg

    Команда интерпретатора Bash sed

    Потоковый редактор, который преобразует входные текстовые данные. Используется для замены выражений следующим образом: s/regexp/replacement/g . К примеру, в следующем коде произойдёт замена всех слов «Hello» на «Hi»:

    $ cat test.txt Hello World $ sed ‘s/Hello/Hi/g’ test.txt Hi World

    Команда интерпретатора Bash history

    Выводит историю командной строки. Часто используется совместно с grep при поиске конкретной команды. В коде ниже будут найдены все команды, которые содержат строку g++:

    $ history | grep g++ 155 g++ file1.txt 159 g++ file2.txt

    Кстати, здесь тоже можно увидеть символ | — это конвейер (pipe). С его помощью происходит перенаправление вывода одной команды на вход другой. Так, в вышеописанном примере вся история (в обычном режиме она выводится с помощью history непосредственно в вывод терминала), перенаправляется в grep в качестве входных данных. То есть мы не увидим вывод команды history , зато увидим вывод команды grep .

    Команда интерпретатора Bash export

    Устанавливает переменные окружения для их передачи дочерним процессам. Допустим, так мы можем передать переменную name , имеющую значение student :

    $ export name=student

    Команда интерпретатора Bash ps

    Выводит данные о запущенных процессах.

    $ ps PID TTY TIME CMD 35346 pts/2 00:00:00 bash

    В результате выведутся 4 элемента: — PID (ID процесса), — TTY (тип терминала), — TIME (время работы процесса), — CMD (имя команды, запустившей процесс).

    Команда интерпретатора Bash awk

    Находит и меняет текст в файлах на основании заданного шаблона: awk ‘pattern ‘ test.txt

    Команда интерпретатора Bash wget

    Закачивает файлы из интернета, помещая их в текущий каталог.

    $ wget https://github.com/mikeizbicki/ucr-cs100

    Команда интерпретатора Bash nc

    Утилита для отладки сети. Вот руководство.

    Команда интерпретатора Bash ping

    Служит для тестирования сетевого подключения.

    $ ping google.com PING google.com (74.125.224.34) 56(84) bytes of data. 64 bytes from lax17s01-in-f2.1e100.net (74.125.224.34): icmp_req=1 ttl=57 time=7.82 ms — google.com ping statistics — 1 packets transmitted, 1 received, 0% packet loss, time 8ms rtt min/avg/max/mdev = 7.794/8.422/10.792/0.699 ms

    Статистика в конце отображает число подключений, которые были совершены до завершения команды. Также отображается время их выполнения.

    Статья написана специально для курса по Linux на основании материалов Bash-Cheatsheet.

    Источник: otus.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru