Sempre que abro um arquivo .sh, ele é aberto no gedit em vez do terminal. Não encontro nenhuma opção semelhante a Clique com o Botão Direito → Abrir com → Outra Aplicação ... → Terminal .
Como faço para abrir este arquivo no terminal?
ruby foo.rb
Sempre que abro um arquivo .sh, ele é aberto no gedit em vez do terminal. Não encontro nenhuma opção semelhante a Clique com o Botão Direito → Abrir com → Outra Aplicação ... → Terminal .
Como faço para abrir este arquivo no terminal?
ruby foo.rb
Respostas:
Dê permissão de execução ao seu script:
chmod +x /path/to/yourscript.sh
E para executar seu script:
/path/to/yourscript.sh
Como .
se refere ao diretório atual: se yourscript.sh
estiver no diretório atual, você pode simplificar isso para:
./yourscript.sh
bash /path/to/yourscript.sh
, então você não precisachmod +x
. /path/to/yourscript.sh
se o script precisar configurar algumas variáveis de ambiente.
./path/to/yourscript.sh
(sem o espaço depois .
)? Acho que um é o mais simples e fácil de usar ... Mas, de qualquer forma, aqui está a minha alternativa que deve fazer quase o mesmo que ./
faria, embora eu não perceba por que você não usaria ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... edite FILENAME
a seu gosto . Observe também que sh
será usado se não houver alternativa.
Você precisa marcar os scripts de shell como executáveis para executá-los no gerenciador de arquivos:
Clique com o botão direito do mouse no seu .sh
arquivo e selecione Propriedades :
Na guia Permissões , marque Permitir a execução de arquivo como programa :
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:
Abra um terminal e navegue até a pasta em que o .sh
arquivo está localizado. Então digite:
sh <name of file>.sh
Antes de poder executar o arquivo .sh, é necessário torná-lo executável:
Confie na fonte de onde você obteve o arquivo. Pode ser um vírus .
Isso tem problema. O terminal fechará imediatamente e você não poderá ver a saída.
Encontre onde o arquivo .sh
ls
ecd
ls
listará os arquivos e pastas na pasta atual . Experimente: digite "ls" e pressione Enter.cd
, seguido por um espaço, seguido por um nome de pastacd ..
para ir um nível acimaExecute o arquivo .sh
Uma vez que você pode ver, por exemplo script1.sh
, com ls
prazo isso:
./script.sh
O terminal possui um rico conjunto de ferramentas poderosas acessíveis digitando os comandos. Profissionais localizam o arquivo .sh digitando ls
e cd
. Quando você estiver na pasta atual correta, 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 depois redirecionar para um arquivo:
./script1.sh | grep apples > ./only-apples
Existem milhares de coisas que você pode fazer nesse arquivo apenas digitando alguns comandos.
Outro, você pode baixar um arquivo da Internet com um comando simples:
wget www.google.com/images/logos/ps_logo2.png
E então abra o arquivo assim:
shotwell ps_logo2.png
No Ubuntu 13.04, os arquivos executáveis abertos no Nautilus agora são abertos no gedit por padrão, em vez de solicitar ao usuário que os execute. Para habilitar o comportamento clássico, você precisa ajustar as preferências:
Nautilus → menu Editar → Preferências → guia Comportamento → Clique no botão de opção próximo a Perguntar a cada vez.
Vá para o diretório em que o .sh
arquivo está usando cd
. Neste exemplo, eu armazenei meu sh
arquivo como~/Desktop/shell_practice/test.sh
primeiro faça pwd
para descobrir onde você está e, se ele retornar /home/username
(onde username
está seu nome de usuário real), você poderá executar
cd Desktop/shell/practice
Se você parece estar em outro lugar, pode usar o caminho absoluto
cd ~/Desktop/shell/practice
ou
cd $HOME/Desktop/shell/practice
ou mesmo
cd /home/$USER/Desktop/shell/practice
essas são todas as formas de descrever o mesmo lugar. Depois de chegar ao local do seu script, digite
ls
Se você puder ver o sh
arquivo na saída, poderá usá chmod
-lo para torná-lo executável. No meu caso, lembre-se, o nome do arquivo é test.sh
, então eu correria
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 do nome do arquivo). Para executar meu arquivo, digitei:
./test.sh
Se o seu script foi escrito corretamente, ele será executado sem erros ...
2 etapas principais.
no terminal, use o gedit para escrever e salvar scripts com a extensão ".sh" na área de trabalho. (mas qualquer editor de texto pode ser usado)
abra o Nautilus e clique com o botão direito do mouse no arquivo script.sh.
nas propriedades, marque a caixa de seleção "permitir a execução do arquivo .."
no menu Nautilus, clique em arquivo, em preferências e depois em comportamento
marque a opção "executar arquivos de texto executáveis quando abertos".
Agora, quando você clica duas vezes no arquivo na área de trabalho, ele deve ser executado. não há necessidade .
ou./
Clique com o botão direito do mouse no .sh
arquivo e torne-o executável.
Abra um terminal ( Ctrl+ Alt+ T).
Arraste o .sh
arquivo para a janela do terminal e assista com admiração.
Há algumas maneiras de fazer isto.
No terminal, acesse o diretório em que o arquivo Bash está cd
(alterar diretório).
Ex. cd Downloads
Corre bash <filename>.sh
Isso também funciona com arquivos .run. Há um exemplo desse uso nesta página da Web sobre a atualização do Rhythmbox.
No terminal, navegue até o diretório em que o arquivo bash está.
Corre chmod +x <filename>.sh
No Nautilus, abra o arquivo.
Para o Ubuntu 18.04 , há uma pequena modificação, pois você não recebe uma caixa de diálogo pop-up.
Então, o que você precisa fazer é:
Clique com o botão direito do mouse em Arquivos, selecione Preferências> selecione a guia Comportamento> Marque a opção 'Pergunte o que fazer' em Arquivo de texto executável.
Agora, quando você clica duas vezes em qualquer arquivo .sh, é exibida uma janela pop-up. Lá você pode selecionar a opção "executar no terminal" para executar o arquivo .sh.
No Ubuntu 16.04, é como abri-lo no Terminal:
Vá para 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
.
Se você colocar seu shell script ou outro executável criado em / usr / local / bin, ele será encontrado e executado sem precisar 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 de disco:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
Liguei para o arquivo uuid e o coloquei em / usr / local / bin. Tudo o que preciso inserir na linha de comando é:
uuid
Bem, eu também enfrentei o mesmo problema. Eu queria executar o arquivo .sh e ele foi aberto com o Gedit no CentOS 7. Então, aqui está o que eu fiz:
.sh
arquivo que queria executar.O problema que encontrei em algumas distribuições é que elas ocultaram a opção de preferências no Nautilus, mas corrigi-lo no Ubuntu e outras distribuições usando o Gnome3 é o mesmo (literalmente, acabei de fazer a versão do Fedora e postar a correção real para me lembrar como no futuro).
Instalar dconf-editor
sudo apt-get install dconf-editor
Executar dconf-editor
usando a conta de usuário em que você deseja isso, ou seja, NÃO raiz
dconf-editor
Navegue para o seguinte esquema:
org.gnome.nautilus.preferences
Altere a opção padrão para não abrir por padrão:
Localize, executable-text-activation
clique na palavra display
e mude paraask
que lhe dará a opção de editar, visualizar ou executar o arquivo daqui para frente
Eu sou um noob no Linux e só tive o mesmo problema. Se todo o resto falhar:
Você também pode usar .
truques, com a sugestão de outras respostas.
Por exemplo:
chmod +x filename.sh
, supondo que você já tenha acessado o caminho do arquivo, execute o arquivo com qualquer um destes comandos:
sh filename.sh
./filename.sh
. filename.sh