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 file
executável:
chmod +x /full/path/to/your/file
Agora você deve poder executar name_of_new_command
a qualquer momento no seu terminal.
Observe que essa é uma boa solução apenas para uso doméstico do Linux.
/usr/local/bin
que aponte para um script em uma pasta pessoal particular, como /home/jack/myscript.sh
, pois somente o usuário jack
normalmente 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/bin
e scripts privados (ou links para scripts) um único usuário em sua ~/bin
pasta.
Você pode adicionar /opt/idea/bin
à sua PATH
variável:
PATH=/opt/idea/bin:"$PATH"
Depois disso, você pode executá-lo com simplicidade idea.sh
.
Você provavelmente deseja adicionar esta linha ao seu ~/.bashrc
arquivo.
idea
, você teria que criar um link ou alias com esse nome apontando para o idea.sh
script.
idea.sh
script 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 $PATH
automaticamente ao seu . Então você liga diretamente para file
:
$ file
(Má escolha de nome, considere chamá-lo de algo menos genérico.)
file
ao 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 ~/bin
mim 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 .desktop
extensã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 bind
comando para chamar isso. Abra o ~/.bashrc
arquivo 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 \e
antes de adicionar o atalho para, por exemplo, substituir ^[[24~
por \e[24~
.
Também podemos executar o /opt/idea/bin/idea.sh
arquivo diretamente usandobash_aliases
Abra o ~/.bashrc
arquivo 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_aliases
arquivo,
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 ~/.bashrc
arquivo,
source ~/.bashrc
Agora você pode executar o /opt/idea/bin/idea.sh
arquivo diretamente,
idea
Além das outras boas respostas, considere ligar ~/.local/bin
e adicionar este diretório ao seu PATH (de dentro do seu, .bashrc
por 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)