Linux сделать окно активным

Обновлено: 20.05.2024

Лучшие оконные менеджеры Linux

Оконные менеджеры Linux используются для управления окнами приложений в системе. Например, когда вы запускаете любое графическое приложение, оно открывает своё окно. Для того, чтобы этим окном можно было двигать и оно выглядело красиво, в фоне работает менеджер, который отвечает за все эти функции.

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

Лучшие оконные менеджеры Linux

Не путайте оконные менеджеры с окружением рабочего стола. Окружения рабочего стола обычно содержат панели инструментов, обои, виджеты, папки и иконки. Также они обычно имеют отдельный набор библиотек и приложений, чтобы вам было удобнее работать за своим компьютером. А оконные менеджеры же только управляют окнами. В окружениях рабочего стола уже есть встроенные оконные менеджеры и компоновщики окон, которые позволяют рисовать и создавать окна отдельно.

Первый в нашем списке - i3. Это хорошо документированный и настраиваемый оконный менеджер. В этом менеджере пользователь может настроить всё как захочет, начиная от позиции открытого приложения, заканчивая собственным сочетанием клавиш. Преимущество i3 - вся конфигурация в текстовом виде, не нужно знать никаких языков, вроде LUA или Haskell.



Переключение между плавающими окнами выполняется с помощью Win+Shift+Space. Оконный менеджер активно развивается, а обнаруженные ошибки исправляются разработчиками. Также можно использовать терминал для выполнения нужных действий.

2. Awesome WM

Awesome WM - один из лучших оконных менеджеров для Linux, который использует асинхронную библиотеку XCB вместо Xlib. Оконный менеджер написан на C++. Его можно настроить, изменить стиль, внешний вид, а также настроить горячие клавиши. И всё это надо делать на языке LUA.



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

3. XMonad

XMonad идеально подойдёт для вас, если вы хотите иметь возможность расширять оконный менеджер на языке программирования Haskell. Вы не будете ограничены никакими запрограммированными шаблонами и сможете запрограммировать что угодно в конфигурации. Настройки по умолчанию очень просто изменить, а код программы всегда поддерживается чистым и безопасным. XMonad очень быстрый и легкий, поэтому будет работать даже в медленной системе.


Из особенностей можно отметить поддержку нескольких мониторов, а также, если вам не хватает какой-либо функции, то её можно добавить с помощью модулей.

4. Openbox

Openbox - это очень лёгкий и притом один из самых популярных оконных менеджеров для Linux. Он занимает всего 100 мегабайт оперативной памяти после загрузки. Он достаточно стабилен, и разработчики постоянно закрывают новые "дыры" и ошибки.


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

5. DWM

Этот оконный менеджер Linux входит в пакет программного обеспечения Suckles Suite. Обычно пользователи могут настраивать и расширять его возможности путём изменения исходного кода. Весь код dwm помещается меньше, чем в 2000 строк, поэтому он является примером очень чистого и читабельного кода. Кроме того, dwm очень лёгкий, имеет простой дизайн и потребляет мало ресурсов.


Простые настройки dwm и горячие клавиши хорошо продуманы, и это делает его одним из лучших оконных менеджеров. Вы можете группировать приложения и окна на рабочем столе. Статус бар-менеджера показывает информацию о Wi-Fi-соединении, уровне громкости и состоянии батареи.

6. Gala

Этот оконный менеджер работает на основе клиентской декорации GTK. У него простой, но в то же время продуманный дизайн, как будто использовались правила проектирования ElementaryOS.

Gala подходит для новичков. Он невероятно конфигурируемый и имеет все необходимые горячие клавиши для удобного использования. Для горячих углов можно назначить выполнение определённых задач или своих команд.


Также в Gala есть анимации и интересные эффекты. Вы можете добавлять их и удалять по мере необходимости. Оконный менеджер очень лёгкий и хорошо работает на слабом оборудовании, например хромбуках или старых ноутбуках. Gala стабилен. А ещё он считается одним из самых упоминаемых диспетчеров окон за всё время.

7. KWin

Легко настраиваемый оконный менеджер в окружении рабочего стола KDE. Но его можно использовать и в другой графической среде. Любые настройки можно поменять через графический интерфейс.


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

