Для загрузки с удаленным html используйтеlinks
(илиlynx
)с опцией -dump
:
links -dump http://website.web
Или:
lynx -dump http://website.web
Они отличаются стилем вывода. Во-первых, lynx
будет форматировать гиперссылки, а links
их игнорировать.
В системе, подобной debian/ubuntu -, любая программа может быть установлена с помощьюapt-get
:
apt-get install links
apt-get install lynx
Если вы не хотите писать программу для этого, есть несколько программ, которые будут показывать вам события мыши. Например, evemu-record
на устройстве ввода мыши будет отображать каждое нажатие кнопки, прокрутку колесика и движение в очень подробном выводе, таком как (, показанный отредактированным):
E: 0001 0111 0001 # EV_KEY / BTN_RIGHT 1
E: 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +552ms
E: 0002 0008 -001 # EV_REL / REL_WHEEL -1
E: 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- +1016ms
E: 0002 0000 0001 # EV_REL / REL_X 1
E: 0002 0001 0003 # EV_REL / REL_Y 3
Запустите evemu-record
без аргументов, чтобы получить список устройств ввода. В моем случае это было
/dev/input/event5: Logitech USB Optical Mouse
тогда вы можете написать сценарий оболочки bash, например:
( pid=$BASHPID
evemu-record /dev/input/event5 |
stdbuf -oL egrep 'EV_KEY|REL_WHEEL' |
( while read -t 5 junk
do echo -n.
done
echo ok
kill -pipe $pid
)
)
Здесь используется egrep
для фильтрации всех линий, кроме кнопок и колес, и stdbuf
для обеспечения отсутствия буферизации вывода (, хотя ваш grep может принять параметр --line-buffered
, который делает то же самое ). Цикл while считывает каждую строку и выводит «.», но если в течение 5 секунд нет ввода (-t 5
), цикл останавливается. Наконец, kill
необходим для конвейера, который в противном случае не завершится, пока не будет обнаружено новое событие и egrep
не умрет с SIGPIPE. Использование kill -pipe
отправляет сигнал SIGPIPE, что позволяет избежать сообщений об ошибках, которые вы получили бы от kill -hup
. Внешняя оболочка (...)
необходима для получения идентификатора процесса для оболочки ($BASHPID
), который не уничтожит окружающий код оболочки.
Кроме того, вы можете получить поток данных PS/2 из /dev/input/mice
, но я не знаю всех деталей формата. Вы можете увидеть 3-байтовые записи с помощью
od -v -An -w3 -tx1 /dev/input/mice
Основываясь на инструкциях meuh, вот как была сделана эта "экранная заставка":
#!/bin/bash
evemu-record /dev/input/event2 |
stdbuf -oL egrep 'EV_KEY|REL_WHEEL' |
(
./network_saver.sh
)
Где сеть _saver.sh это:
#!/bin/bash
WAIT=5
while [ 1 ]
do
echo Waiting for $WAIT seconds of mouse button inactivity
while read -t $WAIT line
do
echo -n.
done
echo; echo Disabling networking
nmcli n off
echo Waiting for a mouse button press
while read line
do
echo -n.
break;
done
echo; echo Enabling networking
nmcli n on
# Connect the main nic as soon as possible
nmcli conn up "Ethernet connection 1" >/dev/null
done