Запуск графической оболочки linux bash

Bash-скрипты для графического интерфейса

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

Создавать графическое приложение долго и сложно. Другое дело программы для создания GUI скриптов. Предлагаемые 10 программ проверены на FreeBSD и на Linux и, несомненно, будут работать и на других Юниксовидных операционных системах.

Программа 1: Команда notify-send

Команда notify-send позволяет посылать на рабочий стол пользователя сообщения и предупреждения прямо из командной строки. Это позволяет информировать пользователя рабочей станции о каком-либо событии, либо выдавать на его рабочий стол любую информацию.

Для начала следует установить необходимый пакет:

Теперь, для примера, пошлем из командной строки простое предупреждение:

Вот что получится:

Вот пример другого кода с дополнительными опциями:

А вот что получится:

В приведенном примере кода:

  • -t 5000: Указывает время в миллисекундах (5 000 миллисекунд = 5 секунд)
  • -u low : Указывает уровень срочности (низкий=low, средний=normal, срочный=critical)
  • -i gtk-dialog-info : Указывает имя файла картинки для вывода (можно указывать путь к готовой картинке как -i /path/to/your-icon.png)

Подробнее об использовании утилиты notify-send читайте в мане этой программы.

Программа 2: команда tput

При помощи команды tput можно контролировать свойства терминала:

  • Передвигать курсор в любое место экрана
  • Получать информацию о терминале
  • Расцвечивать терминал (фон и передний план)
  • Включать жирный текст
  • Включать инверсию цвета (фон цвета текста, текст цветом фона)
  • И многое другое

Вот пример кода скрипта:

Вот что получится:

Подробнее о команде tput расскажут маны:

Программа 3: Команда setleds

Команда setled позволяет регулировать включение светодиодов на клавиатуре, например:

включит огонек на клавише NumLock, а команда

Вот остальные опции:

  • -caps : выключить CapsLock
  • +caps : включить CapsLock
  • -scroll : выключить ScrollLock
  • +scroll : включить ScrollLock

В мане команды setleds имеются дополнительные подробности.

Программа 4: Команда zenity

Команда zenity выводит на рабочий стол интерактивные диалоговые окна, а также возвращает ввод пользователя. Это позволяет предоставлять пользователю информацию, запрашивать у него информацию при помощи любых скриптов Bash. Вот пример графического клиента для сервиса whois для определенного домена.

Вот как будет выглядеть получившийся клиент:

Дополнительная информация по команде zenity:

Программа 5: Команда kdialog

Команда kdialog напоминает предыдущую программу zenity, но для KDE и приложений qt. С ее помощью вы можете создавать диалоговые окна. Например, если ввести в командную строку:

То получите такое окно:

Для знакомства с командой kdialog читайте руководство «Shell Scripting with KDE Dialogs» .

Программа 6: Dialog

Dialog ≈ это приложение, которое включается в скрипты Bash и создает виджеты в текстовом интерфейсе. Использует библиотеки curses или ncurses. Вот пример кода:

Читайте также:  Tor browser linux mint ���������

Подробности в man dialog.

О других программах создания виджетов

  • gmessage — GTK-клон программы xmessage;
  • xmessage — выводит сообщение или запрос в окне (графический аналог команды /bin/echo);
  • whiptail — создает диалоговые окна из скриптов;
  • python-dialog — модуль на Python для создания несложных текстовых интерфейсов.

Программа 7: Команда logger

Команда logger записывает информацию в системные логи, такие как /var/log/messages. Это дает возможность видоизменять логи из командной строки, например:

Вот что получится:

Программа 8: Команда setterm

Команда setterm позволяет управлять окном терминала. Вот, например, как заставить терминал стать черным через 15 минут, а через 60 минут отключиться:

А в этом примере продемонстрирован подчеркнутый текст в окне терминала:

Есть возможность включать и отключать курсор:

Детали в мане setterm.

Программа 9: smbclient: Отправка сообщений на рабочую станцию MS-Windows

Команда smbclient умеет общаться с серверами SMB/CIFS. Она способна дать сообщение как отдельным, так и всем пользователям сразу:

10: создание сетевых сокетов Bash

