Exemplos de comandos que me refiro são ls
, pwd
e cd
. Além disso, como eles são construídos? Você tem um exemplo?
command-line
source
coreutils
fronthem
fonte
fonte
Respostas:
Geralmente é simples
C
. Os comandosls
epwd
vêm doGNU Coreutils
pacote em (a maioria?) Distribuições Linux (e talvez em outros sistemas). Você pode encontrar o código na página inicial .Para
coreutils
especificamente, você as constrói com as etapas usuais: após descompactar a fonte, emita:Cuidado: a instalação de utilitários básicos, como aqueles sobre a cópia deles da sua distribuição, é uma má ideia . Use qualquer gerenciador de pacotes fornecido com o seu sistema para isso. Você pode instalar em um prefixo diferente (instalar em algum lugar no diretório inicial é uma boa ideia, se você quiser experimentar).
Observe que, embora exista um
cd
executável , ocd
que você utilizará na maioria das circunstâncias não é um executável separado. Ele deve ser um build-in do shell (caso contrário, não poderá alterar o diretório atual do shell - isso deve ser feito pelo próprio processo), portanto, ele é escrito no mesmo idioma do shell (o que geralmenteC
também é).Outros exemplos:
pwd
Fonte OpenSolaris .ls
Você pode encontrar muitos outros online.
fonte
Apenas para adicionar um pouco mais à resposta de Mat, embora o Unix os implemente como programas independentes, muitos comandos também são implementados dentro
bash
(para evitar que seja necessário gerar um novo processo), consulte abash
página do manual para obter mais detalhes ou dê uma olhada no shell -builtin tag.bash
também está escrito em CPode ser interessante notar que esses comandos não precisam ser escritos em C - de fato, várias distribuições de mini linux usam
lua
implementações desses e de outros.fonte
cd
deve ser um shell integrado para funcionar de maneira eficaz.