Eu tenho alguns scripts bash muito simples que juntei para as coisas que faço regularmente. Uma delas é executar duplicidade para executar minhas tarefas de backup. Nada inteligente, apenas um monte de declarações if .. then realmente. Como isso precisa ser executado como sudo, seria uma boa prática colocar meu script em / usr / bin (ou outro local no PATH), chown para root.root e chmod para 700?
15
git
para controlar a versão de seus scripts, coloque cópias locais dos repositórios git em algum lugar em que você goste~
e, em seguida, faça o link simbólico dos scripts~/bin
.git
como nasgithub
nuvens?/usr/local/bin
. Caso contrário, eu diria apenas colocá-los~/bin
. Seus próprios scripts nos dois diretórios devem estar seguros quando você atualizar.~/bin
é o melhor lugar para a maioria dos scripts, pois você não precisasudo
editá-los, como quando estão armazenados/usr/local/bin
.Respostas:
Eu salvo meus próprios scripts
/opt/scripts
.Se seu script deve ser executado por todos os usuários do sistema, você pode criar um link simbólico para
/usr/bin
.Se apenas o root executar o script, você poderá criar um link simbólico para
/usr/sbin
.Comando para adicionar um link simbólico em
/usr/bin/
:Você pode executar o script, porque
/usr/bin/
está no seu PATH por padrão.fonte
/usr/bin
como alvo o script de shell do usuário / local - que seja/usr/local/bin
(ou/opt/bin
) de acordo com o Padrão de Hierarquia de Sistema de Arquivos - Debian Wiki para evitar conflitos (na maioria das vezes, você deseja que os scripts fornecidos pelo Ubuntu tenham precedência)./usr/local/bin
substitui/usr/bin
, como ocorre mais tarde no caminho. Isso é de propósito, como o sistema não coloca arquivos lá, então você pode colocar arquivos lá, que DEVERÃO substituir os fornecidos pelo sistema.Se nenhum outro usuário além de você usar estes scripts:
Então você pode mantê-los
/home/$USER/bin
. Crie abin
pasta se ela não estiver lá e mova os arquivos para lá. A pasta bin em sua casa será adicionada automaticamente à variável de ambiente PATH. O código está no.profile
:Consulte Como adicionar / home / nome de usuário / bin ao $ PATH?
Ou, em alguns sistemas, pode estar em
.bashrc
:Obrigado Elder Geek
Se estes scripts forem usados por outros usuários:
Então,
/usr/local/bin
ou/opt/bin
são ou são boas opções. Consulte Existe um local padrão para a colocação de scripts Linux personalizados?Espero que isto ajude
fonte
Eu tenho um diretório que eu uso para a coleção rápida de minhas ferramentas locais ou coisas que implanto em vários computadores
/usr/local/apollo
. Existem ramificações deste diretório paraflags
,bin
elogs
.Para os aplicativos que eu baixa e instalo fora dos
apt-get
repositórios padrão, são colocados/opt/
e um diretório com o nome do aplicativo, com mais um subdiretório para a versão específica do aplicativo. Dessa forma, minha versão compilada de um aplicativo gostavlc
oueclipse
não entra em conflito com a versão distribuída.Meu uso
/opt
é basicamente o design oficial.Pela forma como os diretórios
/usr/local/bin
,/usr/local/apollo
, e/opt
sobrevive uma nova sobrescrever a instalação da versão do SO.fonte
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Eu gosto do fato de/usr/local/bin
já estar no caminho uma coisa a menos para lembrar. Gosto do seu método/opt/program/version
, posso usá-lo para as coisas do Kernel que obtenho e compilo como o EnhanceIO, onde elas mudam as coisas entre as versões do kernel./apollo
Uma aterrissagem na lua é a favorita pessoal ou tem significado para o Ubuntu?/usr/local/bin
e deusr/local/sbin
tal forma que este último é bloqueado durante as atualizações?/usr/local
diretórios, mas não coloca nada em nenhum deles. Esses diretórios são preenchidos pelo usuário. Muitos programas de origem fora dos repositórios oferecem ao usuário a opção de selecionar para onde eles querem que a instalação vá. O padrão nos arquivos de configuração é/usr/local/bin
. Portanto, como é comum o uso desses diretórios, eles são incluídos no caminho do usuário por padrão. Por padrão, o sistema verifica~/bin
e o adiciona ao caminho, se existir.~/bin
durante a instalação ou toda inicialização? Qual é a diferença entresbin
ebin
? Eles parecem coexistir, deve haver quase-regras nas quais você escolhe com base no tipo de programa, certo?~/bin
caminho ... não é adicionado durante a instalação. O sistema o verifica em todos os logins e o adiciona ao $ PATH, se existir durante o logon. Veja as duas últimas linhas de suas~/.profile
configurações.