目的:

目的:

我工作中经常需要更改 MAC 地址,因此我想创建两个键盘快捷键:

  1. 当我按下快捷键时,终端会打开并显示粘贴的命令

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

    需要光标出现在命令中间,在那里我可以写 MAC。(或提供另一个命令)

  2. 按下快捷键,自动将剪贴板中的 MAC 地址粘贴到上面的命令中并执行。

答案1

目的:

您想要一个漂亮的小型 MAC 转换器,只需使用键盘快捷键即可调用它并输入 MAC 吗?它还应该能够从剪贴板读取它?

以下是您想要的:

MAC 更换器截图

准备:

要访问剪贴板,我们需要xsel。使用命令安装

sudo apt-get install xsel

脚本:

我们需要编写四个小 shell 脚本来完成您的工作。使用您最喜欢的纯文本编辑器
创建以下文件。您需要 sudo/root 权限才能将它们保存在所需的位置。/usr/local/bin

  • 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。执行此操作时,它会断开并重新连接接口。您必须以 root 身份运行此操作!

    例子:sudo change-mac 12:34:56:78:9a:bc

  • change-mac-dialog

    显示一个漂亮的小 GUI 提示,要求您输入新的 MAC 地址(默认文本是当前 MAC)。系统将提示您使用 GUI 输入 sudo 密码gksudo

  • paste-mac

    使用当前剪贴板内容作为参数进行调用gksudo change-mac。系统将提示您使用 GUI 输入 sudo 密码gksudo

快捷方式:

我认为您可以自己为脚本创建自定义快捷方式,否则请参考这里

请注意,您可能不应该为change-mac(需要以 root 身份运行并需要 MAC 作为参数)或get-mac(将输出打印到终端)创建快捷方式。使用change-mac-dialogget-mac-dialog作为它们的 GUI 替代品。paste-mac既不需要任何输入,也不会创建输出,因此您可以毫无问题地为其创建快捷方式。

相关内容