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

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

Estou acostumado a inserir scripts comuns /usr/local/binpara poder executá-los de qualquer lugar com o terminal.

Por exemplo, eu faço um script de shell chamado 1, torno-o executável chmod +x 1e coloco-o em /usr/local/bin, e dentro do script digito #!/bin/shna primeira linha e depois meus comandos. A partir daí, é muito conveniente de usar e rápido de executar digitando

1Enter

no terminal, de dentro de qualquer pasta.

Meu problema é que atualmente estou trabalhando em um computador onde não posso fazer isso sudoe também não posso esperar obtê-lo, então não posso colocar meu script no formato /usr/local/bin.

Quais são minhas opções? Existe outro caminho com a mesma capacidade de "executar de qualquer lugar", que eu possa acessar sem sudo, ou outra maneira de conseguir algo equivalente?

A resposta aceita paraesta postagemdiz

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

Tentei, mas não há nenhuma binpasta em meu diretório inicial e, quando criei uma, ainda não consegui executar o script em nenhum outro lugar.

Estou executando no Ubuntu 12.04 LTS.

Responder1

Quais são minhas opções? Existe outro caminho com a mesma capacidade de "executar de qualquer lugar", que eu possa acessar sem o sudo, ou outra maneira de conseguir algo equivalente?

Como fazer isso?

Crie algum diretório em sua casa para armazenar seus scripts normalmente nomeados como binconvenção.

mkdir ~/bin

Agora mova seus scripts para o lixo

mv somescript ~/bin

Agora, como fazer com que ele sintonize de todos os lugares?!

Você tem que adicionar 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 usernamepelo seu nome de usuário

Salve e saia e, em seguida, obtenha o bashrc

source .bashrc

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

Nota: É melhor renomear seus scripts com nomes diferentes 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, em source ~/.profilevez de ~/.bashrc. Como adicionar ~/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

Responder2

Além dehttps://askubuntu.com/a/643030/218015você também pode definir um alias dentro de seu .bashrc para tarefas pequenas e usadas com frequência. Por exemplo

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

irá criar um "comando" ll, que está fazendo ls -l e ls será colorido após definir o alias.https://wiki.ubuntuusers.de/aliasestá tendo mais alguns exemplos e um tutorial para configurá-lo.

Responder3

Tentar ~/.local/bin/.

(Reconheço que esta resposta não acrescenta nada de novo, mas há uma resposta curta para esta pergunta que não deve exigir a leitura de todo o resto.)

Responder4

Realmente deveria haver uma lixeira por usuário porque seria muito útil em ambientes multiusuários, onde as pessoas não têm privilégios de root para deixar todos mais seguros. Use o seguinte em um script bash para criá-lo automaticamente.

if [ ! -d "$HOME/.local/bin" ] ; then
  mkdir -p "$HOME/.local/bin"
  printf '\nexport "PATH=$PATH:'"$HOME"/.local/bin'"' >> "$HOME/.bashrc"
  # Change the PATH right now:
  PATH="$PATH:$HOME/.local/bin"
fi

informação relacionada