Linux запустить из командной строки графическое приложение

Обновлено: 06.07.2024

Перемещение по тексту вниз и вверх с помощью стрелок и клавиш <PgUp> и <PgDn> . Выход нажатием клавиши <q> .

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

КомандаОписание
pwd текущий каталог
ls список файлов в текущем каталоге
cd сменить каталог
mkdir создать каталог
rmdir удалить каталог
cp копировать файл
mv переименовать/переместить файл
rm удалить файл
cat вывести содержимое файла на консоль
vim редактировать файл
find найти файл
which найти исполняемый файл
exit выйти из системы
shutdown -r now перезагрузить компьютер
shutdown -h now выключить компьютер

Прервать выполнение команд можно с помощью комбинации клавиш <Ctrl+C> .

Имена файлов

Имена файлов и каталогов могут иметь длину до 255 символов.
В именах нельзя использовать символ / и не рекомендуется использовать символы, имеющие специальное значение для командной оболочки:

Служебные (скрытые) файлы начинаются с символа . (точка) и ни чем более не отличаются от обычных файлов.

Типы файлов

Тип файлаОписаниеОбозначение (команда ls)
обычные файлыпоследовательность байтов (текст, исполняемые программы и т.п.)-
каталогиименованные наборы ссылок на другие файлыd
символические ссылкиссылки на другие файлыl
файлы физических устройств1. блочные устройства
2. символьные устройства
b
c
именованные каналыбуферы типа FIFO (First In - First Out, первым вошел - первым вышел) для обмена данными между программамиp
сокетыточки сетевого соединения двух программs
Каталоги

Каталог создается командой:

При создании каталога в нем создаются два псевдокаталога: . (точка) и .. (две точки).

ФайлОписание
. содержит ссылку на этот каталог
.. содержит ссылку на родительский каталог

Для удаления каталога служит команда:

Символические ссылки

Символическая ссылка создается командой:

ln -s имя_файла имя_ссылки

Для просмотра ссылки служит команда:

Ссылка удаляется так же, как и обычный файл:

Файлы физических устройств

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

mknod имя_устройства тип_устройства старший_номер младший_номер

АтрибутОписание
тип_устройства в Linux существуют блок-ориентированные и байт-ориентированные устройства. В блочные устройства (например, диски) данные передаются блоками и для обмена необходим буфер. В символьные устройства (например, принтер) данные передаются посимвольно и буфер не требуется.
b - блочное устройство
с - символьное устройство
старший_номер указывает тип устройства. Список старших номеров хранится в файле /proc/devices
младший_номер порядковый номер устройств одного типа (с одинаковым старшим номером)

Файлы наиболее часто используемых устройств.

ФайлУстройство
null пустое устройство
tty1 первая консоль
tty2 вторая консоль
tty3 третья консоль
tty4 четвертая консоль
tty5 пятая консоль
tty6 шестая консоль
tty7 седьмая консоль
pts/1 первый виртуальный терминал
mouse0 первая мышь
audio0 первая звуковая плата
ttyS0 первый последовательный порт (COM1 в MS-DOS)
lp0 первый параллельный порт
eth0 первая сетевая карта
fd0 первый дисковод для гибких дисков
cdrom привод CD-ROM
hda первый IDE-диск
sda первый SCSI-диск
ram виртуальный диск
random генератор псевдослучайных чисел
urandom генератор псевдослучайных чисел с учетом информации от клавиатуры и мыши

Именованные каналы

Именованный канал - это буфер типа FIFO (First In - First Out, первым вошел - первым вышел) для обмена данными между программами. Одна программа производит запись в именованный канал, а другая программа считывает эти данные из именованного канала.
Именованный канал создается командой:

Именованный канал удаляется так же, как и обычный файл:

Сокеты

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

Потоки ввода-вывода

Каждой выполняющейся программе (процессу) соответствуют три потока:

Ввод символов с клавиатуры заканчивается нажатием клавиши <Enter> и затем комбинации клавиш <Ctrl+D> .


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


Стандартный ввод перенаправляется символом < .

Для перенаправления стандартного вывода одной команды на стандартный ввод другой команды применяется символ | . Это так называемый конвейер команд. Благодаря этому средству можно создавать цепочки команд для обработки данных

Команды-фильтры