8. Fluxbox

Если вы ищете самый лёгкий оконный менеджер для Linux, тогда Fluxbox будет лучшим выбором для вас. На любом железе он будет работать очень быстро. А также он прост в использовании и настройке.


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

9. Musca

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


Окна распределяются по различным именованным группам, и вы можете очень просто переключаться между ними. Пользователь может создавать или удалять группы. Musca поддерживает несколько мониторов и может создавать группы окон автоматически.

10. SpectrWM

Этот менеджер окон очень похож на Xmonad. Но здесь используются файлы конфигурации в формате обычного текста. После изменения настроек можно пересчитать конфигурацию без перезагрузки окружения. Это позволяет пользователям видеть результаты изменений без перезагрузки менеджера. По умолчанию интерфейс очень простой.


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

11. HerbstluftWM

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

DevOps


Для настройки здесь используется скрипт на Bash, но в остальном здесь всё достаточно просто. Можно использовать разные шаблоны расположения, а также создавать шаблоны на лету. Также поддерживается использование двух мониторов.

12. Enlightenment

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


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

13. JWM


JWM - чрезвычайно лёгкий оконный менеджер. Он используется в качестве дисплейного менеджера по умолчанию в Puppy Linux. Он также идеально подойдёт для любого старого компьютера. Меню и окна открываются быстрее, чем в других менеджерах. Также JWM легко настраивается, вам не нужно для этого каких-либо знаний по программированию.

14. Window Maker


Дизайн Window Maker очень похож на графический интерфейс NeXT и пользователю будет удобно работать с ним. Оконный менеджер очень лёгкий и элегантный, поддерживает расширение с помощью различных док-панелей.

15. IceWM


IceWM - один из самых лёгких оконных менеджеров. Он занимает очень мало места на жёстком диске. Он быстрый и достаточно просто управляется с помощью клавиатуры. Также здесь есть множество настроек и тем оформления, которые вы можете использовать. А ещё поддерживается работа с несколькими мониторами.

16. Pantheon


Новички в Linux могут решить, что Pantheon создан для людей, которые раньше имели опыт использования MacOS. Это современный оконный менеджер с красивым дизайном. Здесь есть док-панель, которую можно использовать для запуска приложений. Программы можно отсортировать по категории или алфавиту.

17. XFWM


С помощью этого композитного менеджера вы можете очень просто разделить экран на части и разместить там окна. Здесь есть встроенная возможность привязки окон, а также есть множество тем оформления и возможность создавать новые темы. Можно настроить, где будут открываться новые окна: у края экрана или по центру.

18. Ratpoison


Ratpoison очень прост в конфигурации. На настройку понадобится намного меньше времени, чем для других менеджеров, поскольку он имеет очень простую структуру. Основные действия в программе выполняются с помощью клавиатуры, работы с мышью будет очень мало. Если нужно, вы можете создать несколько рабочих столов.

19. Compiz


куб рабочего стола Compiz

Compiz - старый оконный менеджер, который раньше очень часто использовался. Здесь есть ещё больше эффектов, чем у Kwin. Например, он известен таким эффектом, как куб рабочего стола. Также поддерживается расширение возможностей Compiz с помощью плагинов. Можно включить или отключить ту или иную возможность, включая или отключая её плагин. Процесс настройки очень прост - всё есть в специальной утилите.

20. Wayland


У этого оконного менеджера нет API-рисования. Пользователи Wayland получают дескриптор DRM-буфера, который работает, как указатель на графическую память. Для отрисовки изображений в Wayland используется графическая карта, а не процессор. Wayland сделает работу графической оболочки проще и уберёт многие ненужные вещи. Основная его цель - упростить графический стек ОС Linux. В будущем он будет использоваться вместо X-сервера во всех окружениях, но пока он находится в разработке.

Выводы

Есть три основных типа оконных менеджеров в Linux: стековые, тайлинговые и композитные. Композитные заботятся о 2D- и 3D-окружении. Стековые позволяют окнам перекрывать друг друга поверх фонового рисунка рабочего стола. А тайлинг гарантирует, что все окна будут видны одновременно и не будут перекрываться.

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

Похожие записи:

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Основные linux-команды для новичка

Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)

