Onde você encontra os arquivos de origem Bash de programas no Linux / Mac OSX?

1

No momento, estou escrevendo alguns métodos de conveniência para meu terminal no meu bash_profile e tenho certeza de que o que estou escrevendo é "o melhor caminho". Acho que uma boa maneira de verificar se o que estou fazendo é certo ou não seria encontrar algum código-fonte de programas mais estabelecidos e ver como eles o fazem.

A minha pergunta é: onde posso encontrar este código no meu Mac? Um exemplo é, com o Macports instalado, onde está o código-fonte que abre o console interativo da porta quando eu digito nada além de "port" no meu shell?

(Eu adicionei o Linux no título mesmo que eu esteja em um Mac porque eu suponho que a resposta seria a mesma para ambos)

Editar: A resposta que estou procurando é em termos de qual diretório relativo aos programas encontrarei seus scripts unix.

    
por AndrewKS 06.01.2011 / 20:01

3 respostas

2

Muitos dos comandos são compilados em código C (ou outras linguagens como C ++ ou Objective C) ao invés de scripts shell (alguns podem ser Perl, AWK, Python, etc.). Você pode usar o comando file para descobrir quais são.

$ file /bin/grep
/bin/grep: ELF 32-bit LSB executable ...
$ file /bin/which
/bin/which: POSIX shell script text executable

Você pode usar algo assim para encontrar scripts de shell em seu sistema:

find /bin -executable -type f -exec bash -c 't=$(file {}); if [[ $t =~ shell\ script ]]; then echo {}; fi' \;

Substitua diferentes diretórios iniciais para pesquisar várias partes do seu sistema de arquivos. Use -perm -111 em vez de -executable se o seu find não tiver o último.

    
por 06.01.2011 / 20:22
0

Os scripts bash estão bem, no bash, também conhecido como plain text, você pode abri-los em um editor de texto.
No entanto, a maioria das ferramentas * nix são escritas em C / C ++.
Recomendo vivamente a leitura da Programação BASH - Introdução HOW-TO , Guia avançada de script do Bash e este guia bash4 .

E como uma preferência pessoal, recomendo verificar o python também.

    
por 06.01.2011 / 20:11
0

Se eu ler isso corretamente, você está procurando os arquivos "master" ou .bashrc?

O principal bashrc está localizado aqui / etc / bashrc e o seu próprio ficará oculto em seu diretório home ~ / .bashrc a cópia do diretório inicial vem de /etc/skel/.bashrc

Agora, o comando "port" é apenas um link para o / usr / bin / port, como você pode ver indo para / usr / bin e rolando os arquivos. Cada um funcionará por causa do seu $ PATH disponível (que pode ser definido no bashrc) Se você quiser ver o que seu $ PATH está, simplesmente digite-o no terminal.

Estas instruções são para Linux e podem não ser as mesmas no seu Mac.

Eu também sugiro olhar para os links do oneOfone.

considera

    
por 06.01.2011 / 20:22