КомандаОписание
more имя_файла постранично выводит на экран текстовый файл. Перемещение вниз нажатием клавиши <ENTER> . Выход нажатием клавиши <q> .
less имя_файла выводит на экран текстовый файл. Позволяет перемещаться по тексту вниз и вверх с помощью клавиш стрелок и клавиш <PgUp> и <PgDn> .
grep фраза имя_файла выводит на экран строки из текстового файла, в которых присутствует указанная последовательность символов (фраза).

Шаблоны имен файлов

Для задания шаблонов поиска файлов могут использоваться стандартные символы: *, ?, [].

ШаблонОписание
*любое количество любых символов
?только один любой символ
[abc]любой символ из указанных в скобках
[a-c]любой символ из указанного в скобках диапазона символов
[a-cA-C0-9]любой символ из указанных в скобках диапазонов символов

Переменные окружения оболочки bash

Сценарии оболочки bash

Текстовый редактор vim

В текстовом редакторе vim существуют два режима работы: командный и редактирования. При запуске редактор находится в командном режиме, то есть можно вводить специальные команды.
Навигация по тексту
kвверх
jвниз
hвлево
lвправо
+на строку вниз
-на строку вверх
wна слово вперед
eна слово назад
0в начало строки
$в конец строки
Hв начало экрана
Lв конец экрана
10Gперейти к строке номер 10
$Gперейти к последней строке

Копирование текста
Вставка текста
pвставить в следующую строку
Pвставить в предыдущую строку

Удаление текста
xудалить символ в позиции курсора
Xудалить символ перед курсором
dwудалить слово
ddудалить строку
Dудалить от курсора и до конца строки

Отмена действий
uотмена введенной команды
Ctrl+Rвозврат отмененной команды

Поиск и замена текста
/образецискать текст вниз от курсора
?образецискать текст вверх от курсора
nповторить поиск в том же направлении
Nповторить поиск в обратном направлении
:%s/текст1/текст2/c найти текст1 и заменить на текст2 каждый раз спрашивая подтверждение

Для перехода в режим редактирования необходимо нажать клавишу i. Для возврата в командный режим нажать клавишу <Esc> .
Сохранение файла и выход
:w сохранить файл
:w новое_имя сохранить файл под новым именем
:w! новое_имя сохранить файл под новым именем, предварительно удалив одноименный файл
:q выйти из редактора
:wq сохранить и выйти
:q! выйти без сохранения

Начальные сведения о структуре файловой системы

КаталогОписание
/bin основные пользовательские программы
/sbin программы системного администрирования
/boot файлы загрузчика системы
/home каталоги и файлы пользователей
/dev файлы устройств
/etc файлы настроек
/lib системные библиотеки и модули ядра
/lost+found восстановленные части файловой системы после некорректного размонтирования
/media точка монтирования компакт-дисков и flash-карт
/mnt временные точки монтирования
/opt дополнительные пакеты программ
/proc виртуальная файловая система, содержащая файлы с информацией о выполняющихся в данный момент процессах
/root домашний каталог суперпользователя
/tmp временные файлы
/var каталоги данных, файлы журналов, почтовые ящики, очереди печати и т.д.
/usr программы, исходные коды, документация

Полный список основных каталогов можно получить из справочного руководства man hier .

Расположение основных конфигурационных файлов

Имя файлаНазначение
/etc/profile стандартные параметры окружения всех пользователей
/etc/bashrc параметры приглашения командной строки и псевдонимы команд. Информация может быть переопределена в пользовательском файле

/.bashrc можно задать значения переменных окружения. Например, в конце файла

/.bashrc могут быть записаны следующие строки:

Работа с протоколами системы

daapp

Можно, но надо знать как устроен обчный linux.
startx запускает X11, который запускает оконный менеджер,из которого запускают приложения.
Если хочется сделать, чтобы работало одно приложения и ничего другого запустить было нельзя, то в самом простом варианте надо вместо оконного менеджера запустить нужное приложение, но.
Если приложение открывает дополнительные окна, то будет очень неудобно с ним работать.
Или же выбрать из множества оконных менеджеров подходящий и настроить его на автоматический запуск и перезапуск одного приложения. Ну и надо не забыть про механизм выключения компа, это тоже надо повесить на какие-нибудь кнопки.

Вообще это называется "режим киоска".