Содержание

Где я? Как понять, где находишься


Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.

Как понять, что находится в папке

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


Хотя лучше использовать команду сразу с флагом «l»:


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


У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».

См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)

Как перейти в другую директорию

С помощью команды cd:

Путь может быть абсолютным или относительным.

По абсолютному пути

Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).

Вставляем путь в командную строку после «cd»


Ну вот, мы переместились из домашней директории (обозначается как

) в /home/student/log.


По относительному пути

Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будут такой:


Если мне из надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:


Я не пишу /home/student/photo, так как я уже там.


В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается

/. Дальше вы уже можете указывать подпапки:


Эта команда будет работать отовсюду. И переместит нас в /home/user/log.

Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:


С автодополнением

Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:

(cd tab) Может, ты имел в виду папку 1?
(tab) Нет? Может, папку 2?
(tab) Снова нет? Может, папку 3?
(tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
(tab) У меня кончились варианты, поехали сначала. Папка 1?


cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).

cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.

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

Подняться наверх

Подняться на уровень выше:


Если нужно поднять на два уровня выше, то


И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.

Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ..\..», а в линуксе именно «cd ../..».

Как создать директорию

Используйте команду mkdir:


Можно и в другом месте создать папку:


Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.

Как создать файл

Командой touch:


Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.

Как отредактировать файл

Вот честное слово, лучше делать это через графический интерфейс!

Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:

  1. nano — более простая программа, рассчитана на новичков
  2. vim — более сложная, но позволяет сделать кучу всего


Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:

  • Ctrl+O — чтобы сохранить
  • Ctrl+X — для выхода


А вот с vim с этим сложнее. В него легко зайти:


Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?

Делюсь секретом, для выхода надо набрать:

  • :q — закрыть редактор
  • :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)

Исходно, когда мы открываем файл через vim, то видим его содежимое, а внизу информацию о файле:


Когда нажимаем двоеточие, оно печатается внизу:


Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда.

На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.

Если нужно выйти, сохранив изменения, используйте команду


Ну а про возможности редактирования см статьи ниже =)

См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать Esc

Как перенести / скопировать файл

Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?

Скопировать файл


Если мы находимся в директории /opt/app/log:


В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.

Можно сразу переименовать файл:


В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.

Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:


Никаких ошибок, система просто выполнила команду.

Скопировать директорию

Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:


Так в директории /home/olga появится папка «log».

Переместить файл

Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).


Можно использовать относительные и абсолютные пути:


Можно сразу переименовать файл:

Переместить директорию

Аналогично перемещению файла, команда mv

Как удалить файл

С помощью команды rm (remove):


Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:


Если нужно удалить папку, надо добавить флаг -r (recursive):


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


А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да. » (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):



Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!

Опция -v показывает имена удаляемых файлов:



Тут вы хотя бы можете осознать, что натворили )))

Как изменить владельца файла

Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.

Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.


Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:


В итоге был владелец root, а стал testbase. То, что надо!

Как установить приложение

Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:

  • yum — red hat, centos
  • dpkg, apt — debian

Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.

И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.



Ничего страшного, установите это приложение через yum:



Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:


И система заканчивает установку.

Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:


Как запустить приложение

Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.

Чтобы запустить скрипт, нужно указать полный путь к нему:


Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:


Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:


См также:
Запуск скрипта sh в Linux — подробнее о скриптах


Если же приложение запускается как сервис, то все еще проще:


Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:


Она добавит службу в автозапуск.

Как понять, где установлено приложение

Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?

Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):


Как создать архив

Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:



В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.

Для распаковки меняем флаг «c» на «x» и убираем «z»:



Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.

Давайте разберемся, что все эти флаги означают:

  • c — создать архив в linux
  • x — извлечь файлы из архива
  • v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
  • f — файл для записи архива
  • z — сжатие


Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:


Говорит, нет такого пакета:


Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:

Как посмотреть использованные ранее команды

Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!

Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:


Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).


Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.

Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.

См также:
История команд Linux — больше о возможностях history

Как посмотреть свободное место

Сколько места свободно на дисках


Сколько весит директория

Как узнать IP компьютера

Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.

Чтобы узнать IP машины, используйте команду:


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

Как узнать версию OS

Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?



На этой виртуалке стоит CentOs 7.

