Como executo arquivos .sh?

232

Sempre que eu abro um arquivo .sh, ele é aberto no gedit em vez do terminal. Não consigo encontrar nenhuma opção semelhante a Clique com o botão direito do mouse Abrir com Outro aplicativo ... Terminal .

Como abro este arquivo no terminal?

    
por Alex 01.05.2011 / 04:39

15 respostas

358

Conceda permissão de execução ao seu script:

chmod +x /path/to/yourscript.sh

E para executar seu script:

/path/to/yourscript.sh

Como . refere-se ao diretório atual: se yourscript.sh estiver no diretório atual, você pode simplificá-lo para:

./yourscript.sh
    
por karthick87 01.05.2011 / 05:18
70

Você precisa marcar os scripts de shell como executáveis para executá-los no gerenciador de arquivos:

  1. Clique com o botão direito no arquivo .sh e selecione Propriedades :

  2. Na aba Permissões , marque Permitir a execução do arquivo como programa :

  3. Feche a janela Propriedades e clique duas vezes no arquivo. Uma caixa de diálogo será exibida, oferecendo a opção de executar o script em um terminal:

por Isaiah 01.05.2011 / 05:02
21

Pré-requisito

Antes de poder executar o arquivo .sh, você precisa torná-lo executável:

  1. Clique com o botão direito no arquivo
  2. Selecione Propriedades
  3. Selecione Permissões
  4. Selecione Permitir a execução do arquivo como um programa

Aviso

Certifique-se de confiar na fonte de onde você tirou o arquivo. Pode ser um vírus .

A maneira muito simples

  1. Clique duas vezes no arquivo
  2. Clique em executar no terminal

Isso tem problema. O terminal fechará imediatamente e você não poderá ver a saída.

A maneira simples

  1. Abrir aplicativos - & gt; Acessórios - & gt; Terminal
  2. Arraste e solte o arquivo .sh no terminal e pressione Enter

A maneira como os profissionais fazem isso

  1. Abrir aplicativos - & gt; Acessórios - & gt; Terminal
  2. Encontre onde o arquivo .sh

    • Use os comandos ls e cd
    • ls listará os arquivos e pastas na pasta atual . Experimente: digite "ls" e pressione Enter.
    • Depois de ver a pasta em que você deseja ir, execute cd , seguido de um espaço, seguido de um nome de pasta
    • Se você estiver em uma pasta que não deseja, execute cd .. para passar de um nível para cima
  3. Execute o arquivo .sh

    • Depois de ver, por exemplo, script1.sh com ls , execute:

      ./ script.sh

Por que isso é complicado?

O terminal tem um rico conjunto de ferramentas poderosas que podem ser acessadas digitando os comandos. Profissionais localizam o arquivo .sh digitando ls e cd . Quando estiver na pasta atual correta, você poderá executar o script assim:

./script1.sh

ou você pode executar e redirecionar a saída para um arquivo:

./script1.sh > out.txt

ou você pode filtrar a saída de palavras-chave (por exemplo, "maçãs") e, em seguida, redirecionar para um arquivo:

./script1.sh | grep apples > ./only-apples

Existem milhares de coisas que você pode fazer para esse arquivo apenas digitando alguns comandos.

Outro, você pode baixar um arquivo da Internet com um simples comando:

wget www.google.com/images/logos/ps_logo2.png

Em seguida, abra o arquivo da seguinte forma:

shotwell ps_logo2.png
    
por Aleksandr Levchuk 01.05.2011 / 04:52
16

Abra um terminal e navegue até a pasta em que o arquivo .sh está localizado. Então digite:

sh <name of file>.sh
    
por italianfoot 20.12.2012 / 08:43
14

No Ubuntu 13.04, os arquivos executáveis abertos no Nautilus agora são abertos no gedit por padrão, em vez de solicitar que o usuário os execute. Para ativar o comportamento clássico, você precisa ajustar as preferências:

Nautilus → menu Editar → Preferências → guia Comportamento → Clique no botão próximo a Perguntar a cada vez.

    
por imjustmatthew 10.06.2013 / 23:41
4

Vá para o diretório em que o arquivo .sh está usando cd . Neste exemplo, armazenei meu arquivo sh como ~/Desktop/shell_practice/test.sh

primeiro faça pwd para descobrir onde você está, e se ele retornar /home/username (onde username é seu nome de usuário real), você pode executar

cd Desktop/shell/practice

Se você parece estar em outro lugar, você pode usar o caminho absoluto

cd ~/Desktop/shell/practice

ou

cd $HOME/Desktop/shell/practice

ou até mesmo

cd /home/$USER/Desktop/shell/practice

estas são todas as maneiras de descrever o mesmo lugar. Depois de chegar ao local do seu script, digite

ls

Se você puder ver o arquivo sh na saída, poderá usar chmod para torná-lo executável. No meu caso, lembre-se, o nome do arquivo é test.sh , então eu rodaria

chmod u+x test.sh

