Primeiro de tudo, você pode instalar vários sabores em sua máquina. Portanto, a resposta depende de quantos sabores você instalou e de qual comando você digitou.
netcat-traditional e netcat-openbsd está disponível para ser instalado através do gerenciador de pacotes apt no Ubuntu. No meu caso, eu também construo a partir da fonte para instalar o GNU netcat flavor através do site oficial .
Para o sabor "openbsd", você pode descobrir o nome binário do local com dpkg -L < package-name > (Pesquisando-se para encontrar o equivalente a dpkg L se seu gerenciador de pacotes não for apt ):
$ dpkg -L netcat-openbsd | grep /bin /bin /bin/nc.openbsd
Em seguida, use type -a para confirmar que o nome binário nc.openbsd é pesquisável em $PATH e interpretado como comando:
$ type -a nc.openbsd
nc.openbsd is /bin/nc.openbsd
nc.openbsd is /bin/nc.openbsd
Para o sabor "tradicional" é o mesmo:
$ dpkg -L netcat-traditional | grep /bin
/bin
/bin/nc.traditional
$ type -a nc.traditional
nc.traditional is /bin/nc.traditional
nc.traditional is /bin/nc.traditional
Isso significa que posso emitir o comando nc.openbsd para executar a ferramenta netcat-openbsd e também o comando nc.traditional para executar a ferramenta netcat-traditional . (Pode confundir onde o comando contém '.', Mas o nome do pacote contém '-')
Parece que há 3 versões para instalar via apt :
$ apt-cache search netcat --names-only
netcat-openbsd - TCP/IP swiss army knife
netcat - TCP/IP swiss army knife -- transitional package
netcat-traditional - TCP/IP swiss army knife
Mas, na verdade, netcat é apenas pacote fictício:
$ apt-cache show netcat | grep Description-en -A 2
Description-en: TCP/IP swiss army knife -- transitional package
This is a "dummy" package that depends on lenny's default version of
netcat, to ease upgrades. It may be safely removed.
Você só pode instalar netcat-openbsd e netcat-traditional via apt se quiser:
sudo apt-get install netcat-openbsd
sudo apt-get install netcat-traditional
Como sobre os comandos nc e netcat ? Eles podem ser vinculados a diversos tipos pesquisáveis por $PATH , um dos caminhos será executado se você digitar nc ou netcat . Novamente, você pode usar type -a para verificar, enquanto a prioridade é a primeira linha (como negrito abaixo):
$ type -a nc nc is /usr/local/bin/nc nc is /bin/nc nc is /usr/local/bin/nc nc is /bin/nc $ type -a netcat netcat is /usr/local/bin/netcat netcat is /bin/netcat netcat is /usr/local/bin/netcat netcat is /bin/netcat
Você pode usar realpath para descobrir o caminho resolvido deles:
$ realpath /usr/local/bin/netcat /usr/local/bin/netcat $ realpath /bin/netcat /bin/nc.openbsd $ realpath /usr/local/bin/nc /usr/local/bin/netcat $ realpath /bin/nc /bin/nc.openbsd
4 deles apenas 2 caminhos são únicos no meu sistema, um é "GNU" e o outro é "openbsd":
$ /usr/local/bin/netcat --version | head -1
netcat (The GNU Netcat) 0.7.1
$ /bin/nc.openbsd -h |& head -1
OpenBSD netcat (Debian patchlevel 1.130-3)
Isso significa que, se eu digitar nc OR netcat , ele executará /usr/local/bin/netcat , que é "GNU Netcat".
Você pode tentar update-alternatives para ajustar o caminho da ligação simbólica resolvida:
$ realpath /bin/nc
/bin/nc.openbsd
$ realpath /bin/netcat
/bin/nc.openbsd
$ sudo update-alternatives --config nc
There are 2 choices for the alternative nc (providing /bin/nc).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nc.openbsd 50 auto mode
* 1 /bin/nc.openbsd 50 manual mode
2 /bin/nc.traditional 10 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in manual mode
$ realpath /bin/nc
/bin/nc.traditional
$ realpath /bin/netcat
/bin/nc.traditional
Ele alterou /bin/nc e /bin/netcat symlink¹ resolvido para /bin/nc.traditional , mas ainda assim não alterou o sabor se eu digitar nc OR netcat , pois /usr/local/bin/ ainda tem maior precedência sobre /bin no meu $PATH :
$ /bin/nc -h |& head -1
[v1.10-41]
$ nc -h |& head -1
GNU netcat 0.7.1, a rewrite of the famous networking tool.
$ type -a nc | head -1
nc is /usr/local/bin/nc
Observe que há mais sabores de netcat, por exemplo ncat , socat , sbd , netcat6 , pnetcat e cryptcat .
¹ O link simbólico atual foi atualizado em /etc/alternatives/nc e /etc/alternatives/netcat , que /bin/nc e /bin/netcat já tinham link simbólico para /etc/alternatives/nc e /etc/alternatives/netcat , respectivamente.