Если нужна версия ядра:

Как узнать, как работает команда

Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:



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

Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))

Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!

Если man у программы нет, используйте флаг -h (--help):

Как создать много тестовых папок и файлов

Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:


Вот и все, дальше можно играться с ними!


  • mkdir — создать директорию
  • touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)
  • — пробежится по всем числам от 0 до 100
  • — пробежится по всем буквам английского алфавита от A до Z


Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).

Ага, в домашней директории. Создам себе песочницу:


Вот в ней и буду творить!


А потом можно проверить, что получилось:


Как-то так! Имхо, полезные команды.

Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!

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

Как протестировать IOPS на Linux

Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.

Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.

Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.

Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.


1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка


2) Должны стоять пакеты для сборки


Какие должны быть результаты:

  • Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
  • Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.

Если должно быть 50 тысяч, а диск выдает сильно меньше, то:

— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.

И это все?

Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.

Вот вам еще пара ссылочек от меня:

    — а то вроде про «>» знаешь еще по винде, а что значит «>>»? Вот в статье и ответ! — очень полезная штука, если у вас есть доступы на продакшен. Обезопасьте себя )))

Книги и видео по теме

Где тренироваться

Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))

А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.

У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.

Кунг-фу стиля Linux: программное управление окнами

Операционными системами, которые основаны на Linux и Unix и работают в текстовом режиме, очень легко управлять. Учитывая то, как работает подсистема ввода-вывода Unix, программам, ожидающих на входе то, что вводится с клавиатуры, можно передавать любые данные. А то, что программы обычно выдают на экран, можно перехватить и подвергнуть дальнейшей обработке. Вся операционная система устроена именно так. А вот графические программы, использующие возможности X11, это — уже совсем другое дело. Можно ли управлять графическими программами так же, как управляют программами с текстовым интерфейсом? Точный ответ на этот вопрос зависит от того, что именно понимать под «управлением программами». Но если не вдаваться в детали, то на этот вопрос можно дать положительный ответ.

Как это обычно бывает в Linux и Unix, существует множество способов решения одной и той же задачи. И наша задача — не исключение. Если вам нужны средства для точного управления программами, то можно сказать, что добиться этого можно с помощью утилит, задействующих специальный механизм, называемый D-Bus. Этот механизм позволяет программам так оформлять данные и методы, что ими могут пользоваться другие программы. В идеальном мире программы, которыми нужно управлять, применяют D-Bus, но в реальности всё далеко не так просто. Поэтому сегодня мы поговорим о том, как управлять самыми разными графическими программами в Linux.


Существует несколько утилит, которые позволяют каким-то способом управлять X-окнами. Например, есть инструмент xdo, о котором вы, наверняка слышите не особенно часто. Более популярным средством из этой сферы является утилита xdotool, о которой я расскажу. Кроме того, похожим функционалом обладает wmctrl. Есть ещё программа autokey, которая родственна популярной Windows-программе AutoHotKey.

Все переводы серии

Утилита xdotool

Пожалуй, утилита xdotool является самой популярной программой, используемой в тех случаях, когда надо управлять приложениями с графическим интерфейсом. Это — нечто вроде «швейцарского ножа» для системы X. Но эта утилита использует достаточно сложные конструкции командной строки. Это, вероятно, является следствием того, что она очень много всего умеет. Я чаще всего прибегал к её помощи в ситуациях, когда мне надо было организовать перемещение окон и изменение их размеров. Но она умеет, например, имитировать ввод данных с клавиатуры и воспроизводить действия, которые обычно выполняют с помощью мыши. Она позволяет привязывать выполнение неких действий к событиям, имеющим отношение к перемещениям мыши и к событиям, связанным с окнами программ.

Хотя xdotool можно запускать, указывая файл, содержащий необходимые команды, чаще всего можно видеть передачу аргументов этой утилите из командной строки. При её использовании сначала находят нужное окно, а потом выполняют с ним какие-то действия. Найти окно можно, зная его имя. Можно поступить и иначе. Например — выбрать то окно, по которому щелкнет пользователь.

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


