Командная​ ​строка​ ​Ubuntu:​ ​основные​ ​команды​ ​bash

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

Переменные и путь

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

echo «hello» # вывод hello на консоль echo $USER # вывод значение переменной USER на консоль env # вывод список всех переменных окружения set # вывод список всех локальных переменных MY_FRIENDS=William # создать локальную переменную MY_FRIENDS MY_FRIENDS=$MY_FRIENDS:John:Anna # объединение значения ‘John’ и ‘Anna’ в MY_FRIENDS export MY_FRIENDS # сделать локальную переменную MY_FRIENDS переменной окружения unset MY_FRIENDS # удалить переменную MY_FRIENDS

Ещё один интересный инструмент  —  alias (псевдоним), сокращение для длинных команд. Посмотрим, как он строится:

alias clone_my_repo = «git clone » # создать псевдоним

Для тех, кто не знает, путь (Path) – это каталоги, в которых ОС ищет файлы для исполнения. С его помощью можно запустить файл, написав лишь название, даже не нужно знать его расположение. Кроме того, в путь можно добавить папку, а также найти каталог, где находится исполняемый файл, с помощью команд:

export PATH=$PATH:/home/john/myprogram # добавление каталога к пути /home/john/myprogram which nano # отобразить расположение исполняемого файла «nano» whereis nano # отобразить расположение исполняемого файла, справочных страниц, исходного кода и т.д. «nano»

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

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

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

Читайте также:  Как установить iOS 14 [Пошаговая инструкция]

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

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

<имя пользователя>@<имя компьютера>:<текущий каталог><знак>.

В примере:

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

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

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

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

echo $PATH

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

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

7. Bash также позволяет осуществлять запуск приложений в фоновом режиме. Для запуска в фоне, после ввода названия программы в конце следует добавить знак амперсанда (&).

Здесь строка «[2] 23258» – это номер и PID процесса. При этом nano находится в фоновом режиме. Вернуться к нему можно командой «fg» (добавив номер задачи, если их запущено несколько) или «jobs».

Читайте также:  Как управлять файлами в терминале Linux и на рабочем столе

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

Переход по директориям

В этом разделе вы познакомитесь с основными командами bash, которые позволят вам выполнять самые простые действия в командной строке. Команда cd позволяет переходить из одной директории в другую. При этом если вы используете команду без ключей, то попадете в домашнюю директорию; для того, чтобы перейти в какую-либо конкретную директорию, необходимо просто прописать ее путь, к примеру:

cd /home/users/dir1

Вы также можете указывать команду cd с определенными ключами:

cd ../.. — переход на две директории выше;

cd — — переход в предыдущую директорию (в которой вы были до перемещения в нынешнюю).

Команда pwd укажет путь той директории, в которой вы в данный момент находитесь.

Циклы. Цикл until-do.

Синтаксис

until TEST-COMMAND; do CONSEQUENT-COMMANDS; done # синтаксис для записи цикла в одну строкуОператор case

Оператор case всегда завершается ключевым словом esac.

case строка in шаблон) список операторов ;; [ шаблон) список операторов [;;] ] esac

Оператор case поочерёдно сравнивает строку с шаблонами. Если шаблон совпадает, то выполняется группа операторов, находящихся между шаблоном и специальными символами ";;". После выполнения всех строк управление передается операторам, находящимся за ключевым словом esac.

Пустой оператор

Пустой оператор ":" . Ничего не делает. Возвращает значение "0".

Функции

Функцию в shell можно определить двумя способами: при помощи оператора function или после имени функции написать открывающую и закрывающую круглые скобки. Тело функции располагается между фигурными скобками.

eval arg1 [arg2] … [argN]

Транслирует список аргументов, из списка, в команды.

Пример. Демонстрация команды eval

#!/bin/bash y=`eval ls -l` # Подобно y=`ls -l` echo $y # но символы перевода строки не выводятся, поскольку имя переменной не в кавычках. echo echo "$y" # Если имя переменной записать в кавычках — символы перевода строки сохраняются. echo; echo y=`eval df` # Аналогично y=`df` echo $y # но без символов перевода строки. # Когда производится подавление вывода символов LF (перевод строки), то анализ #+ результатов различными утилитами, такими как awk, можно сделать проще. exit 0getopts

Читайте также:  Как получить root права на Андроид 6.0

getopts — это встроенная в shell команда, позволяющая разобрать командную строку, передаваемую программе. Она понимает только параметры, написанные в стиле Что такое POSIX, т.е "-v -t -f file" и т.п.

trap — jбработка прерываний

Команда trap позволяет переопределить стандартную реакцию программы на получаемые сигналы. Бывает необходимо защитить выполнение программы от прерывания. Формат команды trap:

trap 'список команд' сигналы

Если в системе возникнут прерывания, чьи сигналы перечислены через пробел в "сигналы", то будет выполнен "список команд", после чего (если в списке команд не была выполнена команда "exit") управление вернется в точку прерывания и продолжится выполнение командного файла.

Наиболее часто приходится встречаться со следующими прерываниями, соответствующими сигналам:

0 выход из интерпретатора, 1 отбой (отключение удаленного абонента), 2 прерывание от <Del>, 9 уничтожение (не перехватывается), 15 окончание выполнения.

Например, если перед прекращением по прерываниям выполнения какого то командного файла необходимо удалить файлы в "/tmp", то это может быть выполнено командой "trap":

trap 'rm /tmp/* ; exit 1' 1 2 15

которая предшествует прочим командам файла. Здесь, после удаления файлов будет осуществлён выход "exit" из командного файла.

Команда "trap" позволяет и просто игнорировать прерывания, если "список команд" пустой. Так например, если команда "cmd" выполняется очень долго, а пользователь решил отключиться от системы, то для продолжения выполнения этой команды можно написать, запустив команду в фоновом режиме:

( trap '' 1; cmd )&RegExp регулярные выражения Bash

  • Регулярные выражения Bash
  • Что такое регулярные выражения?
  • RegExp