Вот, "Режим киоска" - это ключевое слово, по которому дальше остается только погуглить. Спасибо! Еще небольшой вопрос к Вам, ответ на который я пока не смог найти: Любое приложение ли можно запустить в режиме киоска? К примеру я создам на питоне простенькое приложение с графическим интерфейсом, смогу ли я его так запустить?

daapp

Я как-то не могу придумать пример приложения, которое нельзя запустить в режиме киоска.

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

Я обычно пишу приложение на Tcl/Tk, в качестве оконного менеджера использую xmonad со своей конфигурацией. В приложение обязательно добавляю функцию "Выход" (приложение управляет аппаратурой, которая может сбойнуть, так что надо иметь возможность перезапустить приложение для чистоты проверки сбоя). Оконный менеджер перезапускает приложение, в случае, если оно вышло и умеет по комбинации кнопок запускать "sudo poweroff". Если нет клавиатуры, то функцию выключения питания добавляю в меню программы рядом с функцей "Выход".

Рекомендую также запускать вместе с программой какую-нибудь панельку (например, xmobar), на которой отображать время, статус сети и загрузку процессора - это позволяет определить, в случае необходимости, что зависла программа и почему (например, нагрузка на процессор).

В Windows, если у меня открыто окно консоли, введите winmine и нажмите Enter, появится Minesweeper, совершенно отдельный от программы cmd. Экземпляр Minesweeper не связан с командной строкой каким-либо известным мне способом, за исключением того, что родительский уровень Minesweeper установлен на этот экземпляр командной строки. Однако в Linux все по-другому.

В Linux, если у меня открыто окно консоли, введите emacs и нажмите enter, откроется Emacs, но, похоже, он связан с командной строкой. В частности, похоже, что я больше не могу использовать командную строку, пока этот экземпляр Emacs не будет закрыт. Есть ли способ реплицировать поведение Windows в Linux?

Добавить & к командной строке:

Это поместит emacs в фоновый режим и позволит вам продолжать использовать ваш терминал.

Обратите внимание, что это все равно оставит emacs как подпроцесс вашего терминала, и когда вы выйдете из терминала, он также выйдет из emacs. Чтобы избежать этого, введите:

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

Надеюсь это поможет.

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

Это ответ Натана Феллмана плюс перенаправление.

«&> /dev /null» перенаправляет как stdout, так и stderr на нулевое устройство. Последний амперсанд заставляет процесс работать в фоновом режиме. Скобки вокруг команды приведут к тому, что ваш "gui_app" будет запущен в подоболочке.

Это отсоединит процесс "gui_app" от консоли, с которой вы выполняете эту команду. Таким образом, даже если вы закроете окно, в котором запущен эмулятор родительского терминала, "gui_app" не закроется. Я запустил это, затем посмотрел на дерево процессов с помощью команды "pstree" и обнаружил, что приложение, запущенное таким образом, станет дочерним процессом для "init".

запустит приложение в фоновом режиме, но оно станет дочерним процессом консольного процесса и прекратит работу, когда вы закроете терминал. (Хотя выход из терминала через bash с помощью команды выхода или Ctrl-D позволит bash очиститься, передав фоновый процесс init.)

"nohup" работает так, как предложил NawaMan, но по умолчанию перенаправляет вывод и ошибку в файл. Как ответил JeffG, команда "disown" (если она доступна в оболочке) может отсоединить процесс от терминала после того, как вы запустили фоновый процесс:

(Кстати, все это относится к Bash. Я уверен, что другие оболочки имеют другие методы / синтаксис для этого.)

Если это простой вызов приложения с графическим интерфейсом - без сложных опций и тому подобного - кажется, что использование средства запуска, такого как "gmrun" или dmenu (предупреждение: громкий звук) также является хорошим вариантом. Свяжите это с комбинацией клавиш. Я пока не пользуюсь лаунчером, но попробовал эти два.

ПРИМЕЧАНИЕ. CarlF в комментариях к другим потокам сообщает, что приложения с графическим интерфейсом, запущенные с помощью метода gui_app &, не закрываются при выходе из родительского терминала. Я думаю, что мы закрывали терминал по-разному. Я закрывал окно, в котором работал эмулятор терминала. Я думаю, что он, возможно, выходил из эмулятора терминала через оболочку (команда выхода или Ctrl-D). Я проверил это и увидел, что выход через bash не останавливает запуск GUI как фонового процесса терминала, как говорит CarlF. Кажется, что bash передает фоновые процессы инициализации, когда ему дают возможность очистить. Фактически, это должен быть механизм, с помощью которого фоновый процесс, запущенный в подоболочке, передается init.

