Выход из тени: 6 малоизвестных команд Linux

Я уже писал о том, как работать с последовательным портом в Windows. Теперь созрела необходимость написать программу для обмена данными по последовательному каналу.
Работать с последовательным портом в Linux несколько сложнее чем в Windows.

Как запустить по расписанию команду?

Для редактирования расписания планировщика cron выполните:

crontab -e

Формат строк расписания имеет вид:

минута час день месяц день_недели команда

Минута — время в минутах от 0 до 59

Час — от 0 до 23 День — день месяца от 1 до 31 Месяц — от 1 до 12 либо буквенные обозначения jan — dec День недели — от 0 до 6 (0 — воскресенье) или sat — sun Команда — строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд.

Значения минут, часов, дней можно указывать следующим образом: Значение — число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений

Несколько значений — допускается указывать несколько значений через запятую, например 2,14,22 Диапазон значений — указывается через дефис, например 2-10 Шаг значений — указывается через дробь, в знаменатель которой ставится шаг, например */3 — каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.

Рассмотрим следующий пример записи:

0 8-19/2 * * 1 /home/tvs/test01

Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт test в домашнем каталоге пользователя tvs.

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

* 10-15 * * * /home/tvs/test1 Данная строка приведет к запуску скрипта каждую минуту в диапазоне с 10 до 15 часов. Правильно будет:

0 10-15 * * * /home/tvs/test1

Данная запись позволит запускать скрипт в начале каждого часа указанного диапазона.

Кроме даты можно использовать ряд специальных строк:

@reboot — выполнять команду при перезагрузке @yearly или @annually — выполнять 1 января, аналогично записи: "0 0 1 1 * " @monthly — выполнять 1 числа каждого месяца, аналогично "0 0 1 * * " @weekly — выполнять каждое воскресенье, равносильно "0 0 * * 0" @daily или @midnight — ежедневно в полночь,"0 0 * * * " @hourly — раз в час, "0 * * * * "

Читайте также:  Настройка сервера для сайта — инструкция от Tproger

Так для ежедневного исполнения нашего скрипта каждую полночь можно написать:

@midnight /home/tvs/test1

Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя.

Для системных и административных задач предусмотрен файл /etc/crontab. Синтаксис записей в нем отличается наличием дополнительного значения — пользователя, от чьего имени будет запущено задание:

минута час день месяц день_недели пользователь команда

Пример такой записи:

0 19 * * 1-5 root /etc/backup

Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт/etc/backup от имени пользователя root.

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

SSH, Python, Vim, инструменты компиляции

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

В Cygwin имеется полноценный SSH клиент, который позволяет подключаться к удалённым системам и даже генерировать SSH ключи. То есть вы можете использовать Cygwin для подключения к вашим удалённым серверам или другим системам Linux — Cygwin может заменить сторонние клиенты SSH, которые не всегда удобны

В Cygwin уже присутствует Python — вы можете начать осваивать данный язык без установки в Windows.

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

Имеется Git — обновления своих репозиториев Git, либо можно использовать просто для скачивания (клонирования) репозиториев других разработчиков.

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

В пакетах можно увидеть PHP, веб-сервер и многое другое.

whiptail

Классическое окно whiptail с сообщением в терминале

Интересовались ли вы когда-нибудь, как создаются эти милые всплывающие сообщения? Конечно же, с помощью whiptail. Это полезная специализированная утилита для отображения диалоговых окон непосредственно внутри терминала. Возможно, вы обратили внимание, что этот же стиль используется как в процессе установки Ubuntu, так и при других распространенных установках, выполняемых из командной строки.

Whiptail широко доступен и встроен во многие дистрибутивы для быстрого и простого использования. Эта утилита предоставляет большой выбор различных типов окон и полей для ввода данных:

whiptail
  • окна сообщений;
  • окна ввода произвольного текста;
  • окна ввода пароля;
  • окна с выбором “да”/“нет”;
  • окна меню с множественным выбором;
  • … и другие варианты!
Читайте также:  Android Pay теперь добавлен и в Yandex Деньги

С помощью whiptail попробуем создать в командной строке простое окно с выбором “yes”/“no”:

whiptail —yesno «would you like to continue?» 10 40

Этот случай применения whiptail с вариантом —yesno не вызывает никаких сложностей. Вы передаете тип окна, его размер и текст сообщения для вывода на экран. В итоге должен получиться подобный результат:

Окно с выбором “yes”/“no”, созданное с помощью whiptail

whiptail

Чтобы увидеть возвращаемое значение при выборе “yes” или “no”, можно вывести в консоль результат последней выполненной команды. Если вы просто введете echo $?, то увидите либо 0 в случае “yes’’, либо 1 при выборе “no”. Это можно легко включить в сценарий командной строки следующим образом: 