Если ввести это в командной строке, то можно щёлкнуть по окну, а потом увидеть, как в нём появится заданный текст. Причём, выглядит это так, будто текст введён пользователем. Наш инструмент, кроме того, может имитировать действия, выполняемые с помощью мыши. Он способен выполнять множество операций с окнами. Среди них, например, изменение активного окна и переключение между рабочими столами.

Кстати, надо отметить, что для того чтобы пользоваться некоторыми из возможностей xdotool, нужно чтобы было установлено расширение X-сервера XTest. Я обычно обнаруживаю это расширение уже установленным. Но если вы столкнулись с тем, что у вас что-то не работает — проверьте X-сервер и узнайте о том, загружено ли это расширение.

Утилита wmctrl

Программа wmctrl обладает возможностями, похожими на возможности xdotool, но она, в основном, взаимодействует с оконным менеджером. Единственная проблема тут заключается в том, что она использует стандартный интерфейс к оконному менеджеру. Не все оконные менеджеры поддерживают полный набор возможностей wmctrl. Это, кстати, одна из тех особенностей Linux, которая является причиной того, что распространение программ для этой ОС может превратиться в настоящее приключение. Нет двух одинаковых систем, а некоторые системы даже и близко друг на друга не похожи.

Утилита wmctrl особенно хороша для решения таких задач, как переключение рабочих столов и максимизация окон. Но она способна и на многое из того, что умеет xdotool.

Использование большого монитора

Я недавно поменял свою конструкцию из трёх мониторов на очень большой 4K-монитор. Это 43-дюймовый монстр обладает разрешением в 3840x2160 пикселей. Всё это очень хорошо, но мне не хватало возможности поместить окно одной программы на один монитор, а окно другой (или третьей) программы — на другой монитор.

Решением этой проблемы было использование механизма, позволяющего сдвинуть окно в определённую позицию на экране. Нечто подобное можно сделать, используя стандартные возможности менеджера окон, но я использую KDE, а там нужной мне возможности по расстановке окон больше нет. А именно, окна привязываются к определённым позициям при перетаскивании их в нужное место, но делается это не особенно быстро. Кроме того, не все места привязки окон находятся там, где мне хотелось бы их видеть.

Работа на большом мониторе

Я сразу подумал о том, чтобы использовать для решения этой задачи xdotool и привязать соответствующие действия к клавиатурным сокращениям, используя возможности KDE. Например, сочетание клавиш CTRL+ALT+1 могло бы закреплять текущее окно в правом верхнем углу экрана, а сочетание CTRL+ALT+0 могло бы максимизировать окно. Сочетание CTRL+ALT+6 позволяло бы окну занять всю правую половину экрана, а сочетание CTRL+ALT+8 должно было размещать окно в верхней половине экрана.

Вот как выглядела моя первая попытка создания команды, соответствующей клавиатурному сокращению CTRL+ALT+1 :


Тут реализована следующая идея: находим текущее окно, перемещаем его в позицию 0,0, а потом меняем его размер так, чтобы оно заняло бы четверть экрана. Числа, жёстко заданные в коде, это, конечно, не очень хорошо. Но если речь идёт о работе на одном компьютере, то это вполне допустимо. Размер окна, если вам так удобнее, можно установить и по-другому. Например — в виде 50% 50% . Причём, этот параметр можно настроить с использованием подобного значения, а вот в других макросах, где окно перед изменением его размера перемещается в позицию, отличающуюся от 0,0, всё равно придётся использовать жёстко заданные значения.

Первая проблема, с которой я столкнулся, заключалась в том, что в некоторых случаях окна не перемещались. Правда, для решения этой проблемы можно попытаться поменять местами команды изменения размера и перемещения окна.

Но проблемы на этом не кончались. Если максимизировать окно, то значения, касающиеся размеров и позиции окна, ни на что не влияют. Вот как эту проблему можно решить с привлечением wmctrl:


Тут, с помощью wmctrl, отключается максимизация активного окна, а после этого в дело вступает xdotool. Правда, если хочется использовать исключительно wmctrl, то можно применить такую команду:


