Как в Linux поменять слово в файле одной командой:
sudo sed -i 's/petra/qiana/' /etc/apt/sources.list
Как в Linux поменять слово в файле одной командой:
sudo sed -i 's/petra/qiana/' /etc/apt/sources.list
Пример использования команды alias для bash:
$ alias pingoogle="ping -c3 8.8.8.8"
Теперь по команде pingoogle будут пропингованы dns-серверы google:
pi@raspberrypi ~ $ pingoogle PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. From 192.168.1.30 icmp_seq=1 Destination Host Unreachable From 192.168.1.30 icmp_seq=2 Destination Host Unreachable From 192.168.1.30 icmp_seq=3 Destination Host Unreachable --- 8.8.8.8 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2005ms pipe 3
Для дистрибутива Raspbian по умолчанию логин pi, пароль raspberry
Стандартная консольная программа для изменения настроек малинки — raspi-config
Стандартная консольная команда для запуска оконного менеджера — startx
Максимальна скорость сети по Ethernet на самом деле не 100 Мбит/с, а около 24 Мбит/с (вроде потому что через шину USB)
Для ножек GPIO стандартное напряжение 3.3В, вроде как если превысить, то сгорит
Для удобства работы с ножками GPIO, на них можно одевать фишки с проводами, которые можно надёргать с материнской платы из старого системника (LPT, USB, звук от CDROM, фишки от кулеров и т.п.), ну или можно купить нормальные провода в радиотоварах.
Для подключения светодиодов во всех источниках советуют использовать дополнительное сопротивление, чтобы не спалить.
Скачать дистрибутив в виде архива zip с файлом img внутри http://downloads.raspberrypi.org/raspbian_latest
Распаковать архив
Залить образ на флэшку командой $ sudo dd if=raspbian.img of=/dev/sdc (вместо sdc подставляйте своё название диска, смотреть например через gparted)
Вставить загрузочную флэшку Raspbian
Если надо, подключить клаву, мышь, телевизор, колонки и Ethernet
Подключить к блоку питания microusb с напряжением 5.0 В, малинка включится автоматически
При необходимости набрать логин — пароль pi — raspberry
При необходимости включить оконный менеджер — $ startx
Сперва выяснить ip-адрес, который получила малинка:
Подключиться к командной строке по SSH
Через программу raspi-config
В файле /etc/network/interfaces удаляем строку iface eth0 inet dhcp, вместо неё добавляем строки
iface eth0 inet static
address 192.168.1.30
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Получается примерно так:
$ sudo nano /etc/network/interfaces auto lo iface lo inet loopback # iface eth0 inet dhcp iface eth0 inet static address 192.168.1.30 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
Дальше надо отредактировать адреса DNS-серверов, которыми будет пользоваться малинка. Для этого надо отредактировать файл resolv.conf:
sudo nano /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4
После этого сохраняемся и перезагружаемся
Решил установкой mplayer:
$ sudo apt-get install mplayer
После успешной установки проигрывать файлы так:
$ mplayer /usr/share/scratch/Media/Sounds/Music\ Loops/HipHop.mp3
Интерактивный справочник по ножкам
Это пример выдачи напряжения 3.3В на ножку 7 (GPIO4):
pi@raspberrypi ~ $ cd /sys/class/gpio/ pi@raspberrypi /sys/class/gpio $ ls export gpiochip0 unexport pi@raspberrypi /sys/class/gpio $ echo 4 > export pi@raspberrypi /sys/class/gpio $ ls export gpio4 gpiochip0 unexport pi@raspberrypi /sys/class/gpio $ cat gpio4/direction in pi@raspberrypi /sys/class/gpio $ echo out > gpio4/direction pi@raspberrypi /sys/class/gpio $ cat gpio4/direction out pi@raspberrypi /sys/class/gpio $ cat gpio4/value 0 pi@raspberrypi /sys/class/gpio $ echo 1 > gpio4/value pi@raspberrypi /sys/class/gpio $ cat gpio4/value 1 pi@raspberrypi /sys/class/gpio $ echo 0 > gpio4/value pi@raspberrypi /sys/class/gpio $ echo 1 > gpio4/value
Чтоб лампочка загорелась, она должна быть подключена к 2 ножкам GPIO, между которыми есть разность потенциалов, то есть на одной напряжение должно быть 3.3В (соответствует единице в примере выше), а на другой 0. Если используем не лампу, а светодиод, то нужно ещё и соблюсти полярность. Если лампа расчитана на более низкое напряжение, то нужно к ней последовательно подключить подходящее сопротивление, чтобы не сгорела.
Реле — это такой выключатель, который срабатывает при подаче на него управляющего сигнала.
Малинка отлично работает в связке с вот такой штуковиной 4 Channel 5V Relay Module BK_RL4_01 (4 реле, расчитанные на напряжение до 250В)
Питание на эту штуку можно подать от второго блока питания на 5В (например от телефона), предварительно распоров и оконцевав фишками жилы. Ножки GND на плате с релюшками и на малинке нужно скомутировать между собой, без этого сигнал с малинки не придёт. Нужные ножки каналов на плате с реле соединяем с нужными ножками портов GPIO на малинке. Теперь при подаче единицы на нужный порт GPIO, реле со щелчком переключится, и например, заработает какой-нибудь электроприбор с напряжением 220В.
Для реакции малинки на кнопки, которые хотим подключить к портам GPIO, для порта direction должен быть in, скрипт, отвечающий за реакцию на нажатие, должен работать в цикле (bash, perl, C) и следить за состоянием порта (0 или 1)
Приведённого выше материала в принципе хватит даже на создание простенького робота. Например, по команде из консоли «vpered» заставил ездить детскую машинку на пульте упавления.
Shellshock (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187) — это уязвимость в командной строке bash, которая позволяет атакующим удалённо запускать произвольные команды на уязвимой системе. Если BASH в последний раз обновлялся до 1 октября, то скорее всего уязвима. Уязвимы версии BASH начиная с версии 1.14 (1994 года выпуска) по последнюю версию 4.3.
Код для проверки системы на наличие уязвимости:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Если в результате выполнения будет написано «vulnerable», значит система уязвима.
Эта команда расшаривает васину папку MyFolder с полным доступом для самого Васи и с доступом на чтение для Пети:
C:\Windows\system32>net share MyFolder=c:\users\vasya\MyFolder /GRANT:vasya,FULL /GRANT:petya,READ
Ещё в тему:
Вывод списка и отключение пользователей через net session
Чтобы сбросить выделение в виджете QListWidget:
ui->listWidgetSelect->clearSelection();
Здесь соберу параметры для запуска программы rundll32.exe. Сама по себе программа присутствует во всех версиях Windows. Приведённые команды проверял на Windows 7. Использовать её можно либо через пуск — выполнить, либо через командную строку, либо вписав её в создаваемый ярлык.
Сначала то, что может быть полезным:
rundll32 shell32.dll, ShellAboutA — вывод окна с версией windows, типа «О программе»
rundll32.exe netplwiz.dll, UsersRunDll — окно «Учётные записи пользователей»
rundll32.exe SHELL32.dll, Options_RunDLL 0 — окно настройки вида папок
rundll32.exe shell32.dll, Control_RunDLL desk.cpl desk, @Appearance — окно «Параметры значков рабочего стола», например добавить мой компьютер на рабочий стол
rundll32.exe SHELL32.dll, Options_RunDLL 1 — Свойства панели задач и меню Пуск
rundll32.exe KEYMGR.dll, KRShowKeyMgr — окно «Сохранение имён пользователей и паролей»
А теперь то, что может никогда не пригодиться, но тоже есть:
rundll32.exe WINSPOOL.DRV, ConnectToPrinterDlg или rundll32.exe PRINTUI.dll, ConnectToPrinterDlg — окно подключения к сетевому принтеру
rundll32.exe joy.cpl, ShowJoyCPL — вызов окна настройки джойстиков
rundll32.exe TAPI32.dll, internalConfig — диалог «Телефон и модем»
rundll32.exe inetcpl.cpl, LaunchInternetControlPanel — запуск окна настройки Internet Explorer
rundll32.exe inetcpl.cpl, DisplayPopupWindowManagementDialog — окно «параметры блокирования всплывающих окон» Internet Explorer
Продолжение следует…
Для запуска сторонних программ из программы на C# в начало программы вставляем строчку
using System.Diagnostics;
и после этого запускаем команды CMD из нашего кода следующим образом:
Process.Start("calc");
Эта строчка например запустит виндовый калькулятор.
А эта строчка откроет проводник на диске D:
Process.Start("explorer", "d:");
Так же можно запускать программы от имени другого пользователя, см. вамианты перегрузки .Start()
Вырезаем QPixmap по рамке x, y, ширина, высота (в пикселях)
QPixmap::copy(int x, int y, int width, int height)