Я уже писал о том, как работать с последовательным портом в 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 часов. Правильно будет:
- Команда watch Linux | Losst
- Команда WATCH в Linux | вебисторий
- Watch Live TV on Linux With Hypnotix …
- Команда screen Linux | Losst
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 * * * * "
Так для ежедневного исполнения нашего скрипта каждую полночь можно написать:
@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 попробуем создать в командной строке простое окно с выбором “yes”/“no”:
whiptail —yesno «would you like to continue?» 10 40
Этот случай применения whiptail с вариантом —yesno не вызывает никаких сложностей. Вы передаете тип окна, его размер и текст сообщения для вывода на экран. В итоге должен получиться подобный результат:
Окно с выбором “yes”/“no”, созданное с помощью 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
Перемещает файлы и папки в любое место файловой системы.
- Команда screen Linux | Losst
- Команда screen Linux | Losst
- Команда screen Linux | Losst
- Команда WATCH в Linux | вебисторий
Команда rm
Удаляет файлы и папки.
Команда mkdir
Создаёт новую пустую директорию.
Команда cat
Отображает содержимое файла в консоли.
Команда nano и команда vim
Открывают текстовые редакторы nano и vim, в которых можно редактировать файл прямо в консоли.
Лучшие редакторы bash, доступные онлайн
Погодите-ка! А разве терминалы Linux недостаточно хороши для bash-скриптов? Вполне! Но создавать bash-скрипты в редакторах терминала, а затем выполнять их не так удобно, как просто использовать онлайн-редактор bash.
Bash-редакторы из этого списка помогут вам с легкостью писать онлайн shell-скрипты, которые вы сможете сразу же запускать для проверки корректности их работы.

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

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

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

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

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

CoCalc предоставляет онлайн-среду с понятным программным стеком, которой могут пользоваться как профессионалы, так и учащиеся. Есть платная и бесплатная версии. В бесплатной у вас будет ограниченный доступ к функционалу, а также ограничения интернет-доступа. Кроме того, следует быть готовым к посредственной производительности сервера. Но если вы готовы подписаться платно, вы сможете работать над скриптами с коллегами (в режиме реального времени) и делать много всего другого при помощи высокопроизводительного сервера.
Конечно, подключить терминал Linux или запустить скрипт можно и без платной подписки. Если вас все будет устраивать, можно продолжить пользоваться бесплатной версией.
Мы рассказали вам о самых быстрых и надежных терминалах Linux и 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