#!/bin/bash whiptail —yesno «would you like to continue?» 10 40 RESULT=$? if [ $RESULT = 0 ]; then echo «you clicked yes» else echo «you clicked no» fi

Команды консоли Ubuntu

В Ubuntu команды используются для выполнения разных задач. Посмотреть список всех команд и дополнительную информацию вы можете в документации Ubuntu.

Мы рассмотрим основные команды терминала Ubuntu, с которыми сталкивается каждый пользователь:

Команда ls

Отображает список всех файлов и папок в той директории, в которой вы находитесь.

Команда cd

Переходит в другую указанную директорию или папку.

Команда cp

Копирует файлы и папки в любое место файловой системы.

Команда mv

Перемещает файлы и папки в любое место файловой системы.

Команда rm

Удаляет файлы и папки.

Команда mkdir

Создаёт новую пустую директорию.

Команда cat

Отображает содержимое файла в консоли.

Команда nano и команда vim

Открывают текстовые редакторы nano и vim, в которых можно редактировать файл прямо в консоли.

Лучшие редакторы bash, доступные онлайн

Погодите-ка! А разве терминалы Linux недостаточно хороши для bash-скриптов? Вполне! Но создавать bash-скрипты в редакторах терминала, а затем выполнять их не так удобно, как просто использовать онлайн-редактор bash.

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

Лучшие редакторы bash, доступные онлайн

Bash-компилятор Tutorialspoint

Tutorialspoint, о котором мы уже упоминали, кроме онлайн-терминала предлагает еще и bash-компилятор. Это очень простой компилятор, позволяющий выполнять bash-скрипты онлайн.

Читайте также:  Как автоматизировать некоторые команды Linux

JDOODLE

Лучшие редакторы bash, доступные онлайн

Еще один полезный онлайн-редактор для тестирования bash-скриптов называется JDOODLE. Он предлагает также и другие IDE, но мы здесь фокусируемся на bash. На странице редактора вы увидите, собственно, сам редактор, строку для ввода команд и поле для вывода результатов.

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

Лучшие редакторы bash, доступные онлайн

поддерживает совместную работу в режиме реального времени, но этот функционал пока в экспериментальной фазе.

На также можно найти онлайн-терминал Linux.

ShellCheck

Лучшие редакторы bash, доступные онлайн

Это интересный редактор bash, позволяющий находить баги в скриптах. Проект доступен на GitHub. ShellCheck можно установить локально на поддерживаемых платформах.

Rextester

Если вам нужен простейший bash-компилятор, выбирайте Rextester. Он также поддерживает и другие языки программирования.

Лучшие редакторы bash, доступные онлайн

Learn Shell

Как и Webminal, Learnshell предоставляет ресурсы как для изучения shell-программирования, так и для запуска (испытаний) кода. Обучающие ресурсы раскрывают и базовые, и продвинутые темы.

CoCalc

Лучшие редакторы bash, доступные онлайн

CoCalc предоставляет онлайн-среду с понятным программным стеком, которой могут пользоваться как профессионалы, так и учащиеся. Есть платная и бесплатная версии. В бесплатной у вас будет ограниченный доступ к функционалу, а также ограничения интернет-доступа. Кроме того, следует быть готовым к посредственной производительности сервера. Но если вы готовы подписаться платно, вы сможете работать над скриптами с коллегами (в режиме реального времени) и делать много всего другого при помощи высокопроизводительного сервера.

Конечно, подключить терминал Linux или запустить скрипт можно и без платной подписки. Если вас все будет устраивать, можно продолжить пользоваться бесплатной версией.

Мы рассказали вам о самых быстрых и надежных терминалах Linux и bash-редакторах, доступных онлайн. Теперь вы можете смело их изучать, экспериментировать и писать код! Если мы пропустили какой-то интересный онлайн-терминал или редактор, дополняйте наш список в комментариях!

Лучшие редакторы bash, доступные онлайн

Работа с архивами

Создаем архив командой “tar cf имя создаваемого ” и указываем какой файл будем архивировать. Например будем архивировать файл под названием “1”

Работа с архивами

tar cf 1

Так же можно создать архив сжатием Gzip

Работа с архивами

tart czf 1

А теперь давайте распакуем наш архив, который мы только что создали. Распаковывать мы будем последний архив. Предварительно я удалил файл под названием “1” .

Работа с архивами

tar xzf

Ну а теперь распакуем первый архив который мы создавали (tar cf ). Распаковывается он так же легко:

Работа с архивами

tar xf

Теперь давайте сожмем файл посредством gzip. Это делается “gzip имя файла”:

Работа с архивами

gzip 1

Точно так же легко его и разжать, достаточно выполнить команду “gzip -d имя файла”

Работа с архивами

gzip -d