В оболочке Bash предусмотрена возможность создания сокета для получения информации через него. Необязательно применять команды curl или lynx для получения данных с удаленного сервера. Есть два специальных файла устройств, которые можно использовать для создания сетевых сокетов. Выдержка из man bash:

    /dev/tcp/host/port — если host означает существующее имя хоста или адрес Интернет, а порт — целочисленный номер порта, или имя сервиса, то bash попытается установить связь по протоколу TCP с соответствующим сокетом.

  • /dev/udp/host/port — если host означает существующее имя хоста или адрес Интернет, а порт — целочисленный номер порта, или имя сервиса, то bash попытается установить связь по протоколу UDP с соответствующим сокетом.
  • Эту технологию можно использовать для определения, открыт ли нужный порт на локальном или удаленном сервере, не прибегая к nmap или другим сканерам портов.

    Вы можете использовать скрипт:

    Выводом будет что-то вроде:

    Подробнее об этом здесь .

    Также можно использовать скрипт как клиент HTTP:

    Подробности в man bash.

    GUI скрипты и Cronjob

    Если для запуска скриптов вы используете cronjob , то должны согласовать локальный display/input сервис при помощи команды:

    export DISPLAY=[user’s machine]:0

    Например, для вызова каждый час скрипта /home/vivek/scripts/monitor.stock.sh, использующего команду zenity, введите:

    @hourly DISPLAY=:0.0 /home/vivek/scripts/monitor.stock.sh

    А у вас есть любимые GUI скрипты? Напишите нам в комментарии.

    Источник

    Используем графический интерфейс в bash-скриптах

    Многие пользователи Linux рано или поздно сталкиваются с bash-скриптами. До недавнего времени я не знал как можно использовать графический интерфейс в скриптах. Оказывается очень просто.

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

    Мы будем использовать библиотеку zenity (ещё есть kdialog ). У меня она была уже установлена. Набираем в консоли zenity —help или man zenity.

    Приведу основные ключи:
    —calendar Отобразить диалог для выбора даты
    —entry Отобразить диалог для ввода текста
    —error Отобразить диалог для вывода ошибки
    —info Отобразить диалог для вывода информации
    —file-selection Отобразить диалог для выбора файла
    —list Отобразить диалог со списком
    —notification Отобразить диалог уведомления
    —progress Отобразить диалог хода процесса
    —question Отобразить диалог с вопросом
    —warning Отобразить диалог с предупреждением
    —scale Отобразить диалог масштаба
    —text-info Отобразить диалог с текстовой информацией

    Теперь как использовать. Рассмотрим сразу пример. Для примера я написал маленький скрипт выключения компьютера по таймеру.

    Читайте также:  Windows format hard drive fat32

    #!/bin/bash
    vTime=$(zenity —scale —title=»Timer Shutdown» —text=»Turn off computer after:» —step=5 —min-value=0 —max-value=120);

    Рассмотрим его подробнее.

    vTime=$(zenity —scale —title=«Timer shutdown» —text=«Turn off computer after:» —step=5 —min-value=0 —max-value=120);

    zenity —scale —text=«Turn off computer after:» —step=5 —min-value=0 —max-value=120

    Эта строка отображает диалоговое окно с ползунком с минимальным значением равным 0, максимальным равным 120 (120 минут — 2 часа) и с шагом в 5 ( у меня почему то не работает).
    Результат присваивается значению vTime.

    if [ «$?» = «1» ]; then
    echo «Exit»; exit;

    Переменная $? содержит значение 0 если нажата кнопка ОК и 1 если — Cancel.

    vNow=$(date +’%T’);
    В переменную vNow текущее время.

    sudo /sbin/shutdown -h $vTime &
    Собственно запускаем команду на выключение. Здесь нужно обратить внимание на &. Он нужен для того чтоб следующая задача выполнялась не дожидаясь завершения предыдущей.

    zenity —notification —text=«The system is going down in $vTime minutes. Start at $vNow!»;

    Отобразим в трее значок с соответствующей надписью.

    if [ «$?» = «0» ]; then sudo /sbin/shutdown -c;
    И сделаем возможность прервать выключение по нажатию мишкой по значку. Если щелкнуть мышкой по значку zenity вернет значение 0 в переменную $.

    Осталось создать ярлык на запуск скрипта. Естественно нужно чтоб пользователь имел права на запуск команд через sudo. Также нужно в /etc/sudoers закоментить строку Defaults requiretty а можно заменить sudo на kdesudo.

    Здесь только ознакомление. Думаю кому будет интересно сами разберутся с остальными возможностями zenity. Удачи.

    Источник

    Как запустить графическую оболочку Ubuntu

    Если вы запустили систему в текстовом режиме или вовсе это сервер и на нём надо работать только через терминал, но на нём уже есть установлено графическое окружение, есть несколько способов его запустить.

    В этой статье мы постараемся разобраться как запустить графическую оболочку Ubuntu из терминала несколькими способами.

    Запуск графической оболочки Ubuntu

    Сначала можно посмотреть текущий уровень запуска в systemd. Для этого выполните:

    systemctl list-units —type target | egrep «eme|res|gra|mul» | head -1

    Если уровень запуска не graphical.target вы можете это исправить выполнив команду:

    sudo systemd isolate graphical.target

    После этого уровень запуска будет изменён на графический и графическая оболочка запуститься автоматически. Если вам нужно запустить менеджер входа вручную выполните такую команду:

    sudo systemctl start display-manager

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

    С более простыми графическими оболочками, вроде Openbox, Fluxbox, i3wm и даже XFCE может сработать ещё один метод, очень популярный ранее. Это команда startx. Однако чтобы она сработала в файле

    /.xinitrc надо прописать оболочку, которую вы хотите запустить. Например:

    if [ -d /etc/X11/xinit/xinitrc.d ] ; then
    for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
    [ -x «$f» ] && . «$f»
    done
    unset f
    fi
    feh —bg-fill

    /Загрузки/52453-sklon_holm_cerkvushka_sneg.jpg &
    lxpanel &
    exec openbox-session

    Блок if загружает все конфигурационные файлы из каталога /etc/X11/xinit*, сторчка, начинающаяся с feh добавляет фон рабочего стола, следующая — нижнюю панель, а последняя запускает сам openbox. Теперь запуск графической оболочки Ubuntu из консоли выполняется командой:

    Или если, на первом экране уже что-то запущено, можно использовать любой другой доступный, например, второй:

    Обратите внимание, что оболочку можно запустить только из консоли TTY, из терминала в графическом окружении это не сработает. Как видите, всё просто. Ваша оболочка запуститься в том же терминале, в котором вы выполнили startx.

    Читайте также:  Как полностью удалить node js windows

    Источник

    Запуск графической оболочки Linux Bash в Windows 10

    В первую очередь необходимо установить Linux Bash в Windows 10. Инструкция по установке Linux Bash описана в следующей статье:

    Для установки Ubuntu из Microsoft Store предлагаем выбрать версию Ubuntu 18.04 LTS в операционной системе Windows 10 May 2019 Update (версия 1903).

    Параметры установленного дистрибутива Linux расположены в меню Windows Параметры > Приложения > Приложения и возможности. Из списка установленных программ выберите Ubuntu 18.04 и нажмите на Дополнительные параметры.

    Так же открыть параметры Ubuntu 18.04 можно нажав правой кнопкой мыши по значку Ubuntu 18.04 в меню Пуск, в открывшемся меню выбираем Дополнительно > Параметры приложения.

    Параметры установленного Линукс дистрибутива в Windows 10 (версия 1903):

    Расположена файловая система Ubuntu на локальном диске С по следующему адресу:

    Таким образом можно получить доступ к нужным файлам и папкам Linux.

    После установки и первоначальной настройки системы нужно обновить систему и установить рабочее окружение.

    Обновление системы и установленных пакетов:

    Установка рабочего окружения и пакета программ Ubuntu (Gnome):

    Меняем права доступа к папке кэша:

    Далее в систему Windows 10 нам нужно установить приложение для обеспечения оконной системы Linux, которая отвечает за построение и отображение графического интерфейса.

    VcXsrv Windows X Server

    Таких программ несколько. Предлагаем выбрать активно развивающуюся программу VcXsrv Windows X Server. Устанавливаем с настройками по умолчанию.

    После запуска программы VcXsrv Windows X Server в окне Display Settings есть выбор отображения интерфейса оконной системы Linux. В нашем случае отлично работал вариант с большим оконным режимом (One large window). Там же в настройках Display number выставляем значение 0 (если возникнут проблем с запуском интерфейса, то значение нужно изменить, кроме того нужно будет изменить и значение в команде запуска).

    Далее оставляем настройки по умолчанию. По окончанию настройки у нас запустится пустое окно.

    Переходим в запущенную Linux систему, у нас она открыта в виде командной строки и вводим следующие команды:

    Для дальнейших запусков графического окружения нужно вводить команду выше, при этом программа VcXsrv Windows X Server должна быть предварительно открыта.

    Также создайте сценарий оболочки start-ubuntu (имя файла необязательно):

    Сделайте скрипт оболочки исполняемым:

    Запустить скрипт оболочки:

    Известные проблемы и их решения

    Из недостатков, с которыми столкнулись, отметим следующие: проблема с правами доступа различных приложений и системных функций. В качестве решения можно систему запустить с правами root. В целях безопасности не рекомендуется запускать систему с полными правами администратора, но если есть в этом необходимость, то запустить можно следующим образом: после того как открыли приложение VcXsrv и Linux систему, которая открылась в виде командной строки, нужно ввести команду: sudo su , затем вводим команду для запуска графического окружения:

    Теперь нам будут доступны ранее неработающие функции системы, например, русификация и работа некоторых расширений Gnome.

    Так же мы столкнулись с тем, что предустановленный браузер Firefox не устанавливает дополнения. Можно воспользоваться другим браузером, например, браузером Opera. В режиме суперпользователя запускать его нужно с помощью терминала командой: opera --no-sandbox.

    Система установится на английском языке, установка другого языка доступна только под системой с правами администратора (sudo su). Установить русский язык в систему можно следующими командами:

    После этого в настройках системы Ubuntu нужно выбрать и активировать установленный русский язык.

    Источник

    Оцените статью