Como executar scripts sem digitar o caminho completo?

47

Gostaria de saber se existe uma maneira de executar script de programa / shell sem digitar o caminho completo:

/opt/idea/bin/idea.sh
    
por Poorman_Patrick 01.03.2014 / 08:05

10 respostas

51

Você pode criar um link simbólico . Crie-o em /usr/local/bin . Tudo que você precisa é executar o comando:

sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command

Depois disso, você deve tornar seu executável file :

chmod +x /full/path/to/your/file

Agora você poderá executar name_of_new_command a qualquer momento no seu terminal.

Note que esta é uma boa solução apenas para uso doméstico do Linux.

    
por c0rp 22.09.2014 / 10:43
24

Você pode adicionar /opt/idea/bin à sua variável PATH :

PATH=/opt/idea/bin:"$PATH"

Depois disso, você pode executá-lo com apenas idea.sh .

Você provavelmente deseja adicionar esta linha ao seu arquivo ~/.bashrc .

    
por janos 01.03.2014 / 08:16
14

Você pode criar uma função no seu ~/.bashrc :

some-name () {
    /path/to/your/file
    # or:
    #cd /path/to/your
    #./path
}

Ou você pode criar um alias :

alias some-name='/path/to/your/file'
# or  
#alias some-name='cd /path/to/your/; ./file'

Em ambos os casos, você pode executá-lo chamando:

$ some-name

Se o arquivo não depende de onde ele está sendo executado, considere adicioná-lo ao seu ~/bin :

mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin

~/bin , se existir, será adicionado ao seu $PATH automaticamente. Então você chama diretamente file :

$ file

(Má escolha de nome, considere chamá-lo de algo menos genérico.)

    
por muru 22.09.2014 / 10:34
10

Você pode criar um lançador usando o seguinte comando:

gnome-desktop-item-edit --create-new <path-where-to-save> . Eu não vou abrir esta janela.

Nomeie o que quiser e no tipo de caixa de comando a seguir

sh -c '/opt/idea/bin/idea.sh' e salve-o.

Agora você pode executar esse arquivo usando o lançador recém-criado

OR

Você pode criar um arquivo .desktop com os seguintes conteúdos

[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'     
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'

Agora salve-o com a extensão .desktop em qualquer lugar.

Torne-o executável com este comando chmod a+x <your-desktop-file>

Agora clique duas vezes para abri-lo.

    
por g_p 01.03.2014 / 08:33
7

Podemos definir uma função e adicionar uma tecla de atalho usando o comando bind para chamar isso. Abra o arquivo ~/.bashrc e adicione estas linhas a ele:

# define function that opens your program in working directory
Openprog(){
    /your-Program/path/here
}

# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'

Agora, quando você pressionar F12 , seu programa será iniciado.

Nota: Uma maneira rápida de determinar o código de escape:

Abra o seu terminal e pressione Ctrl + V . Agora pressione o seu atalho de teclado favorito. O código de escape correto deve aparecer. Apenas certifique-se de substituir ^[ por \e antes de adicionar o atalho, por exemplo substitua ^[[24~ por \e[24~ .

    
por αғsнιη 22.09.2014 / 10:37
7

Também podemos executar o arquivo /opt/idea/bin/idea.sh diretamente usando bash_aliases

Abra o arquivo ~/.bashrc executando,

gedit ~/.bashrc

Remova o # antes das linhas e salve-o, para que as linhas fiquem parecidas com

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Agora abra o arquivo ~/.bash_aliases ,

gedit ~/.bash_aliases

Adicione as linhas abaixo nesse arquivo e salve-o,

alias idea='cd /opt/idea/bin && sudo ./idea.sh'

Por fim, crie o arquivo ~/.bashrc ,

source ~/.bashrc

Agora você pode executar o arquivo /opt/idea/bin/idea.sh diretamente,

idea
    
por Avinash Raj 01.03.2014 / 10:12
4

Além das outras boas respostas, considere criar links simbólicos para ~/.local/bin e adicionar esse diretório ao seu PATH (de dentro do seu .bashrc , por exemplo). Este método não requer permissões especiais (ao contrário do symlinking para /usr/local/bin , por exemplo). Dessa forma, você pode ter um diretório padrão sem inundar seu $ HOME. Leia mais sobre isso nestas perguntas link :

por abstrus 04.08.2015 / 05:48
1

Crie um link dele em /usr/bin direcotyr:

ln -s /usr/bin/idea.sh  /opt/idea/bin/idea.sh

Agora execute-o usando:

idea.sh
    
por J.Franks 02.12.2016 / 22:44
0

Ou você pode simplesmente usar

nano ~/.bashrc

e adicione

PATH=/full/path/to/file:"$PATH"

no final, salve e saia. Depois, você pode simplesmente digitar o nome do arquivo.

    
por Help the Newbie 02.05.2018 / 08:26
0
  

Eu segui todas as respostas aqui e em outros lugares, e poucos não mencionam que você pode precisar LOG OUT para que o comando funcione eventualmente.

Apenas para recapitular, especialmente para o Xubuntu , mas para outras variantes Debian / Ubuntu , escrevi estas instruções simples.

(nas instruções a seguir usamos o diretório ~ / bin , porque é automaticamente um local de onde esses SOs procuram comandos. Consulte aqui :

Instruções à prova de erros para que seu comando funcione:

# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)

# You'll work in your home folder, no need to use sudo for any of this

cd # Go to home directory

mkdir -p bin # Create folder ~/bin if it doesn't exist

# Be careful not to type /bin, that's the bin folder in system root: /

sudo apt install nano # Skip this if you have Nano installed

nano bin/yournewcommand

    # In Nano, type:

    printf "Your new command works! \n" # \n means line break

    # Ctrl+X To leave Nano

    # Ctrl+Y To save the unsaved file

    # Enter to confirm

chmod +x bin/yournewcommand

yournewcommand # If you just created the bin folder, this command might not yet work.

# You must now log out and log back in to make the bin folder noticed (I think)

yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)

# If you add a second file/command, it should work without logging out (at least in my tests)
    
por Manu Järvinen 22.09.2018 / 16:16