Я очень часто должен изменять MAC-адрес в своем задании, таким образом, я хотел бы сделать два сочетания клавиш:
Когда я нажимаю, терминал ярлыка открывается вставляемой командой
sudo ifconfig eth0 down && sudo ifconfig eth0 hw ether (xx:xx:xx:xx:xx:xx) && sudo ifconfig eth0 up
Потребность тот курсор появился бы в середине команды, где я мог записать MAC. (или предложите другую команду),
На нажатии ярлыка автоматически вставляют от cliboard MAC-адреса, чтобы управлять выше и выполниться.
Вы хотите миленький преобразователь MAC, который можно просто назвать использованием сочетания клавиш и подать его MAC? Это должно также смочь считать его из буфера обмена?
Вот то, что Вы хотите:
Для доступа к буферу обмена нам нужно xsel
. Установите его с командой
sudo apt-get install xsel
Мы должны сделать четыре небольших сценария оболочки, чтобы сделать Вашу работу.
Создайте следующие файлы в /usr/local/bin
использование любимого редактора простого текста. Вам будут нужны sudo/root полномочия сохранить их в желаемом месте.
get-mac
:
#! /bin/bash
ip addr show eth0 | awk '/ether/{print $2}'
get-mac-dialog
:
#! /bin/bash
zenity --info --title "MAC Changer" --text "Current MAC address: $(get-mac)" 2>/dev/null
change-mac
:
#! /bin/bash
ifconfig eth0 down &&
ifconfig eth0 hw ether "$@" || exit 1
ifconfig eth0 up
change-mac-dialog
:
#! /bin/bash
oldmac=$(get-mac)
newmac=$(zenity --entry --title "MAC Changer" --text "New MAC address:" --entry-text $oldmac 2>/dev/null) &&
gksudo change-mac $newmac || zenity --error --title "MAC Changer" --text "Failed to change MAC address"
paste-mac
:
#! /bin/bash
gksudo change-mac $(xsel -ob)
Если Ваш сетевой интерфейс имеет какое-либо другое имя, чем eth0
, необходимо заменить все 4 случаев его в сценариях с настоящим именем!
Теперь установите корректные владения и полномочия:
chmod 755 /usr/local/bin/get-mac /usr/local/bin/get-mac-dialog /usr/local/bin/change-mac /usr/local/bin/change-mac-dialog /usr/local/bin/paste-mac
sudo chown root: /usr/local/bin/get-mac /usr/local/bin/get-mac-dialog /usr/local/bin/change-mac /usr/local/bin/change-mac-dialog /usr/local/bin/paste-mac
get-mac
:
Просто распечатайте текущий MAC-адрес eth0
к терминалу.
get-mac-dialog
:
Покажите маленькое диалоговое окно, отображающее текущий MAC-адрес eth0
.
change-mac
:
Непосредственно попытайтесь изменить MAC-адрес eth0
. Это разъединит и повторно подключит интерфейс, чтобы сделать это. Необходимо выполнить это как корень!
Пример: sudo change-mac 12:34:56:78:9a:bc
change-mac-dialog
:
Покажите миленькой подсказке GUI просьбу, чтобы Вы ввели новый MAC-адрес (текстом по умолчанию является текущий MAC). Вам предложат sudo пароль с помощью GUI gksudo
.
paste-mac
:
Звонить gksudo change-mac
с текущим содержанием буфера обмена как аргумент. Вам предложат sudo пароль с помощью GUI gksudo
.
Я предполагаю, что можно создать пользовательские ярлыки для сценариев сами, иначе относитесь здесь.
Обратите внимание, что Вы не должны, вероятно, создавать ярлык для change-mac
(потребности выполнить как корень и потребности MAC как аргумент) или get-mac
(вывод печати к терминалу). Использовать change-mac-dialog
и get-mac-dialog
как замена GUI для них. paste-mac
ни не нуждается ни в каком входе, и при этом он не создает вывод, таким образом, можно сделать ярлык для этого без любой проблемы.