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 могут быть записаны следующие строки:
Работа с протоколами системы
Можно, но надо знать как устроен обчный linux.
startx запускает X11, который запускает оконный менеджер,из которого запускают приложения.
Если хочется сделать, чтобы работало одно приложения и ничего другого запустить было нельзя, то в самом простом варианте надо вместо оконного менеджера запустить нужное приложение, но.
Если приложение открывает дополнительные окна, то будет очень неудобно с ним работать.
Или же выбрать из множества оконных менеджеров подходящий и настроить его на автоматический запуск и перезапуск одного приложения. Ну и надо не забыть про механизм выключения компа, это тоже надо повесить на какие-нибудь кнопки.
Вообще это называется "режим киоска".
Вот, "Режим киоска" - это ключевое слово, по которому дальше остается только погуглить. Спасибо! Еще небольшой вопрос к Вам, ответ на который я пока не смог найти: Любое приложение ли можно запустить в режиме киоска? К примеру я создам на питоне простенькое приложение с графическим интерфейсом, смогу ли я его так запустить?Я как-то не могу придумать пример приложения, которое нельзя запустить в режиме киоска.
Забыл отметить, что приложения для киоска надо писать достаточно аккуратно, чтобы оно не вызывало какие угодно системные приложения, вроде 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 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, можно найти с помощью командной строки на сайте предварительнойверсии. Выберите получить инструкции в разделе Установка командной строки на странице.
Читайте также: