Если в вашей системе уже не установлены xwd
и xwud
, я был бы очень удивлен, если бы вам не удалось легко установить их через диспетчер пакетов максимум за несколько секунд.
% man xwd
NAME xwd - выгрузить образ X-окна СИНХРОНИЗАЦИЯ xwd [-debug] [-help] [ -nobdrs] [-out файл] [-xy] [-frame] [-добавить значение] [-root | -id id | -name name] [-icmap] [-screen] [-silent] [-display display] ОПИСАНИЕ Xwd - это дамп окна системы X Window полезность. Xwd позволяет пользователям X сохранять изображения окон в специально отформатированном файле дампа. Этот файл затем может быть прочитан различными другими утилитами X для повторного отображения, печати, редактирования, форматирования, архивирования, обработки изображений и т. Д. Целевой выигрыш - dow выбирается щелкнув указатель в желаемом окне. Клавиатура звонит один раз в начале дампа и два раза, когда дамп завершен.
Поймите, это своего рода программа для записи сеанса рабочего стола - встроен в X-сервер - он позволяет делать снимки экрана и многое другое. Но вы захотите немного прочитать документацию, прежде чем погрузиться в нее - я думаю, просто для того, чтобы ознакомиться с ней.
Примечание - целевое окно не нужно выбирать с помощью курсора мыши, как упомянуто выше - это просто поведение по умолчанию, когда оно вызывается без аргументов. Весь интерфейс полностью поддерживает сценарии.
Просто пролистайте еще немного и ...
-root Этот параметр указывает, что корневое окно должно быть выбрано для дампа окна, не требуя от пользователя выбора окна с помощью указателя. {{1 }} -id id Этот параметр указывает, что окно с указанным идентификатором ресурса должно быть выбрано для дампа окна без требования, чтобы пользователь выбирал окно с помощью указателя. {{1} }
Если вы последуете моему совету, вы также очень внимательно посмотрите на xdotool , хотя, по общему признанию, здесь он имеет ограниченное значение. Он в основном выполняет скрипты для мыши, хотя предлагает некоторый прямой интерфейс командной строки для X backend api - как ссылки @Gilles. И пользоваться им довольно просто.
С учетом всего сказанного, основная проблема заключается в том, что ваш дисплей в настоящее время занят. Если ваше окно должно оставаться невидимым, с этим можно справиться несколькими способами:хотя, я думаю, вам придется немного их попробовать, прежде чем вы их опустите. Я бы рекомендовал просто настроить ваш экран так, чтобы он был в два раза больше вашего экрана. Таким образом, вы можете просто перетащить окно за пределы экрана, и оно продолжит обновлять отображение, но за пределами экрана. Я могу сделать это с помощью инструментов nvidia, и большинство из них могут сделать это с помощью xrandr,
, но, особенно в Linux, кажется, по крайней мере, по моему опыту, проблемы с отображением часто являются личными проблемами только потому, что существует так много возможных способов настроить их.
Другой способ сделать это - использовать виртуальный X-сервер, например xnest
или xephyr.
Эти серверы помещают весь X-сервер в окно, которое может быть фоновым или полностью отсутствовать, если вы предпочитаете. Последний раз я проверял, что было, к сожалению, некоторое время назад, они использовали xdummy-driver - и поэтому не были бы хорошим выбором для видеоигры, требующей ускорения видео. Тем не менее, я уверен, что ваши справочные страницы могут рассказать вам больше, и я могу только надеяться, что помог.
Я бы либо написал сценарий, который перебирает список IP-адресов, добавляя каждый в отдельной строке в ваш хост-файл -, поскольку диапазоны не поддерживаются, либо -, что, на мой взгляд, лучше -разместите свое веб-приложение на виртуальной машине с адаптером только для NAT или хоста -, чтобы оно имело фиксированный IP-адрес.
Скорее всего, вам не нужно помещать назначенный DHCP -IP-адрес в файл hosts. Например, вы, вероятно, захотите указать браузеру http://your-domain-here/
, и ваш локальный веб-сервер ответит на это. (То же самое с любой другой настройкой клиент/сервер ). В этом случае просто сопоставьте домен с IP-адресом локального хоста, который представляет собой любой IP-адрес, начинающийся с 127.
(. Я бы избегал 127.0.0.1, так как это может дать странные ответы для обратного поиска ). Просто выберите новый, которого еще нет в вашем файле hosts.
Другой вариант — просто выбрать статический пространственный IP-адрес RFC1918 (192.168.x.x, 10.x.x.x, 172.16–31.x.x )и добавить его к локальному интерфейсу, а затем просто использовать этот IP-адрес.
Если вам действительно нужно сопоставить его с вашим текущим IP-адресом, обычно есть место, где вы можете поместить сценарий оболочки для запуска, когда ваша машина получает IP-адрес через DHCP. Если вы используете dhclient, вы можете поместить скрипт в /etc/dhcp/dhclient-enter-hooks.d/
. Существует dhclient -скрипт (8 )справочная страница , в которой это документировано, но что-то вроде этого (очень непроверено ), вероятно, сработает (он использует "губку" из пакета moreutils):
#!/bin/sh
MY_DOMAIN=your-domain.com
if [ "$reason" != "BOUND" ] && [ "$reason" != "REBIND" ]; then
exit 0
fi
grep -v " $MY_DOMAIN\$" /etc/hosts | sponge /etc/hosts # really should escape the dots in the domain, but probably doesn't matter.
printf '%s %s\n' "$new_ip_address" "$MY_DOMAIN" >> /etc/hosts
Это очень не проверено. Убедитесь, что у вас есть резервная копия /etc/hosts
, прежде чем пытаться это сделать!
Ты пишешь,
I work with Wi-Fi. Due to that my system's IP changes every time I connect to the network.
Эти два утверждения не должны быть связаны. Ваш IP-адрес может быть назначен вручную на фиксированное значение («статический» адрес )или он может быть назначен динамически DHCP-сервером в сети («динамический» адрес ). Неважно, подключается ли ваша система через Wi-Fi или через кабель; это ваши два варианта получения IP-адреса.
Чтобы добавить интереса, DHCP-сервер может быть настроен на предоставление вам одного и того же IP-адреса каждый раз, когда вы подключаетесь к его сети (, неофициально иногда называемой «липким» адресом ). Вот так у меня настроена домашняя сеть.
Вы не можете (обычно )использовать статический IP-адрес, если вы находитесь в роуминге по разным сетям, поэтому лучше всего использовать фиксированный адрес.
С другой стороны, если все, что вам нужно сделать, это получить запись хоста в вашем домене, чтобы она указывала на вашу клиентскую систему, вам может потребоваться поиск поставщиков динамических DNS. Одним из примеров является dyn.com
, но есть много других, которые следует учитывать. Вы устанавливаете небольшую часть программного обеспечения на своем клиенте, которое фиксирует любое изменение IP-адреса и уведомляет центральный сервер. Он обновляет вашу запись домена для вас. Последняя часть головоломки заключается в том, что вы заменяете запись A
в своем реальном домене записью CNAME
, которая указывает на запись домена DDNS, указывающую на вашу клиентскую систему.