Горячая клавиша

Я очень часто должен изменять MAC-адрес в своем задании, таким образом, я хотел бы сделать два сочетания клавиш:

  1. Когда я нажимаю, терминал ярлыка открывается вставляемой командой

    sudo ifconfig eth0 down && sudo ifconfig eth0 hw ether (xx:xx:xx:xx:xx:xx) && sudo ifconfig eth0 up 
    

    Потребность тот курсор появился бы в середине команды, где я мог записать MAC. (или предложите другую команду),

  2. На нажатии ярлыка автоматически вставляют от cliboard MAC-адреса, чтобы управлять выше и выполниться.

1
задан 26 January 2016 в 15:55

1 ответ

Цель:

Вы хотите миленький преобразователь MAC, который можно просто назвать использованием сочетания клавиш и подать его MAC? Это должно также смочь считать его из буфера обмена?

Вот то, что Вы хотите:

MAC Changer screenshot

Подготовка:

Для доступа к буферу обмена нам нужно 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 ни не нуждается ни в каком входе, и при этом он не создает вывод, таким образом, можно сделать ярлык для этого без любой проблемы.

0
ответ дан 26 July 2019 в 08:54

Другие вопросы по тегам:

Похожие вопросы: