Работа в командной строкой ОС Astra Linux

Командная строка является неотъемлемой частью любого дистрибутива Linux. Какие бы оконные оболочки мы не устанавливали, администраторы все-равно большинство задач будут решать через командную строку. Поэтому важно уметь пользоваться этим инструментом.

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

Дорога к командной строке

Для начала давайте найдем терминал в ОС Astra Linux 1.8 SE. Здесь и далее будем предполагать, что у той учетной записи, которую вы используете есть права на запуск терминала. В случае, если у вас используется режим киоска, скорее всего таких прав у вас не будет (иначе использование этого режима теряет смысл). Во всех остальных случаях заходим в систему, далее выбираем звездочку в левом нижнем углу экрана. Затем Инструменты и Терминал.  

b448b3187593f16d71dccfc249e7dd64.png

В командной строке мы всегда оказываемся с правами пользователя. Даже если у вас используется учетная запись, созданная при установке ОС и у нее есть права sudo на все команды, все равно здесь мы будем обычным пользователем.

Базовые команды

Для любого пользователя, знакомого с Ubuntu или Debian работа с командами в терминале Астры не составит никакого труда.

На рисунке ниже представлено то как выглядит приглашение, курсор, команда и собственно ее вывод.

2870f20cfbe500439dffecc512d38400.png

Здесь как и в любом другом дистрибутиве при желании внешний вид приглашения можно поменять в файле $HOME/.bashrc, указав новое значение для переменной окружения PS1.

dcc77d902fa4cda6210ab04f4a12f8df.png

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

Алиасы

Изменение внешнего вида командной строки задача не самая важная. А вот создание алиасов может существенно упростить выполнение задач администрирования. Поэтому об этом мы поговорим подробнее.

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

alias ll='ls -F'

Здесь при выполнении в командной строке ll у нас на экран будет выведен результат выполнения команды ls- F. Удобно, не надо запоминать синтаксис и писать длинную команду.

Для того, чтобы написать свой алиас необходимо открыть в редакторе $HOME/.bashrc, например с помощью nano:

$ nano $HOME/.bashrc

И вписать нужный алиас в формате:

alias имя_алиаса=’выполняемая_команда’

Например

alias la='ls -A'

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

В таком случае формат алиаса уже будет немного другой.

alias имя_алиаса=’(

выполняемая_команда1

выполняемая_команда2

)’

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

alias upd='(
cd "${program_to_update_dir}"
wget "https://somesite/update.sh"
chmod +x update.sh
./update.sh
rm update.sh
)'

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

Использование скриптов

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

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

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

Переменные в скриптах это именованное значение, содержащее информацию, хранящуюся в оперативной памяти. Есть предопределенные интерпретатором переменные (PATH, PWD, USER, HOME…) и определенные пользователем. Когда мы первый раз указываем переменную, ее имя указывается без знака $, при последующих обращениях этот знак должен присутствовать.

Например:

a=0

echo $a

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

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

for переменная in список
do
  команда1
  команда2
done

В примере ниже мы будем последовательно выводить на экран цифры от 1 до 5.

!/bin/bash

for number in 1 2 3 4 5
do
  echo $number
done
exit 0

Другой вариант использования циклов это счетчики. В примере ниже мы последовательно увеличиваем значение $i и выводим его на экран.

b9be40eab8966253b5587839eaf684c8.png

Обратите внимание, что в обоих примерах скриптов у нас последней строкой идет exit 0. Тем самым мы явно указываем статус завершения нашего скрипта. Статус равен нулю — успешное выполнение, любое другое значение — скрипт завершился с ошибками. Здесь Астра обработает эти статусы точно также как и любой другой дистрибутив Linux.

Еще один важный элемент любого скрипта это условия. Здесь все просто, с помощью команды if мы можем проверить истинность того, или иного условия.

171c7c17d0f882c6df3c1660fa3cba2d.png

Синтаксис этой команды довольно простой:

if условие
then
  Команды если истина
else
  Команды если ложь
fi

Вот пример небольшого скрипта:

e4ddd47db50ee9794c0fdd58dfb35937.png

Кроме if для проверки условий мы можем использовать также оператор case.

case слово in
  Шаблон_1)
    Команды 1;;
  Шаблон_2)
    Команды_2;;
  …
  *)
  Команда_по_умолчанию
esac

Оператор case позволяет удобнее чем if описать операции множественного выбора. Если не один из шаблонов не совпал, то выполняется блок по условию *).

В завершении рассмотрим еще циклы с условиями while и until. Цикл while в Bash позволяет многократно выполнять блок кода до тех пор, пока определённое условие остаётся истинным.

while [ условие ]
do
  команда1
  команда2
  команда3
done

9d7244df50df20cce71cded14c5602d6.png

В случае с until все наоборот, цикл будет выполняться пока условие неверно.

until [ условие ]
do
  команда1
  команда2
done

Также в циклах while и until можно использовать команды break и continue для выхода из цикла и завершения текущего прохода. 

Заключение

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

Статья подготовлена в преддверии старта курса «Расширенное администрирование Astra Linux». На странице курса вы сможете посмотреть записи прошедших вебинаров, а на будущие бесплатные вебинары можно зарегистрироваться в календаре мероприятий.

© Habrahabr.ru