Как использовать команду Sleep в Linux для приостановки сценария Bash

Прочитав эту статью, вы узнаете что такое bash (стандартный командный интерпретатор линукс), научитесь обращаться со стандартными командами: ls, cp, mv… поймете назначение инодов, жестких и символических ссылок и многое другое.

Введение в терминал Linux

Моя бабушка называет любой терминал «терминатором», что добавляет антуража. На самом деле терминал (bash) — это всего лишь командная строка с гораздо более широким набором функций, если сравнивать с Windows. Почти любое действие можно выполнить командой из терминала, но далеко не любое действие можно выполнить через окружения пользователя.

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

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

Список команд в данной статье не является полным списком команд Linux. Во-первых, команд слишком много, чтобы перечислять их все, во-вторых, новичкам они не нужны, а профессионалы уже помнят их наизусть. Однако, не стоит расстраиваться, если у вас не получается запомнить команды — запоминание приходит с практикой. Чем чаще вы пользуетесь теми или иными командами, тем скорее вы их запомните.

Читайте также:  ТОП 10 решений если планшет не включается

Редактирование строки

Сочетание Действие
Alt+?, Tab+Tab Автодополнение команды или имени файла
Ctrl+u Удалить все символы от курсора до начала командной строки
Ctrl+k Удалить все символы от курсора до конца командной строки
Ctrl+w Удалить символы от курсора до пробела слева
Alt+Backspace Удалить символы от курсора до начала слова
Alt+d, Esc+d Удалить от курсора до конца слова
Ctrl+y Вставить символ, слово или текст, которые были удалены при помощи сочетаний клавиш, приведенных выше
Alt+y Пробежаться по буферу удалённых слов и вставить интересующий. Работает после нажатия Ctrl+y
Ctrl+h Удалить перед курсором один символ
Ctrl+d Удалить под курсором один символ
Alt+\ Удалить любое количество пробелов вокруг курсора
Ctrl+_ Откатить редактирование
Alt+r, Esc+r Отменить все изменения содержимого строки
Alt+c Превращает под курсором букву в заглавную и переводит курсор в конец слова
Alt+u Переводит все буквы от курсора и до конца слова в заглавные
Alt+l Переводит все буквы от курсора и до конца слова в нижний регистр
Alt+t Замена текущего слова под курсором на предыдущeе слово
Ctrl+t Замена символа перед курсором на предыдущий символ

eval перед “нормальным” кодом является NOP

$ eval a=b $ eval echo $a b

В приведенном выше примере первые утверждения eval не имеют никакой цели и могут быть устранены. eval бессмысленна в первой строке, потому что нет никакого динамического аспекта для кода, т.е. он уже разбирается в конечных строках кода bash, поэтому он будет идентичен нормальному выражению кода в сценарии bash. Второй eval тоже бессмыслен, потому что, хотя есть шаг анализа, переводящий $a в его литерал-эквивалент строки, нет никакой косвенности (например, без ссылки через строковое значение фактического имени bash или bash-проведенной переменной скрипта), поэтому он будет вести себя одинаково как строка кода без префикса eval.

Пример 2:

Вход в командную строку

Используя Ubuntu в качестве операционной системы, вы можете перейти к командной строке двумя путями, а именно через консоль или через терминал. Если вы хотите зайти в командную строку через терминал, то для этого необходимо нажать Ctrl+Alt+F(1-6) – в зависимости от выбранного номера (F1, F2…) вы попадаете в первую, вторую или другую по счету виртуальную консоль (они независимы и запускаются во время загрузки Ubuntu), каждая из которых имеет интерфейс командной строки. Если вы нажмете Ctrl+Alt+F7, то перейдете в седьмую виртуальную консоль, которая имеет графический интерфейс.

Что касается терминала, то это графическая программа, которая эмулирует консоль. Вы можете найти ее в меню, выбрав «Приложения», затем «Стандартные», а затем «Терминал», либо нажав сочетание клавиш Ctrl+Alt+T. Вы сможете выполнять команды, продолжая находиться в графическом интерфейсе. Также возможен вариант, когда вам необходимо подключиться к серверу, на котором установлена Ubuntu. В этом случае вам нужно воспользоваться специальной программой (например, puTTy): наберите нужный ip-адрес, а затем введите имя пользователя и пароль.

Примечание. При вводе пароля в командную строку он не высвечивается – вам нужно просто набрать пароль и нажать Enter. Если пароль введен правильно, вы сможете продолжить работу в командной строке.

Добавление разрешенных приложений пользователю

Для того чтобы дать разрешение пользователю выполнять приложение достаточно добавить символьный линк (ссылку) на это приложение. Этот линк следует разместить в его каталоге usr/bin. Например, добавим пользователю restricteduser возможность копировать файлы под своим именем на этот сервер, для этого надо выполнить следующую команду:

ln -s /usr/bin/scp /home/restricteduser/usr/bin/scp

1 ln s /usr/bin/scp /home/restricteduser/usr/bin/scp

Если есть необходимость выполнять команды с привилегиями пользователя root, то для этих целей как нельзя лучше подходит команда sudo. Выполните команду visudo и добавьте пользователя restricteduser и команды, которые разрешено запускать с привилегией root’а. Останется только сделать ссылку на эти команды в каталоге usr/bin.

Краткое описание всех полезных команд

Описание Команда
Идентификация выполняемых заданий. jobs jobs -l ps aux
Перевод команды или скрипта в приоритетный режим. command & /path/to/command & /path/to/script arg1 &
Перевод фонового задания в приоритетный режим. fg n %n
Перевод задания в фоновый режим без его отмены bg n %n &

Примечание: n — это id задания (id задания можно узнать, выполнив команду jobs).

Краткое описание всех полезных команд

P. S. Другие инструкции:

  • Чек-лист параметров безопасности сервера Windows/Linux
  • Настройка Linux-файрвола iptables: Руководство для начинающих
  • Вывод всех встроенных команд
  • Как настроить vsftpd на Ubuntu