以 Root 身份(OS X)在此处打开终端

以 Root 身份(OS X)在此处打开终端

有一个非常棒的 applescript 叫做“在这里打开终端”(http://www.entropy.ch/software/applescript/) 您可以将其添加到 Finder 的工具栏中,并在您想要启动设置为该目录的终端控制台时单击它。

有时我需要成为 root,因此我最终启动终端,执行类似的操作sudo -i,然后我必须更改返回上一目录因为 sudo 命令让我进入 /var/root。

我使用 sudo -i 因为我喜欢它加载别名/bash 配置文件之类的东西。

该脚本是 applescript,下面是其工作原理的重要部分:

    ...
    将 cmd 设置为“cd ”& the_path 的引用形式 & “ && echo $'\\ec'”
    ...
    告诉应用程序“终端”
        启用
        使用命令cmd执行脚本

我如何才能以 root 身份加载它?

答案1

事实上,弄清楚这一点相当复杂,但我最终将其添加到我的/etc/profile文件中:

目录=`pbpaste`
如果 [ -d "$directory" ]; 那么
    cd“$目录”

之后我用了“在此打开终端”脚本并对其进行了简单修改,以便在启动终端之前将当前路径复制到剪贴板

    告诉应用程序“Finder”将剪贴板设置为 the_path

然后我将sudo -i激活终端的部分添加到代码中:

    将 cmd 设置为“cd ”& the_path 的引用形式 & “ && echo $'\\ec' && sudo -i”

    告诉应用程序“终端”

因此,路径将被复制到剪贴板,我可以使用图标来启动 applescript,然后当加载配置文件(对于 root)时,它将更改为目录。

答案2

您要访问的目录是什么?主目录别名 ('~') 不能以 root 身份使用,因此您可能需要使用绝对路径。

要使用 AppleScript 以 root 身份启动终端,您可以执行以下操作(未经测试!):

tell application "Terminal"
    activate
    tell application "System Events" to keystroke "sudo -i" & return
    do script with command cmd

这将在运行更改打开的 Finder 目录的代码之前授予您管理员权限。如果您对所运行的脚本不够谨慎,这可能会非常危险。

更一般地,你可以使用如下代码让 AppleScript 执行 sudo 命令:

set shellOutput to do shell script cmd with administrator privileges
display dialog shellOutput

其中“cmd”是要运行的命令。(这还会显示代码结果的弹出窗口。)

相关内容