Quais idiomas são usados para construir comandos Unix?

9

Exemplos de comandos aos quais estou me referindo são ls , pwd e cd . Além disso, como eles são construídos? Você tem um exemplo?

    
por fronthem 24.07.2011 / 20:16

2 respostas

26

Normalmente, é normal C . Os comandos ls e pwd vêm do pacote GNU Coreutils em (mais?) Distribuições Linux (e talvez alguns outros sistemas). Você pode encontrar o código na página inicial .

Para coreutils especificamente, você os constrói com as etapas habituais: depois de descompactar a origem, problema:

./configure --prefix=/some/path
                   # type ./configure --help to get the available options
make
make install       # could require root access depending on the path you used

Tenha cuidado - instalar utilitários de base, como aqueles sobre a cópia da sua distribuição, é uma má ideia . Use o gerenciador de pacotes do seu sistema para isso. Você pode instalar um prefixo diferente (instalar em algum lugar no diretório inicial é uma boa ideia se você quiser experimentar).

Observe que, embora haja um cd executável , o cd que você usará na maioria das circunstâncias não é um executável separado. Tem que ser um shell build-in (senão não poderia mudar o diretório atual do shell - isso tem que ser feito pelo próprio processo), então ele é escrito na mesma linguagem que o shell (que geralmente é C também ).

Outros exemplos:

  • OpenSolaris pwd source .
  • FreeBSD ls

Você pode encontrar muito mais desses sites on-line.

    
por 24.07.2011 / 20:22
5

Apenas para adicionar um pouco mais à resposta de Mat, embora o Unix os implemente como programas autônomos, muitos comandos também são implementados em bash (para evitar ter que gerar um novo processo) veja a página bash man para mais detalhes, ou dê uma olhada na tag .

bash também é escrito em C

Pode ser interessante notar que estes comandos não têm para serem escritos em C - na verdade, vários usos de distribuição mini-linux lua implementações destes e de outros.

    
por 25.07.2011 / 13:12