Alternativa não sudo para / usr / local / bin para scripts comuns

16

Estou acostumado a colocar scripts comuns /usr/local/binpara que eu possa executá-los de qualquer lugar com o terminal.

Por exemplo, eu crio um script de shell chamado 1, o executo com chmod +x 1e o coloco /usr/local/bin, e dentro do script digito #!/bin/shna primeira linha e depois nos meus comandos. A partir daí, é muito convenientemente utilizável e rápido de executar, digitando

1Enter

no terminal, de dentro de qualquer pasta.

Meu problema é que atualmente estou trabalhando em um computador em que não posso fazer sudoe também não posso esperar obtê-lo, portanto não consigo inserir meu script /usr/local/bin.

Quais são as minhas opções? Existe outro caminho com o mesmo recurso "executar de qualquer lugar", que eu possa acessar sem sudo, ou outra maneira de obter algo equivalente?

A resposta aceita para este post diz

Para scripts de escopo do usuário, use bin / em seu diretório pessoal.

O que tentei, mas não há binpasta no meu diretório pessoal e, quando criei uma, ainda não consegui executar o script de nenhum outro lugar.

Estou executando o Ubuntu 12.04 LTS.

user985366
fonte
2
Não use 1 ou algo parecido como nome do script. Tentar calcular algo em seu shell: por exemplo expr 1 + 1 (e se você não está fazendo isso, algum script vai fazê-lo em algum momento, com certeza)
frlan
11
@frlan: Como seria expr 1 + 1afetado pela presença de um script chamado 1?
Psmears
Verdadeiro ... não afetando expr, nem aritmética do bash $(( 1 + 1 )).
Campa

Respostas:

19

Quais são as minhas opções? Existe outro caminho com o mesmo recurso "executar de qualquer lugar", que eu possa acessar sem o sudo, ou outra maneira de obter algo equivalente?

Como fazer isso?

Crie algum diretório em sua casa para manter seus scripts normalmente nomeados bincomo convenção.

mkdir ~/bin

Agora mova seus scripts para bin

mv somescript ~/bin

Agora como ajustá-lo de qualquer lugar ?!

Você deve adicionar o binao PATH

abre o teu .bashrc

gedit .bashrc

e adicione esta linha:

export PATH=$PATH:/home/username/bin

Não se esqueça de substituir usernamecom o seu nome de usuário

Salve e saia e, em seguida, obtenha o bashrc

source .bashrc

e agora você está bem, você pode executar seu script como costumava fazer! mas você deve observar que isso está relacionado apenas ao seu usuário.

Nota: É melhor renomear seus scripts além de 1, 2, pois você pode enfrentar alguns problemas com esses nomes


ATUALIZAR:

Você pode fazer o mesmo, basta criar o diretório bin em sua casa e source ~/.profilenão em ~/.bashrc. Como adicionar o ~ / bin ao seu PATH já está listado em.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
Maythux
fonte
Eu uso export PATH=$PATH:$HOME/binpara que eu possa usar o mesmo bashrc para outras contas com nomes de usuário diferentes.
Anthony G - justice for Monica
11
Apenas para mencionar ~/bin está em$PATH por padrão no Ubuntu. Apenas execute source ~/.profileou efetue logout / logon após criar o diretório.
Jacob Vlijm
@JacobVlijm Em que versão? !!! Eu uso 12.04, 14.04, 15.04 e nenhum deles tem ~ / bin no PATH
Maythux
Em todos eles, eu sempre o uso, em muitas das minhas respostas (aceitas) também, nunca recebi nenhum comentário sobre isso, trabalha em casa em cinco sistemas também, mas, como disse, depois de executarsource ~/.profile . Veja (por exemplo) aqui: askubuntu.com/a/247422/72216
Jacob Vlijm
11
Ele disse fonte ~/.profile, ele nunca disse fonte ~/.bashrc. :) Além disso, como regra geral, as variáveis ambientais devem ir em .profilee não .bashrcuma vez que só precisa ser configurado uma vez. (nada disso significa dizer que sua resposta não é boa, lembre-se, e +1 de mim)
terdon
4

Além de /ubuntu//a/643030/218015, você também pode definir um alias dentro do seu .bashrc para tarefas pequenas e frequentemente usadas. Por exemplo

alias ll='ls -l'
alias ls='ls --color=auto'

irá criar um "comando" ll, que está executando ls -l e ls será colorido após a definição do alias. https://wiki.ubuntuusers.de/alias está tendo mais alguns exemplos e um tutorial sobre como configurá-lo.

frlan
fonte