Gostaria de saber se existe uma maneira de executar o script de programa / shell sem digitar o caminho completo:
/opt/idea/bin/idea.sh
Gostaria de saber se existe uma maneira de executar o script de programa / shell sem digitar o caminho completo:
/opt/idea/bin/idea.sh
Respostas:
Você pode apenas criar um link simbólico . Crie-o /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 fileexecutável:
chmod +x /full/path/to/your/file
Agora você deve poder executar name_of_new_commanda qualquer momento no seu terminal.
Observe que essa é uma boa solução apenas para uso doméstico do Linux.
/usr/local/binque aponte para um script em uma pasta pessoal particular, como /home/jack/myscript.sh, pois somente o usuário jacknormalmente poderá executá-lo. O link simbólico estará visível para outros usuários, mas não para o arquivo para o qual ele aponta. Em um sistema de usuário único, isso pode não importar, mas ainda é uma "boa prática" colocar scripts (ou links para scripts) que todos os usuários possam ler /usr/local/bine scripts privados (ou links para scripts) um único usuário em sua ~/binpasta.
Você pode adicionar /opt/idea/binà sua PATHvariável:
PATH=/opt/idea/bin:"$PATH"
Depois disso, você pode executá-lo com simplicidade idea.sh.
Você provavelmente deseja adicionar esta linha ao seu ~/.bashrcarquivo.
idea, você teria que criar um link ou alias com esse nome apontando para o idea.shscript.
idea.shscript não é esse script, na verdade, movê-lo para fora do diretório de instalação não é completamente suportado. As regras de empacotamento do Debian não se aplicam aqui.
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'
Nos dois casos, você pode executá-lo chamando:
$ some-name
Se o arquivo não depender de onde 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, é adicionado $PATHautomaticamente ao seu . Então você liga diretamente para file:
$ file
(Má escolha de nome, considere chamá-lo de algo menos genérico.)
fileao seu ~/bin, que é o que eu costumo fazer (para scripts mais longos). Eu provavelmente colocaria esse no topo :) Aliases são bons para atalhos para comandos com certos parâmetros, por exemplo alias l='ls -CF',. Embora eu tenha visto usos muito mais impressionantes de aliases . Não costumo declarar funções ~/.bashrc(prefiro ter todos os meus scripts organizados em arquivos separados ~/bin). Apesar de tudo isso é uma questão de gosto, eu acho :)
cd, porque o script pode depender do diretório de trabalho. :) Caso contrário, sim, eu tendem a colocar arquivos em ~/binmim mesmo.
Você pode criar um iniciador usando o seguinte comando:
gnome-desktop-item-edit --create-new <path-where-to-save>. Eu vou abrir esta janela.

Nomeie como quiser e, na caixa de comando, digite a seguir
sh -c '/opt/idea/bin/idea.sh' e salve.
Agora você pode executar esse arquivo usando o iniciador recém-criado
OU
Você pode criar um arquivo .desktop com o seguinte conteúdo
[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 .desktopextensão em qualquer lugar.
Torne executável com este comando chmod a+x <your-desktop-file>
Agora clique duas vezes para abri-lo.
Podemos definir uma função e adicionar uma tecla de atalho usando o bindcomando para chamar isso. Abra o ~/.bashrcarquivo 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 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 \eantes de adicionar o atalho para, por exemplo, substituir ^[[24~por \e[24~.
Também podemos executar o /opt/idea/bin/idea.sharquivo diretamente usandobash_aliases
Abra o ~/.bashrcarquivo executando,
gedit ~/.bashrc
Remova o #antes das linhas e salve-o, para que as linhas pareçam,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Agora abra o ~/.bash_aliasesarquivo,
gedit ~/.bash_aliases
Adicione as linhas abaixo nesse arquivo e salve-o,
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
Finalmente, forneça o ~/.bashrcarquivo,
source ~/.bashrc
Agora você pode executar o /opt/idea/bin/idea.sharquivo diretamente,
idea
Além das outras boas respostas, considere ligar ~/.local/bine adicionar este diretório ao seu PATH (de dentro do seu, .bashrcpor exemplo). Este método não requer permissões especiais (diferentemente do link simbólico /usr/local/bin, por exemplo). Dessa forma, você pode ter uma estrutura de diretório padrão sem inundar seu $ HOME. Leia mais sobre isso nestas https://unix.stackexchange.com/ perguntas:
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.
Eu segui todas as respostas aqui e em outros lugares e, portanto, poucos deixam de mencionar que talvez seja necessário sair do sistema para que o comando funcione eventualmente.
Apenas para recapitular, especialmente para o Xubuntu , mas também para outras variantes do 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. Veja aqui :
# 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)