Linux Mint 18.x 上的工作解决方案

Linux Mint 18.x 上的工作解决方案

操作系统:Linux Mint 18.x Cinnamon 64 位

比如说,我想在当前工作目录中运行nemoCinnamon 中的默认文件管理器,以及正常的, :sudo

sudo nemo .

问题:

  1. 它显示了我不关心的不同小错误,例如:

    (nemo:21081): Gtk-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
    
  2. 关闭它后,正好需要 30 秒才能gnome-terminal将控制权交还给我。


目标是定义 abash aliasfunction,它不会有这两个或任何其他负面方面。

此外:

  1. 我希望它立即交出控制权,以便我可以独立使用 Nemo 和 Terminal。

  2. 我希望能够像工作目录一样运行它,或者给它一些目录作为参数。

答案1

从我的角度来看,最有效的方法是:

  1. 用一个子壳()在实际命令的开头和结尾。

  2. &最后将命令设置为背景。

  3. 因为我们将它作为后台进程运行,普通的 sudo不会成功,所以我们必须使用它的图形等效项,gksudo.

  4. 恕我直言,这对于 来说是不可能的alias,我们需要定义 afunction来代替,因为我们需要检查参数是否已给出并采取相应的行动。

  5. 将任何输出重定向到黑洞(> /dev/null 2>&1)是我的一个好习惯。在这种情况下实际上并没有做任何事情。

以下功能满足我的期望,请随意添加您的解决方案。


Linux Mint 18.x 上的工作解决方案

function sunemo {
    if [ -z "$1" ]
    then
        (gksudo nemo .    > /dev/null 2>&1 &)
    else
        (gksudo nemo "$1" > /dev/null 2>&1 &)
    fi
}

您可能已经注意到,在 Linux Mint 19.x 中gksudo已被删除。

Linux Mint 19.x 上的工作解决方案

function sunemo {
    if [ -z "$1" ]
    then
        (nemo "admin://$PWD" > /dev/null 2>&1 &)
    else
        (nemo "admin://$1"   > /dev/null 2>&1 &)
    fi
}

相关内容