Agora que estamos no mesmo diretório que o script, precisamos especificar para o shell que queremos executar o arquivo, fornecendo sua localização ./ (o diretório atual seguido por um separador de caminho, para distingui-lo de o nome do arquivo). Para executar meu arquivo, eu digitaria:

./test.sh

Se o seu script foi escrito corretamente, ele será executado sem erros ...

Aqui está um exemplo ao vivo:

    
por TheExorcist 03.12.2016 / 12:14
2

2 etapas principais.

  1. no terminal, use o gedit para escrever e salvar o script com a extensão ".sh" no desktop. (mas qualquer editor de texto pode ser usado)

  2. abra o Nautilus e clique com o botão direito do mouse no arquivo script.sh.

    • em propriedades, marque a caixa "permitir a execução do arquivo .."

    • no menu do Nautilus, clique em arquivo, preferências e comportamento

    • marque a opção "executar arquivos de texto executáveis quando eles forem abertos".

Agora, quando você clica duas vezes no arquivo na área de trabalho, ele deve ser executado. não há necessidade de . ou ./

    
por rob 24.10.2013 / 16:24
2

No Ubuntu 16.04, é como abri-lo no Terminal:

Acesse o File Manager > Edit > Preferences > Behavior para Executable Text Files e selecione Ask each time .

O problema é que, por padrão, é definido como View Executable Files when they are opened .

    
por Leniel Macaferi 11.12.2016 / 20:58
2

Existem algumas maneiras de fazer isso.

Opção 1

  1. No terminal, acesse o diretório no qual o arquivo Bash está usando cd (altere o diretório).

    cd Downloads

  2. Executar bash <filename>.sh

    Isso também funciona com arquivos .run. Há um exemplo desse uso nesta página na atualização do Rhythmbox.

Opção 2

  1. No terminal, navegue até o diretório no qual o arquivo bash está.

  2. Executar chmod +x <filename>.sh

  3. No Nautilus, abra o arquivo.

por Kenny Stier 06.01.2014 / 22:33
1

Se você colocar seu script de shell ou outro executável criado em / usr / local / bin, ele será localizado e executado sem a necessidade de fornecer um caminho de pasta na linha de comando ou adicionar ./ ao nome. Por exemplo, criei o seguinte script bash simples de 3 linhas para exibir os UUIDs do disco:

#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid

Eu chamei o arquivo uuid e o coloquei em / usr / local / bin. Tudo que eu preciso digitar na linha de comando é:

uuid
    
por fragos 01.05.2011 / 09:14
1
  1. Clique com o botão direito do mouse no arquivo .sh e torne-o executável.

  2. Abra um terminal ( Ctrl + Alt + T ).

  3. Arraste o arquivo .sh para a janela do terminal e observe com admiração.

por 1p_bunny 10.06.2017 / 16:09
0

Bem, eu também enfrentei o mesmo problema. Eu queria executar o arquivo .sh e ele abriu com o Gedit no CentOS 7. Então, aqui está o que eu fiz:

  1. naveguei para o caminho do arquivo .sh que queria executar.
  2. eu abri o terminal.
  3. E eu simplesmente arrastei e soltei o na janela do terminal e ele automaticamente pegou o arquivo junto com o caminho como entrada.
  4. Pressione Enter e você está pronto para ir!
por Jen Bates 16.06.2016 / 17:11
0

O problema que encontrei em algumas distribuições é que eles ocultaram a opção de preferências no Nautilus, mas para corrigi-lo no Ubuntu e outras distribuições usando o Gnome3 é o mesmo (literalmente acabamos de fazer a versão do Fedora e postar a correção real para me lembrar como no futuro).

  1. Instale dconf-editor

    sudo apt-get install dconf-editor
    
  2. Execute dconf-editor usando a conta de usuário desejada, ou seja, NÃO raiz

    dconf-editor
    
  3. Navegue até o seguinte esquema:

    org.gnome.nautilus.preferences

  4. Altere a opção padrão para não abrir por padrão:

    Encontre executable-text-activation clique na palavra display e mude para ask

que lhe dará a opção de editar, visualizar ou executar o arquivo daqui para frente

    
por Snider 22.12.2013 / 17:06
0

Eu sou um noob no Linux e acabei de ter o mesmo problema. Se tudo mais falhar:

  1. Terminal aberto
  2. Abra a pasta que contém o arquivo .sh
  3. Arraste e solte o arquivo na janela do terminal
  4. O caminho do arquivo aparece no terminal. Pressione Enter .
  5. Voila, seu arquivo .sh é executado.
por Linux_noob 07.05.2017 / 04:19
-2

Você também pode usar . truques, com a sugestão de outras respostas.

Por exemplo:

chmod +x filename.sh , supondo que você já tenha ido para o caminho para o arquivo e, em seguida, execute o arquivo com qualquer um desses comandos:

sh filename.sh

./filename.sh

. filename.sh
    
por Awais 02.01.2015 / 09:29