Abra o terminal aqui, como raiz (OS X)

2

Existe um applescript bastante impressionante chamado "Open Terminal Here" ( link ) que você pode adicionar ao seu localizador barra de ferramentas e clique quando quiser iniciar um console de terminal que esteja configurado para esse diretório.

Às vezes eu preciso ser root, e assim eu acabo começando o terminal, fazendo algo como sudo -i e então eu tenho que mudar de volta para o diretório anterior porque o comando sudo está me colocando em / var / root.

Estou usando o sudo -i porque gosto dele para carregar coisas como aliases / o perfil do bash.

O script é applescript e aqui está a parte importante de como funciona:

    ...
    set cmd to "cd " & quoted form of the_path & " && echo $'\ec'"
    ...
    tell application "Terminal"
        activate
        do script with command cmd

Como faço para que isso seja carregado como root?

    
por cwd 23.02.2011 / 06:37

2 respostas

1

Na verdade, foi muito complicado descobrir isso, mas acabei adicionando isso ao meu arquivo /etc/profile :

directory='pbpaste'
if [ -d "$directory" ]; then
    cd "$directory"
fi

Depois disso, usei o script "Open Terminal Here" e simplesmente o modifiquei para que copie o caminho atual para a área de transferência antes de iniciar o terminal

    tell application "Finder" to set the clipboard to the_path

e depois adicionei a parte sudo -i ao código onde ela ativa o terminal:

    set cmd to "cd " & quoted form of the_path & " && echo $'\ec' && sudo -i"

    tell application "Terminal"

Assim, o caminho será copiado para a área de transferência, eu posso usar um ícone para iniciar o applescript e, quando o perfil for carregado (para root), ele será alterado para o diretório.

    
por 28.03.2011 / 04:10
0

Qual é o diretório que você está tentando acessar? O alias da casa ('~') não funciona como raiz, então você pode precisar usar um caminho absoluto.

Para usar o AppleScript para iniciar o Terminal como root, você pode fazer algo como o seguinte (não testado!):

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

Isso lhe concederá privilégios de administrador antes de executar o código que muda para o diretório do Finder aberto. Isso pode ser bastante arriscado se você não tiver cuidado com os scripts que estava executando.

Mais geralmente, você pode fazer com que o AppleScript faça comandos sudo com código como este:

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

em que 'cmd' é o comando a ser executado. (Isso também exibe um pop-up dos resultados do código.)

    
por 24.02.2011 / 17:50