Eu tenho seis diretórios com arquivos de comando. Estes são /bin
, /sbin
, /usr/bin
, /usr/sbin
, /usr/local/bin
e /usr/local/sbin
.
Quais são as diferenças entre estes? Se estou escrevendo meus próprios scripts, onde devo adicioná-los?
Palavras-chave:
Respostas:
Consulte o FHS (Filesystem Hierarchy Standard) para Linux para isso.
/bin
: Para binários utilizáveis antes da/usr
montagem da partição. Isso é usado para binários triviais usados no estágio de inicialização inicial ou para aqueles que você precisa ter disponível no modo de inicialização para usuário único. Pense binários comocat
,ls
, etc./sbin
: Mesmo, mas para binários com privilégios de superusuário (root) necessários ./usr/bin
: Igual ao primeiro, mas para binários gerais em todo o sistema ./usr/sbin
: O mesmo que acima, mas para binários com privilégios de superusuário (root) necessários.Nenhuma das acima. Você deve usar
/usr/local/bin
ou/usr/local/sbin
para scripts disponíveis em todo o sistema. Olocal
caminho significa que não é gerenciado pelos pacotes do sistema (este é um erro para os pacotes Debian / Ubuntu).Para scripts com escopo definido pelo usuário , use
~/bin
(uma pasta de lixeira pessoal no diretório inicial).A ESF diz para
/usr/local
:fonte
/bin
causa problemas? Mudei meus scripts de acordo com a sua resposta, mas eu ainda estou curiosoSeverity:Serious Certainty:Certain
ls -la
não mostra nadaEu mesmo tive uma pergunta semelhante há um ano: Melhor diretório para colocar meus scripts bash?
Diretórios do sistema para binários
man hier
(hierarquia) lista todos os diretórios. Para obter apenas os binários, use:Onde colocar seus próprios scripts?
Para que todos os usuários acessem seus scripts, você pode inseri-los
/usr/local/bin
. Lembre-se de que você precisa desudo
acesso para adicionar / alterar arquivos aqui. Consulte: Existe um local padrão para a colocação de scripts personalizados do Linux?Para seus próprios scripts de ID do usuário, insira-os
/home/YOUR_NAME/bin
. Lembre-se de que você precisa primeiro criar este diretório e reiniciar o terminal para obter a configuração automática do caminho~/.profile
. Veja: Como adicionar / home / nome de usuário / bin ao $ PATH?O que eu sei, eu não sei
Estou pensando em pegar alguns dos meus scripts bash mais complexos no Ask Ubuntu e configurá-los com scripts de instalação
github
. Aqui estão alguns exemplos:Eu acho que os scripts devem ser instalados em
/usr/bin
que está no $ PATH, mas ainda não tenho certeza do local apropriado.fonte
man hier
seção que a resposta de gertvdijk não abordou. ou seja, você pode obter a estrutura hierárquica do diretório na linha de comando sem precisar recorrer a lê-la na web (ou seja, aqui).man hier
é um trecho informativo insuficiente do IMO). No entanto, essa pode ser minha opinião pessoal./usr/X11R6/bin
e/usr/local/bin
está incluído noman heir
./usr/local/bin
já que você não é o gerente de pacotes?