теперь можно предварительно просмотреть подсистема Windows для Linux поддержку для запуска приложений с графическим пользовательским интерфейсом Linux (X11 и вайланд) на Windows в полностью интегрированном рабочем столе.

WSL 2 позволяет приложениям с графическим интерфейсом Linux работать в собственном и естественном виде для Windows.

  • запуск приложений Linux из Windows меню
  • закрепление приложений Linux на панели задач Windows
  • используйте alt-tab для переключения между приложениями Linux и Windows
  • вырезать и вставить в приложениях Windows и Linux

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

снимок экрана: приложения Linux и Windows открыты на рабочем столе

Установка поддержки для приложений с графическим интерфейсом Linux

Предварительные требования

чтобы получить доступ к этой функции, необходимо включить Windows 11 сборки 22000 или более поздней версии . вы можете присоединиться к программе "предварительные оценки" Windows , чтобы получить последние предварительные сборки.

Установленный драйвер для GPU

Чтобы запустить приложения для графического пользовательского интерфейса Linux, сначала необходимо установить драйвер предварительной версии, соответствующий вашей системе. Это позволит использовать виртуальный графический процессор (GPU), чтобы можно было воспользоваться преимуществами визуализации OpenGL с аппаратным ускорением.

Новая установка — нет предыдущей установки WSL

Установите WSL и настройте имя пользователя и пароль для дистрибутива Linux, если вы еще этого не сделали.

Откройте окно командной строки с правами администратора.

нажмите кнопку пуск, введите PowerShell, щелкните правой кнопкой мыши Windows PowerShell, а затем выберите запуск от имени администратора.

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

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

Теперь вы готовы приступить к использованию приложений с графическим интерфейсом Linux на WSL!

Существующая установка WSL

Если на компьютере уже установлен WSL, можно выполнить обновление до последней версии, которая включает поддержку графического пользовательского интерфейса Linux, выполнив команду Update из командной строки с повышенными привилегиями.

нажмите кнопку пуск, введите PowerShell, щелкните правой кнопкой мыши Windows PowerShell, а затем выберите запуск от имени администратора.

Введите команду WSL Update:

Чтобы обновление вступило в силу, необходимо перезапустить WSL. Вы можете перезапустить WSL, выполнив команду shutdown в PowerShell.

Приложения с графическим интерфейсом Linux поддерживаются только с WSL 2 и не будут работать с дистрибутивом Linux, настроенным для WSL 1. Узнайте , как изменить дистрибутив с WSL 1 на WSL 2.

Запуск приложений с графическим пользовательским интерфейсом Linux

Для загрузки и установки популярных приложений Linux можно выполнить следующие команды в терминале Linux. При использовании другого дистрибутива, отличного от Ubuntu, он может использовать диспетчер пакетов, отличный от apt. После установки приложения Linux его можно найти в меню " Пуск " под именем распространения. Например: Ubuntu -> Microsoft Edge .

Обновление пакетов в дистрибутиве

Установка Gedit

Gedit является текстовым редактором по умолчанию среды GNOME Desktop.

Чтобы запустить файл bashrc в редакторе, введите: gedit

Установка ГИМП

ГИМП — это свободный графический редактор с открытым исходным кодом, который используется для обработки изображений и редактирования изображений, рисования произвольной формы, перекодирования между различными форматами файлов изображений и более специализированных задач.

Для запуска введите: gimp

Установка Наутилус

Наутилус, также известные как файлы GNOME, — это диспетчер файлов для рабочего стола GNOME. (аналогично Windows проводнике).

Для запуска введите: nautilus

Установка Влк

Влк — это бесплатный мультимедийный проигрыватель и платформа с открытым исходным кодом, который воспроизводит большинство мультимедийных файлов.

Для запуска введите: vlc

Установка приложений X11

Для запуска введите имя инструмента, который вы хотите использовать. Пример:

Установка Google Chrome для Linux

Чтобы установить Google Chrome для Linux, выполните следующие действия.

Для запуска введите: google-chrome

установка Microsoft Teams для Linux

установка Microsoft Teams для Linux:

Для запуска введите: teams

установка обозревателя Microsoft Edge для Linux

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

Читайте также: