Синтаксис Bash для начинающих. Интерпретатор Bash
В этой статье мы рассмотрим, что такое интерпретатор Bash. Выполним введение в оболочку Bash, изучим синтаксис интерпретатора и его основные команды.
Bash — популярный командный интерпретатор, используемый в юниксоподобных системах, например, в GNU/Linux. Это программа, которую называют оболочка либо шелл (shell), а само название «bash» является сокращением от «Bourne Again Shell». Интерпретатор Bash принимает ваши команды, передавая их операционной системе. Чтобы осуществлялось взаимодействие с ОС, применяются терминалы (gnome-terminal, nxterm и прочие).
Навигация
В ОС «Линукс» каталоги и файлы имеют иерархическую организацию, т. е. существует начальный каталог, который называется корневым. В этом каталоге содержатся подкаталоги и файлы, в свою очередь содержащие свои подкаталоги и файлы.
pwd
Команда
cd
Даёт возможность перейти в новый каталог.
mkdir
Служит для создания нового каталога в текущем каталоге.
Основные команды
Команда интерпретатора Bash man
Отображает руководства по командам. К примеру, последующая команда выдаст вам все данные о команде
$ man cat
Команда интерпретатора Bash cat
Cчитывает файл, переданный в качестве аргумента, с выводом его содержимого по стандартному каналу вывода. При передаче нескольких файлов в виде аргумента происходит вывод конкатенированного содержимого всех файлов.
Команда интерпретатора Bash echo
Осуществляет вывод своих аргументов по стандартному каналу вывода.
$ echo Hello World Hello World
При использовании без аргументов выводится пустая строка.
Команда интерпретатора Bash head
Читает лишь первые десять строк любого переданного текста, выводя их по стандартному каналу. Можно изменить количество выводимых строк:
$ head -50 test.txt
Команда интерпретатора Bash tail
Работает аналогично
$ tail -50 test.txt
Дополнительно есть возможность просматривания добавляемых к файлу строк в режиме реального времени, используя флаг
$ tail -f test.txt
Команда интерпретатора Bash less
Позволяет перемещаться куску текста либо переданному файлу в обоих направлениях.
$ less test.txt $ ps aux | less
Кстати, о символе
Команды интерпретатора 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
Кроме того, может принимать несколько регулярных выражений и файлов для уточнения формата текста.
Команда интерпретатора Bash sed
Потоковый редактор, который преобразует входные текстовые данные. Используется для замены выражений следующим образом:
$ cat test.txt Hello World $ sed 's/Hello/Hi/g' test.txt Hi World
Руководство по sed.
Команда интерпретатора Bash history
Выводит историю командной строки. Часто используется совместно с
$ history | grep g++ 155 g++ file1.txt 159 g++ file2.txt
Кстати, здесь тоже можно увидеть символ
Команда интерпретатора Bash export
Устанавливает переменные окружения для их передачи дочерним процессам. Допустим, так мы можем передать переменную
$ 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
Находит и меняет текст в файлах на основании заданного шаблона:
Команда интерпретатора 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.