В опции -e задаются параметры перемещения окна. Причём, обратите внимание на то, что первый 0 — это не опечатка. Значение этого параметра позволяет задавать свойство окна «gravity», которое обычно устанавливается в 0. Следующие четыре числа — это позиция и размер окна. Но тут можно заметить то, что если xdotool перемещает в заданную позицию верхний левый угол окна, wmctrl перемещает верхний левый угол внутреннего содержимого окна (сюда не входят элементы оформления окна). Это приводит к различным результатам.


Два окна на экране

Конечно, можно написать простой bash-скрипт, предназначенный для решения всех этих задач. Можно предусмотреть в нём механизмы, позволяющие программе адаптироваться к изменению размеров экрана без вмешательства пользователя в код программы. В скрипте можно даже сделать так, чтобы, например, окна не перекрывались бы, можно и воспользоваться другими специальными эффектами.

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


Клавиатурные макросы, в результате, можно использовать для вызова этого скрипта с тегом вроде ne (Northeast, северо-восток) или center (центр), устанавливая таким образом позицию окна. Изменения легче вносить в один скрипт, а не редактировать несколько клавиатурных макросов.

Итоги

В сериале «Звёздный путь» (в настоящем, с Уильямом Шетнером) есть момент, когда Кирк говорит кому-то о том, что нужно изучить то, как всё работает на космическом корабле. ОС семейства Linux очень похожи на этот корабль. Нельзя многого достичь, лишь догадываясь о том, как сделать то, что нужно, и продираясь через огромное количество инструментов, которые, возможно, способны решить задачу. Иногда достичь желаемого можно с помощью комбинации из нескольких инструментов. Нелегко испытывать самые разные конфигурации в поисках желаемого. Но обычно, если попытаться, всё можно сделать так, как нужно.

Автоматическое переключение активного окна

Кто-нибудь знает, что нужно подкрутить в кедах, чтобы когда нажимаешь на свёрнутую в трей программу (телега, например), то окно этой программы сразу стало активным?

В каких-то случаях программа разворачивается из трея, но её окно появляется как бы в фоне, а её значок в панели задач горит оранжевым, а иногда программа разворачивается, её окно становится активным (что я и ожидаю).

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

Forgotten
14.09.19 17:38:26


Alt+F3 -> More Actions -> Special Window Settings -> Arrangement & Access -> Keep Above [Apply Initially, Yes]

aquadon ★★★★★ ( 14.09.19 17:47:44 ) Ответ на: комментарий от aquadon 14.09.19 17:47:44 Forgotten ( 14.09.19 18:32:21 ) Ответ на: комментарий от Forgotten 14.09.19 18:32:21


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

P.S. У меня Telegram из лотка всегда открывается поверх других окон кроме случая, когда его окно уже открыто на другом рабочем столе (но на другом столе оно все равно выходит на первый план).

aquadon ★★★★★ ( 14.09.19 18:36:05 ) Ответ на: комментарий от aquadon 14.09.19 18:36:05

Да, добавлю, благо таких программ у меня немного, а их привык всегда закрывать, чтобы сворачивать их в лоток, поэтому постоянно мучился, если окно появилось, но осталось неактивным, что заставляло его искать альтабом, либо тянуться мышкой лишний раз. Ещё раз спасибо, моим мучениям пришёл конец.

Проблема с GTK+

Как в GTK+ сделать окно активным? У меня программа висит в памяти и ждет нажатие клавиш после нажатия открывает свое окно, но оно почему-то не активное по умолчанию, как сделать активным (без использования мыши :-))?

anonymous
02.10.07 01:17:03


ananas ★★★★★ ( 02.10.07 08:01:44 )

активное окно - это из оффтопика :)
под X11, есть окна имеющие фокус, а также окна самые верхние
на экране (top in z-order). что имелось ввиду?

Valeriy_Onuchin ★★ ( 03.10.07 12:18:05 )

Имелось ввиду: нужно? что бы окно имело фокус после отображения, а оно не имеет. Поставил топ - оно отображается поверх всех окон но все равно фокуса не имеет. Использовал функцию gtk_window_present ефекта не какого. :-(.

anonymous ( 04.10.07 00:30:48 )

Имелось ввиду: нужно, что бы окно имело фокус после отображения, а оно не имеет. Поставил топ - оно отображается поверх всех окон но все равно фокуса не имеет. Использовал функцию gtk_window_present ефекта не какого. :-(.

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